This page documents the new features in Dynare. For previous versions of Dynare, please read the dedicated frozen page on the DynareWiki.
Dynare 4.6-unstable
-
The macroprocessor now accepts empty arrays, with the
[]
syntax (#707) -
Added JSON output to the preprocessor. A representation of the model file and the whole content of the
*.mod
file is saved in*.json
files. These JSON files can be easily parsed from any language (C++, Fortran, Python, Julia, Matlab, ...). This new feature opens the possibility to develop alternative back-ends for the Dynare language. -
Added the possibility to declare Dynare command options in the mod file.
-
Discretionary policy returns a more informative error message when the objective has nonzero derivatives with respect to some variables. (#1468)
-
write_latex_static_model
andwrite_latex_original_model
now support thewrite_equation_tags
-option (#1431) -
The
calib_smoother
-command now take the optionparameter_set
(#1477) -
New command
model_local_variable
that allows defining LaTeX-expressions for model-local variables (#563) -
Always write
M_.state_var
, independently of what commands are issued (#637) -
New command-line option
nopreprocessoroutput
(#1390) -
New command
write_latex_steady_state_model
(#1496) -
Ability to call the preprocessor by passing the
.mod
file as a string argument from the macOS or GNU/Linux command line (#1509) -
Variance decomposition of observables now accounts for measurement error (#1486)
-
New macro directives
@#echomacrovars
and@#echomacrovars(save)
(#1564) -
The
dynare_sensitivity
-command now accepts thediffuse_filter
-option (#1562) -
New dynare option
noemptylinemacro
(#1551) -
Added debugging info on NaN and Inf parameters (#1538)
-
Added
fast_realtime
option to real time shock decomposition (deactivated by default, runs the smoother only twice: once for the last in-sample and once for the last out-of-sample data point) (#1563) and (#1552) -
New syntax to declare model variables in the
model
block #1386 -
Added option
mh_tune_jscale
inestimation
for tuning the scale parameter of the proposal distribution of the Random Walk Metropolis Hastings. -
Added possibility to create macroprocessor functions that return strings see commit
-
Allow for on-the-fly variable declaration in equation tags see commit
Dynare 4.5
-
Ramsey policy
-
Added command
ramsey_model
that builds the expanded model with FOC conditions for the planner's problem but doesn't perform any computation. Useful to compute Ramsey policy in a perfect foresight model and for estimation, -
ramsey_policy
accepts multipliers in its variable list and displays results for them (#1355).
-
-
Perfect foresight models
-
New commands
perfect_foresight_setup
(for preparing the simulation) andperfect_foresight_solver
(for computing it). The oldsimul
command still exist and is now an alias forperfect_foresight_setup
+perfect_foresight_solver
. It is no longer possible to manipulate by hand the contents ofoo_.exo_simul
when usingsimul
. People who want to do it must first callperfect_foresight_setup
, then do the manipulations, then callperfect_foresight_solver
, -
By default, the perfect foresight solver will try a homotopy method if it fails to converge at the first try. The old behavior can be restored with the
no_homotopy
option, -
New option
stack_solve_algo=7
that allows specifying asolve_algo
solver for solving the model, -
New option
solve_algo
that allows specifying a solver for solving the model when usingstack_solve_algo=7
, -
New option
lmmcp
that solves the model via a Levenberg-Marquardt mixed complementarity problem (LMMCP) solver, -
New option
robust_lin_solve
that triggers the use of a robust linear solver for the defaultsolve_algo=4
, -
New options
tolf
andtolx
to control termination criteria of solvers, -
New option
endogenous_terminal_period
tosimul
, -
Added the possibility to set the initial condition of the (stochastic) extended path simulations with the histval block.
-
-
Optimal simple rules
-
Saves the optimal value of parameters to
oo_.osr.optim_params
, -
New block
osr_params_bounds
allows specifying bounds for the estimated parameters, -
New option
opt_algo
allows selecting different optimizers while the new optionoptim
allows specifying the optimizer options, -
The
osr
command now saves the names, bounds, and indices for the estimated parameters as well as the indices and weights of the variables entering the objective function intoM_.osr
.
-
-
Forecasts and Smoothing
-
The smoother and forecasts take uncertainty about trends and means into account (#679),
-
Forecasts accounting for measurement error are now saved in fields of the form
HPDinf_ME
andHPDsup_ME
(#853), -
New fields
oo_.Smoother.Trend
andoo_.Smoother.Constant
that save the trend and constant parts of the smoothed variables, -
new field
oo_.Smoother.TrendCoeffs
that stores the trend coefficients. -
Rolling window forecasts allowed in
estimation
command by passing a vector tofirst_obs
, -
The
calib_smoother
command now accepts theloglinear
,prefilter
,first_obs
andfilter_decomposition
options.
-
-
Estimation
-
New options:
logdata
,consider_all_endogenous
,consider_only_observed
,posterior_max_subsample_draws
(#567),mh_conf_sig
(#598),diffuse_kalman_tol
(#865),dirname
(#910),nodecomposition
-
load_mh_file
andmh_recover
now try to load chain's proposal density (#1230), -
New option
load_results_after_load_mh
that allows loading some posterior results from a previous run if no new MCMC draws are added (#1352), -
New option
posterior_nograph
that suppresses the generation of graphs associated with Bayesian IRFs, posterior smoothed objects, and posterior forecasts, -
Saves the posterior density at the mode in
oo_.posterior.optimization.log_density
, -
The
filter_covariance
option now also works with posterior sampling like Metropolis-Hastings, -
New option
no_posterior_kernel_density
to suppress computation of kernel density of posterior objects, -
Recursive estimation and forecasting now provides the individual
oo_
structures for each sample inoo_recursive_
, -
The
trace_plot
command can now plot the posterior density, -
New command
generate_trace_plots
allows generating all trace plots for one chain (#1239), -
New commands
prior_function
andposterior_function
that execute a user-defined function on parameter draws from the prior/posterior distribution (#871), -
New option
huge_number
for replacement of infinite bounds with large number duringmode_compute
, -
New option
posterior_sampling_method
allows selecting the new posterior sampling options:tailored_random_block_metropolis_hastings
(Tailored randomized block (TaRB) Metropolis-Hastings),slice
(Slice sampler),independent_metropolis_hastings
(Independent Metropolis-Hastings), -
New option
posterior_sampler_options
that allow controlling the options of theposterior_sampling_method
; itsscale_file
-option pair allows loading the_mh_scale.mat
-file storing the tuned scale factor from a previous run ofmode_compute=6
(#1223), -
New option
raftery_lewis_diagnostics
that computes Raftery/Lewis (1992) convergence diagnostics, -
New option
fast_kalman_filter
that provides fast Kalman filter using Chandrasekhar recursions as described in Ed Herbst (2015), -
The
dsge_var
option now saves results at the posterior mode intooo_.dsge_var
, -
New option
smoothed_state_uncertainty
to provide the uncertainty estimate for the smoothed state estimate from the Kalman smoother (#1324), -
New prior density: generalized Weibull distribution,
-
Option
mh_recover
now allows continuing a crashed chain at the last save mh-file, -
New option
nonlinear_filter_initialization
for theestimation
command. Controls the initial covariance matrix of the state variables in nonlinear filters. -
The
conditional_variance_decomposition
option now displays output and stores it as a LaTeX-table when theTeX
option is invoked, -
The
use_calibration
toestimated_params_init
now also works with ML, -
Improved initial estimation checks.
-
-
Steady state
-
The default solver for finding the steady state is now a trust-region solver (can be triggered explicitly with option
solve_algo=4
), -
New options
tolf
andtolx
to control termination criteria of solver, -
The debugging mode now provides the termination values in steady state finding.
-
-
Stochastic simulations
-
New options
nodecomposition
, -
New option
bandpass_filter
to compute bandpass-filtered theoretical and simulated moments, -
New option
one_sided_hp_filter
to compute one-sided HP-filtered simulated moments, -
stoch_simul
displays a simulated variance decomposition when simulated moments are requested, -
stoch_simul
saves skewness and kurtosis into respective fields ofoo_
when simulated moments have been requested, -
stoch_simul
saves the unconditional variance decomposition inoo_.variance_decomposition
, -
New option
dr_display_tol
that governs omission of small terms in display of decision rules, -
The
stoch_simul
command now prints the displayed tables as LaTeX code when the newTeX
option is enabled, -
The
loglinear
option now works with lagged and leaded exogenous variables like news shocks, -
New option
spectral_density
that allows displaying the spectral density of (filtered) endogenous variables, -
New option
contemporaneous_correlation
that allows saving contemporaneous correlations in addition to the covariances.
-
-
Identification
-
New options
diffuse_filter
andprior_trunc
, -
The
identification
command now supports correlations via simulated moments,
-
-
Sensitivity analysis
-
New blocks
irf_calibration
andmoment_calibration
, -
Outputs LaTeX tables if the new
TeX
option is used, -
New option
relative_irf
toirf_calibration
block.
-
-
Conditional forecast
- Command
conditional_forecast
now takes into accounthistval
block if present.
- Command
-
Shock decomposition
-
New option
colormap
toshocks_decomposition
for controlling the color map used in the shocks decomposition graphs, -
shocks_decomposition
now accepts thenograph
option, -
New command
realtime_shock_decomposition
that for each periodT= [presample,...,nobs]
allows computing the:-
realtime historical shock decomposition
Y(t|T)
, i.e. without observing data in[T+1,...,nobs]
-
forecast shock decomposition
Y(T+k|T)
-
realtime conditional shock decomposition
Y(T+k|T+k)-Y(T+k|T)
-
-
New block
shock_groups
that allows grouping shocks for theshock_decomposition
andrealtime_shock_decomposition
commands, -
New command
plot_shock_decomposition
that allows plotting the results fromshock_decomposition
andrealtime_shock_decomposition
for different vintages and shock groupings.
-
-
Macroprocessor
-
Can now pass a macro-variable to the
@#include
macro directive, -
New preprocessor flag
-I
, macro directive@#includepath
, and dynare config file block[paths]
to pass a search path to the macroprocessor to be used for file inclusion via@#include
.
-
-
Command line
-
New option
onlyclearglobals
(do not clear JIT compiled functions with recent versions of Matlab), -
New option
minimal_workspace
to use fewer variables in the current workspace, -
New option
params_derivs_order
allows limiting the order of the derivatives with respect to the parameters that are calculated by the preprocessor, -
New command line option
mingw
to support the MinGW-w64 C/C++ Compiler from TDM-GCC foruse_dll
(#1226).
-
-
dates/dseries/reporting classes
-
New methods
abs
,cumprod
andchain
, -
New option
tableRowIndent
toaddTable
, -
Reporting system revamped and made more efficient, dependency on matlab2tikz has been dropped.
-
-
Optimization algorithms
-
mode_compute=2
Uses the simulated annealing as described by Corana et al. (1987), -
mode_compute=101
Uses SOLVEOPT as described by Kuntsevich and Kappel (1997), -
mode_compute=102
Usessimulannealbnd
from Matlab's Global Optimization Toolbox (if available), -
New option
silent_optimizer
to shut off output from mode computing/optimization, -
New options
verbosity
andSaveFiles
to control output and saving of files during mode computing/optimization.
-
-
LaTeX output
-
New command
write_latex_original_model
, -
New option
write_equation_tags
towrite_latex_dynamic_model
that allows printing the specified equation tags to the generate LaTeX code (#477), -
New command
write_latex_parameter_table
that writes the names and values of model parameters to a LaTeX table, -
New command
write_latex_prior_table
that writes the descriptive statistics about the prior distribution to a LaTeX table, -
New command
collect_latex_files
that creates one compilable LaTeX file containing all TeX-output.
-
-
Misc.
-
Provides 64bit preprocessor,
-
Introduces new path management to avoid conflicts with other toolboxes,
-
Full compatibility with Matlab 2014b's new graphic interface,
-
When using
model(linear)
, Dynare automatically checks whether the model is truly linear, -
usedll
: themsvc
option now supportsnormcdf
,acosh
,asinh
, andatanh
(#1259), -
New parallel option
NumberOfThreadsPerJob
for Windows nodes that sets the number of threads assigned to each remote MATLAB/Octave run (#1357), -
Improved numerical performance of
schur_statespace_transformation
for very large models, -
The
all_values_required
option now also works withhistval
, -
Add missing
horizon
option toms_forecast
, -
BVAR now saves the marginal data density in
oo_.bvar.log_marginal_data_density
and stores prior and posterior information inoo_.bvar.prior
andoo_.bvar.posterior
.
-