|
|
This page documents the changes between Dynare versions (including the unstable
|
|
|
one). For previous versions of Dynare, please read the dedicated frozen page on
|
|
|
the [DynareWiki](http://www.dynare.org/DynareWiki/NewFeatures).
|
|
|
|
|
|
Dynare 7 (unstable)
|
|
|
-------------------
|
|
|
|
|
|
- Method of moments now supports estimation with discretionary optimal policy (!2279)
|
|
|
|
|
|
- Option values `solve_algo={6,7,8}` and `stack_solve_algo={2,3}` are now available without `block` nor `bytecode` (e14a49211067b27114d8173b16d4cb8f7595b0c3, aa263e6a2adc9414142551a01bbcc46abb6a3894)
|
|
|
|
|
|
- More flexible syntax for specifying complementarity conditions (461c30fea8c296e88388f9775a2e92e674b0e3d2, 656c130036706849e7d08d9411b352b45a19eccb)
|
|
|
- The complementarity condition is now specified between the associated equation and its closing semicolon, using the perpendicular symbol as a separator (the latter can be input either in UTF-8, as `⟂`, corresponding to Unicode codepoint U+27C2; or alternatively as pure ASCII, as `_|_`, *i.e.* a vertical bar enclosed within two underscores)
|
|
|
- Both the lower and the upper bounds can be specified at the same time in a given complementarity condition
|
|
|
- Arbitrary functions of parameters can appear in the bounds
|
|
|
- The old syntax using the `mcp` equation tag is still supported but deprecated
|
|
|
- Here is an example of an equation with an associated complementarity condition, using the new syntax:
|
|
|
```
|
|
|
mu = 0 ⟂ 0 < i < 1+2*alpha;
|
|
|
```
|
|
|
|
|
|
Dynare 6
|
|
|
--------
|
|
|
|
|
|
- The Sequential Monte Carlo sampler as described by Herbst and Schorfheide (2014) is now available under value `hssmc` for option `posterior_sampling_method`.
|
|
|
|
|
|
- New routines for perfect foresight simulation with expectation errors. In such a scenario, agents make expectation errors in that the path they had anticipated in period 1 is not realized exactly. More precisely, in some simulation periods, they may receive new information that makes them revise their anticipation for the path of future shocks. Also, under this scenario, it is assumed that agents behave as under perfect foresight, *i.e.* they make their decisions as if there were no uncertainty and they knew exactly the path of future shocks; the new information that they may receive comes as a total surprise to them. Available under new `perfect_foresight_with_expectation_errors_setup` and `perfect_foresight_with_expectation_errors_solver` commands, and `shocks(learnt_in=…)`, `mshocks(learnt_in=…)` and `endval(learnt_in=…)` blocks.
|
|
|
|
|
|
- New routines for IRF matching with stochastic simulations:
|
|
|
|
|
|
- Both frequentist (as in Christiano, Eichenbaum, and Evans, 2005) and Bayesian (as in Christiano, Trabandt, and Walentin, 2010) IRF matching approaches are implemented. The core idea of IRF matching is to treat empirical impulse responses (*e.g.* given from an SVAR or local projection estimation) as data and select model parameters that align the model’s IRFs closely with their empirical counterparts. (!2191)
|
|
|
|
|
|
- Available under option `mom_method = irf_matching` option to the `method_of_moments` command. (preprocessor!85)
|
|
|
|
|
|
- New blocks `matched_irfs` and `matched_irfs_weights` for specifying the values and weights of the empirical impulse response functions. (preprocessor#124)
|
|
|
|
|
|
- Pruning à la Andreasen et al. (2018) is now available at an arbitrary approximation order when performing stochastic simulations with `stoch_simul` (!2147), and at 3rd order when performing particle filtering. (!2071, particles!16, !2045)
|
|
|
|
|
|
- New `log` option to the `var` statement. In addition to the endogenous variable(s) thus declared, this option also triggers the creation of auxiliary variable(s) equal to the log of the corresponding endogenous variable(s). For example, given a `var(log) y;` statement, two endogenous will be created (`y` and `LOG_y`), and an auxiliary equation linking the two will also be added (equal to `y = exp(LOG_y);`). Moreover, every occurrence of `y` in the model will be replaced by `exp(LOG_y)`. This option is, for example, useful for performing a loglinear approximation of some variable(s) in the context of a first-order stochastic approximation; or for ensuring that the variable(s) stay(s) in the definition domain of the function defining the steady state or the dynamic residuals when the nonlinear solver is used. (#349)
|
|
|
|
|
|
- New model editing features (21a8a5794a83b5098cad0fe7beab93dcbe5ef6bf and 4db28998687b8845568e8750d99a1b45f0d6a94f)
|
|
|
|
|
|
- Multiple `model` blocks are now supported (this was already working but not explicitly documented).
|
|
|
|
|
|
- Multiple `estimated_params` blocks now concatenate their contents (instead of overwriting previous ones, which was the former undocumented behavior); an `overwrite` option has been added to provide the old behavior. (preprocessor@60ef6bbdbd2f95b7f8d52b1c10cf6bb9aa7773cc, preprocessor@ea44aa19d6dd2bf4c508ee081b2b6cae2a647250)
|
|
|
|
|
|
- New `model_options` statement to set model options in a global fashion. (preprocessor#19)
|
|
|
|
|
|
- New `model_remove` command to remove equations. (preprocessor@1f004584e9c8b2ea5fbda6dd5413b516ce956679)
|
|
|
|
|
|
- New `model_replace` block to replace equations. (preprocessor@1f004584e9c8b2ea5fbda6dd5413b516ce956679)
|
|
|
|
|
|
- New `var_remove` command to remove variables (or parameters). (preprocessor@342c4faf8d95169b7391507e703c88d76b38a243)
|
|
|
|
|
|
- New `estimated_params_remove` block to remove estimated parameters. (preprocessor@5ffbc5bad31c306f561d673cde36d460cb5906c1)
|
|
|
|
|
|
- Stochastic simulations
|
|
|
|
|
|
- Performance improvements for simulation of the solution under perturbation and for particle filtering at higher order (⩾ 3). (#1802, !2071, particles!16, !2045)
|
|
|
|
|
|
- Performance improvement for the first order perturbation solution using either cycle reduction (`dr=cycle_reduction` option) or logarithmic reduction (`dr=logarithmic_reduction`). (!2085, !2089)
|
|
|
|
|
|
- New `nomodelsummary` option to the `stoch_simul` command, to suppress the printing of the model summary and the covariance of the exogenous shocks. (a00eb5e1ded61d2e0086f841203a5eec96e77931)
|
|
|
|
|
|
- Estimation
|
|
|
|
|
|
- A truncated normal distribution can now be specified as a prior, using the 3rd and 4th parameters of the `estimated_params` block as the bounds. (!2161)
|
|
|
|
|
|
- New `conditional_likelihood` option to the `estimation` command. When the option is set, instead of using the Kalman filter to evaluate the likelihood, Dynare will evaluate the conditional likelihood based on the first-order reduced form of the model by assuming that the initial state vector is at its steady state. (b7693c32, f7694208)
|
|
|
|
|
|
- New `additional_optimizer_steps` option to the `estimation` command to trigger the sequential execution of several optimizers when looking for the posterior mode. (!2178)
|
|
|
|
|
|
- The `generate_trace_plots` command now allows comparing multiple chains. (baf8243f)
|
|
|
|
|
|
- The Geweke and Raftery-Lewis convergence diagnostics will now also be displayed when `mh_nblocks>1`. (d0e99daf9ae84cf3a605fa4cf49d506d36b2bd95)
|
|
|
|
|
|
- New `robust`, `TolGstep`, and `TolGstepRel` options to the optimizer available under `mode_compute=5` (“newrat”). (!2231)
|
|
|
|
|
|
- New `brooks_gelman_plotrows` option to the `estimation` command for controlling the number of parameters to depict along the rows of the figures depicting the Brooks and Gelman (1998) convergence diagnostics. (!2146)
|
|
|
|
|
|
- New `mh_init_scale_factor` option to the `estimation` command tor govern the overdispersion of the starting draws when initializing several Monte Carlo Markov Chains. This option supersedes the `mh_init_scale` option, which is now deprecated. (!2041)
|
|
|
|
|
|
- Steady state computation
|
|
|
|
|
|
- Steady state computation now accounts for occasionally-binding constraints of mixed-complementarity problems (as defined by `mcp` tags). (!1877)
|
|
|
|
|
|
- New `tolx` option to the `steady` command for governing the termination based on the step tolerance. (preprocessor!60)
|
|
|
|
|
|
- New `fsolve_options` option to the `steady` command for passing options to `fsolve` (in conjunction with the `solve_algo=0` option). (#1856)
|
|
|
|
|
|
- New option `from_initval_to_endval` option to the `homotopy_setup` block, for easily computing homotopy from initial to terminal steady state (when the former is already computed). (2e3fbfc0408a360dd169c927a5ea38c89f6ff95c)
|
|
|
|
|
|
- New `non_zero` option to `resid` command to restrict display to non-zero residuals. (preprocessor@9db21a231c5ab8f8aa26680ffecf3abfcf45bfab, 3d7299c1e490a6813de2b2cb450b738b4c7acdf9)
|
|
|
|
|
|
- Perfect foresight
|
|
|
|
|
|
- Significant performance improvement of the `stack_solve_algo=1` option to the `perfect_foresight_solver` command (Laffargue-Boucekkine-Juillard algorithm) when used in conjunction with options `block` and/or `bytecode` of the `model` block. (17b016d983be260aa09926809d1f3465307c58e2, be648d350b162152e999b8ffad830dce6b373190, 77a7d5c3dec67b6d9943fc23c11afbb1d0cfd431)
|
|
|
|
|
|
- New `relative_to_initval` option to the `mshocks` block, to use the initial steady state as a basis for the multiplication when there is an `endval` block. (5145bd0708697230c7adeb23c8a0dabf37f4cb3f)
|
|
|
|
|
|
- New `static_mfs` option to the `model` block (and to the `model_options` command), for controlling the minimum feedback set computation for the static model. It defaults to `0` (corresponding to the behavior in Dynare version 5).
|
|
|
|
|
|
- Various improvements to homotopy
|
|
|
|
|
|
- New `endval_steady` option to the `perfect_foresight_setup` command for computing the terminal steady state at the same time as the transitory dynamics (and new options `steady_solve_algo`, `steady_tolf`, `steady_tolx`, `steady_maxit` and `steady_markowitz` for controlling the steady state nonlinear solver). (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
|
|
|
|
|
|
- New `homotopy_linearization_fallback` and `homotopy_marginal_linearization_fallback` options to the `perfect_foresight_solver` command to get an approximate solution when homotopy fails to go to 100%. (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
|
|
|
|
|
|
- New `homotopy_initial_step_size`, `homotopy_min_step_size`, `homotopy_step_size_increase_success_count` and `homotopy_max_completion_share` options to the `perfect_foresight_solver` command to fine tune the homotopy behavior. (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
|
|
|
|
|
|
- Purely backward, forward and static models are now supported by the homotopy procedure. (fe142b663ef34d26969191d2a096b08aecc1eb10)
|
|
|
|
|
|
- New `homotopy_exclude_varexo` option to the `perfect_foresight_solver` command, for excluding exogenous variables from the homotopy procedure (only available since version 6.1) (9f65299d8a7e63de8432a73bffdc8899eb27e936)
|
|
|
|
|
|
- The `stack_solve_algo=1` and `stack_solve_algo=6` options of the `perfect_foresight_solver` command were merged and are now synonymous. They both provide the Laffargue-Boucekkine-Juillard algorithm and work with and without the `block` and `bytecode` options of the `model` block. Using `stack_solve_algo=1` is now recommended, but `stack_solve_algo=6` is kept for backward compatibility. (06f665e231c1a66863612eb75802ff4f0b698c57)
|
|
|
|
|
|
- OccBin
|
|
|
|
|
|
- New `simul_reset_check_ahead_periods` option to the `occbin_setup` and `occbin_solver` commands, for resetting `check_ahead_periods` in each simulation period. (3765ef77)
|
|
|
|
|
|
- new `simul_max_check_ahead_periods`, `likelihood_max_check_ahead_periods`, and `smoother_max_check_ahead_periods` options to the `occbin_setup` command, for truncating the number of periods for which agents check ahead which regime is present. (2f236048 and preprocessor@ed95a2ca )
|
|
|
|
|
|
- Optimal policy
|
|
|
|
|
|
- The `osr` command now accepts the `analytic_derivation` and `analytic_derivation_mode` options. (!2171)
|
|
|
|
|
|
- The `evaluate_planner_objective` command now computes the unconditional welfare for higher-order approximations (⩾ 3). (!1962)
|
|
|
|
|
|
- New `periods` and `drop` options to the `evaluate_planner_objective` command. (!1967)
|
|
|
|
|
|
- Semi-structural models
|
|
|
|
|
|
- New `pac_target_info` block for decomposing the PAC target into an arbitrary number of components. Furthermore, in the presence of such a block, the new `pac_target_nonstationary` operator can be used to select the non stationary part of the target (typically useful in the error correction term of the PAC equation). (b297353b06c9c35223500439c0bc63321675768b)
|
|
|
|
|
|
- New `kind` option to the `pac_model` command. This option allows the user to select the formula used to compute the weights on the VAR companion matrix variables that are used to form PAC expectations. (b297353b06c9c35223500439c0bc63321675768b)
|
|
|
|
|
|
- Performance improvement to `solve_algo=12` and `solve_algo=14`, which significantly accelerates the simulation of purely backward, forward and static models with the `perfect_foresight_solver` command and the routines for semi-structural models.
|
|
|
|
|
|
- dseries classes
|
|
|
|
|
|
- The `remove` and `remove_` methods now accept a list of variables (they would previously only accept a single variable). (dseries@b7ca9c3e, c02e5505)
|
|
|
|
|
|
- New MATLAB/Octave command `dplot` to plot mathematical expressions generated from variables fetched from (different) dseries objects. (dseries@d6c8d039a2f828e5ea009d7181c8145d23932d69).
|
|
|
|
|
|
- Misc
|
|
|
|
|
|
- New `display_parameter_values` command to print the parameter values in the command window. (!2268)
|
|
|
|
|
|
- New `collapse_figures_in_tabgroup` command to dock all figures. (!2263)
|
|
|
|
|
|
- Performance improvement for the `use_dll` option of the `model` block. The preprocessor now takes advantage of parallelization when compiling the MEX files. (preprocessor@f6053df7545174885486a457a2253897a1ed4e27, preprocessor@5cf4729ab0790084af0b0a9e9a1062ddefff3401, preprocessor@dd66459e5f2e5c57ea25cb4a0e8709b22ff3195b, preprocessor@3dd40c6c42d82997972e90899da8632a747f5c90)
|
|
|
|
|
|
- New mathematical primitives available: complementary error function (`erfc`), hyperbolic functions (`cosh`, `sinh`, `tanh`, `acosh`, `asinh`, `atanh`). (preprocessor#85, preprocessor@c0ea8d72038cd6c57e48aca26d2d29866848ae0a)
|
|
|
|
|
|
- New `last_simulation_period` option to the `initval_file` command. (#1838, f5f47cd834049bd5111f23622fb2c68d0e6a619b, preprocessor@ddddf89d9cd8771bb80beb5c44efe53f4734b41f)
|
|
|
|
|
|
- The `calib_smoother` command now accepts the `nobs` and `heteroskedastic_filter` options. (!2110)
|
|
|
|
|
|
- Under the MATLAB Desktop, autocompletion is now available for the `dynare` command and other CLI commands (thanks to Eduard Benet Cerda from MathWorks). (36a2a41e357780d468582c78c4cbb738c5bb4b26)
|
|
|
|
|
|
- Model debugging: The preprocessor now creates files for evaluating the left- and right-hand sides of model equations separately. For a model file called `ramst.mod`, you can call `[lhs,rhs]=ramst.debug.static_resid(y,x,params);` (for the static model) and `[lhs,rhs]=ramst.debug.dynamic_resid(y,x,params,steady_state);` (for the dynamic model), where `y` are the endogenous, `x` the exogenous, `params` the parameters, and `steady_state` is self-explanatory. NB: In the dynamic case, the vector `y` of endogenous must have $3n$ elements where $n$ is the number of endogenous (including auxiliary ones); the first $n$ elements correspond to the lagged values, the middle $n$ elements to the contemporaneous values, and the last $n$ elements to the lead values.
|
|
|
|
|
|
- New interactive MATLAB/Octave command `search` for listing the equations in which given variable(s) appear (requires `json` command line option). (#1886)
|
|
|
|
|
|
- The `model_info` command allows to print the block decomposition even if the `block` option of the `model` block has not been used, by specifying the new options `block_static` and `block_dynamic`.
|
|
|
|
|
|
- There is now a default value for the global initialization file (`GlobalInitFile` option of the configuration file): the `global_init.m` in the Dynare configuration directory (typically `$HOME/.config/dynare/global_init.m` under Linux and macOS, and `c:\Users\USERNAME\AppData\Roaming\dynare\global_init.m` under Windows). (43b24facb)
|
|
|
|
|
|
- For those compiling Dynare from source, the build system has been entirely rewritten and now uses Meson; as a consequence, it is now faster and easier to understand.
|
|
|
|
|
|
- Incompatible changes
|
|
|
|
|
|
- :warning: The default value of the `mode_compute` option of the `estimation` command has been changed to `5` (it was previously `4`).
|
|
|
|
|
|
- :warning: When using block decomposition (with the `block` option of the `model` block), the option `mfs` now defaults to `1`. This setting should deliver better performance in perfect foresight simulation on most models.
|
|
|
|
|
|
- :warning: The default location for the configuration file has changed. On Linux and macOS, the configuration file is now searched by default under `dynare/dynare.ini` in the configuration directories defined by the XDG specification (typically `$HOME/.config/dynare/dynare.ini` for the user-specific configuration and `/etc/xdg/dynare/dynare.ini` for the system-wide configuration, the former having precedence over the latter). Under Windows, the configuration file is now searched by default in `%APPDATA%\dynare\dynare.ini` (typically `c:\Users\USERNAME\AppData\Roaming\dynare\dynare.ini`). (43b24facb)
|
|
|
|
|
|
- :warning: The information stored in `oo_.endo_simul, oo_.exo_simul`, and `oo_.irfs` is no longer duplicated in the base workspace. New helper functions `send_endogenous_variables_to_workspace`, `send_exogenous_variables_to_workspace`, and `send_irfs_to_workspace` have been introduced to explicitly request these outputs and to mimic the old behavior. (!2229)
|
|
|
|
|
|
- :warning: The `dynare_sensitivity` command has been renamed `sensitivity`. The old name is still accepted but triggers a warning. (66bc9fd9c2707c787efae797e1976b7052159dc4)
|
|
|
|
|
|
- :warning: The syntax `resid(1)` is no longer supported.
|
|
|
|
|
|
- :warning: The `mode_compute=6` option to the `estimation` command now recursively updates the covariance matrix across the `NumberOfMh` Metropolis-Hastings runs, starting with the `InitialCovarianceMatrix` in the first run, instead of computing it from scratch in every Metropolis-Hastings run. (e5102eee)
|
|
|
|
|
|
- :warning: The `periods` command has been removed. (1b47c8a5e551be046fba8b592d29f38e17099bfe)
|
|
|
|
|
|
- :warning: The `Sigma_e` command has been removed. (e30314e75d0d4fa2e587079bdbeeb2e2e4af3383)
|
|
|
|
|
|
- :warning: The `block` option of the `model` block no longer has an effect when used in conjunction with `stoch_simul` or `estimation` commands. (8f1a4cb3637fe4936ade877c88e6a120af2b5f24)
|
|
|
|
|
|
- :warning: The Dynare++ executable is no longer distributed since almost all of its functionalities have been integrated inside Dynare for MATLAB/Octave. (c1922c3ad0a920d48fd32ec7026bfd5ebd55a824)
|
|
|
|
|
|
- :warning: A macro-processor variable defined without a value (such as `@#define var` in the `.mod` file or alternatively `-Dvar` on the `dynare` command line) is now assigned the `true` logical value (it was previously assigned `1`). (preprocessor#43)
|
|
|
|
|
|
- :warning: The `parallel_slave_open_mode` option of the `dynare` command has been renamed `parallel_follower_open_mode`. (preprocessor#86, !1976)
|
|
|
|
|
|
- :warning: The `static` option of the `model_info` command is now deprecated and is replaced by the `block_static` option. (45450651 and preprocessor@2fd06811)
|
|
|
|
|
|
- References:
|
|
|
|
|
|
- Andreasen, Martin M., Jesús Fernández-Villaverde, and Juan Rubio-Ramírez (2018): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” *Review of Economic Studies*, 85(1), 1-49.
|
|
|
- Brooks, Stephen P., and Andrew Gelman (1998): “General methods for monitoring convergence of iterative simulations,” *Journal of Computational and Graphical Statistics*, 7, pp. 434–455.
|
|
|
- Christiano, Eichenbaum and Charles L. Evans (2005): “Nominal Rigidities and the Dynamic Effects of a Shock to Monetary Policy,” *Journal of Political Economy*, 113(1), 1–45.
|
|
|
- Christiano, Lawrence J., Mathias Trabandt, and Karl Walentin (2010): “DSGE Models for Monetary Policy Analysis,” In: *Handbook of Monetary Economics 3*, 285–367.
|
|
|
- Herbst, Edward and Schorfheide, Frank (2014): "Sequential Monte Carlo Sampling for DSGE Models," *Journal of Applied Econometrics*, 29, 1073-1098.
|
|
|
|
|
|
|
|
|
Dynare 5
|
|
|
--------
|
|
|
|
|
|
- New routines for simulating semi-structural (backward) models where
|
|
|
some equations incorporate expectations based on future values of a VAR or
|
|
|
trend component model. See the `var_model`, `trend_component_model` and
|
|
|
`var_expectation_model` commands, and the `var_expectation` operator.
|
|
|
|
|
|
- New routines for simulating semi-structural models where some equations are
|
|
|
specified using the polynomial adjustment costs (PAC) approach, as in
|
|
|
the FRB/US model (see Brayton et al., 2014 and Brayton et al., 2000) and the ECB-BASE model (see
|
|
|
Angelini et al., 2019). The forward-looking terms of the PAC equations can
|
|
|
be computed either using a satellite VAR model, or using full
|
|
|
model-consistent expectations. See the `pac_model` command and the
|
|
|
`pac_expectation` operator.
|
|
|
|
|
|
- New Method of Moments toolbox that provides functionality to estimate
|
|
|
parameters by (i) Generalized Method of Moments (GMM) up to 3rd-order pruned
|
|
|
perturbation approximation or (ii) Simulated Method of Moments (SMM) up to
|
|
|
any perturbation approximation order. The toolbox is inspired by
|
|
|
replication codes accompanied to Andreasen et al. (2018), Born and Pfeifer
|
|
|
(2014), and Mutschler (2018). It is accessible via the new
|
|
|
`method_of_moments` command (!1750) and the new `matched_moments` block
|
|
|
(preprocessor!23). Moreover, by default, a new non-linear least squares optimizer
|
|
|
based on `lsqnonlin` is used for minimizing the method of moments objective function (available under `mode_compute=13`) (3615962a6107e211861d7461e2310ba2d1366369, b4f293bdf29f766dfb3314b48d2407716a7d7025). GMM can further benefit from using Gradient-based optimizers (using `analytic_standard_errors` option and/or passing `'Jacobian','on'` to the optimization options) as the Jacobian of the moment conditions can be computed analytically (a697002a4ee54b28551f3583757b7e0395121db6).
|
|
|
|
|
|
- Implementation of the Occbin algorithm by Guerrieri and Iacoviello (2015) (#569,
|
|
|
preprocessor#68), together with the inversion filter of Cuba-Borda,
|
|
|
Guerrieri, Iacoviello, and Zhong (2019) and the piecewise Kalman filter of Giovannini,
|
|
|
Pfeiffer, and Ratto (2021) (!1876). It is available via the new block
|
|
|
`occbin_constraints` and the new commands `occbin_setup`, `occbin_solver`,
|
|
|
`occbin_graph` and `occbin_write_regimes`.
|
|
|
|
|
|
- Stochastic simulations
|
|
|
|
|
|
- `stoch_simul` now supports theoretical moments at `order=3` with
|
|
|
`pruning`. (dfc73576)
|
|
|
|
|
|
- `stoch_simul` now reports second moments based on the pruned state space
|
|
|
if the `pruning` option is set (in previous Dynare releases it would
|
|
|
report a second-order accurate result based on the linear solution).
|
|
|
(4cf9f7d1a7fa5dac8f91ff3344a6114c7f15959c)
|
|
|
|
|
|
- Estimation
|
|
|
|
|
|
- Performance optimization to pruned state space system and Lyapunov
|
|
|
solvers. (!1749, !1745, #1737)
|
|
|
|
|
|
- New option `mh_posterior_mode_estimation` to `estimation` to perform
|
|
|
mode-finding by running the MCMC.
|
|
|
(preprocessor@8d14e18cdbaced798c5330e00c7f5df488187cd6)
|
|
|
|
|
|
- New heteroskedastic filter and smoother, where shocks standard error may
|
|
|
*unexpectedly* change in every period. Triggered by
|
|
|
`heteroskedastic_filter` option of the `estimation` command, and
|
|
|
configured via the `heteroskedastic_shocks` block. (!1844, !1851)
|
|
|
|
|
|
- New option `mh_tune_guess` for setting the initial value for
|
|
|
`mh_tune_jscale`. (!1717)
|
|
|
|
|
|
- New option `smoother_redux` to `estimation` and `calib_smoother` to
|
|
|
trigger computing the Kalman smoother on a restricted state space instead
|
|
|
of the full one. (!1859)
|
|
|
|
|
|
- New block `filter_initial_state` for setting the initial condition of the
|
|
|
Kalman filter/smoother. (7c8f4867)
|
|
|
|
|
|
- New option `mh_initialize_from_previous_mcmc` to the `estimation` command
|
|
|
that allows to pick initial values for a new MCMC from a previous one.
|
|
|
(!1841)
|
|
|
|
|
|
- The `xls_sheet` option of the `estimation` command now takes a quoted
|
|
|
string as value. The former unquoted syntax is still accepted, but no
|
|
|
longer recommended. (preprocessor#67)
|
|
|
|
|
|
- New option `particle_filter_options` to set various particle filter options
|
|
|
|
|
|
- Perfect foresight and extended path
|
|
|
|
|
|
- New specialized algorithm in `perfect_foresight_solver` to deal with
|
|
|
purely static problems. (27ee801a6755df021994acf061eb07d7feebf316)
|
|
|
|
|
|
- The `debug` option of `perfect_foresight_solver` provides debugging
|
|
|
information if the Jacobian is singular. (!1834)
|
|
|
|
|
|
- In deterministic models (perfect foresight or extended path), exogenous
|
|
|
variables with lead/lags are now replaced by auxiliary variables. This
|
|
|
brings those models in line with the transformation done on stochastic
|
|
|
models. However note that transformation is still not exactly the same
|
|
|
between the two classes of models, because there is no need to take into
|
|
|
account the Jensen inequality on the latter. In deterministic models,
|
|
|
there is a one-to-one mapping between exogenous with lead/lags and
|
|
|
auxiliaries, while in stochastic models, an auxiliary endogenous may
|
|
|
correspond to a more complex nonlinear expression.
|
|
|
(preprocessor@9bca65c7e525a2415fe46b27e8760208b22aba9d)
|
|
|
|
|
|
- Optimal policy
|
|
|
|
|
|
- Several improvements to `evaluate_planner_objective`:
|
|
|
|
|
|
- it now applies a consistent approximation order when doing the
|
|
|
computation;
|
|
|
- in addition to the conditional welfare, it now also provides the
|
|
|
unconditional welfare;
|
|
|
- in a stochastic context, it now works with higher order approximation
|
|
|
(only the conditional welfare is available for order ⩾ 3); (!1828,
|
|
|
!1866)
|
|
|
- it now also works in a perfect foresight context. (!1833)
|
|
|
|
|
|
- `discretionary_policy` is now able to solve nonlinear models (it will
|
|
|
then use their first-order approximation, and the analytical steady state
|
|
|
must be provided). (!1792)
|
|
|
|
|
|
- Identification
|
|
|
|
|
|
- New option `schur_vec_tol` to the `identification` command, for setting
|
|
|
the tolerance level used to find nonstationary variables in Schur
|
|
|
decomposition of the transition matrix. (!1794)
|
|
|
|
|
|
- The `identification` command now supports optimal policy. (!1852)
|
|
|
|
|
|
- Shock decomposition
|
|
|
|
|
|
- The `fast_realtime` option of the `realtime_shock_decomposition` command
|
|
|
now accepts a vector of integers, which runs the smoother for all the
|
|
|
specified data vintages. (!1842)
|
|
|
|
|
|
- Macro processor
|
|
|
|
|
|
- Macroprocessor variables can be defined without a value (they are
|
|
|
assigned integer 1). (preprocessor#43)
|
|
|
|
|
|
- LaTeX and JSON outputs
|
|
|
|
|
|
- New `nocommutativity` option to the `dynare` command. This option tells
|
|
|
the preprocessor not to use the commutativity of addition and
|
|
|
multiplication when looking for common subexpressions. As a consequence,
|
|
|
when using this option, equations in various outputs (LaTeX, JSON…) will
|
|
|
appear as the user entered them (without terms or factors swapped). Note
|
|
|
that using this option may have a performance impact on the preprocessing
|
|
|
stage, though it is likely to be small.
|
|
|
(preprocessor@c9c36c037aa6d6c67f8fbb2236b03729a22e5878)
|
|
|
|
|
|
- Model-local variables are now substituted out as part of the various
|
|
|
model transformations. This means that they will no longer appear in
|
|
|
LaTeX or in JSON files (for the latter, they are still visible with
|
|
|
`json=parse` or `json=check`).
|
|
|
|
|
|
- Compilation of the model (`use_dll` option)
|
|
|
|
|
|
- Block decomposition (option `block` of `model`) can now be used in
|
|
|
conjunction with the `use_dll` option.
|
|
|
|
|
|
- The `use_dll` option can now directly be given to the `dynare` command.
|
|
|
(a9fea692e9d1f4bcdd6a7347a9d17a8b36578a4a)
|
|
|
|
|
|
- dseries classes
|
|
|
|
|
|
- Routines for converting between time series frequencies (e.g. daily to
|
|
|
monthly) have been added.
|
|
|
|
|
|
- dseries now support bi-annual (dseries!37) and daily
|
|
|
(dseries@1b897b371e3822306c196b59bf771388b719bebb) frequency data.
|
|
|
|
|
|
- dseries can now import data from [DBnomics](https://db.nomics.world), via
|
|
|
the DBnomics/mdbnomics> plugin (dseries#44). Note that this does not yet
|
|
|
work under Octave (dbnomics/mdbnomics#10). For the time being, the
|
|
|
DBnomics plugin must be installed separately.
|
|
|
|
|
|
- Misc improvements
|
|
|
|
|
|
- The `histval_file` and `initval_file` commands have been made more
|
|
|
flexible and now have functionalities similar to the `datafile` option of
|
|
|
the `estimation` command. (#1671)
|
|
|
|
|
|
- When using the `loglinear` option, the output from Dynare now clearly
|
|
|
shows that the results reported concern the log of the original variable.
|
|
|
(!1796)
|
|
|
|
|
|
- Options `block` and `bytecode` of `model` can now be used in conjunction
|
|
|
with model-local variables (variables declared with a pound-sign `#`).
|
|
|
(#1243)
|
|
|
|
|
|
- The `model_info` command now prints the typology of endogenous variables
|
|
|
for non-block decomposed models.
|
|
|
|
|
|
- The total computing time of a run (in seconds) is now saved to `oo_.time`.
|
|
|
(preprocessor@c79ae5d4bd6d130026fbb6f1dee69a046eab71b6)
|
|
|
|
|
|
- New `notime` option to the `dynare` command, to disable the printing and
|
|
|
the saving of the total computing time.
|
|
|
(preprocessor@27a8b3b70ed93e45f17e9792d0a23ea781b2b4dc)
|
|
|
|
|
|
- New `parallel_use_psexec` command-line Windows-specific option for
|
|
|
parallel local clusters: when `true` (the default), use `psexec` to spawn
|
|
|
processes; when `false`, use `start`. (!1843)
|
|
|
|
|
|
- when compiling from source, it is no longer necessary to pass the
|
|
|
`MATLAB_VERSION` version to the configure script; the version is now
|
|
|
automatically detected.
|
|
|
|
|
|
- Different versions of Dynare are now available as [Docker Containers](https://hub.docker.com/r/dynare/dynare).
|
|
|
|
|
|
- Incompatible changes
|
|
|
|
|
|
- :warning: Dynare will now generally save its output in the
|
|
|
`MODFILENAME/Output` folder (or the `DIRNAME/Output` folder if the
|
|
|
`dirname` option was specified) instead of the main directory. Most
|
|
|
importantly, this concerns the `_results.mat` and the `_mode.mat` files.
|
|
|
|
|
|
- :warning: The structure of the `oo_.planner_objective` field has been
|
|
|
changed, in relation to the improvements to `evaluate_planner_objective`.
|
|
|
|
|
|
- :warning: The preprocessor binary has been renamed to
|
|
|
`dynare-preprocessor`, and is now located in a dedicated `preprocessor`
|
|
|
subdirectory.
|
|
|
|
|
|
- :warning: The `dynare` command no longer accepts `output=dynamic` and
|
|
|
`output=first` (those options actually had no effect).
|
|
|
|
|
|
- Platform requirements
|
|
|
|
|
|
- :warning: The minimal required MATLAB version is now R2014a (8.3). (#1713)
|
|
|
|
|
|
- :warning: The 32-bit support has been dropped for Windows. (#1713)
|
|
|
|
|
|
- References
|
|
|
|
|
|
- Andreasen et al. (2018): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” Review of Economic Studies, 85(1), pp. 1-49.
|
|
|
- Angelini, Bokan, Christoffel, Ciccarelli and Zimic (2019): “Introducing ECB-BASE: The blueprint
|
|
|
of the new ECB semi-structural model for the euro area”, ECB Working Paper no. 2315
|
|
|
- Born and Pfeifer (2014): “Policy risk and the business cycle”, Journal of Monetary Economics, 68, 68-85.
|
|
|
- Brayton, Davis and Tulip (2000): “Polynomial Adjustment Costs in FRB/US”, Unpublished manuscript.
|
|
|
- Brayton, Laubach and Reifschneider (2014): “The FRB/US Model: A Tool for Macroeconomic Policy Analysis,” FEDS Notes. Washington: Board of Governors of the Federal Reserve System, https://doi.org/10.17016/2380-7172.0012
|
|
|
- Cuba-Borda, Guerrieri, Iacoviello, and Zhong (2019): “Likelihood evaluation of models with occasionally binding constraints”, Journal of Applied Econometrics, 34(7), 1073-1085
|
|
|
- Giovannini, Pfeiffer and Ratto (2021): “Efficient and robust inference of models with occasionally binding constraints,” Working Papers 2021-03, Joint Research Centre, European Commission
|
|
|
- Guerrieri and Iacoviello (2015): “OccBin: A toolkit for solving dynamic models with occasionally binding constraints easily,” Journal of Monetary Economics, 70, 22–38.
|
|
|
- Mutschler (2018): “Higher-order statistics for DSGE models”, Econometrics and Statistics, 6(C), 44-56.
|
|
|
|
|
|
|
|
|
Dynare 4.6
|
|
|
----------
|
|
|
|
|
|
- Stochastic simulations
|
|
|
|
|
|
- The perturbation method is now available at an arbitrary approximation
|
|
|
order. In other words, the `order` option of `stoch_simul` accepts an
|
|
|
arbitrary positive integer (of course, up to some model-specific
|
|
|
computational limit). (#217)
|
|
|
|
|
|
- New option `filtered_theoretical_moments_grid` of `stoch_simul`, that
|
|
|
supersedes `hp_ngrid`.
|
|
|
|
|
|
- Estimation
|
|
|
|
|
|
- Nonlinear estimation is now also available at an arbitrary approximation
|
|
|
order. In other words, the `order` option of `estimation` accepts an
|
|
|
arbitrary positive integer (of course, up to some model-specific
|
|
|
computational limit). (#1673)
|
|
|
|
|
|
- Various improvements to particle filters.
|
|
|
|
|
|
- It is now possible to estimate models under optimal policy (see below).
|
|
|
|
|
|
- Variance decomposition of observables now accounts for measurement error.
|
|
|
(#1486)
|
|
|
|
|
|
- New option `mh_tune_jscale` of `estimation` command for tuning the scale
|
|
|
parameter of the proposal distribution of the Random Walk Metropolis
|
|
|
Hastings.
|
|
|
|
|
|
- Added debugging info when parameters take a `NaN` or `Inf` value. (!1538)
|
|
|
|
|
|
- Option `mode_compute=1` is now available under Octave.
|
|
|
|
|
|
- Perfect foresight and extended path
|
|
|
|
|
|
- A significant speed improvement should be noted on large models (when
|
|
|
neither `bytecode` nor `block` option is used). The stacked problem is
|
|
|
now constructed using a dedicated machine-compiled library that greatly
|
|
|
speeds up the process (in particular, the time spent in that step can
|
|
|
become negligible when the `use_dll` option is used).
|
|
|
|
|
|
- New options `print` and `noprint` of `perfect_foresight_solver` command.
|
|
|
(#1647)
|
|
|
|
|
|
- Option `stack_solve_algo=2` is now available under Octave.
|
|
|
|
|
|
- Steady state
|
|
|
|
|
|
- Option `solve_algo=7` is now available under Octave.
|
|
|
|
|
|
- Optimal policy
|
|
|
|
|
|
- The `ramsey_policy` command is now deprecated. It is superseded by
|
|
|
successive calls to `ramsey_model`, `stoch_simul`, and
|
|
|
`evaluate_planner_objective` (in this order). (#1678)
|
|
|
|
|
|
- It is now possible to estimate a model under optimal policy (either
|
|
|
Ramsey or discretionary) by running the `estimation` command after either
|
|
|
`ramsey_model` or `discretionary_policy`. It is however not yet possible
|
|
|
to estimate parameters that appear in the discount factor of the social
|
|
|
planner. (#1173)
|
|
|
|
|
|
- Discretionary policy returns a more informative error message when the
|
|
|
objective has nonzero derivatives with respect to some variables. (!1468)
|
|
|
|
|
|
- Identification (!1648, !1689, !1683, !1711)
|
|
|
|
|
|
- Added minimal system identification check of *Komunjer and Ng (2011)*.
|
|
|
|
|
|
- Added spectrum identification check of *Qu and Tkachenko (2012)*.
|
|
|
|
|
|
- Identification is now also available for approximation orders 2 and 3
|
|
|
with either analytical or numerical parameter derivatives. The relevant
|
|
|
moments and spectrum are computed from the pruned state space system
|
|
|
as in *Mutschler (2015)*.
|
|
|
|
|
|
- All tests (moments, spectrum, minimal system, strength) can be turned
|
|
|
off.
|
|
|
|
|
|
- More numerical options can be changed by the user.
|
|
|
|
|
|
- Improved printing and storage (same folder) of results.
|
|
|
|
|
|
- Sensitivity analysis
|
|
|
|
|
|
- New `diffuse_filter` option to the `dynare_sensitivity` command. (!1562)
|
|
|
|
|
|
- Arbitrary expressions can now be passed for the interval boundaries in
|
|
|
`irf_calibration` and `moment_calibration`. :warning: This breaks the
|
|
|
previous syntax, requiring that the lower/upper bounds be separated by
|
|
|
commas. (preprocessor#12)
|
|
|
|
|
|
- Forecasting and smoothing
|
|
|
|
|
|
- In `conditional_forecast_paths`, it is no longer required that all
|
|
|
constrained paths be of the same length. There may now be a different
|
|
|
number of controlled variables at each period. In that case, the order of
|
|
|
declaration of endogenous controlled variables and of `controlled_varexo`
|
|
|
matters: if the second endogenous variable is controlled for less periods
|
|
|
than the first one, the second `controlled_varexo` isn't set for the last
|
|
|
periods. (#699)
|
|
|
|
|
|
- New option `parameter_set` to the `calib_smoother` command (#1477)
|
|
|
|
|
|
- :warning: The results of `conditional_forecast` command is now saved in
|
|
|
`oo_` (used to be in a file; see #1672)
|
|
|
|
|
|
- Shock decomposition
|
|
|
|
|
|
- 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 `diff`, `flip`, `max_nrows`, `plot_init_date` and `plot_end_date`
|
|
|
options to `plot_shock_decomposition` (#1649, !1655,
|
|
|
74e7c12d9d4f802cb687f6f1f122330fa5c4a2f4)
|
|
|
|
|
|
- New `initial_decomposition_decomposition` command, for computing and
|
|
|
plotting the decomposition of the effect of smoothed initial conditions of
|
|
|
state variables (#1586)
|
|
|
|
|
|
- New `squeeze_shock_decomposition` command, for removing decompositions of
|
|
|
variables that are not of interest (!1655)
|
|
|
|
|
|
- New `with_epilogue` option (common to `shock_decomposition`,
|
|
|
`realtime_shock_decomposition` and `initial_condition_decomposition`)
|
|
|
(!1688)
|
|
|
|
|
|
- New `init2shocks` block to attribute initial conditions to shocks (#1650)
|
|
|
|
|
|
- Macro processor
|
|
|
|
|
|
- New object types: real (supersedes integers), boolean (distinct from
|
|
|
integers), tuple, user-defined function.
|
|
|
|
|
|
- New operators: various mathematical functions, set operations on arrays
|
|
|
(union, intersection, difference, cartesian power and product), type
|
|
|
checking and conversion.
|
|
|
|
|
|
- Added support for comprehensions (*e.g.* the set containing the squares of
|
|
|
all even numbers between 1 and 5 can be constructed with `[ i^2 for i in
|
|
|
1:5 when mod(i,2) == 0]`).
|
|
|
|
|
|
- User-defined functions can be declared using the `@#define` operator (*e.g.*
|
|
|
`@#define f(x) = 2*x^2+3*x+5`).
|
|
|
|
|
|
- `@#elseif`-clauses are now supported in conditional statements.
|
|
|
|
|
|
- `@#for` loops can iterate over several variables at the same time (*e.g.*
|
|
|
`@#for (i,j) in X`, where `X` is an array containing tuples of size 2).
|
|
|
|
|
|
- Added the possibility to exclude some elements when iterating over `@#for`
|
|
|
loops (*e.g.* `@#for i in 1:5 when mod(i,2) == 0` iterates over all even
|
|
|
numbers between 1 and 5).
|
|
|
|
|
|
- A `defined()` function allows testing whether macro variables have been
|
|
|
defined.
|
|
|
|
|
|
- Empty arrays (with the `[]` syntax) are now possible (#707).
|
|
|
|
|
|
- Arrays of arrays are now supported.
|
|
|
|
|
|
- New macro directives `@#echomacrovars` and `@#echomacrovars(save)` for
|
|
|
displaying or saving the values of all macro-variables. (#1564)
|
|
|
|
|
|
- Inline comments are now supported.
|
|
|
|
|
|
- :warning: All division operations are now done with doubles (as opposed to
|
|
|
integers). To achieve the old functionality, use the new `floor` operator.
|
|
|
|
|
|
- :warning: Colon syntax used to require braces around it to create an array
|
|
|
(*e.g.* `[1:3]` would create `[1,2,3]`). Now this is not necessary (`1:3`
|
|
|
creates `[1,2,3]` while `[1:3]` would create `[[1,2,3]]`).
|
|
|
|
|
|
- :warning: Previously, printing a boolean would print `1` or `0`. Now, it
|
|
|
prints `true` or `false`. To achieve the old functionality, you must cast
|
|
|
it to a real, *e.g.* `@{(real)(1!=0)}`.
|
|
|
|
|
|
- LaTeX output
|
|
|
|
|
|
- New command `write_latex_steady_state_model`. (#1496)
|
|
|
|
|
|
- New option `planner_discount_latex_name` of `ramsey_model` and
|
|
|
`discretionary_policy`. (#1686)
|
|
|
|
|
|
- New command `model_local_variable` command for assigning a LaTeX name to
|
|
|
model-local variables. (#563)
|
|
|
|
|
|
- The `write_latex_static_model` and `write_latex_original_model` commands
|
|
|
now support the `write_equation_tags` option. (#1431)
|
|
|
|
|
|
- Compilation of the model (`use_dll` option) made easier and faster
|
|
|
|
|
|
- Under Windows, it is no longer necessary to manually install the
|
|
|
compiler, since the latter is now shipped by the Dynare installer.
|
|
|
|
|
|
- Under macOS, the Dynare installer now automatically downloads and
|
|
|
installs the compiler.
|
|
|
|
|
|
- It is no longer necessary to configure MATLAB to let it know where the
|
|
|
compiler is, since the compilation is now done by the preprocessor.
|
|
|
|
|
|
- The compilation phase is now faster on large models (this has been
|
|
|
achieved by disabling a few time-consuming and not-so-useful optimization
|
|
|
passes otherwise done by the compiler).
|
|
|
|
|
|
- New `compilation_setup` block for specifying a custom compiler or custom
|
|
|
compilation flags.
|
|
|
|
|
|
- Model, variables and parameters declaration
|
|
|
|
|
|
- New syntax to declare model variables and parameters on-the-fly in the
|
|
|
`model` block. To do this, simply follow the symbol name with a vertical
|
|
|
line (`|`, pipe character) and either an `e`, an `x`, or a `p`. For
|
|
|
example, to declare a parameter named `alpha` in the model block, you
|
|
|
could write `alpha|p` directly in an equation where it appears.
|
|
|
Similarly, to declare an endogenous variable `c` in the model block you
|
|
|
could write `c|e`. (#1386)
|
|
|
|
|
|
- New syntax to declare model variable and parameters on-the-fly in
|
|
|
equation tags. In the tag, simply state the type of variable to be
|
|
|
declared (`endogenous`, `exogenous`, or `parameter` followed by an equal
|
|
|
sign and the variable name in single quotes. Hence, to declare a variable
|
|
|
`c` as endogenous in an equation tag, you can type `[endogenous='c']`.
|
|
|
(see 01d5a1308244ffb5a85e7f8f1d6a9e104b458715)
|
|
|
|
|
|
- New `epilogue` block for computing output variables of interest that may
|
|
|
not be necessarily defined in the model (*e.g.* various kinds of
|
|
|
real/nominal shares or relative prices, or annualized variables out of a
|
|
|
quarterly model).
|
|
|
|
|
|
- Command-line options
|
|
|
|
|
|
- Added the possibility to declare Dynare command-line options in the `.mod`
|
|
|
file.
|
|
|
|
|
|
- New option `nopreprocessoroutput` to disable printing of messages from
|
|
|
the preprocessor. (#1390)
|
|
|
|
|
|
- It is now possible to assign an arbitrary macro-expression to a
|
|
|
macro-variable defined on the command-line, using the `-D` syntax.
|
|
|
(#1696)
|
|
|
|
|
|
- New option `linemacro` to revert to the old format of the
|
|
|
macro-processed file (see below).
|
|
|
|
|
|
- Preprocessor outputs and inputs
|
|
|
|
|
|
- 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, Octave…). This new feature opens the possibility to
|
|
|
develop alternative back-ends for the Dynare language.
|
|
|
|
|
|
- :warning: Most files generated by the preprocessor are now grouped under
|
|
|
two subdirectories. Assuming your file is `FILENAME.mod`, then M-files
|
|
|
and MEX-files will be under `+FILENAME/`, while other output (JSON,
|
|
|
LaTeX, source code for the MEX files) will be under `FILENAME/`.
|
|
|
|
|
|
- The macro-generated output is now more readable (no more line numbers and
|
|
|
empty lines). The old behaviour can be restored using the `linemacro`
|
|
|
option (see above).
|
|
|
|
|
|
- Ability to call the preprocessor by passing the `.mod` file as a string
|
|
|
argument from the macOS or GNU/Linux command line. (#1509)
|
|
|
|
|
|
- dseries classes
|
|
|
|
|
|
- New functionalities and efficiency improvements.
|
|
|
|
|
|
- Complete rewrite using the new `classdef` syntax and exploiting in place
|
|
|
modifications when possible.
|
|
|
|
|
|
- Integration of the `dates` classes within `dseries`.
|
|
|
|
|
|
- Reporting classes
|
|
|
|
|
|
- Automatically create titlepage with page numbers/page titles.
|
|
|
|
|
|
- Allow for the removal of headers and footers from a given page.
|
|
|
|
|
|
- Allow user to set page number.
|
|
|
|
|
|
- Split up report output. Create new files for the preamble, the body of
|
|
|
the report, and each individual page of the report.
|
|
|
|
|
|
- The classes have been converted to the new `classdef` syntax.
|
|
|
|
|
|
- Misc
|
|
|
|
|
|
- External functions can be located in MATLAB/Octave namespaces. (#1639)
|
|
|
|
|
|
- Improvements to the balanced growth path test that is performed after
|
|
|
Dynare has detrended the model (given the trends on variables declared by
|
|
|
the user): the default tolerance has been raised, and a different value
|
|
|
can be set with new option `balanced_growth_test_tol` to the `model`
|
|
|
block; as a consequence, failing the test is now an error again. (#1389)
|
|
|
|
|
|
- New collection of MATLAB/Octave utilities to retrieve and alter objects:
|
|
|
`get_irf`, `get_mean`, `get_shock_stderr_by_name`, `get_smooth`,
|
|
|
`get_update`, `set_shock_stderr_value`. (!1686)
|
|
|
|
|
|
- :warning: Previously, when some MEX files were missing, Dynare would
|
|
|
automatically fall back to slower M-file functional alternative; this is
|
|
|
no longer the case. It is however still possible to manually add these
|
|
|
alternatives in the MATLAB/Octave path (they are located under
|
|
|
`matlab/missing/mex`; this only applies to the `mjdgges`, `gensylv`,
|
|
|
`A_times_B_kronecker_C`, `sparse_hessian_times_B_kronecker_C` and
|
|
|
`local_state_space_iteration_2` DLLs).
|
|
|
|
|
|
- References
|
|
|
|
|
|
- Komunjer, I. and S. Ng (2011), “[Dynamic Identification of Dynamic
|
|
|
Stochastic General Equilibrium
|
|
|
Models](https://www.onlinelibrary.wiley.com/doi/abs/10.3982/ECTA8916),”
|
|
|
*Econometrica*, 79(6), 1995–2032
|
|
|
|
|
|
- Qu, Z. and D. Tkachenko (2012), “[Identification and frequency domain
|
|
|
quasi‐maximum likelihood estimation of linearized dynamic stochastic
|
|
|
general equilibrium
|
|
|
models](https://onlinelibrary.wiley.com/doi/abs/10.3982/QE126),”
|
|
|
*Quantitative Economics*, 3(1), 95–132
|
|
|
|
|
|
- Mutschler, W. (2015), “[Identification of DSGE models—The effect of
|
|
|
higher-order approximation and
|
|
|
pruning](https://www.sciencedirect.com/science/article/pii/S0165188915000731),”
|
|
|
*Journal of Economic Dynamics and Control*, 56, 34–54
|
|
|
|
|
|
|
|
|
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) and `perfect_foresight_solver` (for computing it). The
|
|
|
old `simul` command still exist and is now an alias for
|
|
|
`perfect_foresight_setup` + `perfect_foresight_solver`. It is no
|
|
|
longer possible to manipulate by hand the contents of
|
|
|
`oo_.exo_simul` when using `simul`. People who want to do
|
|
|
it must first call `perfect_foresight_setup`, then do the
|
|
|
manipulations, then call `perfect_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 a
|
|
|
`solve_algo` solver for solving the model,
|
|
|
|
|
|
+ New option `solve_algo` that allows specifying a solver for
|
|
|
solving the model when using `stack_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 default `solve_algo=4`,
|
|
|
|
|
|
+ New options `tolf` and `tolx` to control termination criteria of
|
|
|
solvers,
|
|
|
|
|
|
+ New option `endogenous_terminal_period` to `simul`,
|
|
|
|
|
|
+ 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 option `optim` 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 into `M_.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` and `HPDsup_ME` (#853),
|
|
|
|
|
|
+ New fields `oo_.Smoother.Trend` and `oo_.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 to `first_obs`,
|
|
|
|
|
|
+ The `calib_smoother` command now accepts the `loglinear`,
|
|
|
`prefilter`, `first_obs` and `filter_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` and `mh_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 in `oo_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` and `posterior_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 during `mode_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 the `posterior_sampling_method`; its `scale_file`-option
|
|
|
pair allows loading the `_mh_scale.mat`-file storing the tuned
|
|
|
scale factor from a previous run of `mode_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 into
|
|
|
`oo_.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 the
|
|
|
`estimation` 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 the `TeX` option is
|
|
|
invoked,
|
|
|
|
|
|
+ The `use_calibration` to `estimated_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` and `tolx` 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
|
|
|
of `oo_` when simulated moments have been requested,
|
|
|
|
|
|
+ `stoch_simul` saves the unconditional variance decomposition in
|
|
|
`oo_.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 new `TeX` 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` and `prior_trunc`,
|
|
|
|
|
|
+ The `identification` command now supports correlations via
|
|
|
simulated moments,
|
|
|
|
|
|
|
|
|
- Sensitivity analysis
|
|
|
|
|
|
+ New blocks `irf_calibration` and `moment_calibration`,
|
|
|
|
|
|
+ Outputs LaTeX tables if the new `TeX` option is used,
|
|
|
|
|
|
+ New option `relative_irf` to `irf_calibration` block.
|
|
|
|
|
|
|
|
|
- Conditional forecast
|
|
|
|
|
|
+ Command `conditional_forecast` now takes into account `histval`
|
|
|
block if present.
|
|
|
|
|
|
|
|
|
- Shock decomposition
|
|
|
|
|
|
+ New option `colormap` to `shocks_decomposition` for controlling
|
|
|
the color map used in the shocks decomposition graphs,
|
|
|
|
|
|
+ `shocks_decomposition` now accepts the `nograph` option,
|
|
|
|
|
|
+ New command `realtime_shock_decomposition` that for each period `T= [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 the
|
|
|
`shock_decomposition` and `realtime_shock_decomposition` commands,
|
|
|
|
|
|
+ New command `plot_shock_decomposition` that allows plotting the
|
|
|
results from `shock_decomposition` and
|
|
|
`realtime_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 for `use_dll` (#1226).
|
|
|
|
|
|
|
|
|
- dates/dseries/reporting classes
|
|
|
|
|
|
+ New methods `abs`, `cumprod` and `chain`,
|
|
|
|
|
|
+ New option `tableRowIndent` to `addTable`,
|
|
|
|
|
|
+ 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` Uses `simulannealbnd` from Matlab's Global
|
|
|
Optimization Toolbox (if available),
|
|
|
|
|
|
+ New option `silent_optimizer` to shut off output from mode
|
|
|
computing/optimization,
|
|
|
|
|
|
+ New options `verbosity` and `SaveFiles` to control output and
|
|
|
saving of files during mode computing/optimization.
|
|
|
|
|
|
|
|
|
- LaTeX output
|
|
|
|
|
|
+ New command `write_latex_original_model`,
|
|
|
|
|
|
+ New option `write_equation_tags` to `write_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`: the `msvc` option now supports `normcdf`, `acosh`,
|
|
|
`asinh`, and `atanh` (#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 with `histval`,
|
|
|
|
|
|
+ Add missing `horizon` option to `ms_forecast`,
|
|
|
|
|
|
+ BVAR now saves the marginal data density in
|
|
|
`oo_.bvar.log_marginal_data_density` and stores prior and
|
|
|
posterior information in `oo_.bvar.prior` and
|
|
|
`oo_.bvar.posterior`. |
|
|
This page documents the changes between Dynare versions (including the unstable
|
|
|
one). For previous versions of Dynare, please read the dedicated frozen page on
|
|
|
the [DynareWiki](http://www.dynare.org/DynareWiki/NewFeatures).
|
|
|
|
|
|
Dynare 7 (unstable)
|
|
|
-------------------
|
|
|
|
|
|
- Method of moments now supports estimation with discretionary optimal policy (!2279)
|
|
|
|
|
|
- Option values `solve_algo={6,7,8}` and `stack_solve_algo={2,3}` are now available without `block` nor `bytecode` (e14a49211067b27114d8173b16d4cb8f7595b0c3, aa263e6a2adc9414142551a01bbcc46abb6a3894)
|
|
|
|
|
|
- More flexible syntax for specifying complementarity conditions (461c30fea8c296e88388f9775a2e92e674b0e3d2, 656c130036706849e7d08d9411b352b45a19eccb)
|
|
|
- The complementarity condition is now specified between the associated equation and its closing semicolon, using the perpendicular symbol as a separator (the latter can be input either in UTF-8, as `⟂`, corresponding to Unicode codepoint U+27C2; or alternatively as pure ASCII, as `_|_`, *i.e.* a vertical bar enclosed within two underscores)
|
|
|
- Both the lower and the upper bounds can be specified at the same time in a given complementarity condition
|
|
|
- Arbitrary functions of parameters can appear in the bounds
|
|
|
- The old syntax using the `mcp` equation tag is still supported but deprecated
|
|
|
- Here is an example of an equation with an associated complementarity condition, using the new syntax:
|
|
|
```
|
|
|
mu = 0 ⟂ 0 < i < 1+2*alpha;
|
|
|
```
|
|
|
|
|
|
- New `dr_cycle_reduction_maxiter` option to the `stoch_simul`, `estimation` and `method_of_moments` command, to control the maximum number of iterations when the cycle reduction algorithm is used. (#1920, preprocessor!104, !2295)
|
|
|
|
|
|
Dynare 6
|
|
|
--------
|
|
|
|
|
|
- The Sequential Monte Carlo sampler as described by Herbst and Schorfheide (2014) is now available under value `hssmc` for option `posterior_sampling_method`.
|
|
|
|
|
|
- New routines for perfect foresight simulation with expectation errors. In such a scenario, agents make expectation errors in that the path they had anticipated in period 1 is not realized exactly. More precisely, in some simulation periods, they may receive new information that makes them revise their anticipation for the path of future shocks. Also, under this scenario, it is assumed that agents behave as under perfect foresight, *i.e.* they make their decisions as if there were no uncertainty and they knew exactly the path of future shocks; the new information that they may receive comes as a total surprise to them. Available under new `perfect_foresight_with_expectation_errors_setup` and `perfect_foresight_with_expectation_errors_solver` commands, and `shocks(learnt_in=…)`, `mshocks(learnt_in=…)` and `endval(learnt_in=…)` blocks.
|
|
|
|
|
|
- New routines for IRF matching with stochastic simulations:
|
|
|
|
|
|
- Both frequentist (as in Christiano, Eichenbaum, and Evans, 2005) and Bayesian (as in Christiano, Trabandt, and Walentin, 2010) IRF matching approaches are implemented. The core idea of IRF matching is to treat empirical impulse responses (*e.g.* given from an SVAR or local projection estimation) as data and select model parameters that align the model’s IRFs closely with their empirical counterparts. (!2191)
|
|
|
|
|
|
- Available under option `mom_method = irf_matching` option to the `method_of_moments` command. (preprocessor!85)
|
|
|
|
|
|
- New blocks `matched_irfs` and `matched_irfs_weights` for specifying the values and weights of the empirical impulse response functions. (preprocessor#124)
|
|
|
|
|
|
- Pruning à la Andreasen et al. (2018) is now available at an arbitrary approximation order when performing stochastic simulations with `stoch_simul` (!2147), and at 3rd order when performing particle filtering. (!2071, particles!16, !2045)
|
|
|
|
|
|
- New `log` option to the `var` statement. In addition to the endogenous variable(s) thus declared, this option also triggers the creation of auxiliary variable(s) equal to the log of the corresponding endogenous variable(s). For example, given a `var(log) y;` statement, two endogenous will be created (`y` and `LOG_y`), and an auxiliary equation linking the two will also be added (equal to `y = exp(LOG_y);`). Moreover, every occurrence of `y` in the model will be replaced by `exp(LOG_y)`. This option is, for example, useful for performing a loglinear approximation of some variable(s) in the context of a first-order stochastic approximation; or for ensuring that the variable(s) stay(s) in the definition domain of the function defining the steady state or the dynamic residuals when the nonlinear solver is used. (#349)
|
|
|
|
|
|
- New model editing features (21a8a5794a83b5098cad0fe7beab93dcbe5ef6bf and 4db28998687b8845568e8750d99a1b45f0d6a94f)
|
|
|
|
|
|
- Multiple `model` blocks are now supported (this was already working but not explicitly documented).
|
|
|
|
|
|
- Multiple `estimated_params` blocks now concatenate their contents (instead of overwriting previous ones, which was the former undocumented behavior); an `overwrite` option has been added to provide the old behavior. (preprocessor@60ef6bbdbd2f95b7f8d52b1c10cf6bb9aa7773cc, preprocessor@ea44aa19d6dd2bf4c508ee081b2b6cae2a647250)
|
|
|
|
|
|
- New `model_options` statement to set model options in a global fashion. (preprocessor#19)
|
|
|
|
|
|
- New `model_remove` command to remove equations. (preprocessor@1f004584e9c8b2ea5fbda6dd5413b516ce956679)
|
|
|
|
|
|
- New `model_replace` block to replace equations. (preprocessor@1f004584e9c8b2ea5fbda6dd5413b516ce956679)
|
|
|
|
|
|
- New `var_remove` command to remove variables (or parameters). (preprocessor@342c4faf8d95169b7391507e703c88d76b38a243)
|
|
|
|
|
|
- New `estimated_params_remove` block to remove estimated parameters. (preprocessor@5ffbc5bad31c306f561d673cde36d460cb5906c1)
|
|
|
|
|
|
- Stochastic simulations
|
|
|
|
|
|
- Performance improvements for simulation of the solution under perturbation and for particle filtering at higher order (⩾ 3). (#1802, !2071, particles!16, !2045)
|
|
|
|
|
|
- Performance improvement for the first order perturbation solution using either cycle reduction (`dr=cycle_reduction` option) or logarithmic reduction (`dr=logarithmic_reduction`). (!2085, !2089)
|
|
|
|
|
|
- New `nomodelsummary` option to the `stoch_simul` command, to suppress the printing of the model summary and the covariance of the exogenous shocks. (a00eb5e1ded61d2e0086f841203a5eec96e77931)
|
|
|
|
|
|
- Estimation
|
|
|
|
|
|
- A truncated normal distribution can now be specified as a prior, using the 3rd and 4th parameters of the `estimated_params` block as the bounds. (!2161)
|
|
|
|
|
|
- New `conditional_likelihood` option to the `estimation` command. When the option is set, instead of using the Kalman filter to evaluate the likelihood, Dynare will evaluate the conditional likelihood based on the first-order reduced form of the model by assuming that the initial state vector is at its steady state. (b7693c32, f7694208)
|
|
|
|
|
|
- New `additional_optimizer_steps` option to the `estimation` command to trigger the sequential execution of several optimizers when looking for the posterior mode. (!2178)
|
|
|
|
|
|
- The `generate_trace_plots` command now allows comparing multiple chains. (baf8243f)
|
|
|
|
|
|
- The Geweke and Raftery-Lewis convergence diagnostics will now also be displayed when `mh_nblocks>1`. (d0e99daf9ae84cf3a605fa4cf49d506d36b2bd95)
|
|
|
|
|
|
- New `robust`, `TolGstep`, and `TolGstepRel` options to the optimizer available under `mode_compute=5` (“newrat”). (!2231)
|
|
|
|
|
|
- New `brooks_gelman_plotrows` option to the `estimation` command for controlling the number of parameters to depict along the rows of the figures depicting the Brooks and Gelman (1998) convergence diagnostics. (!2146)
|
|
|
|
|
|
- New `mh_init_scale_factor` option to the `estimation` command tor govern the overdispersion of the starting draws when initializing several Monte Carlo Markov Chains. This option supersedes the `mh_init_scale` option, which is now deprecated. (!2041)
|
|
|
|
|
|
- Steady state computation
|
|
|
|
|
|
- Steady state computation now accounts for occasionally-binding constraints of mixed-complementarity problems (as defined by `mcp` tags). (!1877)
|
|
|
|
|
|
- New `tolx` option to the `steady` command for governing the termination based on the step tolerance. (preprocessor!60)
|
|
|
|
|
|
- New `fsolve_options` option to the `steady` command for passing options to `fsolve` (in conjunction with the `solve_algo=0` option). (#1856)
|
|
|
|
|
|
- New option `from_initval_to_endval` option to the `homotopy_setup` block, for easily computing homotopy from initial to terminal steady state (when the former is already computed). (2e3fbfc0408a360dd169c927a5ea38c89f6ff95c)
|
|
|
|
|
|
- New `non_zero` option to `resid` command to restrict display to non-zero residuals. (preprocessor@9db21a231c5ab8f8aa26680ffecf3abfcf45bfab, 3d7299c1e490a6813de2b2cb450b738b4c7acdf9)
|
|
|
|
|
|
- Perfect foresight
|
|
|
|
|
|
- Significant performance improvement of the `stack_solve_algo=1` option to the `perfect_foresight_solver` command (Laffargue-Boucekkine-Juillard algorithm) when used in conjunction with options `block` and/or `bytecode` of the `model` block. (17b016d983be260aa09926809d1f3465307c58e2, be648d350b162152e999b8ffad830dce6b373190, 77a7d5c3dec67b6d9943fc23c11afbb1d0cfd431)
|
|
|
|
|
|
- New `relative_to_initval` option to the `mshocks` block, to use the initial steady state as a basis for the multiplication when there is an `endval` block. (5145bd0708697230c7adeb23c8a0dabf37f4cb3f)
|
|
|
|
|
|
- New `static_mfs` option to the `model` block (and to the `model_options` command), for controlling the minimum feedback set computation for the static model. It defaults to `0` (corresponding to the behavior in Dynare version 5).
|
|
|
|
|
|
- Various improvements to homotopy
|
|
|
|
|
|
- New `endval_steady` option to the `perfect_foresight_setup` command for computing the terminal steady state at the same time as the transitory dynamics (and new options `steady_solve_algo`, `steady_tolf`, `steady_tolx`, `steady_maxit` and `steady_markowitz` for controlling the steady state nonlinear solver). (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
|
|
|
|
|
|
- New `homotopy_linearization_fallback` and `homotopy_marginal_linearization_fallback` options to the `perfect_foresight_solver` command to get an approximate solution when homotopy fails to go to 100%. (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
|
|
|
|
|
|
- New `homotopy_initial_step_size`, `homotopy_min_step_size`, `homotopy_step_size_increase_success_count` and `homotopy_max_completion_share` options to the `perfect_foresight_solver` command to fine tune the homotopy behavior. (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
|
|
|
|
|
|
- Purely backward, forward and static models are now supported by the homotopy procedure. (fe142b663ef34d26969191d2a096b08aecc1eb10)
|
|
|
|
|
|
- New `homotopy_exclude_varexo` option to the `perfect_foresight_solver` command, for excluding exogenous variables from the homotopy procedure (only available since version 6.1) (9f65299d8a7e63de8432a73bffdc8899eb27e936)
|
|
|
|
|
|
- The `stack_solve_algo=1` and `stack_solve_algo=6` options of the `perfect_foresight_solver` command were merged and are now synonymous. They both provide the Laffargue-Boucekkine-Juillard algorithm and work with and without the `block` and `bytecode` options of the `model` block. Using `stack_solve_algo=1` is now recommended, but `stack_solve_algo=6` is kept for backward compatibility. (06f665e231c1a66863612eb75802ff4f0b698c57)
|
|
|
|
|
|
- OccBin
|
|
|
|
|
|
- New `simul_reset_check_ahead_periods` option to the `occbin_setup` and `occbin_solver` commands, for resetting `check_ahead_periods` in each simulation period. (3765ef77)
|
|
|
|
|
|
- new `simul_max_check_ahead_periods`, `likelihood_max_check_ahead_periods`, and `smoother_max_check_ahead_periods` options to the `occbin_setup` command, for truncating the number of periods for which agents check ahead which regime is present. (2f236048 and preprocessor@ed95a2ca )
|
|
|
|
|
|
- Optimal policy
|
|
|
|
|
|
- The `osr` command now accepts the `analytic_derivation` and `analytic_derivation_mode` options. (!2171)
|
|
|
|
|
|
- The `evaluate_planner_objective` command now computes the unconditional welfare for higher-order approximations (⩾ 3). (!1962)
|
|
|
|
|
|
- New `periods` and `drop` options to the `evaluate_planner_objective` command. (!1967)
|
|
|
|
|
|
- Semi-structural models
|
|
|
|
|
|
- New `pac_target_info` block for decomposing the PAC target into an arbitrary number of components. Furthermore, in the presence of such a block, the new `pac_target_nonstationary` operator can be used to select the non stationary part of the target (typically useful in the error correction term of the PAC equation). (b297353b06c9c35223500439c0bc63321675768b)
|
|
|
|
|
|
- New `kind` option to the `pac_model` command. This option allows the user to select the formula used to compute the weights on the VAR companion matrix variables that are used to form PAC expectations. (b297353b06c9c35223500439c0bc63321675768b)
|
|
|
|
|
|
- Performance improvement to `solve_algo=12` and `solve_algo=14`, which significantly accelerates the simulation of purely backward, forward and static models with the `perfect_foresight_solver` command and the routines for semi-structural models.
|
|
|
|
|
|
- dseries classes
|
|
|
|
|
|
- The `remove` and `remove_` methods now accept a list of variables (they would previously only accept a single variable). (dseries@b7ca9c3e, c02e5505)
|
|
|
|
|
|
- New MATLAB/Octave command `dplot` to plot mathematical expressions generated from variables fetched from (different) dseries objects. (dseries@d6c8d039a2f828e5ea009d7181c8145d23932d69).
|
|
|
|
|
|
- Misc
|
|
|
|
|
|
- New `display_parameter_values` command to print the parameter values in the command window. (!2268)
|
|
|
|
|
|
- New `collapse_figures_in_tabgroup` command to dock all figures. (!2263)
|
|
|
|
|
|
- Performance improvement for the `use_dll` option of the `model` block. The preprocessor now takes advantage of parallelization when compiling the MEX files. (preprocessor@f6053df7545174885486a457a2253897a1ed4e27, preprocessor@5cf4729ab0790084af0b0a9e9a1062ddefff3401, preprocessor@dd66459e5f2e5c57ea25cb4a0e8709b22ff3195b, preprocessor@3dd40c6c42d82997972e90899da8632a747f5c90)
|
|
|
|
|
|
- New mathematical primitives available: complementary error function (`erfc`), hyperbolic functions (`cosh`, `sinh`, `tanh`, `acosh`, `asinh`, `atanh`). (preprocessor#85, preprocessor@c0ea8d72038cd6c57e48aca26d2d29866848ae0a)
|
|
|
|
|
|
- New `last_simulation_period` option to the `initval_file` command. (#1838, f5f47cd834049bd5111f23622fb2c68d0e6a619b, preprocessor@ddddf89d9cd8771bb80beb5c44efe53f4734b41f)
|
|
|
|
|
|
- The `calib_smoother` command now accepts the `nobs` and `heteroskedastic_filter` options. (!2110)
|
|
|
|
|
|
- Under the MATLAB Desktop, autocompletion is now available for the `dynare` command and other CLI commands (thanks to Eduard Benet Cerda from MathWorks). (36a2a41e357780d468582c78c4cbb738c5bb4b26)
|
|
|
|
|
|
- Model debugging: The preprocessor now creates files for evaluating the left- and right-hand sides of model equations separately. For a model file called `ramst.mod`, you can call `[lhs,rhs]=ramst.debug.static_resid(y,x,params);` (for the static model) and `[lhs,rhs]=ramst.debug.dynamic_resid(y,x,params,steady_state);` (for the dynamic model), where `y` are the endogenous, `x` the exogenous, `params` the parameters, and `steady_state` is self-explanatory. NB: In the dynamic case, the vector `y` of endogenous must have $3n$ elements where $n$ is the number of endogenous (including auxiliary ones); the first $n$ elements correspond to the lagged values, the middle $n$ elements to the contemporaneous values, and the last $n$ elements to the lead values.
|
|
|
|
|
|
- New interactive MATLAB/Octave command `search` for listing the equations in which given variable(s) appear (requires `json` command line option). (#1886)
|
|
|
|
|
|
- The `model_info` command allows to print the block decomposition even if the `block` option of the `model` block has not been used, by specifying the new options `block_static` and `block_dynamic`.
|
|
|
|
|
|
- There is now a default value for the global initialization file (`GlobalInitFile` option of the configuration file): the `global_init.m` in the Dynare configuration directory (typically `$HOME/.config/dynare/global_init.m` under Linux and macOS, and `c:\Users\USERNAME\AppData\Roaming\dynare\global_init.m` under Windows). (43b24facb)
|
|
|
|
|
|
- For those compiling Dynare from source, the build system has been entirely rewritten and now uses Meson; as a consequence, it is now faster and easier to understand.
|
|
|
|
|
|
- Incompatible changes
|
|
|
|
|
|
- :warning: The default value of the `mode_compute` option of the `estimation` command has been changed to `5` (it was previously `4`).
|
|
|
|
|
|
- :warning: When using block decomposition (with the `block` option of the `model` block), the option `mfs` now defaults to `1`. This setting should deliver better performance in perfect foresight simulation on most models.
|
|
|
|
|
|
- :warning: The default location for the configuration file has changed. On Linux and macOS, the configuration file is now searched by default under `dynare/dynare.ini` in the configuration directories defined by the XDG specification (typically `$HOME/.config/dynare/dynare.ini` for the user-specific configuration and `/etc/xdg/dynare/dynare.ini` for the system-wide configuration, the former having precedence over the latter). Under Windows, the configuration file is now searched by default in `%APPDATA%\dynare\dynare.ini` (typically `c:\Users\USERNAME\AppData\Roaming\dynare\dynare.ini`). (43b24facb)
|
|
|
|
|
|
- :warning: The information stored in `oo_.endo_simul, oo_.exo_simul`, and `oo_.irfs` is no longer duplicated in the base workspace. New helper functions `send_endogenous_variables_to_workspace`, `send_exogenous_variables_to_workspace`, and `send_irfs_to_workspace` have been introduced to explicitly request these outputs and to mimic the old behavior. (!2229)
|
|
|
|
|
|
- :warning: The `dynare_sensitivity` command has been renamed `sensitivity`. The old name is still accepted but triggers a warning. (66bc9fd9c2707c787efae797e1976b7052159dc4)
|
|
|
|
|
|
- :warning: The syntax `resid(1)` is no longer supported.
|
|
|
|
|
|
- :warning: The `mode_compute=6` option to the `estimation` command now recursively updates the covariance matrix across the `NumberOfMh` Metropolis-Hastings runs, starting with the `InitialCovarianceMatrix` in the first run, instead of computing it from scratch in every Metropolis-Hastings run. (e5102eee)
|
|
|
|
|
|
- :warning: The `periods` command has been removed. (1b47c8a5e551be046fba8b592d29f38e17099bfe)
|
|
|
|
|
|
- :warning: The `Sigma_e` command has been removed. (e30314e75d0d4fa2e587079bdbeeb2e2e4af3383)
|
|
|
|
|
|
- :warning: The `block` option of the `model` block no longer has an effect when used in conjunction with `stoch_simul` or `estimation` commands. (8f1a4cb3637fe4936ade877c88e6a120af2b5f24)
|
|
|
|
|
|
- :warning: The Dynare++ executable is no longer distributed since almost all of its functionalities have been integrated inside Dynare for MATLAB/Octave. (c1922c3ad0a920d48fd32ec7026bfd5ebd55a824)
|
|
|
|
|
|
- :warning: A macro-processor variable defined without a value (such as `@#define var` in the `.mod` file or alternatively `-Dvar` on the `dynare` command line) is now assigned the `true` logical value (it was previously assigned `1`). (preprocessor#43)
|
|
|
|
|
|
- :warning: The `parallel_slave_open_mode` option of the `dynare` command has been renamed `parallel_follower_open_mode`. (preprocessor#86, !1976)
|
|
|
|
|
|
- :warning: The `static` option of the `model_info` command is now deprecated and is replaced by the `block_static` option. (45450651 and preprocessor@2fd06811)
|
|
|
|
|
|
- References:
|
|
|
|
|
|
- Andreasen, Martin M., Jesús Fernández-Villaverde, and Juan Rubio-Ramírez (2018): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” *Review of Economic Studies*, 85(1), 1-49.
|
|
|
- Brooks, Stephen P., and Andrew Gelman (1998): “General methods for monitoring convergence of iterative simulations,” *Journal of Computational and Graphical Statistics*, 7, pp. 434–455.
|
|
|
- Christiano, Eichenbaum and Charles L. Evans (2005): “Nominal Rigidities and the Dynamic Effects of a Shock to Monetary Policy,” *Journal of Political Economy*, 113(1), 1–45.
|
|
|
- Christiano, Lawrence J., Mathias Trabandt, and Karl Walentin (2010): “DSGE Models for Monetary Policy Analysis,” In: *Handbook of Monetary Economics 3*, 285–367.
|
|
|
- Herbst, Edward and Schorfheide, Frank (2014): "Sequential Monte Carlo Sampling for DSGE Models," *Journal of Applied Econometrics*, 29, 1073-1098.
|
|
|
|
|
|
|
|
|
Dynare 5
|
|
|
--------
|
|
|
|
|
|
- New routines for simulating semi-structural (backward) models where
|
|
|
some equations incorporate expectations based on future values of a VAR or
|
|
|
trend component model. See the `var_model`, `trend_component_model` and
|
|
|
`var_expectation_model` commands, and the `var_expectation` operator.
|
|
|
|
|
|
- New routines for simulating semi-structural models where some equations are
|
|
|
specified using the polynomial adjustment costs (PAC) approach, as in
|
|
|
the FRB/US model (see Brayton et al., 2014 and Brayton et al., 2000) and the ECB-BASE model (see
|
|
|
Angelini et al., 2019). The forward-looking terms of the PAC equations can
|
|
|
be computed either using a satellite VAR model, or using full
|
|
|
model-consistent expectations. See the `pac_model` command and the
|
|
|
`pac_expectation` operator.
|
|
|
|
|
|
- New Method of Moments toolbox that provides functionality to estimate
|
|
|
parameters by (i) Generalized Method of Moments (GMM) up to 3rd-order pruned
|
|
|
perturbation approximation or (ii) Simulated Method of Moments (SMM) up to
|
|
|
any perturbation approximation order. The toolbox is inspired by
|
|
|
replication codes accompanied to Andreasen et al. (2018), Born and Pfeifer
|
|
|
(2014), and Mutschler (2018). It is accessible via the new
|
|
|
`method_of_moments` command (!1750) and the new `matched_moments` block
|
|
|
(preprocessor!23). Moreover, by default, a new non-linear least squares optimizer
|
|
|
based on `lsqnonlin` is used for minimizing the method of moments objective function (available under `mode_compute=13`) (3615962a6107e211861d7461e2310ba2d1366369, b4f293bdf29f766dfb3314b48d2407716a7d7025). GMM can further benefit from using Gradient-based optimizers (using `analytic_standard_errors` option and/or passing `'Jacobian','on'` to the optimization options) as the Jacobian of the moment conditions can be computed analytically (a697002a4ee54b28551f3583757b7e0395121db6).
|
|
|
|
|
|
- Implementation of the Occbin algorithm by Guerrieri and Iacoviello (2015) (#569,
|
|
|
preprocessor#68), together with the inversion filter of Cuba-Borda,
|
|
|
Guerrieri, Iacoviello, and Zhong (2019) and the piecewise Kalman filter of Giovannini,
|
|
|
Pfeiffer, and Ratto (2021) (!1876). It is available via the new block
|
|
|
`occbin_constraints` and the new commands `occbin_setup`, `occbin_solver`,
|
|
|
`occbin_graph` and `occbin_write_regimes`.
|
|
|
|
|
|
- Stochastic simulations
|
|
|
|
|
|
- `stoch_simul` now supports theoretical moments at `order=3` with
|
|
|
`pruning`. (dfc73576)
|
|
|
|
|
|
- `stoch_simul` now reports second moments based on the pruned state space
|
|
|
if the `pruning` option is set (in previous Dynare releases it would
|
|
|
report a second-order accurate result based on the linear solution).
|
|
|
(4cf9f7d1a7fa5dac8f91ff3344a6114c7f15959c)
|
|
|
|
|
|
- Estimation
|
|
|
|
|
|
- Performance optimization to pruned state space system and Lyapunov
|
|
|
solvers. (!1749, !1745, #1737)
|
|
|
|
|
|
- New option `mh_posterior_mode_estimation` to `estimation` to perform
|
|
|
mode-finding by running the MCMC.
|
|
|
(preprocessor@8d14e18cdbaced798c5330e00c7f5df488187cd6)
|
|
|
|
|
|
- New heteroskedastic filter and smoother, where shocks standard error may
|
|
|
*unexpectedly* change in every period. Triggered by
|
|
|
`heteroskedastic_filter` option of the `estimation` command, and
|
|
|
configured via the `heteroskedastic_shocks` block. (!1844, !1851)
|
|
|
|
|
|
- New option `mh_tune_guess` for setting the initial value for
|
|
|
`mh_tune_jscale`. (!1717)
|
|
|
|
|
|
- New option `smoother_redux` to `estimation` and `calib_smoother` to
|
|
|
trigger computing the Kalman smoother on a restricted state space instead
|
|
|
of the full one. (!1859)
|
|
|
|
|
|
- New block `filter_initial_state` for setting the initial condition of the
|
|
|
Kalman filter/smoother. (7c8f4867)
|
|
|
|
|
|
- New option `mh_initialize_from_previous_mcmc` to the `estimation` command
|
|
|
that allows to pick initial values for a new MCMC from a previous one.
|
|
|
(!1841)
|
|
|
|
|
|
- The `xls_sheet` option of the `estimation` command now takes a quoted
|
|
|
string as value. The former unquoted syntax is still accepted, but no
|
|
|
longer recommended. (preprocessor#67)
|
|
|
|
|
|
- New option `particle_filter_options` to set various particle filter options
|
|
|
|
|
|
- Perfect foresight and extended path
|
|
|
|
|
|
- New specialized algorithm in `perfect_foresight_solver` to deal with
|
|
|
purely static problems. (27ee801a6755df021994acf061eb07d7feebf316)
|
|
|
|
|
|
- The `debug` option of `perfect_foresight_solver` provides debugging
|
|
|
information if the Jacobian is singular. (!1834)
|
|
|
|
|
|
- In deterministic models (perfect foresight or extended path), exogenous
|
|
|
variables with lead/lags are now replaced by auxiliary variables. This
|
|
|
brings those models in line with the transformation done on stochastic
|
|
|
models. However note that transformation is still not exactly the same
|
|
|
between the two classes of models, because there is no need to take into
|
|
|
account the Jensen inequality on the latter. In deterministic models,
|
|
|
there is a one-to-one mapping between exogenous with lead/lags and
|
|
|
auxiliaries, while in stochastic models, an auxiliary endogenous may
|
|
|
correspond to a more complex nonlinear expression.
|
|
|
(preprocessor@9bca65c7e525a2415fe46b27e8760208b22aba9d)
|
|
|
|
|
|
- Optimal policy
|
|
|
|
|
|
- Several improvements to `evaluate_planner_objective`:
|
|
|
|
|
|
- it now applies a consistent approximation order when doing the
|
|
|
computation;
|
|
|
- in addition to the conditional welfare, it now also provides the
|
|
|
unconditional welfare;
|
|
|
- in a stochastic context, it now works with higher order approximation
|
|
|
(only the conditional welfare is available for order ⩾ 3); (!1828,
|
|
|
!1866)
|
|
|
- it now also works in a perfect foresight context. (!1833)
|
|
|
|
|
|
- `discretionary_policy` is now able to solve nonlinear models (it will
|
|
|
then use their first-order approximation, and the analytical steady state
|
|
|
must be provided). (!1792)
|
|
|
|
|
|
- Identification
|
|
|
|
|
|
- New option `schur_vec_tol` to the `identification` command, for setting
|
|
|
the tolerance level used to find nonstationary variables in Schur
|
|
|
decomposition of the transition matrix. (!1794)
|
|
|
|
|
|
- The `identification` command now supports optimal policy. (!1852)
|
|
|
|
|
|
- Shock decomposition
|
|
|
|
|
|
- The `fast_realtime` option of the `realtime_shock_decomposition` command
|
|
|
now accepts a vector of integers, which runs the smoother for all the
|
|
|
specified data vintages. (!1842)
|
|
|
|
|
|
- Macro processor
|
|
|
|
|
|
- Macroprocessor variables can be defined without a value (they are
|
|
|
assigned integer 1). (preprocessor#43)
|
|
|
|
|
|
- LaTeX and JSON outputs
|
|
|
|
|
|
- New `nocommutativity` option to the `dynare` command. This option tells
|
|
|
the preprocessor not to use the commutativity of addition and
|
|
|
multiplication when looking for common subexpressions. As a consequence,
|
|
|
when using this option, equations in various outputs (LaTeX, JSON…) will
|
|
|
appear as the user entered them (without terms or factors swapped). Note
|
|
|
that using this option may have a performance impact on the preprocessing
|
|
|
stage, though it is likely to be small.
|
|
|
(preprocessor@c9c36c037aa6d6c67f8fbb2236b03729a22e5878)
|
|
|
|
|
|
- Model-local variables are now substituted out as part of the various
|
|
|
model transformations. This means that they will no longer appear in
|
|
|
LaTeX or in JSON files (for the latter, they are still visible with
|
|
|
`json=parse` or `json=check`).
|
|
|
|
|
|
- Compilation of the model (`use_dll` option)
|
|
|
|
|
|
- Block decomposition (option `block` of `model`) can now be used in
|
|
|
conjunction with the `use_dll` option.
|
|
|
|
|
|
- The `use_dll` option can now directly be given to the `dynare` command.
|
|
|
(a9fea692e9d1f4bcdd6a7347a9d17a8b36578a4a)
|
|
|
|
|
|
- dseries classes
|
|
|
|
|
|
- Routines for converting between time series frequencies (e.g. daily to
|
|
|
monthly) have been added.
|
|
|
|
|
|
- dseries now support bi-annual (dseries!37) and daily
|
|
|
(dseries@1b897b371e3822306c196b59bf771388b719bebb) frequency data.
|
|
|
|
|
|
- dseries can now import data from [DBnomics](https://db.nomics.world), via
|
|
|
the DBnomics/mdbnomics> plugin (dseries#44). Note that this does not yet
|
|
|
work under Octave (dbnomics/mdbnomics#10). For the time being, the
|
|
|
DBnomics plugin must be installed separately.
|
|
|
|
|
|
- Misc improvements
|
|
|
|
|
|
- The `histval_file` and `initval_file` commands have been made more
|
|
|
flexible and now have functionalities similar to the `datafile` option of
|
|
|
the `estimation` command. (#1671)
|
|
|
|
|
|
- When using the `loglinear` option, the output from Dynare now clearly
|
|
|
shows that the results reported concern the log of the original variable.
|
|
|
(!1796)
|
|
|
|
|
|
- Options `block` and `bytecode` of `model` can now be used in conjunction
|
|
|
with model-local variables (variables declared with a pound-sign `#`).
|
|
|
(#1243)
|
|
|
|
|
|
- The `model_info` command now prints the typology of endogenous variables
|
|
|
for non-block decomposed models.
|
|
|
|
|
|
- The total computing time of a run (in seconds) is now saved to `oo_.time`.
|
|
|
(preprocessor@c79ae5d4bd6d130026fbb6f1dee69a046eab71b6)
|
|
|
|
|
|
- New `notime` option to the `dynare` command, to disable the printing and
|
|
|
the saving of the total computing time.
|
|
|
(preprocessor@27a8b3b70ed93e45f17e9792d0a23ea781b2b4dc)
|
|
|
|
|
|
- New `parallel_use_psexec` command-line Windows-specific option for
|
|
|
parallel local clusters: when `true` (the default), use `psexec` to spawn
|
|
|
processes; when `false`, use `start`. (!1843)
|
|
|
|
|
|
- when compiling from source, it is no longer necessary to pass the
|
|
|
`MATLAB_VERSION` version to the configure script; the version is now
|
|
|
automatically detected.
|
|
|
|
|
|
- Different versions of Dynare are now available as [Docker Containers](https://hub.docker.com/r/dynare/dynare).
|
|
|
|
|
|
- Incompatible changes
|
|
|
|
|
|
- :warning: Dynare will now generally save its output in the
|
|
|
`MODFILENAME/Output` folder (or the `DIRNAME/Output` folder if the
|
|
|
`dirname` option was specified) instead of the main directory. Most
|
|
|
importantly, this concerns the `_results.mat` and the `_mode.mat` files.
|
|
|
|
|
|
- :warning: The structure of the `oo_.planner_objective` field has been
|
|
|
changed, in relation to the improvements to `evaluate_planner_objective`.
|
|
|
|
|
|
- :warning: The preprocessor binary has been renamed to
|
|
|
`dynare-preprocessor`, and is now located in a dedicated `preprocessor`
|
|
|
subdirectory.
|
|
|
|
|
|
- :warning: The `dynare` command no longer accepts `output=dynamic` and
|
|
|
`output=first` (those options actually had no effect).
|
|
|
|
|
|
- Platform requirements
|
|
|
|
|
|
- :warning: The minimal required MATLAB version is now R2014a (8.3). (#1713)
|
|
|
|
|
|
- :warning: The 32-bit support has been dropped for Windows. (#1713)
|
|
|
|
|
|
- References
|
|
|
|
|
|
- Andreasen et al. (2018): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” Review of Economic Studies, 85(1), pp. 1-49.
|
|
|
- Angelini, Bokan, Christoffel, Ciccarelli and Zimic (2019): “Introducing ECB-BASE: The blueprint
|
|
|
of the new ECB semi-structural model for the euro area”, ECB Working Paper no. 2315
|
|
|
- Born and Pfeifer (2014): “Policy risk and the business cycle”, Journal of Monetary Economics, 68, 68-85.
|
|
|
- Brayton, Davis and Tulip (2000): “Polynomial Adjustment Costs in FRB/US”, Unpublished manuscript.
|
|
|
- Brayton, Laubach and Reifschneider (2014): “The FRB/US Model: A Tool for Macroeconomic Policy Analysis,” FEDS Notes. Washington: Board of Governors of the Federal Reserve System, https://doi.org/10.17016/2380-7172.0012
|
|
|
- Cuba-Borda, Guerrieri, Iacoviello, and Zhong (2019): “Likelihood evaluation of models with occasionally binding constraints”, Journal of Applied Econometrics, 34(7), 1073-1085
|
|
|
- Giovannini, Pfeiffer and Ratto (2021): “Efficient and robust inference of models with occasionally binding constraints,” Working Papers 2021-03, Joint Research Centre, European Commission
|
|
|
- Guerrieri and Iacoviello (2015): “OccBin: A toolkit for solving dynamic models with occasionally binding constraints easily,” Journal of Monetary Economics, 70, 22–38.
|
|
|
- Mutschler (2018): “Higher-order statistics for DSGE models”, Econometrics and Statistics, 6(C), 44-56.
|
|
|
|
|
|
|
|
|
Dynare 4.6
|
|
|
----------
|
|
|
|
|
|
- Stochastic simulations
|
|
|
|
|
|
- The perturbation method is now available at an arbitrary approximation
|
|
|
order. In other words, the `order` option of `stoch_simul` accepts an
|
|
|
arbitrary positive integer (of course, up to some model-specific
|
|
|
computational limit). (#217)
|
|
|
|
|
|
- New option `filtered_theoretical_moments_grid` of `stoch_simul`, that
|
|
|
supersedes `hp_ngrid`.
|
|
|
|
|
|
- Estimation
|
|
|
|
|
|
- Nonlinear estimation is now also available at an arbitrary approximation
|
|
|
order. In other words, the `order` option of `estimation` accepts an
|
|
|
arbitrary positive integer (of course, up to some model-specific
|
|
|
computational limit). (#1673)
|
|
|
|
|
|
- Various improvements to particle filters.
|
|
|
|
|
|
- It is now possible to estimate models under optimal policy (see below).
|
|
|
|
|
|
- Variance decomposition of observables now accounts for measurement error.
|
|
|
(#1486)
|
|
|
|
|
|
- New option `mh_tune_jscale` of `estimation` command for tuning the scale
|
|
|
parameter of the proposal distribution of the Random Walk Metropolis
|
|
|
Hastings.
|
|
|
|
|
|
- Added debugging info when parameters take a `NaN` or `Inf` value. (!1538)
|
|
|
|
|
|
- Option `mode_compute=1` is now available under Octave.
|
|
|
|
|
|
- Perfect foresight and extended path
|
|
|
|
|
|
- A significant speed improvement should be noted on large models (when
|
|
|
neither `bytecode` nor `block` option is used). The stacked problem is
|
|
|
now constructed using a dedicated machine-compiled library that greatly
|
|
|
speeds up the process (in particular, the time spent in that step can
|
|
|
become negligible when the `use_dll` option is used).
|
|
|
|
|
|
- New options `print` and `noprint` of `perfect_foresight_solver` command.
|
|
|
(#1647)
|
|
|
|
|
|
- Option `stack_solve_algo=2` is now available under Octave.
|
|
|
|
|
|
- Steady state
|
|
|
|
|
|
- Option `solve_algo=7` is now available under Octave.
|
|
|
|
|
|
- Optimal policy
|
|
|
|
|
|
- The `ramsey_policy` command is now deprecated. It is superseded by
|
|
|
successive calls to `ramsey_model`, `stoch_simul`, and
|
|
|
`evaluate_planner_objective` (in this order). (#1678)
|
|
|
|
|
|
- It is now possible to estimate a model under optimal policy (either
|
|
|
Ramsey or discretionary) by running the `estimation` command after either
|
|
|
`ramsey_model` or `discretionary_policy`. It is however not yet possible
|
|
|
to estimate parameters that appear in the discount factor of the social
|
|
|
planner. (#1173)
|
|
|
|
|
|
- Discretionary policy returns a more informative error message when the
|
|
|
objective has nonzero derivatives with respect to some variables. (!1468)
|
|
|
|
|
|
- Identification (!1648, !1689, !1683, !1711)
|
|
|
|
|
|
- Added minimal system identification check of *Komunjer and Ng (2011)*.
|
|
|
|
|
|
- Added spectrum identification check of *Qu and Tkachenko (2012)*.
|
|
|
|
|
|
- Identification is now also available for approximation orders 2 and 3
|
|
|
with either analytical or numerical parameter derivatives. The relevant
|
|
|
moments and spectrum are computed from the pruned state space system
|
|
|
as in *Mutschler (2015)*.
|
|
|
|
|
|
- All tests (moments, spectrum, minimal system, strength) can be turned
|
|
|
off.
|
|
|
|
|
|
- More numerical options can be changed by the user.
|
|
|
|
|
|
- Improved printing and storage (same folder) of results.
|
|
|
|
|
|
- Sensitivity analysis
|
|
|
|
|
|
- New `diffuse_filter` option to the `dynare_sensitivity` command. (!1562)
|
|
|
|
|
|
- Arbitrary expressions can now be passed for the interval boundaries in
|
|
|
`irf_calibration` and `moment_calibration`. :warning: This breaks the
|
|
|
previous syntax, requiring that the lower/upper bounds be separated by
|
|
|
commas. (preprocessor#12)
|
|
|
|
|
|
- Forecasting and smoothing
|
|
|
|
|
|
- In `conditional_forecast_paths`, it is no longer required that all
|
|
|
constrained paths be of the same length. There may now be a different
|
|
|
number of controlled variables at each period. In that case, the order of
|
|
|
declaration of endogenous controlled variables and of `controlled_varexo`
|
|
|
matters: if the second endogenous variable is controlled for less periods
|
|
|
than the first one, the second `controlled_varexo` isn't set for the last
|
|
|
periods. (#699)
|
|
|
|
|
|
- New option `parameter_set` to the `calib_smoother` command (#1477)
|
|
|
|
|
|
- :warning: The results of `conditional_forecast` command is now saved in
|
|
|
`oo_` (used to be in a file; see #1672)
|
|
|
|
|
|
- Shock decomposition
|
|
|
|
|
|
- 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 `diff`, `flip`, `max_nrows`, `plot_init_date` and `plot_end_date`
|
|
|
options to `plot_shock_decomposition` (#1649, !1655,
|
|
|
74e7c12d9d4f802cb687f6f1f122330fa5c4a2f4)
|
|
|
|
|
|
- New `initial_decomposition_decomposition` command, for computing and
|
|
|
plotting the decomposition of the effect of smoothed initial conditions of
|
|
|
state variables (#1586)
|
|
|
|
|
|
- New `squeeze_shock_decomposition` command, for removing decompositions of
|
|
|
variables that are not of interest (!1655)
|
|
|
|
|
|
- New `with_epilogue` option (common to `shock_decomposition`,
|
|
|
`realtime_shock_decomposition` and `initial_condition_decomposition`)
|
|
|
(!1688)
|
|
|
|
|
|
- New `init2shocks` block to attribute initial conditions to shocks (#1650)
|
|
|
|
|
|
- Macro processor
|
|
|
|
|
|
- New object types: real (supersedes integers), boolean (distinct from
|
|
|
integers), tuple, user-defined function.
|
|
|
|
|
|
- New operators: various mathematical functions, set operations on arrays
|
|
|
(union, intersection, difference, cartesian power and product), type
|
|
|
checking and conversion.
|
|
|
|
|
|
- Added support for comprehensions (*e.g.* the set containing the squares of
|
|
|
all even numbers between 1 and 5 can be constructed with `[ i^2 for i in
|
|
|
1:5 when mod(i,2) == 0]`).
|
|
|
|
|
|
- User-defined functions can be declared using the `@#define` operator (*e.g.*
|
|
|
`@#define f(x) = 2*x^2+3*x+5`).
|
|
|
|
|
|
- `@#elseif`-clauses are now supported in conditional statements.
|
|
|
|
|
|
- `@#for` loops can iterate over several variables at the same time (*e.g.*
|
|
|
`@#for (i,j) in X`, where `X` is an array containing tuples of size 2).
|
|
|
|
|
|
- Added the possibility to exclude some elements when iterating over `@#for`
|
|
|
loops (*e.g.* `@#for i in 1:5 when mod(i,2) == 0` iterates over all even
|
|
|
numbers between 1 and 5).
|
|
|
|
|
|
- A `defined()` function allows testing whether macro variables have been
|
|
|
defined.
|
|
|
|
|
|
- Empty arrays (with the `[]` syntax) are now possible (#707).
|
|
|
|
|
|
- Arrays of arrays are now supported.
|
|
|
|
|
|
- New macro directives `@#echomacrovars` and `@#echomacrovars(save)` for
|
|
|
displaying or saving the values of all macro-variables. (#1564)
|
|
|
|
|
|
- Inline comments are now supported.
|
|
|
|
|
|
- :warning: All division operations are now done with doubles (as opposed to
|
|
|
integers). To achieve the old functionality, use the new `floor` operator.
|
|
|
|
|
|
- :warning: Colon syntax used to require braces around it to create an array
|
|
|
(*e.g.* `[1:3]` would create `[1,2,3]`). Now this is not necessary (`1:3`
|
|
|
creates `[1,2,3]` while `[1:3]` would create `[[1,2,3]]`).
|
|
|
|
|
|
- :warning: Previously, printing a boolean would print `1` or `0`. Now, it
|
|
|
prints `true` or `false`. To achieve the old functionality, you must cast
|
|
|
it to a real, *e.g.* `@{(real)(1!=0)}`.
|
|
|
|
|
|
- LaTeX output
|
|
|
|
|
|
- New command `write_latex_steady_state_model`. (#1496)
|
|
|
|
|
|
- New option `planner_discount_latex_name` of `ramsey_model` and
|
|
|
`discretionary_policy`. (#1686)
|
|
|
|
|
|
- New command `model_local_variable` command for assigning a LaTeX name to
|
|
|
model-local variables. (#563)
|
|
|
|
|
|
- The `write_latex_static_model` and `write_latex_original_model` commands
|
|
|
now support the `write_equation_tags` option. (#1431)
|
|
|
|
|
|
- Compilation of the model (`use_dll` option) made easier and faster
|
|
|
|
|
|
- Under Windows, it is no longer necessary to manually install the
|
|
|
compiler, since the latter is now shipped by the Dynare installer.
|
|
|
|
|
|
- Under macOS, the Dynare installer now automatically downloads and
|
|
|
installs the compiler.
|
|
|
|
|
|
- It is no longer necessary to configure MATLAB to let it know where the
|
|
|
compiler is, since the compilation is now done by the preprocessor.
|
|
|
|
|
|
- The compilation phase is now faster on large models (this has been
|
|
|
achieved by disabling a few time-consuming and not-so-useful optimization
|
|
|
passes otherwise done by the compiler).
|
|
|
|
|
|
- New `compilation_setup` block for specifying a custom compiler or custom
|
|
|
compilation flags.
|
|
|
|
|
|
- Model, variables and parameters declaration
|
|
|
|
|
|
- New syntax to declare model variables and parameters on-the-fly in the
|
|
|
`model` block. To do this, simply follow the symbol name with a vertical
|
|
|
line (`|`, pipe character) and either an `e`, an `x`, or a `p`. For
|
|
|
example, to declare a parameter named `alpha` in the model block, you
|
|
|
could write `alpha|p` directly in an equation where it appears.
|
|
|
Similarly, to declare an endogenous variable `c` in the model block you
|
|
|
could write `c|e`. (#1386)
|
|
|
|
|
|
- New syntax to declare model variable and parameters on-the-fly in
|
|
|
equation tags. In the tag, simply state the type of variable to be
|
|
|
declared (`endogenous`, `exogenous`, or `parameter` followed by an equal
|
|
|
sign and the variable name in single quotes. Hence, to declare a variable
|
|
|
`c` as endogenous in an equation tag, you can type `[endogenous='c']`.
|
|
|
(see 01d5a1308244ffb5a85e7f8f1d6a9e104b458715)
|
|
|
|
|
|
- New `epilogue` block for computing output variables of interest that may
|
|
|
not be necessarily defined in the model (*e.g.* various kinds of
|
|
|
real/nominal shares or relative prices, or annualized variables out of a
|
|
|
quarterly model).
|
|
|
|
|
|
- Command-line options
|
|
|
|
|
|
- Added the possibility to declare Dynare command-line options in the `.mod`
|
|
|
file.
|
|
|
|
|
|
- New option `nopreprocessoroutput` to disable printing of messages from
|
|
|
the preprocessor. (#1390)
|
|
|
|
|
|
- It is now possible to assign an arbitrary macro-expression to a
|
|
|
macro-variable defined on the command-line, using the `-D` syntax.
|
|
|
(#1696)
|
|
|
|
|
|
- New option `linemacro` to revert to the old format of the
|
|
|
macro-processed file (see below).
|
|
|
|
|
|
- Preprocessor outputs and inputs
|
|
|
|
|
|
- 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, Octave…). This new feature opens the possibility to
|
|
|
develop alternative back-ends for the Dynare language.
|
|
|
|
|
|
- :warning: Most files generated by the preprocessor are now grouped under
|
|
|
two subdirectories. Assuming your file is `FILENAME.mod`, then M-files
|
|
|
and MEX-files will be under `+FILENAME/`, while other output (JSON,
|
|
|
LaTeX, source code for the MEX files) will be under `FILENAME/`.
|
|
|
|
|
|
- The macro-generated output is now more readable (no more line numbers and
|
|
|
empty lines). The old behaviour can be restored using the `linemacro`
|
|
|
option (see above).
|
|
|
|
|
|
- Ability to call the preprocessor by passing the `.mod` file as a string
|
|
|
argument from the macOS or GNU/Linux command line. (#1509)
|
|
|
|
|
|
- dseries classes
|
|
|
|
|
|
- New functionalities and efficiency improvements.
|
|
|
|
|
|
- Complete rewrite using the new `classdef` syntax and exploiting in place
|
|
|
modifications when possible.
|
|
|
|
|
|
- Integration of the `dates` classes within `dseries`.
|
|
|
|
|
|
- Reporting classes
|
|
|
|
|
|
- Automatically create titlepage with page numbers/page titles.
|
|
|
|
|
|
- Allow for the removal of headers and footers from a given page.
|
|
|
|
|
|
- Allow user to set page number.
|
|
|
|
|
|
- Split up report output. Create new files for the preamble, the body of
|
|
|
the report, and each individual page of the report.
|
|
|
|
|
|
- The classes have been converted to the new `classdef` syntax.
|
|
|
|
|
|
- Misc
|
|
|
|
|
|
- External functions can be located in MATLAB/Octave namespaces. (#1639)
|
|
|
|
|
|
- Improvements to the balanced growth path test that is performed after
|
|
|
Dynare has detrended the model (given the trends on variables declared by
|
|
|
the user): the default tolerance has been raised, and a different value
|
|
|
can be set with new option `balanced_growth_test_tol` to the `model`
|
|
|
block; as a consequence, failing the test is now an error again. (#1389)
|
|
|
|
|
|
- New collection of MATLAB/Octave utilities to retrieve and alter objects:
|
|
|
`get_irf`, `get_mean`, `get_shock_stderr_by_name`, `get_smooth`,
|
|
|
`get_update`, `set_shock_stderr_value`. (!1686)
|
|
|
|
|
|
- :warning: Previously, when some MEX files were missing, Dynare would
|
|
|
automatically fall back to slower M-file functional alternative; this is
|
|
|
no longer the case. It is however still possible to manually add these
|
|
|
alternatives in the MATLAB/Octave path (they are located under
|
|
|
`matlab/missing/mex`; this only applies to the `mjdgges`, `gensylv`,
|
|
|
`A_times_B_kronecker_C`, `sparse_hessian_times_B_kronecker_C` and
|
|
|
`local_state_space_iteration_2` DLLs).
|
|
|
|
|
|
- References
|
|
|
|
|
|
- Komunjer, I. and S. Ng (2011), “[Dynamic Identification of Dynamic
|
|
|
Stochastic General Equilibrium
|
|
|
Models](https://www.onlinelibrary.wiley.com/doi/abs/10.3982/ECTA8916),”
|
|
|
*Econometrica*, 79(6), 1995–2032
|
|
|
|
|
|
- Qu, Z. and D. Tkachenko (2012), “[Identification and frequency domain
|
|
|
quasi‐maximum likelihood estimation of linearized dynamic stochastic
|
|
|
general equilibrium
|
|
|
models](https://onlinelibrary.wiley.com/doi/abs/10.3982/QE126),”
|
|
|
*Quantitative Economics*, 3(1), 95–132
|
|
|
|
|
|
- Mutschler, W. (2015), “[Identification of DSGE models—The effect of
|
|
|
higher-order approximation and
|
|
|
pruning](https://www.sciencedirect.com/science/article/pii/S0165188915000731),”
|
|
|
*Journal of Economic Dynamics and Control*, 56, 34–54
|
|
|
|
|
|
|
|
|
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) and `perfect_foresight_solver` (for computing it). The
|
|
|
old `simul` command still exist and is now an alias for
|
|
|
`perfect_foresight_setup` + `perfect_foresight_solver`. It is no
|
|
|
longer possible to manipulate by hand the contents of
|
|
|
`oo_.exo_simul` when using `simul`. People who want to do
|
|
|
it must first call `perfect_foresight_setup`, then do the
|
|
|
manipulations, then call `perfect_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 a
|
|
|
`solve_algo` solver for solving the model,
|
|
|
|
|
|
+ New option `solve_algo` that allows specifying a solver for
|
|
|
solving the model when using `stack_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 default `solve_algo=4`,
|
|
|
|
|
|
+ New options `tolf` and `tolx` to control termination criteria of
|
|
|
solvers,
|
|
|
|
|
|
+ New option `endogenous_terminal_period` to `simul`,
|
|
|
|
|
|
+ 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 option `optim` 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 into `M_.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` and `HPDsup_ME` (#853),
|
|
|
|
|
|
+ New fields `oo_.Smoother.Trend` and `oo_.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 to `first_obs`,
|
|
|
|
|
|
+ The `calib_smoother` command now accepts the `loglinear`,
|
|
|
`prefilter`, `first_obs` and `filter_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` and `mh_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 in `oo_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` and `posterior_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 during `mode_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 the `posterior_sampling_method`; its `scale_file`-option
|
|
|
pair allows loading the `_mh_scale.mat`-file storing the tuned
|
|
|
scale factor from a previous run of `mode_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 into
|
|
|
`oo_.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 the
|
|
|
`estimation` 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 the `TeX` option is
|
|
|
invoked,
|
|
|
|
|
|
+ The `use_calibration` to `estimated_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` and `tolx` 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
|
|
|
of `oo_` when simulated moments have been requested,
|
|
|
|
|
|
+ `stoch_simul` saves the unconditional variance decomposition in
|
|
|
`oo_.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 new `TeX` 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` and `prior_trunc`,
|
|
|
|
|
|
+ The `identification` command now supports correlations via
|
|
|
simulated moments,
|
|
|
|
|
|
|
|
|
- Sensitivity analysis
|
|
|
|
|
|
+ New blocks `irf_calibration` and `moment_calibration`,
|
|
|
|
|
|
+ Outputs LaTeX tables if the new `TeX` option is used,
|
|
|
|
|
|
+ New option `relative_irf` to `irf_calibration` block.
|
|
|
|
|
|
|
|
|
- Conditional forecast
|
|
|
|
|
|
+ Command `conditional_forecast` now takes into account `histval`
|
|
|
block if present.
|
|
|
|
|
|
|
|
|
- Shock decomposition
|
|
|
|
|
|
+ New option `colormap` to `shocks_decomposition` for controlling
|
|
|
the color map used in the shocks decomposition graphs,
|
|
|
|
|
|
+ `shocks_decomposition` now accepts the `nograph` option,
|
|
|
|
|
|
+ New command `realtime_shock_decomposition` that for each period `T= [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 the
|
|
|
`shock_decomposition` and `realtime_shock_decomposition` commands,
|
|
|
|
|
|
+ New command `plot_shock_decomposition` that allows plotting the
|
|
|
results from `shock_decomposition` and
|
|
|
`realtime_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 for `use_dll` (#1226).
|
|
|
|
|
|
|
|
|
- dates/dseries/reporting classes
|
|
|
|
|
|
+ New methods `abs`, `cumprod` and `chain`,
|
|
|
|
|
|
+ New option `tableRowIndent` to `addTable`,
|
|
|
|
|
|
+ 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` Uses `simulannealbnd` from Matlab's Global
|
|
|
Optimization Toolbox (if available),
|
|
|
|
|
|
+ New option `silent_optimizer` to shut off output from mode
|
|
|
computing/optimization,
|
|
|
|
|
|
+ New options `verbosity` and `SaveFiles` to control output and
|
|
|
saving of files during mode computing/optimization.
|
|
|
|
|
|
|
|
|
- LaTeX output
|
|
|
|
|
|
+ New command `write_latex_original_model`,
|
|
|
|
|
|
+ New option `write_equation_tags` to `write_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`: the `msvc` option now supports `normcdf`, `acosh`,
|
|
|
`asinh`, and `atanh` (#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 with `histval`,
|
|
|
|
|
|
+ Add missing `horizon` option to `ms_forecast`,
|
|
|
|
|
|
+ BVAR now saves the marginal data density in
|
|
|
`oo_.bvar.log_marginal_data_density` and stores prior and
|
|
|
posterior information in `oo_.bvar.prior` and
|
|
|
`oo_.bvar.posterior`. |