Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Dóra Kocsis
dynare
Commits
a79dbe57
Verified
Commit
a79dbe57
authored
Feb 17, 2020
by
Sébastien Villemot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add release notes for 4.6.0
parent
2f13d661
Changes
1
Hide whitespace changes
Inline
Sidebyside
Showing
1 changed file
with
342 additions
and
0 deletions
+342
0
NEWS.md
NEWS.md
+342
0
No files found.
NEWS.md
View file @
a79dbe57
Announcement for Dynare 4.6.0
=============================
We are pleased to announce the release of Dynare 4.6.0.
This major release adds new features and fixes various bugs.
The Windows, macOS and source packages are already available for download at
[
the Dynare website
](
https://www.dynare.org/download/
)
.
All users are strongly encouraged to upgrade.
This release is compatible with MATLAB versions ranging from 7.9 (R2009b) to
9.
7 (R2019b), and with GNU Octave versions 5.2.0 (under Windows) and 4.4.1
(under macOS).
Here is the list of major uservisible changes:

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 modelspecific
computational limit).
 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 modelspecific
computational limit).
 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.
 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.
 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 machinecompiled 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.
 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).
 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.
 Discretionary policy returns a more informative error message when the
objective has nonzero derivatives with respect to some variables.

Identification
 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.
 Arbitrary expressions can now be passed for the interval boundaries in
`irf_calibration` and `moment_calibration`. ⚠ This breaks the
previous syntax, requiring that the lower/upper bounds be separated by
commas.

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.
 New option `parameter_set` to the `calib_smoother` command.
 ⚠ The results of `conditional_forecast` command is now saved in
`oo_` (used to be in a file)

Shock decomposition

Added
`fast_realtime`
option to real time shock decomposition (deactivated
by default, runs the smoother only twice: once for the last insample and
once for the last outofsample data point).

New
`diff`
,
`flip`
,
`max_nrows`
,
`plot_init_date`
and
`plot_end_date`
options to
`plot_shock_decomposition`
.

New
`initial_decomposition_decomposition`
command, for computing and
plotting the decomposition of the effect of smoothed initial conditions of
state variables.

New
`squeeze_shock_decomposition`
command, for removing decompositions of
variables that are not of interest.

New
`with_epilogue`
option (common to
`shock_decomposition`
,
`realtime_shock_decomposition`
and
`initial_condition_decomposition`
).

New
`init2shocks`
block to attribute initial conditions to shocks.

Macro processor

New object types: real (supersedes integers), boolean (distinct from
integers), tuple, userdefined 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]`
).

Userdefined 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).

A
`defined()`
function allows testing whether macro variables have been
defined.

Empty arrays (with the
`[]`
syntax) are now possible.

Arrays of arrays are now supported.

New macro directives
`@#echomacrovars`
and
`@#echomacrovars(save)`
for
displaying or saving the values of all macrovariables.

Inline comments are now supported.

⚠ All division operations are now done with doubles (as opposed to
integers). To achieve the old functionality, use the new
`floor`
operator.

⚠ 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]]`
).

⚠ 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`.
 New option `planner_discount_latex_name` of `ramsey_model` and
`discretionary_policy`.
 New command `model_local_variable` command for assigning a LaTeX name to
modellocal variables.
 The `write_latex_static_model` and `write_latex_original_model` commands
now support the `write_equation_tags` option.

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 timeconsuming and notsouseful 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 onthefly 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 `alphap` directly in an equation where it appears.
Similarly, to declare an endogenous variable `c` in the model block you
could write `ce`.
 New syntax to declare model variable and parameters onthefly 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']`.
 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).

Commandline options
 Added the possibility to declare Dynare commandline options in the `.mod`
file.
 New option `nopreprocessoroutput` to disable printing of messages from
the preprocessor.
 It is now possible to assign an arbitrary macroexpression to a
macrovariable defined on the commandline, using the `D` syntax.
 New option `linemacro` to revert to the old format of the
macroprocessed 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 backends for the Dynare language.
 ⚠ Most files generated by the preprocessor are now grouped under
two subdirectories. Assuming your file is `FILENAME.mod`, then Mfiles
and MEXfiles will be under `+FILENAME/`, while other output (JSON,
LaTeX, source code for the MEX files) will be under `FILENAME/`.
 The macrogenerated 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.

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.
 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.
 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`.
 ⚠ Previously, when some MEX files were missing, Dynare would
automatically fall back to slower Mfile 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
higherorder approximation and
pruning
](
https://www.sciencedirect.com/science/article/pii/S0165188915000731
)
,”
*Journal of Economic Dynamics and Control*
, 56, 34–54
Since there are a few backwardincompatible changes in this release, users may
want to have a look at the
[
upgrade
guide
](
https://git.dynare.org/Dynare/dynare//wikis/BreakingFeaturesIn4.6
)
to
adapt their existing codes.
Announcement for Dynare 4.5.7 (on 20190206)
=============================================
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment