Commit Graph

663 Commits (ec908386b67d1b27e0dc4174ef64796f74246318)

Author SHA1 Message Date
Sébastien Villemot 9fd0806643
Testsuite: do not distribute optimal_policy/Ramsey/oo_ramsey_policy_initval.mat
It is a generated file.

By the way, ensure that the generated file has the .mat extension under Octave.
2021-09-27 16:43:50 +02:00
Sébastien Villemot fa3ed38735
Source package: fix bug introduced in d62a09cdef 2021-09-21 17:45:30 +02:00
Johannes Pfeifer e7b1d4aca5 testsuite: Fix missing dependence 2021-09-11 11:29:18 +02:00
Sébastien Villemot badb36d6d2
Fix typos introduced in c68e4801bd 2021-09-02 20:43:21 +02:00
Sébastien Villemot c68e4801bd
Build system: add several test files to the source package 2021-09-02 17:14:07 +02:00
Johannes Pfeifer cf6621187e
Add example for system prior
(@stepan removed trailing spaces)
2021-08-17 19:39:02 +02:00
Johannes Pfeifer b8c76a96e3 block_kalman_filter: add integration tests 2021-08-17 14:26:58 +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) a905539f60
Add test functions for nonlinear solvers. 2021-07-23 19:44:16 +02:00
Johannes Pfeifer 440a0e460b
Storage of results: use subfolder
Ref. #1758
2021-07-23 14:12:17 +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
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
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
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
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
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
Johannes Pfeifer f78ac9f5ac
EP with MCP: add test case 2021-05-28 13:49:58 +02: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
Marcoo Ratto 1645f38269
Implement heteroskedastic filter and smoother 2021-05-26 18:45:16 +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 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 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 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 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 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 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 ec69174173
Improvements to particle tests 2021-01-22 21:19:07 +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 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
Stéphane Adjemian (Odysseus) b87690a9f1 Revert "Add tests for matrix notation"
This reverts commit 8d4a80956c.
2021-01-12 16:47:56 +01:00
Stéphane Adjemian (Odysseus) 0e1c9312e2
Merge remote-tracking branch 'Dynare/master' into enterprise 2021-01-11 11:06:55 +01:00
Willi Mutschler dabe0ada33
MoM: Add test for optimizers
Note that mode_compute=11 and 12 need some fixing
2021-01-07 14:14:13 +01:00
Willi Mutschler 562a9c737f
MoM: Improve testsuite
- add Andreasen, Fernandez-Villaverde, Rubio-Ramirez (2017) test models
- move models to dedicated folders
- add `make m/method_of_moments` and `make o/method_of_moments` commands to run testsuite only for method of moments
2021-01-06 14:19:17 +01:00
Sébastien Villemot 5deaca993b
Merge branch 'discretion' of git.dynare.org:JohannesPfeifer/dynare 2020-12-22 12:29:38 +01:00
Johannes Pfeifer 4b793da2c3 discretionary_policy: allow for non-linear model to be used 2020-12-18 18:22:39 +01:00
Johannes Pfeifer 4cf9f7d1a7 stoch_simul.m: reports second moments based on pruned state space at order=2 when pruning is specified
Related to https://git.dynare.org/Dynare/dynare/-/merge_requests/1744
2020-12-17 09:45:28 +01:00
Stéphane Adjemian (Charybdis) e066556d7a
Added integration test for d8ddd9ef6. 2020-12-07 22:25:54 +01:00
Sébastien Villemot 1c0d1409ea
Fix the use of [static]/[dynamic] equations with the “block” option 2020-12-07 16:24:13 +01:00
Sébastien Villemot f27852d1ec
Add test for mshocks block 2020-11-26 15:48:57 +01:00
Willi Mutschler 3c1087a369
Fix for sylvester3a for purely forward-looking models
In purely forward-looking models ghx is empty and sylvester3a gives a "Operands to the || and && operators must be convertible to logical scalar values" error, as e becomes a "1×0 empty double row vector" and not a logical.
2020-11-21 09:46:10 +01:00
Johannes Pfeifer d38a4428cc Move macro_processor/example1_macro.mod to subfolder 2020-11-02 16:00:03 +01:00
Johannes Pfeifer b4f3eb4a1c Add unit test for ifndef
See https://git.dynare.org/Dynare/dynare/-/issues/1747
2020-11-02 16:00:03 +01:00
Sébastien Villemot cf68570813
Testsuite: workaround for glibc bug #19329
This bug is causing random crashes in the testsuite on our runners.

