Commit Graph

8044 Commits (baa6c8dbbdda1e9a0362ba6c8530dab450287eb8)

Author SHA1 Message Date
Sébastien Villemot 20c00d5a02
dynare_minimize_objective: fix analytic derivatives in mode_compute=13 for Octave and MATLAB < R2016a 2021-01-29 11:02:23 +01:00
Johannes Pfeifer 827a7fcaa8 resol.m: reduce inheritance of decision rule info 2021-01-29 10:16:04 +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 3e7c0b1eef
Merge branch 'optimizer' of git.dynare.org:JohannesPfeifer/dynare 2021-01-28 16:54:58 +01:00
Sébastien Villemot 6ac1af7035
Merge branch 'filtered_variables' of git.dynare.org:JohannesPfeifer/dynare 2021-01-28 16:53:30 +01:00
Johannes Pfeifer ce56305318 mr_hessian.m: only compute inverse of A once 2021-01-28 15:07:05 +01:00
Johannes Pfeifer b56b7760b1 mr_hessian.m: don't manually increase run index of loop 2021-01-28 15:06:32 +01:00
Johannes Pfeifer 1ca5aad981 mr_hessian.m: account for non-scalar output 2021-01-28 14:45:13 +01:00
Johannes Pfeifer e766ad053e mr_hessian.m: add comments and remove redundant line 2021-01-27 22:13:15 +01:00
Johannes Pfeifer 7df35bca35 newrat.m: only compute eig(hh) if output is actually required 2021-01-27 22:02:45 +01:00
Johannes Pfeifer ef14cdb1e9 mr_hessian.m: remove redundant lines and try-catch statement 2021-01-27 21:42:48 +01:00
Johannes Pfeifer 9a86f316c6 newrat.m: only find index once 2021-01-27 21:38:04 +01:00
Johannes Pfeifer 96b1ca3bee mr_hessian.m: honor Save_files option 2021-01-27 21:38:03 +01:00
Johannes Pfeifer 1fc33a4c63 newrat.m: check for valid initial parameter 2021-01-27 21:38:03 +01:00
Sébastien Villemot 11f7ae2236
Merge branch 'octave_optim' of git.dynare.org:JohannesPfeifer/dynare 2021-01-27 18:28:35 +01:00
Sébastien Villemot f662c17c5d
shock_decomposition_backward: Octave compatibility fix 2021-01-27 18:25:27 +01:00
Sébastien Villemot d52a35889c
shock_decomposition_backward: workaround for bug in MATLAB ≤ R2019a
Ref. dseries#45
2021-01-27 18:25:27 +01:00
Sébastien Villemot 0402c56ee7
Compatibility fix for MATLAB R2014a when estimating with empty estim_params
The tests kalman_filter_smoother/fs2000_smoother_only.mod and
kalman_filter_smoother/fs2000_smoother_only_ns.mod would fail under MATLAB
R2014a.

They both run the estimation command without having declared an estim_params
block.

Their execution would fail in check_bounds_and_definiteness_estimation, at the
point where we check if initial values are below the lower bound.

The problem is that xparam1 would be of size 0×1, while bounds.lb would be
empty (0×0), and the comparison fails on older MATLABs.

The fix consists in ensuring that xparam1 remains of size 0×0 in that case.
2021-01-27 18:25:27 +01:00
Sébastien Villemot 0f19774b55
check_bounds_and_definiteness_estimation: rename last argument to BoundsInfo
The previous name was misleading, since this is not the same as bayestopt_.

