Commit Graph

1682 Commits (8eeb92e56b7ae5ec0068d4dae4979a578ae267e6)

Author SHA1 Message Date
Johannes Pfeifer b8c76a96e3 block_kalman_filter: add integration tests 2021-08-17 14:26:58 +02:00
Johannes Pfeifer bfd92e79a7
Occbin: udpate options 2021-08-16 11:37:53 +02:00
Stéphane Adjemian (Charybdis) c00307c8cc
Fix encoding. 2021-08-16 11:23:13 +02:00
Stéphane Adjemian (Charybdis) 1c54eb21d2
Cosmetic change (remove trailing spaces). 2021-08-16 11:19:28 +02:00
Willi Mutschler 0d200f3b39
MoM: Fix AFVRR test cases due to 3c67ad 2021-08-16 10:58:35 +02:00
Willi Mutschler f5ec70a06d
MoM: Refactor AnScho test case
Instead of checking everything in one mod file, this commit separates the checks into individual mod files that test:
- whether the translation from matched_moments works
- whether the duplicate moments are found
- whether GMM and SMM both work with different estimated_params blocks.
wip
2021-08-16 10:58:35 +02:00
Stéphane Adjemian (Ryûk) bdc95dd1d0
Add unit tests (trust_region algorithm).
Using mex implementation (block_trust_region).
2021-07-23 19:44:16 +02:00
Stéphane Adjemian (Ryûk) e8cc23d3af
Bug fixes (typos). 2021-07-23 19:44:16 +02:00
Stéphane Adjemian (Ryûk) a905539f60
Add test functions for nonlinear solvers. 2021-07-23 19:44:16 +02:00
Sébastien Villemot b34be496c5 Merge branch 'evaluate_planner' into 'master'
evaluate_planner_objective.m: correctly rely on lag/lead structure for perfect foresight

See merge request Dynare/dynare!1890
2021-07-23 14:01:22 +00:00
Johannes Pfeifer 440a0e460b
Storage of results: use subfolder
Ref. #1758
2021-07-23 14:12:17 +02:00
Johannes Pfeifer e09d215964 evaluate_planner_objective.m: correctly rely on lag/lead structure for perfect foresight
Also cosmetic changes to indentation
2021-07-23 13:27:30 +02:00
Sébastien Villemot 3206ea9684 Merge branch 'evaluate_planner_objective' into 'master'
Streamline evaluate planner objective

See merge request Dynare/dynare!1887
2021-07-22 14:42:22 +00:00
Johannes Pfeifer a517c1f1de neo_growth_ramsey_k_order.mod: call evaluate_planner_objective 2021-07-22 15:20:30 +02:00
Sébastien Villemot 8b8f919a0f Merge branch 'smoother2histval' into 'master'
Improvements for smoother2histval

See merge request Dynare/dynare!1886
2021-07-22 12:03:59 +00:00
Johannes Pfeifer 3fb41e075f Matlab implementation of the consider_all_endogenous_and_auxiliary option 2021-07-22 13:12:27 +02:00
Sébastien Villemot 0e793faeb2 Merge branch 'pf_options' into 'master'
Particle filter: enable passing of option values and prepare for other samplers

Closes preprocessor#59

See merge request Dynare/dynare!1884
2021-07-22 09:50:10 +00:00
Johannes Pfeifer 80cad32068 Particle filter: enable passing of option values and prepare for other samplers 2021-07-21 23:00:32 +02:00
Stéphane Adjemian (Ryûk) cd2ed823b6
Fix constant in VAR and PAC expectations...
When the VAR auxiliary model has a constant.
2021-07-21 18:02:11 +02:00
Stéphane Adjemian (Ryûk) a69f68bb7c
Modify companion matrix if VAR model has a constant. 2021-07-21 18:02:04 +02:00
Sébastien Villemot 1045c442a9
Merge branch 'occbin_mean' of git.dynare.org:JohannesPfeifer/dynare
Ref. !1882
2021-07-21 16:42:00 +02:00
Johannes Pfeifer 944bf2b68e occbin: work with non-demeaned data and in constraints 2021-07-21 13:42:38 +02:00
Johannes Pfeifer ac3f04c2ff borrcon*.mod: nostrict option is not needed anymore 2021-07-20 22:38:21 +02:00
Sébastien Villemot c4e1d1e802
Occbin: new syntax for constructing multi-regime equations
Ref. #569
2021-07-20 18:19:19 +02:00
Sébastien Villemot 229282a1c4
Occbin: the +<basename>/occbin_difference.m file is now generated by the preprocessor
Some fields have also changed under M_.occbin.