See https://sourceware.org/bugzilla/show_bug.cgi?id=19329

(cherry picked from commit f46dfba961)
2020-10-23 15:32:07 +02:00
Sébastien Villemot 299769c51b
Testsuite/MATLAB: output stderr to log file
(cherry picked from commit 2a472a0a6b)
2020-10-23 15:32:06 +02:00
Sébastien Villemot f46dfba961
Testsuite: workaround for glibc bug #19329
This bug is causing random crashes in the testsuite on our runners.

See https://sourceware.org/bugzilla/show_bug.cgi?id=19329
2020-10-23 12:35:35 +02:00
Sébastien Villemot 2a472a0a6b
Testsuite/MATLAB: output stderr to log file 2020-10-22 18:25:42 +02:00
Sébastien Villemot 6f415dff61
Testsuite: add missing line continuation symbol in the list of .mod files
This was causing some tests to be skipped.

The bug had been introduced e7162a2a69.
2020-10-21 16:36:18 +02:00
Sébastien Villemot e21cb1ad6b
LMMCP: fix the purely backward and purely forward cases
Closes: #1720
2020-10-21 16:30:40 +02:00
Sébastien Villemot 33d8bc55f3
Redisable tests/pac/trend-component-31/example.mod, it is not yet ready (some fixes are needed in the M code) 2020-10-16 18:11:01 +02:00
Sébastien Villemot 8e3127d69e
Preprocessor rebase
– PAC model: fixes to M_.pac.MODEL.ar (information about autoregressive part)
  + Fix order of items in this structure. Previously, items were ordered
    according to the declaration order of parameters. Now, items are order
    according to lag order (first lag appears first)
  + Gracefully handle the case where there is no autoregressive part
    (Ref. Dynare/preprocessor#52)
– Block decomposition:
  + bugfix for solve one boundary blocks with mfs>0
  + fix evaluation of recursive variables in solved blocks
  (Ref. Dynare/dynare#1726)
— Fix various potential bugs with model local variable
— Ensure that negative constants are never marked as temporary terms

By the way, activate tests/pac/trend-component-31/example.mod, since it should
now work.
2020-10-16 16:53:26 +02:00
Sébastien Villemot 7270f722e4
Activate test for two PAC equations in the same file 2020-10-16 16:30:38 +02:00
Sébastien Villemot 71e3e0d49e
Fix extended_path with bytecode
By the way, document and enforce the fact that stochastic extended_path (i.e.
order > 0) is not compatible with either bytecode or block.

Closes: #1742
2020-10-14 17:25:58 +02:00
Sébastien Villemot 43311a230f
Testsuite: histval_initval_file_unit_tests.m is not a TLS file 2020-10-14 17:16:35 +02:00
Sébastien Villemot e7162a2a69
Block decomposition: new tests for mfs>0
Ref. #1726
2020-10-07 19:01:09 +02:00
Stéphane Adjemian (Charybdis) 80bfbc0736
Merge non linear shock decomposition for backward models.
Closes #2.
2020-09-29 18:17:25 +02:00
Sébastien Villemot 8d4a80956c
Add tests for matrix notation
Closes: Enterprise/dynare#1
2020-09-29 16:52:20 +02:00
Sébastien Villemot 66361eb28d
Add test for shock decomposition of backward models
Ref: Enterprise/dynare#2
2020-09-28 18:26:29 +02:00
Sébastien Villemot 865ab47fa9
Provide block_trust_region MEX under solve_algo 13 and 14
- block trust region solver now available under solve_algo=13
  It is essentially the same as solve_algo=4, except that Jacobian by finite
  difference is not handled. A test file is added for that case
- block trust region solver with shortcut for equations that can be evaluated
  is now available under solve_algo=14 (in replacement of the pure-MATLAB solver)

Closes: Enterprise/dynare#3
2020-09-18 18:01:56 +02:00
Stéphane Adjemian (Odysseus) 248ad18846 Merge remote-tracking branch 'Dynare/master' into enterprise
Fixed conflicts in:

 - .gitlab-ci.yml
 - matlab/dynare_config.m
 - matlab/dynare_solve.m
 - matlab/initvalf.m
 - matlab/perfect-foresight-models/make_ex_.m
 - matlab/perfect-foresight-models/perfect_foresight_setup.m
 - mex/build/matlab/Makefile.am
 - mex/build/matlab/configure.ac
 - mex/build/octave/Makefile.am
 - mex/build/octave/configure.ac
 - mex/sources/Makefile.am
 - preprocessor
 - tests/Makefile.am
2020-09-17 14:53:32 +02:00
Willi Mutschler 19b7d202d2 testsuite: Add test cases 2020-07-16 14:54:04 +02:00
Johannes Pfeifer 540f0454d2 Code Review of GMM routines
- fix prefilter option
- Implement iterative GMM
2020-07-16 11:38:40 +02:00
Willi Mutschler 3615962a61 First draft of method of moments toolbox with GMM and SMM 2020-07-16 11:38:38 +02:00
Sébastien Villemot 5b88113668
Testsuite / External functions: add check for numerical results 2020-07-09 18:40:36 +02:00
Sébastien Villemot d0fb9ce5b8
Preprocessor update
— Bug fix: allow external functions in model local variables (also add corresponding
  integration test)
— JSON output:
  + do not append two underscores after model local variable names in their
    definition
  + when writing the model after computing pass, use TEF terms for (not
    derived) external functions
  + write model local variables in parsed model (modfile.json) (Closes: #1723)
— In the driver file, provide mapping between model local variables and indices
  in the temporary terms vector (Closes: #1722)
2020-06-05 17:16:11 +02:00
Michel Juillard b70d99d1b4
Refactoring of initval_file and histval_file
initval_file and hisvfal_file are now more flexible and have functionalities
similar to option datafile in estimation.

Closes: #1671
2020-05-14 16:45:54 +02:00
Sébastien Villemot 6e0f104d7e
Bump minimal MATLAB version to R2014a
Ref. #1713
2020-04-07 16:32:32 +02:00
Stéphane Adjemian (Charybdis) 046960c4a8
Merge remote-tracking branch community/master into enterprise 2020-04-03 11:33:46 +02:00
Johannes Pfeifer b8b05300c1 missing_DiffuseKalmanSmootherH1_Z.m: fix bug with variable dimension 2020-04-02 19:22:55 +02:00
Sébastien Villemot 43ed7b2b69
Merge remote-tracking branch 'community/master' into enterprise 2020-03-27 16:28:41 +01:00
Johannes Pfeifer 16cbfa7f29 noprint: add integration test 2020-03-08 09:01:00 +01:00
Sébastien Villemot 3ec1d15107
Fix interaction of “predetermined_variables” with “histval” (preprocessor#47)
Also add a corresponding regression test case.
2020-03-02 17:10:58 +01:00
Stéphane Adjemian c1541bebbf Merge branch 'Ramsey_estimation' into 'master'
testsuite: add integration test for estimation with Ramsey

See merge request Dynare/dynare!1719
2020-03-02 08:30:13 +00:00
Johannes Pfeifer 068a3e4bde testsuite: add integration test for estimation with Ramsey
[skip ci]
2020-03-02 09:17:36 +01:00
Stéphane Adjemian (Charybdis) 2083246a35
Add initial condition for mh_tune_jscale.
Closes #1717.
2020-02-29 13:25:24 +01:00
Johannes Pfeifer f89c1b58d8 Add integration test for steady state parameter updating 2020-02-25 14:48:29 +01:00
Willi Mutschler f4dc2ee743
🐛 Fix wrong third-order computation in pruned state space system
Related to #1706

 Add unit test for pruned state space up to order 3


//


Changed tolerance in new test
2020-02-16 22:55:16 +01:00
Sébastien Villemot 3b60e26e63
Testsuite: properly clean generated datafiles under kalman/likelihood_from_dynare/ 2020-02-12 18:02:08 +01:00
Sébastien Villemot 177c5c359f
Implement estimation under discretionary optimal policy
Also add a test case.

For the time being, estimating parameters that appear in the discount factor is
not supported.

Ref. #1173
2020-02-03 18:29:45 +01:00
Willi Mutschler 3d51ee9e23
Added unit tests for minimal state space system 2020-01-24 14:20:05 +01:00