The confusion was introduced in cfe1069367.
2021-01-27 18:25:27 +01:00
Johannes Pfeifer 59dd96db83 Bayesian smoother: fix field naming for Filtered_Variables_X_step_ahead
Naming used length of vector instead of actual steps
2021-01-27 17:41:37 +01:00
Johannes Pfeifer ce3e441205 dynare_minimize_objective.m: restore octave compatibility 2021-01-27 14:56:24 +01:00
Sébastien Villemot 8f47b276a0
Merge branch 'online_filter' of git.dynare.org:JohannesPfeifer/dynare 2021-01-26 16:54:03 +01:00
Johannes Pfeifer 847eb8050a Check measurement error for mode_compute=11 2021-01-26 16:51:39 +01:00
Sébastien Villemot e1bdc87ff9
Merge branch 'lmmcp' of git.dynare.org:JohannesPfeifer/dynare 2021-01-26 16:27:43 +01:00
Johannes Pfeifer c304dea35f stoch_simul.m: filter out mcp-tag solvers 2021-01-26 11:40:46 +01:00
Johannes Pfeifer a5c8fa54b6 dsge_likelihood.m: error out with non-empty gradient for analytic_derivation
Matlab optimizers require it
2021-01-26 08:31:31 +01:00
Sébastien Villemot 09f992d584
Merge branch 'moments_varendo' of git.dynare.org:JohannesPfeifer/dynare 2021-01-25 18:18:46 +01:00
Sébastien Villemot f9437f89c2
Merge branch 'analytic_derivation' of git.dynare.org:JohannesPfeifer/dynare 2021-01-25 18:17:52 +01:00
Sébastien Villemot 992e375bfa
Merge branch 'use_mh_covariance' of git.dynare.org:JohannesPfeifer/dynare 2021-01-25 18:16:23 +01:00
Johannes Pfeifer 1245d41a6a moments_varendo: store var_list in files
Allows identifying changes in var_list in the future
2021-01-25 15:56:44 +01:00
Johannes Pfeifer c27c4fd932 moments_varendo: delete stale files from previous runs 2021-01-25 15:55:10 +01:00
Johannes Pfeifer 1ee788e61b dynare_minimize_objective.m: reorder 13 to come before 101 2021-01-24 17:41:17 +01:00
Johannes Pfeifer 25803a6842 dynare_minimize_objective: fix use of analytic derivatives by employing wrapper function 2021-01-24 17:40:24 +01:00
Johannes Pfeifer ff4278070a dynare_minimize_objective.m: replace optimset by optimoptions to allow for both Pre and post R2016a option names 2021-01-24 09:21:09 +01:00
Johannes Pfeifer d2a55d1e49 method_of_moments: adapt analytic jacobian output to interface used elsewhere 2021-01-24 09:21:09 +01:00
Johannes Pfeifer 2b79eb2850 solvopt.m: suppress incidental output 2021-01-24 09:21:08 +01:00
Johannes Pfeifer 916058cbfd initial_estimation_checks.m: Do not allow quadratic equation solver for non-quadratic problems 2021-01-24 09:21:08 +01:00
Johannes Pfeifer b652b6d932
csminwel1.m: two small fixes
- gh always exists, no need to check
- allow having non-bad gradient in first iteration
2021-01-23 22:18:45 +01:00
Johannes Pfeifer 5bee25c06e
weibull prior: fix second derivative output and suppress display of output 2021-01-23 09:57:17 +01:00
Johannes Pfeifer 82aa669b30
prior densities: make sure derivative output has correct dimensions 2021-01-23 09:57:17 +01:00
Stéphane Adjemian (Charybdis) 2b7dbff459
Cosmetic change.
[skip ci]
2021-01-23 09:53:54 +01:00
Johannes Pfeifer f19decf297
non_linear_dsge_likelihood.m: consistently use options_.particles.pruning
Closes https://git.dynare.org/Dynare/dynare/-/issues/1756
2021-01-22 21:19:07 +01:00
Johannes Pfeifer 29537b761b
csminwel1.m: fix bug with user-supplied gradient function
transformation to function handle made subsequent ischar-checks non-functioning
2021-01-22 21:19:07 +01:00
Johannes Pfeifer de16e9c00a
dynare_estimation_1: restore exiting with mode_compute=0 and order=1 2021-01-22 21:19:07 +01:00
Johannes Pfeifer ade1dfce5e
compute_moments_varendo: cosmetic fix to display 2021-01-22 21:19:07 +01:00
Johannes Pfeifer b38d6f8139
compute_moments_varendo: use pruned state space at higher order 2021-01-22 21:19:07 +01:00
Johannes Pfeifer 314948ce34
compute_moments_varendo: skip computations for various unsupported cases 2021-01-22 21:19:07 +01:00
Johannes Pfeifer dedfd0c08f
compute_moments_varendo: skip variance decomposition at higher order 2021-01-22 21:19:07 +01:00
Johannes Pfeifer 9f903db283
disp_th_moments_pruned_state_space.m: cosmetic fix to header 2021-01-22 21:19:07 +01:00
Johannes Pfeifer 417f038cc5
Particle filters: do not compute Kalman smoother
Related to https://git.dynare.org/Dynare/dynare/-/issues/1757
2021-01-22 21:19:07 +01:00
Johannes Pfeifer 0b87f66443
non_linear_dsge_likelihood.m: do not set use_k_order_solver with pruning
local_state_space_iteration_k does not support it, use local_state_space_iteration_2 at order=2 instead and error out with order=3
2021-01-22 21:19:07 +01:00
Sébastien Villemot dfa6359dd3
Merge branch 'solve_opt' of git.dynare.org:JohannesPfeifer/dynare 2021-01-22 18:33:12 +01:00
Sébastien Villemot 565d61aad3
Merge branch 'kalman_analytic_bug' of git.dynare.org:JohannesPfeifer/dynare 2021-01-22 18:32:42 +01:00
Sébastien Villemot 35df056905
histval_file: workaround for bug in MATLAB ≤ R2019a
Ref. dseries#45
2021-01-22 18:31:31 +01:00
Johannes Pfeifer 731a168f69 Make mh_tune_jscale work with use_mh_covariance_matrix 2021-01-22 15:01:23 +01:00
Johannes Pfeifer fa739c3a63 posterior_sampler_initialization.m: update record if different sampler is used
Also removes redundant field
2021-01-22 15:01:23 +01:00
Johannes Pfeifer c78890d5ca posterior_sampler_initialization.m: Allow running different samplers after each other
Transform error to warning
2021-01-22 15:01:22 +01:00
Johannes Pfeifer 32bdb82cf8 Make load_mh_file honor use_mh_covariance option 2021-01-22 15:01:02 +01:00
Johannes Pfeifer a89f21b53d solvopt.m: prevent returning with inf 2021-01-22 14:56:49 +01:00
Johannes Pfeifer 371fdb227b solvopt.m: use gradient as second output instead of expecting separate function 2021-01-22 14:56:49 +01:00
Johannes Pfeifer c6c9b4e356 kalman_filter.m: fix bug when using analytic_derivation 2021-01-22 14:54:17 +01:00
Sébastien Villemot bc053018a0
Remove risky steady state (unfinished) code
Incidently, remove the possibility of passing model derivatives as arguments to
the k_order_perturbation. That possibility was only used by the risky steady
state code.

