Commit Graph

8052 Commits (237aa465d23fb3113a27cf2d8f9932bd3c2e2e8f)

Author SHA1 Message Date
Sébastien Villemot 1bb5612474
Merge branch 'resol' of git.dynare.org:JohannesPfeifer/dynare 2021-01-29 15:34:57 +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
Sébastien Villemot 3e6224e0b6
plot_contributions.m: compatibility fixes for Octave
— use zeros instead of NaNs when decomposing between positive and negative
  contributions; otherwise some contributions are not plotted
— the bar() function returns a column-vector of graphic handles, while on
  MATLAB it returs a row-vector
2021-01-29 15:20:18 +01:00
Sébastien Villemot 5da473ac66
plot_contributions.m: compatibility fix for MATLAB ≤ R2019a 2021-01-29 14:55:06 +01:00
Sébastien Villemot dcfd45bd25
missing/unique_stable.m: also support cell arrays and 2nd output argument
Needed by aggregate.m.
2021-01-29 14:06:40 +01:00
Sébastien Villemot 3e98918690
aggregate.m: compatibility fix for MATLAB R2014a
The importdata function returns empty lines on R2014a, while it omits them in
R2020a. Moreover, importdata is not meant to parse arbitrary text file. We thus
replace it by repeated calls to fgetl.
2021-01-29 12:29:39 +01:00
Sébastien Villemot 5fc29ace8f
Merge branch 'octave_typo' of git.dynare.org:JohannesPfeifer/dynare 2021-01-29 11:19:13 +01:00
Johannes Pfeifer 585781bd4c dynare_minimize_objective.m: use analytic gradient if specified
Bug introduced in ce3e4412

[skip CI]
2021-01-29 11:10:59 +01:00
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