243 lines
7.0 KiB
ReStructuredText
243 lines
7.0 KiB
ReStructuredText
.. default-domain:: dynare
|
||
|
||
.. |br| raw:: html
|
||
|
||
<br>
|
||
|
||
####################
|
||
Dynare misc commands
|
||
####################
|
||
|
||
.. command:: prior_function(OPTIONS);
|
||
|
||
Executes a user-defined function on parameter draws from the prior
|
||
distribution. Dynare returns the results of the computations for
|
||
all draws in an `ndraws` by :math:`n` cell array named
|
||
``oo_.prior_function_results``.
|
||
|
||
*Options*
|
||
|
||
.. option:: function = FUNCTION_NAME
|
||
|
||
The function must have the following header ``output_cell =
|
||
FILENAME(xparam1,M_,options_,oo_,estim_params_,bayestopt_,dataset_,dataset_info)``,
|
||
providing read-only access to all Dynare structures. The only
|
||
output argument allowed is a :math:`1 \times n` cell array,
|
||
which allows for storing any type of output/computations. This
|
||
option is required.
|
||
|
||
.. option:: sampling_draws = INTEGER
|
||
|
||
Number of draws used for sampling. Default: 500.
|
||
|
||
|br|
|
||
|
||
.. command:: posterior_function(OPTIONS);
|
||
|
||
Same as the :comm:`prior_function` command but for the
|
||
posterior distribution. Results returned in
|
||
``oo_.posterior_function_results``.
|
||
|
||
*Options*
|
||
|
||
.. option:: function = FUNCTION_NAME
|
||
|
||
See :opt:`prior_function_function <function = FUNCTION_NAME>`.
|
||
|
||
.. option:: sampling_draws = INTEGER
|
||
|
||
See :opt:`prior_function_sampling_draws <sampling_draws = INTEGER>`.
|
||
|
||
|br|
|
||
|
||
.. command:: generate_trace_plots(CHAIN_NUMBER);
|
||
|
||
Generates trace plots of the MCMC draws for all estimated
|
||
parameters and the posterior density for the specified Markov Chain(s)
|
||
``CHAIN_NUMBER``. If ``CHAIN_NUMBER`` is a vector of integers, the trace plots
|
||
will plot contains separate lines for each chain.
|
||
|
||
|br|
|
||
|
||
.. matcomm:: internals FLAG ROUTINENAME[.m]|MODFILENAME
|
||
|
||
Depending on the value of ``FLAG``, the ``internals`` command
|
||
can be used to run unitary tests specific to a MATLAB/Octave
|
||
routine (if available), to display documentation about a
|
||
MATLAB/Octave routine, or to extract some informations about the
|
||
state of Dynare.
|
||
|
||
*Flags*
|
||
|
||
``--test``
|
||
|
||
Performs the unitary test associated to ROUTINENAME (if this
|
||
routine exists and if the matlab/octave ``.m`` file has
|
||
unitary test sections).
|
||
|
||
*Example*
|
||
|
||
::
|
||
|
||
>> internals --test ROUTINENAME
|
||
|
||
if ``routine.m`` is not in the current directory, the full
|
||
path has to be given::
|
||
|
||
>> internals --test ../matlab/fr/ROUTINENAME
|
||
|
||
``--display-mh-history``
|
||
|
||
Displays information about the previously saved MCMC draws
|
||
generated by a ``.mod`` file named MODFILENAME. This file must
|
||
be in the current directory.
|
||
|
||
*Example*
|
||
|
||
::
|
||
|
||
>> internals --display-mh-history MODFILENAME
|
||
|
||
``--load-mh-history``
|
||
|
||
Loads into the MATLAB/Octave’s workspace informations
|
||
about the previously saved MCMC draws generated by a ``.mod``
|
||
file named MODFILENAME.
|
||
|
||
*Example*
|
||
|
||
::
|
||
|
||
>> internals --load-mh-history MODFILENAME
|
||
|
||
This will create a structure called ``mcmc_informations``
|
||
(in the workspace) with the following fields:
|
||
|
||
``Nblck``
|
||
|
||
The number of MCMC chains.
|
||
|
||
``InitialParameters``
|
||
|
||
A ``Nblck*n``, where ``n`` is the number of estimated
|
||
parameters, array of doubles. Initial state of
|
||
the MCMC.
|
||
|
||
``LastParameters``
|
||
|
||
A ``Nblck*n``, where ``n`` is the number of estimated
|
||
parameters, array of doubles. Current state of
|
||
the MCMC.
|
||
|
||
``InitialLogPost``
|
||
|
||
A ``Nblck*1`` array of doubles. Initial value of the
|
||
posterior kernel.
|
||
|
||
``LastLogPost``
|
||
|
||
A ``Nblck*1`` array of doubles. Current value of the
|
||
posterior kernel.
|
||
|
||
``InitialSeeds``
|
||
|
||
A ``1*Nblck`` structure array. Initial state of the random
|
||
number generator.
|
||
|
||
``LastSeeds``
|
||
|
||
A ``1*Nblck`` structure array. Current state of the random
|
||
number generator.
|
||
|
||
``AcceptanceRatio``
|
||
|
||
A ``1*Nblck`` array of doubles. Current acceptance ratios.
|
||
|
||
|br|
|
||
|
||
.. matcomm:: prior [OPTIONS[ ...]];
|
||
|
||
Prints information about the prior distribution given the provided
|
||
options. If no options are provided, the command returns the list of
|
||
available options.
|
||
|
||
*Options*
|
||
|
||
.. option:: table
|
||
|
||
Prints a table describing the marginal prior distributions
|
||
(mean, mode, std., lower and upper bounds, HPD interval).
|
||
|
||
.. option:: moments
|
||
|
||
Computes and displays first and second order moments of the
|
||
endogenous variables at the prior mode (considering the
|
||
linearized version of the model).
|
||
|
||
.. option:: moments(distribution)
|
||
|
||
Computes and displays the prior mean and prior standard
|
||
deviation of the first and second moments of the endogenous
|
||
variables (considering the linearized version of the model) by
|
||
randomly sampling from the prior. The results will also be
|
||
stored in the ``prior`` subfolder in a
|
||
``_endogenous_variables_prior_draws.mat`` file.
|
||
|
||
.. option:: optimize
|
||
|
||
Optimizes the prior density (starting from a random initial
|
||
guess). The parameters such that the steady state does not
|
||
exist or does not satisfy the Blanchard and Kahn conditions
|
||
are penalized, as they would be when maximizing the posterior
|
||
density. If a significant proportion of the prior mass is
|
||
defined over such regions, the optimization algorithm may fail
|
||
to converge to the true solution (the prior mode).
|
||
|
||
.. option:: simulate
|
||
|
||
Computes the effective prior mass using a Monte-Carlo. Ideally
|
||
the effective prior mass should be equal to 1, otherwise
|
||
problems may arise when maximising the posterior density and
|
||
model comparison based on marginal densities may be
|
||
unfair. When comparing models, say :math:`A` and :math:`B`,
|
||
the marginal densities, :math:`m_A` and :math:`m_B`, should be
|
||
corrected for the estimated effective prior mass
|
||
:math:`p_A\neq p_B \leq 1` so that the prior mass of the
|
||
compared models are identical.
|
||
|
||
.. option:: plot
|
||
|
||
Plots the marginal prior density.
|
||
|
||
|br|
|
||
|
||
.. matcomm:: search VARIABLENAME[ OPTION]
|
||
|
||
Searches all occurrences of a variable in a model, and prints the
|
||
equations where the variable appear in the command line window. If OPTION is
|
||
set to `withparamvalues`, the values of the parameters (if available) are
|
||
displayed instead of the name of the parameters.
|
||
|
||
*Example*
|
||
|
||
Assuming that we already ran a `.mod` file and that the workspace has not
|
||
been cleaned after, we can search for all the equations containing variable `X`
|
||
|
||
::
|
||
|
||
>> search X
|
||
|
||
Y = alpha*X/(1-X)+e;
|
||
|
||
diff(X) = beta*(X(-1)-mX) + gamma1*Z + gamma2*R + u;
|
||
|
||
To replace the parameters with estimated or calibrated parameters:
|
||
|
||
::
|
||
|
||
>> search X withparamvalues
|
||
|
||
Y = 1.254634*X/(1-X)+e;
|
||
|
||
diff(X) = -0.031459*(X(-1)-mX) + 0.1*Z - 0.2*R + u;
|