Closes: #1338
2021-01-22 11:32:36 +01:00
Sébastien Villemot cc38c4e9f7
Merge branch 'kalman_headers' of git.dynare.org:JohannesPfeifer/dynare 2021-01-19 17:29:24 +01:00
Sébastien Villemot 315bfa6f51
SUR OLS: compatibility fix for MATLAB R2014a
Under MATLAB R2014a, the strjoin() function wants a 1×n cell array, and rejects
a n×1 cell array. Octave and MATLAB R2020b are more permissive.
2021-01-19 16:27:28 +01:00
Sébastien Villemot 57326339e9
SUR Gibbs: do not try to create plot under Octave and MATLAB < R2014b
The histogram() function does not exist there.
2021-01-19 16:27:26 +01:00
Sébastien Villemot f81b330f14
Methods of moments: compatibility fix for MATLAB < R2015a
The mean(…, 'omitnan') syntax does not exist before R2015a. Use nanmean
instead (either provided by the statistics toolbox, or by our fallback under
matlab/missing/stats/).
2021-01-19 15:50:14 +01:00
Sébastien Villemot 4944a711db
MATLAB R2014a compatibility: fix crash of rplot with several variable names
Under MATLAB R2014a, the strjoin() function wants a 1×n cell array, and rejects
a n×1 cell array. Octave and MATLAB R2020b are more permissive.
2021-01-19 15:50:14 +01:00
Sébastien Villemot f946baf6c5
Testsuite: add workaround for crash of MATLAB R2014a with TeX option
The TeX option crashes MATLAB R2014a run with "-nodisplay" option
(as is done from the testsuite). We disable the TeX option in that case.

Since we can’t directly test whether "-nodisplay" has been passed, we test for
the "TOP_TEST_DIR" environment variable, which is set by the testsuite.

