Differences between revisions 2 and 3
Revision 2 as of 2009-09-11 12:27:30
Size: 2056
Comment:
Revision 3 as of 2009-09-11 13:00:51
Size: 7095
Comment:
Deletions are marked like this. Additions are marked like this.
Line 18: Line 18:
 * For one sample, estimation is done by [[http://www.dynar.org/dynare/doc/dynare-matlab-m2html/dynare_estimation_1.html | dynare_estimation_1.m]]
 * The big parts of [[http://www.dynar.org/dynare/doc/dynare-matlab-m2html/dynare_estimation_1.html | dynare_estimation_1.m]] are as follows:
 * For one sample, estimation is done by [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/dynare_estimation_1.html | dynare_estimation_1.m]]
 * The big parts of [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/dynare_estimation_1.html | dynare_estimation_1.m]] are as follows:
Line 25: Line 25:

=== The likelihood / posterior function ===
[[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/DsgeLiklihood.html | DsgeLikelihood.m]] computes the likelihood of the model and if necessary evaluates the priors in order to compute the posterior. The likelihood is computed with the Kalman filter, but the implementation called here keeps only those elements necessary to the computation of the likelihood, for efficiency reasons. A fuller version of the Kalman filter is called by [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/DsgeSmoother.html | DsgeSmoother.m]].

The main steps are:
 * initialization of the structural parameters
 * computation of the solution of the linear rational expectation model by [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/dynare_resolve.html | dynare_resolve.m]]
 * initialization of the Kalman filter
 * call the appropriate Kalman filter routine:
   * stationary initialization
     * multivariate filter
       * missing observations : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/missing_observations_kalman_filter.html | missing_observations_kalman_filter.m]]
       * no missing observations : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/kalman_filter.html | kalman_filter.m]]
     * univariate filter
       * correlated shocks : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/univariat_kalman_filter_corr.html | univariate_kalman_filter_corr.m]]
       * non-correlated shocks : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/univariat_kalman_filter.html | univariate_kalman_filter.m]]
   * diffuse initialization
     * multivariate filter
       * missing observations : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/missing_observations_diffuse_kalman_filter.html | missing_observations_diffuse_kalman_filter.m]]
       * no missing observations : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/diffuse_kalman_filter.html | diffuse_kalman_filter.m]]
     * univariate filter
       * correlated shocks : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/univariat_diffuse_kalman_filter_corr.html | univariate_diffuse_kalman_filter_corr.m]]
       * non-correlated shocks : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/univariat_diffuse_kalman_filter.html | univariate_diffuse_kalman_filter.m]]
 * evaluation of priors if necessary
  
When the multivariate filter encounters a singularity, Dynare switches automatically to the univariate filter.



=== The Smoother function ===
[[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/DsgeSmoother.html | DsgeSmoother.m]] computes the smoother of the model. The smoother is computed by first running the Kalman filter (forward in time), then the smoother (backward in time).

The main steps are:
 * initialization of the structural parameters
 * computation of the solution of the linear rational expectation model by [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/dynare_resolve.html | dynare_resolve.m]]
 * initialization of the Kalman filter
 * call the appropriate Kalman filter/smoother routine:
   * stationary initialization
     * multivariate filter
       * missing observations : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/missing_observations_kalman_filter.html | missing_observations_kalman_filter.m]]
       * no missing observations : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/kalman_filter.html | kalman_filter.m]]
     * univariate filter
       * correlated shocks : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/univariat_kalman_filter_corr.html | univariate_kalman_filter_corr.m]]
       * non-correlated shocks : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/univariat_kalman_filter.html | univariate_kalman_filter.m]]
   * diffuse initialization
     * multivariate filter
       * missing observations : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/missing_observations_diffuse_kalman_filter.html | missing_observations_diffuse_kalman_filter.m]]
       * no missing observations : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/diffuse_kalman_filter.html | diffuse_kalman_filter.m]]
     * univariate filter
       * correlated shocks : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/univariat_diffuse_kalman_filter_corr.html | univariate_diffuse_kalman_filter_corr.m]]
       * non-correlated shocks : [[http://www.dynare.org/dynare/doc/dynare-matlab-m2html/matlab/kalman/likelihood/univariat_diffuse_kalman_filter.html | univariate_diffuse_kalman_filter.m]]

Dynare M files

This is the start of a documentation of the Matlab files (M files) that are at the heart of Dynare. Complete documentation will take some time. But we will do our best to add regularly to this page.

M2HTML documentation

Starting Dynare processing

  • Function dynare.m

  • executes Dynare preprocessor dynare_m that creates <fname>.m, <fname>_static.m, <fname>_dynamic.m

  • executes <fname>.m

The estimation block

  • Dynare keyword estimation is translated by a call to Matlab function dynare_estimation.m.

  • dynare_estimation.m handles recursive estimation over several samples, when option nobs contains several values.

  • For one sample, estimation is done by dynare_estimation_1.m

  • The big parts of dynare_estimation_1.m are as follows:

    • initialization and data preparation
    • computation of maximum likelihood or posterior mode (starts around line 347)
    • runs MCMC (starts around line 1003)
    • computes the posterior distributions of various statistics (starts around line 1038)
    • computes smooth values at the last point estimate of the parameters (maximum likelihood, posterior mode or posterior mean) (starts around line 1052)

The likelihood / posterior function

DsgeLikelihood.m computes the likelihood of the model and if necessary evaluates the priors in order to compute the posterior. The likelihood is computed with the Kalman filter, but the implementation called here keeps only those elements necessary to the computation of the likelihood, for efficiency reasons. A fuller version of the Kalman filter is called by DsgeSmoother.m.

The main steps are:

When the multivariate filter encounters a singularity, Dynare switches automatically to the univariate filter.

The Smoother function

DsgeSmoother.m computes the smoother of the model. The smoother is computed by first running the Kalman filter (forward in time), then the smoother (backward in time).

The main steps are:

DynareWiki: DynareToolbox (last edited 2009-12-23 12:49:23 by SébastienVillemot)