Ref. #569
2021-07-20 12:35:15 +02:00
Marco Ratto 02072dde39
Add Occbin routines
Syntax is not yet finalized (see preprocessor#68).
Documentation still to be done.

Ref. #569
2021-07-16 17:20:11 +02:00
Stéphane Adjemian (Ryûk) 54f80e88d2
Add structural VAR as an auxiliary model for VAR based expectations and PAC expectations.
Ref. #1785

Just add option `structural` to the `var_model` command.
2021-07-16 10:25:18 +02:00
Stéphane Adjemian (Ryûk) 547b7aef45
Activate integration test for NLS estimation. 2021-07-15 17:39:41 +02:00
Stéphane Adjemian (Ryûk) 14bc82b287
Add single equation estimation by NLS.
Ref. #1798.

See example in tests/estimation/example_nls.mod.
2021-07-15 16:55:49 +02:00
Stéphane Adjemian (Ryûk) 2b4572affd
Allow arbitrary nonzero mean exogenous variables in PAC equations.
Previously any nonzero mean exogenous variable had to be centered on
the growth rate (first difference) of the (PAC's LHS) endogenous
variable.
2021-07-11 17:06:53 +02:00
Sébastien Villemot abd64c256e
New perfect_foresight_with_expectation_errors_{setup,solver} commands
These command solve the problem where agents think they know perfectly the
future (they behave as in perfect foresight), but make expectation errors.
Hence they can potentially be surprised in every period, and their expectations
about the future (incl. the final steady state) may change.

Currently the sequence of information sets needs to be passed through a CSV
file. Another interface may be added in the future.

The algorithm uses a sequence of (true) perfect foresight simulations (not
necessarily as many as there are periods, because if the information set does
not change between two periods, there is no need to do a new computation).

There are two possibilities for guess values:
— the default is to use the initial steady state for the simulation using the
  first-period information set; then use previously simulated values as guess
  values
— alternatively, with the terminal_steady_state_as_guess_value option, use the
  terminal steady state as guess value for all future periods (this is actually
  what the “true” perfect foresight solver does by default)
2021-07-09 18:16:46 +02:00
Stéphane Adjemian (Ryûk) fe63082c42
Add lagged information set in VAR based expectations. 2021-07-06 23:06:46 +02:00
Johannes Pfeifer f7a232061a
Remove unused options_-output
Prevents accidentally changing something
2021-06-22 18:17:11 +02:00
Sébastien Villemot 18a172bd45
Merge branch 'mcp_ramsey' of git.dynare.org:JohannesPfeifer/dynare
See merge request !1874
2021-06-16 17:41:40 +02:00
Sébastien Villemot 88b427f7bc
Compatibility fix for MATLAB R2014a
MATLAB R2014a does not like the syntax “abs(x).data” where “x” is a dseries.
2021-06-16 17:41:40 +02:00
Johannes Pfeifer 1d10659b59 get_complementarity_conditions.m: fix equation numbering with ramsey_model
M_.equation_tags already contains the correct equation number
2021-06-16 13:21:49 +02:00
Stéphane Adjemian (Ryuk) 2a5ed79be5
Do not run MCMC after online filter (integration test) 2021-06-15 22:09:35 +02:00
Normann Rion 3d27672c58
kth-order approximation of conditional welfare
Partially addresses issue #1680:
- unconditional welfare resorts to dynare++ simulation tools, which shall be updated very soon
TO DO:
- implement a function computing kth-order approximation of simulated moments of y
2021-06-15 15:04:31 +02:00
Sébastien Villemot 2952d18343
Testsuite: improve and integrate unit test for A·(B⊗C) MEX files
In particular, add a test for the sparse A·(B⊗C) where B≠C.
2021-06-14 15:28:34 +02:00
Johannes Pfeifer 0116870399 pruned_state_space: handle shocks with 0 variances 2021-06-11 14:15:31 +02:00
Sébastien Villemot 766fff88f6
Use secure URL for link to GNU licenses 2021-06-09 17:35:05 +02:00
Stéphane Adjemian (Charybdis) 27ee801a67
Add specialized version of sim1 for static models.
Also add an integration test and fix homotopy error message.
2021-05-28 14:11:34 +02:00
Stéphane Adjemian (Charybdis) 9867203f25
Reduce simulation length in integration test.
Also removed commented codes.

Closes #1857
2021-05-28 13:56:13 +02:00
Johannes Pfeifer f78ac9f5ac
EP with MCP: add test case 2021-05-28 13:49:58 +02:00
Sébastien Villemot abe8a05b43 Merge branch 'smoother_redux' into 'master'
Implement new option smoother_redux, to allow fast smoother for very large...

See merge request Dynare/dynare!1859
2021-05-27 16:33:21 +00:00
Sébastien Villemot c4e0cd0565 Merge branch 'posterior_smoother' into 'master'
prior_posterior_statistics_core.m: filter out cases where model does not solve

See merge request Dynare/dynare!1860
2021-05-27 16:09:19 +00:00
Marco Ratto 5fa6265944 Implement new option smoother_redux, to allow fast smoother for very large models. It runs smoother only for state variables and computes the remaining ones ex-post
Contains improvements, in order to recover as much as possible static unobserved (filtered, smoothed, updated, k-step ahead), Variance, State_uncertainty, k-step ahead variances trying to map lagged states onto current ones using pinv(T). This has exceptions (namely lagged shocks which are ONLY used to recover static NON observed variables). this exception is also trapped.
For such extensions we can only recover smoothed variables starting from d+1. Variances CANNOT be recovered for such variables (the smoother gives ZERO.)
2021-05-27 16:59:15 +02:00
Johannes Pfeifer 5d1d5b8a85 prior_posterior_statistics_core.m: filter out cases where model does not solve
Relax qz_criterium by factor of 10, when taking posterior subdraws. Also makes sure `prior` option works as intended.
2021-05-27 16:46:28 +02:00
Marcoo Ratto 1645f38269
Implement heteroskedastic filter and smoother 2021-05-26 18:45:16 +02:00
Johannes Pfeifer 456dc86ad1 identification: support optimal policy
Related to https://git.dynare.org/Dynare/dynare/-/merge_requests/1837
2021-05-14 13:38:42 +02:00
Sébastien Villemot cf37b5151a
Testsuite: indicate that glibc bug has been fixed in version 2.34
[skip ci]
2021-05-11 18:54:07 +02:00
Sébastien Villemot 0d6bc47158
Merge branch 'rattoma/dynare-mh_initialize_from_previous_mcmc'
Ref. !1841
2021-05-11 18:51:57 +02:00
Marco Ratto a0f2b2399b
New option mh_initialize_from_previous_mcmc that allows to pick initial values for a new MCMC from a previous one
If an additional parameter is estimated, it is initialized using prior_draw.
2021-05-11 18:48:43 +02:00
Sébastien Villemot 3c7865a950
Merge branch 'rattoma/dynare-initial_estimation_checks_errors'
Ref. !1839
2021-05-07 17:52:45 +02:00
Marco Ratto 74121c2aee
New no_init_estimation_check_first_obs option that allows to skip check of singularity in first observation
(like deficient # of shocks in the presence of stockflow observed)
2021-05-07 17:51:03 +02:00
Sébastien Villemot 749fc219e5
Testsuite: increase test tolerance under Octave for ecb/SURGibbs/fulton_fish.mod 2021-05-05 15:43:19 +02:00
Sébastien Villemot 62e42e08a8
Testsuite: more fixes related to stochastic block decomposition + mfs > 0
Ref. #1726
2021-05-05 10:15:52 +02:00
Sébastien Villemot 04ba15e5cc
Preprocessor: forbid check and stoch_simul in block-decomposed mode with mfs > 0
Closes: #1726
2021-05-04 17:18:20 +02:00
Sébastien Villemot 58b2bc78c3
Testsuite: check that stochastic solution in block decomposition mode is correct
Only test with mfs=0, since the result is wrong for other mfs values.

Ref. #1726
2021-05-04 16:31:44 +02:00
Sébastien Villemot ef58f1329a
Testsuite: factorize code between block decomposition tests based on LOLA model
By the way, move tests files under tests/block_bytecode/, which is a more
natural place.

Ref. #1726
2021-05-04 16:17:37 +02:00
Sébastien Villemot d6677f66a4
Testsuite: adapt histvalf_initvalf unit tests following previous commit 2021-04-20 12:17:23 +02:00
Sébastien Villemot caef9e266b
Preprocessor: fix crash in DataTree::operator=() with model local variables
Also add a regression test.

Closes: #1782
2021-04-16 17:36:08 +02:00
Stéphane Adjemian (Charybdis) a03b65bab7
Honour option solve_algo with backward models in perfect_foresight_solver. 2021-04-08 20:31:40 +02:00
Sébastien Villemot d68fc14fed
Build system: remove trailing whitespace in Makefile 2021-03-29 15:27:47 +02:00
Sébastien Villemot 559b0b5679
Source package: fix name of ms-sbvar datafile
Bug introduced in 11f8f9c7f4
2021-03-17 18:11:40 +01:00
Sébastien Villemot 11f8f9c7f4
MATLAB R2021a compatibility: rename datafile for ms-sbvar tests
The datafile was name “data.m”, and for some unidentified reason, this stopped
working with MATLAB R2021a.
2021-03-17 17:41:27 +01:00
Sébastien Villemot 47477e152a
Bump minimal Octave version to 6.2.0 2021-03-12 16:21:57 +01:00
Sébastien Villemot c9eb6920c9
local_state_space_iteration_k MEX: fix bug in output
In its output, the MEX was returning values for all endogenous variables, but
it was used in a context where only the variables from oo_.dr.restrict_var_list
were expected (as is done with local_state_space_iteration_2 MEX).

This commit fixes this discrepancy, and also fixes the test that was checking
that both MEX are returning the same output.

Closes: #1768
2021-03-10 13:45:29 +01:00
Normann Rion 9db1265892 Asssesing welfare in perfect-foresight frameworks
Ref. #1680
2021-02-25 15:12:28 +01:00
Sébastien Villemot 9066d31dd7 Merge branch 'ramsey_problem' into 'master'
Ref. #1680 : 2nd-order welfare

See merge request Dynare/dynare!1828
2021-02-23 16:08:53 +00:00
Normann Rion f532de0f29 Adds the discretionary case to the evaluate_planner_objective function 2021-02-18 12:00:44 +01:00
Normann Rion e880d1bcc3 Ref. #1680: 2nd-order welfare 2021-02-17 13:53:55 +01:00
Sébastien Villemot a51bdf8948
Merge branch 'smoother2histval' of git.dynare.org:JohannesPfeifer/dynare
Ref. !1831
2021-02-16 16:58:59 +01:00
Johannes Pfeifer 788e05b2fd smoother2histval: add test case for correctness 2021-02-16 11:25:46 +01:00
Sébastien Villemot 7cbb86bb64
Testsuite: rename estimation/univariate/ols/ols.mod
Under Octave, the +ols folder conflicts with the builtin ols() function.
2021-02-09 16:58:07 +01:00
Sébastien Villemot e4af502360
Testsuite / pac: Octave compatibility fix
Use a different random seed under Octave for several tests.

Note that these tests seems fragile. Changing the seed under MATLAB often leads
to a failure.
2021-02-04 16:01:35 +01:00
Sébastien Villemot f094dc71f9
Testsuite / pac/trend-component-19-growth-comb: fix accuracy check
The test was using the comparison operator (>) on a dseries. This would give a
bogus (false) result under MATLAB, and would crash under Octave.
2021-02-04 16:01:30 +01:00
Sébastien Villemot 9b555ec974
Testsuite / BGP tests: compatibility fix tests with MATLAB < R2016a 2021-02-02 15:02:50 +01:00
Sébastien Villemot 1cd3bfbfa8
Merge branch 'kalman_initial_state' of git.dynare.org:JohannesPfeifer/dynare 2021-01-29 15:34:11 +01:00
Johannes Pfeifer 7c8f486727 Allow setting initial state for Kalman filter
Supersedes https://git.dynare.org/Dynare/dynare/-/merge_requests/1522
2021-01-28 17:24:27 +01:00
Sébastien Villemot 6ac1af7035
Merge branch 'filtered_variables' of git.dynare.org:JohannesPfeifer/dynare 2021-01-28 16:53:30 +01:00
Sébastien Villemot af67b4f7c9
Testsuite: Octave 6 compatibility fix
In Octave ≤ 5, it was impossible to take a function handle for a function in a
package (“+” folder). This bug has been fixed in Octave 6, so we can use the
same codepath as MATLAB in that case. See
https://savannah.gnu.org/bugs/index.php?46659
2021-01-28 16:36:43 +01:00
Sébastien Villemot 25d19fef96
Testsuite: increase numerical tolerance for minimal_state_space_system/sw_minimal.mod
This is necessary for MATLAB R2014a on some runners.
2021-01-27 18:24:26 +01:00
Sébastien Villemot 6e6bc3f6c9
Testsuite: rename test files for Octave compatibility
Rename histval_initval_file/ramst_data.mod to ramst_data_generate.mod.
Otherwise, there is a conflict between the +ramst_data folder and the generated
ramst_data.m.

Similarily, rename shock_decomposition/shock_decomposition_backward.mod to
shock_decomposition/shock_decomp_backward.mod (otherwise it conflicts with
matlab/shock_decomposition_backward.m).
2021-01-27 18:24:22 +01:00
Johannes Pfeifer c596b8890e Trend_diagnostics_MCMC_common.inc: do not store smoother results on disk 2021-01-27 17:42:15 +01:00
Johannes Pfeifer 8ad8bf05b3 gsa/ls2003a.mod: reduce run-time 2021-01-26 10:39:38 +01:00
Johannes Pfeifer e9ea837b28 Reduce run-time of tune_mh_jscale/fs2000.mod 2021-01-26 10:10:29 +01:00
Johannes Pfeifer c507eefc23 testsuite: check values of analytic derivation likelihood to prevent regression 2021-01-24 17:41:50 +01:00
Johannes Pfeifer ec69174173
Improvements to particle tests 2021-01-22 21:19:07 +01:00
Sébastien Villemot c9a6637ca5
Testsuite: compatibility fix for MATLAB R2014a
Double quotes strings are not supported under older MATLAB versions.
2021-01-19 16:14:25 +01:00
Sébastien Villemot 783598bdeb
Testsuite / methods of moments: compatbility fix for MATLAB R2014a
MATLAB R2014a does not like some of the variable names that are passed to
table(). Disable that call, as under Octave.
2021-01-19 16:10:40 +01:00
Sébastien Villemot 68af1c80fe
Testsuite: cosmetic changes to TeX and debug options
– Whenever possible, pass the “tex” option to Dynare commands instead of
  fiddling with options_.TeX;
— For the remaining explicit options_.TeX and also for options_.debug,
  use a boolean value instead of an integer.
2021-01-19 15:50:14 +01:00
Sébastien Villemot 654da6ecb8 Merge branch 'octave_fixes' into 'master'
Don't do bgp/solow-1 in Octave

See merge request Dynare/dynare!1780
2021-01-18 11:28:36 +00:00
Stéphane Adjemian (Charybdis) 78a4bca383
Use nonlinear filter. 2021-01-16 17:43:30 +01:00
Stéphane Adjemian (Charybdis) 0f3dd003b7
Run mod files in tests/particle. 2021-01-16 17:42:17 +01:00
Johannes Pfeifer ad17b8ec33
Particle filtering: provide more informative error messages in typical problematic cases
Also adds test cases
2021-01-15 22:11:20 +01:00
Sébastien Villemot 91b0ba64c6
Testsuite: rename all test files that have the name “example.mod”
That filename conflicts with Octave’s builtin example() function.
2021-01-15 17:19:41 +01:00
Sébastien Villemot 23cb1879e9
Testsuite: fix PAC test filename 2021-01-15 17:19:41 +01:00
Willi Mutschler 0a880825a1
MoM: Testsuite fixes for Octave 2021-01-14 10:04:10 +01:00
Willi Mutschler a697002a4e
MoM: Gradient-based optimizers can use analytical Jacobian for GMM
New option analytic_jacobian for mode_compute 1, 3, and 13
2021-01-14 10:03:39 +01:00