Note that it was not tested whether the crash happens with more recent MATLAB
versions, so when OLD_MATLAB_VERSION is increased, one should make a test
before removing this workaround.
2021-01-19 15:50:11 +01:00
Johannes Pfeifer 869147c13a Kalman filter functions: clarify header comments 2021-01-18 17:33:21 +01:00
Stéphane Adjemian (Charybdis) 38e300b94e
Merge #1786.
Do not compute cholesky decomposition of H if the matrix has zeros on
the diagonal.
2021-01-16 11:24:10 +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
Johannes Pfeifer fe93589148
non_linear_dsge_likelihood.m: return in case of exception without computing prior 2021-01-15 22:11:20 +01:00
Stéphane Adjemian (Charybdis) b3e8dbe018
Do not rely on internal representation of @dates, use methods instead...
... Or add a new method if one is missing.
2021-01-15 20:44:09 +01:00
Sébastien Villemot 4c0b2e8c4e
Mitigation for spurious warning in Octave
Because of a bug, Octave wrongly complains that matlab/+pac/+bgp/{get,set}.m
shadow built-in functions (see https://savannah.gnu.org/bugs/?46849).

We disable the warning as early as we can after running the dynare command.
However the warning will nevertheless appear two times in a given Octave
session (the first time when the addpath to Dynare is done, the second time
when the dynare command is run).
2021-01-15 18:08:04 +01:00
Sébastien Villemot e26a5e2805
NLS: compatibility fix for Octave and MATLAB < R2014b 2021-01-15 17:42:00 +01:00
Sébastien Villemot 547969df45
Trust region: compatibility fix for Octave and MATLAB < R2017b
When merging the enterprise code, the dogleg subfunction was modified to
incorporate a call to decomposition(), which does not exist under Octave and
MATLAB < R2017b.

For those cases, we reinstate the old code (which uses a plain matrix right
divide).
2021-01-15 17:30:17 +01:00
Sébastien Villemot 8f07a134a3
OLS + aggregate: compatibility fix for Octave < 6
unique(…, 'stable') does not exist in Octave 5.
2021-01-15 17:19:38 +01:00
Stéphane Adjemian (Charybdis) 6c5d61355b
Updated dseries submodule (new implementation of @dates). 2021-01-15 12:46:02 +01:00
Willi Mutschler 52a57eaf60
MoM: Remove duplicate check in gradient helper function 2021-01-14 14:17:55 +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
Sébastien Villemot 6639cd8a41
Merge branch 'MoM' of git.dynare.org:JohannesPfeifer/dynare 2021-01-13 15:59:05 +01:00
Sébastien Villemot 7476d741a2
Merge branch 'estimation_forecast' of git.dynare.org:JohannesPfeifer/dynare 2021-01-13 15:58:25 +01:00
Stéphane Adjemian (Odysseus) f4508a6ca1 Revert "update jacob_element & hess_element for vector arguments"
This reverts commit 1975e467b5.
2021-01-12 16:48:49 +01:00
Stéphane Adjemian (Odysseus) 47affc94e1 Revert "Matrix notation: fix bug in numerical Hessian of external functions"
This reverts commit 2acacf61f1.
2021-01-12 16:48:21 +01:00
Stéphane Adjemian (Odysseus) 8fd18fa9ba Merge remote-tracking branch enterprise into master. 2021-01-12 16:45:51 +01:00
Stéphane Adjemian (Odysseus) 0e1c9312e2
Merge remote-tracking branch 'Dynare/master' into enterprise 2021-01-11 11:06:55 +01:00
Johannes Pfeifer ea03868a6b mode_compute=0: run dyn_forecast after smoother when forecast > 0 2021-01-10 19:46:18 +01:00
Johannes Pfeifer fbb1272164 Fix mode_compute=12 and filter out mode_compute=11 2021-01-10 17:30:35 +01:00
Sébastien Villemot c397828eb7
Merge branch 'smoother2histval' of git.dynare.org:JohannesPfeifer/dynare 2021-01-08 19:02:44 +01:00
Stéphane Adjemian (Charybdis) 18b54dfa98
Updated dseries submodule. 2021-01-07 22:00:51 +01:00
Johannes Pfeifer b2efc7a604 smoother2histval.m: fix bug when variable names are similar 2021-01-07 21:44:06 +01:00
Sébastien Villemot 4434edae0b Merge branch 'MoM_testsuite' into 'master'
Method of Moments: Updates to testsuite

See merge request Dynare/dynare!1799
2021-01-07 19:52:13 +00:00
Willi Mutschler b3e3501a6d
MoM: Fix bug in SMM with ME
Occurs by running RBC_MoM_SMM_ME with mode_compute=9
2021-01-07 14:25:26 +01:00
Willi Mutschler 2b554e0511
MoM: cosmetical changes to description of options in testsuite 2021-01-07 13:39:45 +01:00
Willi Mutschler ba8d5d364d
MoM: Update copyright years 2021-01-07 10:32:35 +01:00
Sébastien Villemot 8e7d0d2c5d
Preprocessor binary renamed and moved, various other improvements to make install rules
– preprocessor binary renamed to dynare-preprocessor
— the preprocessor binary is now installed under a preprocessor/ top-level directory
— a backward-compatibility symlink is still provided under
  matlab/preprocessor64/dynare_m
— the make install rule now install PDF and HTML documentation when those have
  been built

Closes: #1728
2021-01-06 18:17:20 +01:00
Sébastien Villemot 860775ca49
Merge branch 'labels' of git.dynare.org:JohannesPfeifer/dynare 2021-01-06 14:30:52 +01:00
Sébastien Villemot 25d5352350
Include Dynare version and input arguments into log file
The log file is now started from dynare.m.

Closes: #1743
2021-01-06 14:29:37 +01:00
Willi Mutschler e2f16b504c
MoM: Improve mode_compute=0 and more details on optimizers 2021-01-06 13:57:07 +01:00
Johannes Pfeifer ca978b6bf7 get_labels_transformed_vars.m: fix header
[skip CI]
2021-01-06 10:27:53 +01:00