Dear Dynare users and friends,
We are pleased to announce the release of Dynare 4.4.0.
This major release adds new features and fixes various bugs.
The Windows packages are already available for download at:
http://www.dynare.org/download/dynare-stable
The Mac and Debian/Ubuntu packages should follow soon.
All users are strongly encouraged to upgrade.
This release is compatible with MATLAB versions ranging from 7.3 (R2006b) to 8.2 (R2013b) and with GNU Octave version 3.6.
Here is the list of major user-visible changes:
* New major algorithms:
- Extended path at order 1 and above, also known as “stochastic extended path”. This method is triggered by setting the `order' option of the `extended_path' command to a value greater than 0. Dynare will then use a Gaussian quadrature to take into account the effects of future uncertainty. The time series for the endogenous variables are generated by assuming that the agents believe that there will no more shocks after period t+order.
- Alternative algorithms for computing decision rules of a stochastic model, based on the cycle reduction and logarithmic reduction algorithms. These methods are respectively triggered by giving `dr = cycle_reduction' or 'dr = logarithmic_reduction' as an option to the `stoch_simul' command.
- Pruning now works with 3rd order approximation, along the lines of Andreasen, Fernández-Villaverde and Rubio-Ramírez (2013).
- Computation of conditional forecast using an extended path method. This is triggered by the new option `simulation_type = deterministic' in the `conditional_forecast' command. In this case, the `expectation' command in the `conditional_forecast_paths' block has to be used to indicate the nature of expectations (whether shocks are a surprise or are perfectly anticipated).
- Endogenous priors as in Christiano, Trabandt and Walentin (2011). Those are triggered by the new option `endogenous_prior' of the `estimation' command.
* Other algorithmic improvements:
- New command `model_diagnostics' to perform various sanity checks on the model. Note: in the past, some users may have used a preliminary MATLAB function implementing this; the new command has the same syntax, except that you shouldn't pass any argument to it.
- Terminal conditions of perfect foresight simulations can now be specified in growth rates. More specifically, the new option `differentiate_forward_vars' of the `model' block will create auxiliary forward looking variables expressed in first differences or growth rates of the actual forward looking variables defined in the model. These new variables have obvious zero terminal conditions whatever the simulation context and this in many cases helps convergence of simulations.
- Convergence diagnostics for single chain MCMC à la Geweke (1992, 1999).
- New optimizer for the posterior mode (triggered by `mode_compute=10'): it uses the simpsa algorithm, based on the combination of the non-linear simplex and simulated annealing algorithms and proposed by Cardoso, Salcedo and Feyo de Azevedo (1996).
- The automatic detrending engine has been extended to work on models written in logs. The corresponding trend variable type is `log_trend_var', and the corresponding deflator type is `log_deflator'.
* New features in the user interface:
- New set of functions for easily creating PDF reports including figures and tables. See the “Reporting” section in the reference manual for more details.
- New MATLAB/Octave classes for handling time series. See the “Time series” section in the reference manual for more details.
- Datafiles in CSV format can now be used for estimation.
- New macro processor `length' operator, returns the length of an array.
- New option `all_values_required' of `initval' and `endval' blocks: enforces initialization of all endogenous and exogenous variables within the block.
- Option `ar' can now be given to the `estimation' command.
- New options `nograph', `nointeractive' and `nowarn' to the `dynare' command, for a better control of what is displayed.
- New option `nostrict' to the `dynare' command, for allowing Dynare to continue processing when there are more endogenous variables than equations or when an undeclared symbol is assigned in `initval' or `endval'.
- The information on MCMC acceptance rates, seeds, last log posterior likelihood, and last parameter draw are now saved on the disk and can be displayed with `internals --display-mh-history' or loaded into the workspace with `internals --load-mh-history'.
- New options `mode_check_neighbourhood_size', `mode_check_symmetric_plots' and `mode_check_number_of_points', for a better control of the diagnostic plots.
- New option `parallel_local_files' of `model' block, for transferring extra files during parallel computations.
- New option `clock' of `set_dynare_seed', for setting a different seed at each run.
- New option `qz_zero_threshold' of the `check', `stoch_simul' and `estimation' commands, for a better control of the situation where a generalized eigenvalue is close to 0/0.
- New `verbatim' block for inclusion of text that should pass through the preprocessor and be placed as is in the `modfile.m' file.
- New option `mcmc_jumping_covariance' of the `estimation' command, for a better control of the covariance matrix used for the proposal density of the MCMC sampler.
- New option `use_calibration' of the `estimated_params_init', for using the calibration of deep parameters and the elements of the covariance matrix specified in the `shocks' block as starting values for the estimation.
- New option `save_draws' of the `ms_simulation' command.
- New option `irf_plot_threshold' of the `stoch_simul' and `estimation' commands, for a better control of the display of IRFs which are almost nil.
- New option `long_name' for endogenous, exogenous and parameter declarations, which can be used to declare a long name for variables. That long name can be programmatically retrieved in `M_.endo_names_long'.
* Miscellaneous changes
- The deciles of some posterior moments were erroneously saved in a field `Distribution' under `oo_'. This field is now called `deciles', for consistency with other posterior moments and with the manual. Similarly, the fields `Mean', `Median', `HPDsup', `HPDinf', and `Variance' are now consistently capitalized.
- The console mode now implies the `nodisplay' option.
* Bugs and problems identified in version 4.3.3 and that have been fixed in version 4.4.0:
- In an `endval' block, auxiliary variables were not given the right value. This would not result in wrong results, but could prevent convergence of the steady state computation.
- Deterministic simulations with `stack_solve_algo=0' (the default value) were crashing if some exogenous had a lag strictly greater than 1.
- When using the `mode_file' option, the initial estimation checks were not performed for the loaded mode, but for the original starting values. Thus, potential prior violations by the mode only appeared during estimation, leading to potentially cryptic crashes and error messages.
- If a shock/measurement error variance was set to 0 in calibration, the correlation matrix featured a 0 instead of a 1 on the diagonal, leading to wrong estimation results.
- In the presence of calibrated covariances, estimation did not enforce positive definiteness of the covariance matrix.
- Estimation using the `diffuse_filter' option together with the univariate Kalman filter and a diagonal measurement error matrix was broken.
- A purely backward model with `k_order_solver' was leading to crashes of MATLAB/Octave.
- Non-linear estimation was not skipping the specified presample when computing the likelihood.
- IRFs and theoretical moments at order > 1 were broken for purely forward-looking models.
- Simulated moments with constant variables was leading to crashes when displaying autocorrelations.
- The `osr' command was sometimes crashing with cryptic error messages because of some unaccounted error codes returned from a deeper routine.
- The check for stochastic singularity during initial estimation checks was broken.
- Recursive estimation starting with the pathological case of `nobs=1' was crashing.
- Conditional variance decomposition within or after estimation was crashing when at least one shock had been calibrated to zero variance.
- The `estimated_params_init' and `estimated_params_bounds' blocks were broken for correlations.
- The `filter_step_ahead' option was not producing any output in Bayesian estimation.
- Deterministic simulations were sometimes erroneously indicating convergence although the residuals were actually NaN or Inf.
- Supplying a user function in the `mode_compute' option was leading to a crash.
- Deterministic simulation of models without any exogenous variable was crashing.
- The MS-SBVAR code was not updating files between runs on Windows. This means that if a MOD file was updated between runs in the same folder and a `file_tag' was not changed, then the results would not change.
- The `ramsey_policy' command was not putting in `oo_.planner_objective_value' the value of the planner objective at the optimum.
* References:
- Andreasen, Martin M., Jesús Fernández-Villaverde, and Juan Rubio-Ramírez (2013): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” NBER Working Paper, 18983
- Cardoso, Margarida F., R. L. Salcedo and S. Feyo de Azevedo (1996): “The simplex simulated annealing approach to continuous non-linear optimization,” Computers chem. Engng, 20(9), 1065-1080
- Christiano, Lawrence J., Mathias Trabandt and Karl Walentin (2011): “Introducing financial frictions and unemployment into a small open economy model,” Journal of Economic Dynamics and Control, 35(12), 1999-2041
- Geweke, John (1992): “Evaluating the accuracy of sampling-based approaches to the calculation of posterior moments,” in J.O. Berger, J.M. Bernardo, A.P. Dawid, and A.F.M. Smith (eds.) Proceedings of the Fourth Valencia International Meeting on Bayesian Statistics, pp. 169-194, Oxford University Press
- Geweke, John (1999): “Using simulation methods for Bayesian econometric models: Inference, development and communication,” Econometric Reviews, 18(1), 1-73
On behalf of the Dynare Team,