📖Added documentation for method of moments
parent
8d0241171b
commit
4c0f8ec6be
|
@ -3634,6 +3634,8 @@ strong nonlinearities or binding constraints. Such a solution is
|
||||||
computed using the ``extended_path`` command.
|
computed using the ``extended_path`` command.
|
||||||
|
|
||||||
|
|
||||||
|
.. _stoch-sol-simul:
|
||||||
|
|
||||||
Computing the stochastic solution
|
Computing the stochastic solution
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
|
@ -4622,8 +4624,8 @@ elements are never repeated (for more details, see the description of
|
||||||
|
|
||||||
.. _estim:
|
.. _estim:
|
||||||
|
|
||||||
Estimation
|
Estimation based on likelihood
|
||||||
==========
|
==============================
|
||||||
|
|
||||||
Provided that you have observations on some endogenous variables, it
|
Provided that you have observations on some endogenous variables, it
|
||||||
is possible to use Dynare to estimate some or all parameters. Both
|
is possible to use Dynare to estimate some or all parameters. Both
|
||||||
|
@ -4640,6 +4642,8 @@ observed variables.
|
||||||
The estimation using a first order approximation can benefit from the
|
The estimation using a first order approximation can benefit from the
|
||||||
block decomposition of the model (see :opt:`block`).
|
block decomposition of the model (see :opt:`block`).
|
||||||
|
|
||||||
|
.. _varobs:
|
||||||
|
|
||||||
.. command:: varobs VARIABLE_NAME...;
|
.. command:: varobs VARIABLE_NAME...;
|
||||||
|
|
||||||
|br| This command lists the name of observed endogenous variables
|
|br| This command lists the name of observed endogenous variables
|
||||||
|
@ -4699,7 +4703,6 @@ block decomposition of the model (see :opt:`block`).
|
||||||
P (mu/eta);
|
P (mu/eta);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
.. block:: estimated_params ;
|
.. block:: estimated_params ;
|
||||||
|
|
||||||
|br| This block lists all parameters to be estimated and specifies
|
|br| This block lists all parameters to be estimated and specifies
|
||||||
|
@ -4707,12 +4710,12 @@ block decomposition of the model (see :opt:`block`).
|
||||||
|
|
||||||
Each line corresponds to an estimated parameter.
|
Each line corresponds to an estimated parameter.
|
||||||
|
|
||||||
In a maximum likelihood estimation, each line follows this syntax::
|
In a maximum likelihood or a method of moments estimation, each line follows this syntax::
|
||||||
|
|
||||||
stderr VARIABLE_NAME | corr VARIABLE_NAME_1, VARIABLE_NAME_2 | PARAMETER_NAME
|
stderr VARIABLE_NAME | corr VARIABLE_NAME_1, VARIABLE_NAME_2 | PARAMETER_NAME
|
||||||
, INITIAL_VALUE [, LOWER_BOUND, UPPER_BOUND ];
|
, INITIAL_VALUE [, LOWER_BOUND, UPPER_BOUND ];
|
||||||
|
|
||||||
In a Bayesian estimation, each line follows this syntax::
|
In a Bayesian MCMC or a penalized method of moments estimation, each line follows this syntax::
|
||||||
|
|
||||||
stderr VARIABLE_NAME | corr VARIABLE_NAME_1, VARIABLE_NAME_2 | PARAMETER_NAME | DSGE_PRIOR_WEIGHT
|
stderr VARIABLE_NAME | corr VARIABLE_NAME_1, VARIABLE_NAME_2 | PARAMETER_NAME | DSGE_PRIOR_WEIGHT
|
||||||
[, INITIAL_VALUE [, LOWER_BOUND, UPPER_BOUND]], PRIOR_SHAPE,
|
[, INITIAL_VALUE [, LOWER_BOUND, UPPER_BOUND]], PRIOR_SHAPE,
|
||||||
|
@ -7633,6 +7636,583 @@ Dynare also has the ability to estimate Bayesian VARs:
|
||||||
See ``bvar-a-la-sims.pdf``, which comes with Dynare distribution,
|
See ``bvar-a-la-sims.pdf``, which comes with Dynare distribution,
|
||||||
for more information on this command.
|
for more information on this command.
|
||||||
|
|
||||||
|
Estimation based on moments
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Provided that you have observations on some endogenous variables, it
|
||||||
|
is possible to use Dynare to estimate some or all parameters using a
|
||||||
|
method of moments approach. Both the Simulated Method of Moments (SMM)
|
||||||
|
and the Generalized Method of Moments (GMM) are available. The general
|
||||||
|
idea is to minimize the distance between unconditional model moments
|
||||||
|
and corresponding data moments (so called orthogonality or moment
|
||||||
|
conditions). For SMM Dynare computes model moments via stochastic
|
||||||
|
simulations based on the perturbation approximation up to any order,
|
||||||
|
whereas for GMM model moments are computed in closed-form based on the
|
||||||
|
pruned state-space representation of the perturbation solution up to third
|
||||||
|
order. The implementation of SMM is inspired by *Born and Pfeifer (2014)*
|
||||||
|
and *Ruge-Murcia (2012)*, whereas the one for GMM is adapted from
|
||||||
|
*Andreasen, Fernández-Villaverde and Rubio-Ramírez (2018)* and *Mutschler
|
||||||
|
(2018)*. The estimation heavily relies on the accuracy and efficiency of
|
||||||
|
the perturbation approximation, so it is advised to tune this as much as
|
||||||
|
possible (see :ref:`stoch-sol-simul`). The estimator is consistent and
|
||||||
|
asymptotically normally distributed given certain regularity conditions
|
||||||
|
(see *Duffie and Singleton (1993)* for SMM and *Hansen (1982)* for GMM).
|
||||||
|
For instance, it is required to have at least as many moment conditions as
|
||||||
|
estimated parameters. Moreover, the Jacobian of the moments with respect to
|
||||||
|
the estimated parameters needs to be full rank. :ref:`identification-analysis`
|
||||||
|
helps evaluating this regularity condition.
|
||||||
|
|
||||||
|
In case you declare more moment conditions than estimated parameters, the
|
||||||
|
choice of :opt:`weighting_matrix <weighting_matrix = ['WM1','WM2',...,'WMn']>`
|
||||||
|
matters for the efficiency of the estimation, because the estimated
|
||||||
|
orthogonality conditions are random variables with unequal variances and
|
||||||
|
usually non-zero cross-moment covariances. Using a weighting matrix you can
|
||||||
|
re-weigh moments to pay more attention to orthogonality conditions that are
|
||||||
|
more informative or better measured (in the sense of having a smaller
|
||||||
|
variance). To achieve asymptotic efficiency, the weighting matrix needs to
|
||||||
|
be chosen such that, after appropriate scaling, it has probability limit
|
||||||
|
proportional to the inverse of the covariance matrix of the limiting
|
||||||
|
distribution of the vector of orthogonality conditions. Dynare uses a
|
||||||
|
Newey-West estimator with a Bartlett kernel to compute an estimate of this
|
||||||
|
so-called optimal weighting matrix. Moreover, in this over-identified case,
|
||||||
|
it is advised to perform the estimation in at least two stages by setting
|
||||||
|
e.g. :opt:`weighting_matrix=['DIAGONAL','DIAGONAL'] <weighting_matrix = ['WM1','WM2',...,'WMn']>`
|
||||||
|
so that the computation of the optimal weighting matrix benefits from the
|
||||||
|
consistent estimation of the previous stages. The optimal weighting matrix
|
||||||
|
is used to compute standard errors and the J-test of overidentifying
|
||||||
|
restrictions which tests whether the model and selection of moment
|
||||||
|
conditions fits the data sufficiently well. If the null hypothesis of a
|
||||||
|
"valid" model is rejected, then something is wrong with either your model
|
||||||
|
or selection of orthogonality conditions.
|
||||||
|
|
||||||
|
In case the global minimum is found in a region of the parameter space that
|
||||||
|
is typically considered unlikely (`dilemma of absurd parameters`), you may
|
||||||
|
opt to choose the :opt:`penalized_estimator <penalized_estimator>` option.
|
||||||
|
Similar to adding priors to the likelihood, this option includes prior
|
||||||
|
knowledge (i.e. the prior mean) as additional moment restrictions and
|
||||||
|
weighs them by their prior precision to guide the minimization algorithm
|
||||||
|
in more plausible regions of the parameter space. Ideally, these are
|
||||||
|
characterized by slightly worse values of the objective function. Note that
|
||||||
|
this comes at the cost of a loss in efficiency of the estimator.
|
||||||
|
|
||||||
|
|br|
|
||||||
|
|
||||||
|
.. command:: varobs VARIABLE_NAME...;
|
||||||
|
|
||||||
|
Required. All variables used in the :bck:`matched_moments` block
|
||||||
|
need to be observable. See :ref:`varobs <varobs>` for more details.
|
||||||
|
|
||||||
|
|br|
|
||||||
|
|
||||||
|
.. block:: matched_moments ;
|
||||||
|
|
||||||
|
This block specifies the product moments which are used in estimation.
|
||||||
|
Currently, only linear product moments (e.g.
|
||||||
|
:math:`E[y_t], E[y_t^2], E[x_t y_t], E[y_t y_{t-1}], E[y_t^3 x^2_{t-4}]`)
|
||||||
|
are supported. For other functions like :math:`E[log(y_t)e^{x_t}]` you
|
||||||
|
need to declare auxiliary endogenous variables.
|
||||||
|
|
||||||
|
Each line inside of the block should be of the form::
|
||||||
|
|
||||||
|
VARIABLE_NAME(LEAD/LAG)^POWER*VARIABLE_NAME(LEAD/LAG)^POWER*...*VARIABLE_NAME(LEAD/LAG)^POWER;
|
||||||
|
|
||||||
|
where `VARIABLE_NAME` is the name of a declared observable variable,
|
||||||
|
`LEAD/LAG` is either a negative integer for lags or a positive one
|
||||||
|
for leads, and `POWER` is a positive integer indicating the exponent on
|
||||||
|
the variable. You can omit `LEAD/LAG` equal to `0` or `POWER` equal to `1`.
|
||||||
|
|
||||||
|
*Example*
|
||||||
|
|
||||||
|
For :math:`E[c_t], E[y_t], E[c_t^2], E[c_t y_t], E[y_t^2], E[c_t c_{t+3}], E[y_{t+1}^2 c^3_{t-4}], E[c^3_{t-5} y_{t}^2]`
|
||||||
|
use the following block:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
matched_moments;
|
||||||
|
c;
|
||||||
|
y;
|
||||||
|
c*c;
|
||||||
|
c*y;
|
||||||
|
y^2;
|
||||||
|
c*c(3);
|
||||||
|
y(1)^2*c(-4)^3;
|
||||||
|
c(-5)^3*y(0)^2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
*Limitations*
|
||||||
|
|
||||||
|
1. For GMM Dynare can only compute the theoretical mean, covariance and
|
||||||
|
autocovariances. Higher-order moments are only supported for SMM.
|
||||||
|
|
||||||
|
2. The product moments are not demeaned by default, unless the
|
||||||
|
:opt:`prefilter <prefilter = INTEGER>` option is set to 1. That is, by default,
|
||||||
|
`c*c` corresponds to :math:`E[c_t^2]` and not to :math:`Var[c_t]=E[c_t^2]-E[c_t]^2`.
|
||||||
|
|
||||||
|
*Output*
|
||||||
|
|
||||||
|
Dynare translates the :bck:`matched_moments` block into a cell array
|
||||||
|
``M_.matched_moments`` where:
|
||||||
|
|
||||||
|
* the first column contains a vector of indices for the chosen variables in declaration order
|
||||||
|
* the second column contains the corresponding vector of leads and lags
|
||||||
|
* the third column contains the corresponding vector of powers
|
||||||
|
|
||||||
|
During the estimation phase Dynare gets rid of redundant or duplicate
|
||||||
|
orthogonality conditions in ``M_.matched_moments`` and tells you which
|
||||||
|
conditions are removed. In the example above it would get grid of the
|
||||||
|
last row. The original block stays available in ``M_.matched_moments_orig``.
|
||||||
|
|
||||||
|
|br|
|
||||||
|
|
||||||
|
.. block:: estimated_params ;
|
||||||
|
|
||||||
|
Required. See :bck:`estimated_params` for the meaning and syntax.
|
||||||
|
|
||||||
|
|br|
|
||||||
|
|
||||||
|
.. block:: estimated_params_init ;
|
||||||
|
|
||||||
|
See :bck:`estimated_params_init` for the meaning and syntax.
|
||||||
|
|
||||||
|
|br|
|
||||||
|
|
||||||
|
.. block:: estimated_params_bounds ;
|
||||||
|
|
||||||
|
See :bck:`estimated_params_bounds` for the meaning and syntax.
|
||||||
|
|
||||||
|
|br|
|
||||||
|
|
||||||
|
.. command:: method_of_moments (OPTIONS...);
|
||||||
|
|
||||||
|
This command runs the method of moments estimation. The following
|
||||||
|
information will be displayed in the command window:
|
||||||
|
|
||||||
|
* Overview of options chosen by the user
|
||||||
|
* Estimation results for each stage and iteration
|
||||||
|
* Value of minimized moment distance objective function
|
||||||
|
* Result of J-test
|
||||||
|
* Table of data moments and estimated model moments
|
||||||
|
|
||||||
|
*Necessary options*
|
||||||
|
|
||||||
|
.. option:: mom_method = SMM|GMM
|
||||||
|
|
||||||
|
"Simulated Method of Moments" is triggered by `SMM` and
|
||||||
|
"Generalized Method of Moments" by `GMM`.
|
||||||
|
|
||||||
|
.. option:: datafile = FILENAME
|
||||||
|
|
||||||
|
The name of the file containing the data. See
|
||||||
|
:opt:`datafile <datafile = FILENAME>` for the meaning and syntax.
|
||||||
|
|
||||||
|
*Common options for SMM and GMM*
|
||||||
|
|
||||||
|
.. option:: order = INTEGER
|
||||||
|
|
||||||
|
Order of perturbation approximation. For GMM only orders 1|2|3 are
|
||||||
|
supported. For SMM you can choose an arbitrary order. Note that the
|
||||||
|
order set in other functions does not overwrite the default.
|
||||||
|
Default: ``1``.
|
||||||
|
|
||||||
|
.. option:: pruning
|
||||||
|
|
||||||
|
Discard higher order terms when iteratively computing simulations
|
||||||
|
of the solution. See :opt:`pruning <pruning>` for more details.
|
||||||
|
Default: not set for SMM, always set for GMM.
|
||||||
|
|
||||||
|
.. option:: penalized_estimator
|
||||||
|
|
||||||
|
This option includes deviations of the estimated parameters from the
|
||||||
|
prior mean as additional moment restrictions and weighs them by
|
||||||
|
their prior precision.
|
||||||
|
Default: not set.
|
||||||
|
|
||||||
|
.. option:: weighting_matrix = ['WM1','WM2',...,'WMn']
|
||||||
|
|
||||||
|
Determines the weighting matrix used at each estimation stage. Note
|
||||||
|
that this defines the number of stages, i.e. ``weighting_matrix = ['DIAGONAL','DIAGONAL','OPTIMAL']``
|
||||||
|
performs a three-stage estimation. Possible values for ``WM`` are:
|
||||||
|
|
||||||
|
``IDENTITY_MATRIX``
|
||||||
|
|
||||||
|
Sets the weighting matrix equal to the identity matrix.
|
||||||
|
|
||||||
|
``OPTIMAL``
|
||||||
|
|
||||||
|
Uses the optimal weighting matrix that is computed by a
|
||||||
|
Newey-West estimate with a Bartlett kernel. At the first
|
||||||
|
stage the data-moments are used as initial estimate of the
|
||||||
|
model moments, whereas at subsequent stages the previous
|
||||||
|
state estimate of model moments is used when computing
|
||||||
|
the optimal weighting matrix.
|
||||||
|
|
||||||
|
``DIAGONAL``
|
||||||
|
|
||||||
|
Uses the diagonal of the ``OPTIMAL`` weighting matrix.
|
||||||
|
|
||||||
|
``FILENAME``
|
||||||
|
|
||||||
|
The name of the M-file (extension ``.m``) containing a
|
||||||
|
user-specified weighting matrix. The file must include a
|
||||||
|
square matrix called `weighting_matrix` with both dimensions
|
||||||
|
equal to the number of orthogonality conditions.
|
||||||
|
|
||||||
|
Default value is ``['DIAGONAL','OPTIMAL']``.
|
||||||
|
|
||||||
|
.. option:: weighting_matrix_scaling_factor = DOUBLE
|
||||||
|
|
||||||
|
Scaling of weighting matrix in objective function.
|
||||||
|
Default: ``1``.
|
||||||
|
|
||||||
|
.. option:: bartlett_kernel_lag = INTEGER
|
||||||
|
|
||||||
|
Bandwidth of kernel for computing the optimal weighting matrix.
|
||||||
|
Default: ``20``.
|
||||||
|
|
||||||
|
.. option:: se_tolx = DOUBLE
|
||||||
|
|
||||||
|
Step size of numerical differentiation when computing standard
|
||||||
|
errors numerically.
|
||||||
|
Default: ``1e-5``.
|
||||||
|
|
||||||
|
.. option:: verbose
|
||||||
|
|
||||||
|
Display and store intermediate estimation results in ``oo_.mom``.
|
||||||
|
Default: not set.
|
||||||
|
|
||||||
|
*SMM-specific options*
|
||||||
|
|
||||||
|
.. option:: burnin = INTEGER
|
||||||
|
|
||||||
|
Number of periods dropped at the beginning of simulation.
|
||||||
|
Default: ``500``.
|
||||||
|
|
||||||
|
.. option:: bounded_shock_support
|
||||||
|
|
||||||
|
Trim shocks in simulations to :math:`\pm 2` standard deviations.
|
||||||
|
Default: not set.
|
||||||
|
|
||||||
|
.. option:: seed = INTEGER
|
||||||
|
|
||||||
|
Common seed used in simulations.
|
||||||
|
Default: ``24051986``.
|
||||||
|
|
||||||
|
.. option:: simulation_multiple = INTEGER
|
||||||
|
|
||||||
|
Multiple of data length used for simulation.
|
||||||
|
Default: ``7``.
|
||||||
|
|
||||||
|
*GMM-specific options*
|
||||||
|
|
||||||
|
.. option:: analytic_standard_errors
|
||||||
|
|
||||||
|
Compute standard errors using analytical derivatives of moments
|
||||||
|
with respect to estimated parameters.
|
||||||
|
Default: not set, i.e. standard errors are computed using a two-sided
|
||||||
|
finite difference method, see :opt:`se_tolx <se_tolx = DOUBLE>`.
|
||||||
|
|
||||||
|
*General options*
|
||||||
|
|
||||||
|
.. option:: dirname
|
||||||
|
|
||||||
|
Directory in which to store ``estimation`` output.
|
||||||
|
See :opt:`dirname <dirname = FILENAME>` for more details.
|
||||||
|
Default: ``<mod_file>``.
|
||||||
|
|
||||||
|
.. option:: graph_format = FORMAT
|
||||||
|
|
||||||
|
Specify the file format(s) for graphs saved to disk.
|
||||||
|
See :opt:`graph_format <graph_format = FORMAT>` for more details.
|
||||||
|
Default: ``eps``.
|
||||||
|
|
||||||
|
.. option:: nodisplay
|
||||||
|
|
||||||
|
See :opt:`nodisplay`. Default: not set.
|
||||||
|
|
||||||
|
.. option:: nograph
|
||||||
|
|
||||||
|
See :opt:`nograph`. Default: not set.
|
||||||
|
|
||||||
|
.. option:: noprint
|
||||||
|
|
||||||
|
See :opt:`noprint`. Default: not set.
|
||||||
|
|
||||||
|
.. option:: plot_priors = INTEGER
|
||||||
|
|
||||||
|
Control the plotting of priors.
|
||||||
|
See :opt:`plot_priors <plot_priors = INTEGER>` for more details.
|
||||||
|
Default: ``1``, i.e. plot priors.
|
||||||
|
|
||||||
|
.. option:: prior_trunc = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`prior_trunc <prior_trunc = DOUBLE>` for more details.
|
||||||
|
Default: ``1e-10``.
|
||||||
|
|
||||||
|
.. option:: tex
|
||||||
|
|
||||||
|
See :opt:`tex`. Default: not set.
|
||||||
|
|
||||||
|
*Data options*
|
||||||
|
|
||||||
|
.. option:: first_obs = INTEGER
|
||||||
|
|
||||||
|
See :opt:`first_obs <first_obs = INTEGER>`.
|
||||||
|
Default: ``1``.
|
||||||
|
|
||||||
|
.. option:: nobs = INTEGER
|
||||||
|
|
||||||
|
See :opt:`nobs <nobs = INTEGER>`.
|
||||||
|
Default: all observations are considered.
|
||||||
|
|
||||||
|
.. option:: prefilter = INTEGER
|
||||||
|
|
||||||
|
A value of 1 means that the estimation procedure will demean each data
|
||||||
|
series by its empirical mean and each model moment by its theoretical
|
||||||
|
mean. See :opt:`prefilter <prefilter = INTEGER>` for more details.
|
||||||
|
Default: `0`, i.e. no prefiltering.
|
||||||
|
|
||||||
|
.. option:: logdata
|
||||||
|
|
||||||
|
See :opt:`logdata <logdata>`. Default: not set.
|
||||||
|
|
||||||
|
.. option:: xls_sheet = QUOTED_STRING
|
||||||
|
|
||||||
|
See :opt:`xls_sheet <xls_sheet = QUOTED_STRING>`.
|
||||||
|
|
||||||
|
.. option:: xls_range = RANGE
|
||||||
|
|
||||||
|
See :opt:`xls_range <xls_range = RANGE>`.
|
||||||
|
|
||||||
|
*Optimization options*
|
||||||
|
|
||||||
|
.. option:: huge_number = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`huge_number <huge_number = DOUBLE>`.
|
||||||
|
Default: ``1e7``.
|
||||||
|
|
||||||
|
.. option:: mode_compute = INTEGER | FUNCTION_NAME
|
||||||
|
|
||||||
|
See :opt:`mode_compute <mode_compute = INTEGER | FUNCTION_NAME>`.
|
||||||
|
Default: ``13``, i.e. ``lsqnonlin``.
|
||||||
|
|
||||||
|
.. option:: additional_optimizer_steps = [INTEGER|FUNCTION_NAME,INTEGER|FUNCTION_NAME,...]
|
||||||
|
|
||||||
|
Vector of additional minimization algorithms run after
|
||||||
|
``mode_compute``. If :opt:`verbose` option is set, then the additional estimation
|
||||||
|
results are saved into the ``oo_.mom`` structure prefixed with `verbose_`.
|
||||||
|
Default: no additional optimization iterations.
|
||||||
|
|
||||||
|
.. option:: optim = (NAME, VALUE, ...)
|
||||||
|
|
||||||
|
See :opt:`optim <optim = (NAME, VALUE, ...)>`.
|
||||||
|
|
||||||
|
.. option:: silent_optimizer
|
||||||
|
|
||||||
|
See :opt:`silent_optimizer`.
|
||||||
|
Default: not set.
|
||||||
|
|
||||||
|
*Numerical algorithms options*
|
||||||
|
|
||||||
|
.. option:: aim_solver
|
||||||
|
|
||||||
|
See :opt:`aim_solver <aim_solver>`. Default: not set.
|
||||||
|
|
||||||
|
.. option:: k_order_solver
|
||||||
|
|
||||||
|
See :opt:`k_order_solver <k_order_solver>`.
|
||||||
|
Default: disabled for order 1 and 2, enabled for order 3 and above.
|
||||||
|
|
||||||
|
.. option:: dr = OPTION
|
||||||
|
|
||||||
|
See :opt:`dr <dr = OPTION>`. Default: ``default``, i.e. generalized
|
||||||
|
Schur decomposition.
|
||||||
|
|
||||||
|
.. option:: dr_cycle_reduction_tol = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`dr_cycle_reduction_tol <dr_cycle_reduction_tol = DOUBLE>`.
|
||||||
|
Default: ``1e-7``.
|
||||||
|
|
||||||
|
.. option:: dr_logarithmic_reduction_tol = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`dr_logarithmic_reduction_tol <dr_logarithmic_reduction_tol = DOUBLE>`.
|
||||||
|
Default: ``1e-12``.
|
||||||
|
|
||||||
|
.. option:: dr_logarithmic_reduction_maxiter = INTEGER
|
||||||
|
|
||||||
|
See :opt:`dr_logarithmic_reduction_maxiter <dr_logarithmic_reduction_maxiter = INTEGER>`.
|
||||||
|
Default: ``100``.
|
||||||
|
|
||||||
|
.. option:: lyapunov = OPTION
|
||||||
|
|
||||||
|
See :opt:`lyapunov <lyapunov = OPTION>`. Default: ``default``, i.e.
|
||||||
|
based on Bartlets-Stewart algorithm.
|
||||||
|
|
||||||
|
.. option:: lyapunov_complex_threshold = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`lyapunov_complex_threshold <lyapunov_complex_threshold = DOUBLE>`.
|
||||||
|
Default: ``1e-15``.
|
||||||
|
|
||||||
|
.. option:: lyapunov_fixed_point_tol = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`lyapunov_fixed_point_tol <lyapunov_fixed_point_tol = DOUBLE>`.
|
||||||
|
Default: ``1e-10``.
|
||||||
|
|
||||||
|
.. option:: lyapunov_doubling_tol = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`lyapunov_doubling_tol <lyapunov_doubling_tol = DOUBLE>`.
|
||||||
|
Default: ``1e-16``.
|
||||||
|
|
||||||
|
.. option:: sylvester = OPTION
|
||||||
|
|
||||||
|
See :opt:`sylvester <sylvester = OPTION>`.
|
||||||
|
Default: ``default``, i.e. uses ``gensylv``.
|
||||||
|
|
||||||
|
.. option:: sylvester_fixed_point_tol = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`sylvester_fixed_point_tol <sylvester_fixed_point_tol = DOUBLE>`.
|
||||||
|
Default: ``1e-12``.
|
||||||
|
|
||||||
|
.. option:: qz_criterium = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`qz_criterium <qz_criterium = DOUBLE>`.
|
||||||
|
Default: ``0.999999`` as it is assumed that the observables are weakly
|
||||||
|
stationary.
|
||||||
|
|
||||||
|
.. option:: qz_zero_threshold = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`qz_zero_threshold <qz_zero_threshold = DOUBLE>`.
|
||||||
|
Default: ``1e-6``.
|
||||||
|
|
||||||
|
.. option:: schur_vec_tol = DOUBLE
|
||||||
|
|
||||||
|
Tolerance level used to find nonstationary variables in Schur decomposition
|
||||||
|
of the transition matrix. Default: ``1e-11``.
|
||||||
|
|
||||||
|
.. option:: mode_check
|
||||||
|
|
||||||
|
Plot the moments distance objective function for values around the
|
||||||
|
computed minimum for each estimated parameter in turn. This is
|
||||||
|
helpful to diagnose problems with the optimizer.
|
||||||
|
Default: not set.
|
||||||
|
|
||||||
|
.. option:: mode_check_neighbourhood_size = DOUBLE
|
||||||
|
|
||||||
|
See :opt:`mode_check_neighbourhood_size <mode_check_neighbourhood_size = DOUBLE>`.
|
||||||
|
Default: ``0.5``.
|
||||||
|
|
||||||
|
.. option:: mode_check_symmetric_plots = INTEGER
|
||||||
|
|
||||||
|
See :opt:`mode_check_symmetric_plots <mode_check_symmetric_plots = INTEGER>`.
|
||||||
|
Default: ``1``.
|
||||||
|
|
||||||
|
.. option:: mode_check_number_of_points = INTEGER
|
||||||
|
|
||||||
|
See :opt:`mode_check_number_of_points <mode_check_number_of_points = INTEGER>`.
|
||||||
|
Default: ``20``.
|
||||||
|
|
||||||
|
|
||||||
|
*Output*
|
||||||
|
|
||||||
|
``method_of_moments`` stores user options in a structure called
|
||||||
|
`options_mom_` in the global workspace. After running the estimation,
|
||||||
|
the parameters ``M_.params`` and the covariance matrices of the shocks
|
||||||
|
``M_.Sigma_e`` and of the measurement errors ``M_.H`` are set to the
|
||||||
|
parameters that minimize the quadratic moments distance objective
|
||||||
|
function. The estimation results are stored in the ``oo_.mom`` structure
|
||||||
|
with the following fields:
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.data_moments
|
||||||
|
|
||||||
|
Variable set by the ``method_of_moments`` command. Stores the mean
|
||||||
|
of the selected empirical moments of data. NaN values due to leads/lags
|
||||||
|
or missing data are omitted when computing the mean. Vector of dimension
|
||||||
|
equal to the number of orthogonality conditions.
|
||||||
|
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.m_data
|
||||||
|
|
||||||
|
Variable set by the ``method_of_moments`` command. Stores the selected
|
||||||
|
empirical moments at each point in time. NaN values due to leads/lags
|
||||||
|
or missing data are replaced by the corresponding mean of the moment.
|
||||||
|
Matrix of dimension time periods times number of orthogonality conditions.
|
||||||
|
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.Sw
|
||||||
|
|
||||||
|
Variable set by the ``method_of_moments`` command. Stores the
|
||||||
|
Cholesky decomposition of the currently used weighting matrix.
|
||||||
|
Square matrix of dimensions equal to the number of orthogonality
|
||||||
|
conditions.
|
||||||
|
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.model_moments
|
||||||
|
|
||||||
|
Variable set by the ``method_of_moments`` command. Stores the implied
|
||||||
|
selected model moments given the current parameter guess. Model moments
|
||||||
|
are computed in closed-form from the pruned state-space system for GMM,
|
||||||
|
whereas for SMM these are based on averages of simulated data. Vector of dimension equal
|
||||||
|
to the number of orthogonality conditions.
|
||||||
|
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.Q
|
||||||
|
|
||||||
|
Variable set by the ``method_of_moments`` command. Stores the scalar
|
||||||
|
value of the quadratic moment's distance objective function.
|
||||||
|
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.model_moments_params_derivs
|
||||||
|
|
||||||
|
Variable set by the ``method_of_moments`` command. Stores the analytically
|
||||||
|
computed Jacobian matrix of the derivatives of the model moments with
|
||||||
|
respect to the estimated parameters. Only for GMM with :opt:`analytic_standard_errors`.
|
||||||
|
Matrix with dimension equal to the number of orthogonality conditions
|
||||||
|
times number of estimated parameters.
|
||||||
|
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.gmm_stage_1_mode, oo_.mom.gmm_stage_2_mode,...
|
||||||
|
.. matvar:: oo_.mom.smm_stage_1_mode, oo_.mom.smm_stage_2_mode,...
|
||||||
|
.. matvar:: oo_.mom.verbose_gmm_stage_1_mode, oo_.mom.verbose_gmm_stage_2_mode,...
|
||||||
|
.. matvar:: oo_.mom.verbose_smm_stage_1_mode, oo_.mom.verbose_smm_stage_2_mode,...
|
||||||
|
|
||||||
|
Variables set by the ``method_of_moments`` command when estimating
|
||||||
|
with GMM or SMM. Stores the estimated values at stages 1, 2,....
|
||||||
|
The structures contain the following fields:
|
||||||
|
|
||||||
|
- ``measurement_errors_corr``: estimated correlation between two measurement errors
|
||||||
|
- ``measurement_errors_std``: estimated standard deviation of measurement errors
|
||||||
|
- ``parameters``: estimated model parameters
|
||||||
|
- ``shocks_corr``: estimated correlation between two structural shocks.
|
||||||
|
- ``shocks_std``: estimated standard deviation of structural shocks.
|
||||||
|
|
||||||
|
If the :opt:`verbose` option is set, additional fields prefixed with
|
||||||
|
``verbose_`` are saved for all :opt:`additional_optimizer_steps<additional_optimizer_steps = [INTEGER|FUNCTION_NAME,INTEGER|FUNCTION_NAME,...]>`.
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.gmm_stage_1_std_at_mode, oo_.mom.gmm_stage_2_std_at_mode,...
|
||||||
|
.. matvar:: oo_.mom.smm_stage_1_std_at_mode, oo_.mom.smm_stage_2_std_at_mode,...
|
||||||
|
.. matvar:: oo_.mom.verbose_gmm_stage_1_std_at_mode, oo_.mom.verbose_gmm_stage_2_std_at_mode,...
|
||||||
|
.. matvar:: oo_.mom.verbose_smm_stage_1_std_at_mode, oo_.mom.verbose_smm_stage_2_std_at_mode,...
|
||||||
|
|
||||||
|
Variables set by the ``method_of_moments`` command when estimating
|
||||||
|
with GMM or SMM. Stores the estimated standard errors at stages 1, 2,....
|
||||||
|
The structures contain the following fields:
|
||||||
|
|
||||||
|
- ``measurement_errors_corr``: standard error of estimated correlation between two measurement errors
|
||||||
|
- ``measurement_errors_std``: standard error of estimated standard deviation of measurement errors
|
||||||
|
- ``parameters``: standard error of estimated model parameters
|
||||||
|
- ``shocks_corr``: standard error of estimated correlation between two structural shocks.
|
||||||
|
- ``shocks_std``: standard error of estimated standard deviation of structural shocks.
|
||||||
|
|
||||||
|
If the :opt:`verbose` option is set, additional fields prefixed with
|
||||||
|
``verbose_`` are saved for all :opt:`additional_optimizer_steps<additional_optimizer_steps = [INTEGER|FUNCTION_NAME,INTEGER|FUNCTION_NAME,...]>`.
|
||||||
|
|
||||||
|
|
||||||
|
.. matvar:: oo_.mom.J_test
|
||||||
|
|
||||||
|
Variable set by the ``method_of_moments`` command. Structure where the
|
||||||
|
value of the test statistic is saved into a field called ``j_stat``, the
|
||||||
|
degress of freedom in a field called ``degrees_freedom`` and the p-value
|
||||||
|
of the test statistic in a field called ``p_val``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Model Comparison
|
Model Comparison
|
||||||
|
@ -9970,6 +10550,7 @@ IRF and moment calibration can be defined in ``irf_calibration`` and
|
||||||
@#endfor
|
@#endfor
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
.. _identification-analysis:
|
||||||
|
|
||||||
Performing identification analysis
|
Performing identification analysis
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
@ -10102,9 +10683,7 @@ Performing identification analysis
|
||||||
|
|
||||||
.. option:: schur_vec_tol = DOUBLE
|
.. option:: schur_vec_tol = DOUBLE
|
||||||
|
|
||||||
Tolerance level used to find nonstationary variables in Schur decomposition
|
See :opt:`schur_vec_tol <schur_vec_tol = DOUBLE>`.
|
||||||
of the transition matrix.
|
|
||||||
Default: ``1.e-11``.
|
|
||||||
|
|
||||||
*Identification Strength Options*
|
*Identification Strength Options*
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue