Commit Graph

9140 Commits (b1519b8c3c08956cb65628a9d444edc3863c4f6e)

Author SHA1 Message Date
Johannes Pfeifer 8da98057b9
Have computation of decision rules and smoother only input and output required arguments instead of full oo_ and M_ 2023-09-25 17:17:34 +02:00
Johannes Pfeifer 4fa5df0c24 simult.m: remove oo_ as input and output 2023-09-25 12:08:47 +02:00
Johannes Pfeifer 22c0f2279f non_linear_dsge_likelihood.m: rename variables 2023-09-25 12:08:45 +02:00
Johannes Pfeifer 01f29784d7 bug: initialize undefined variable in OccBin smoother 2023-09-25 12:08:44 +02:00
Johannes Pfeifer b5880e0e56 bug: minus_logged_prior_density.m: fix reading out of error codes 2023-09-25 12:08:43 +02:00
Johannes Pfeifer 5231fc04c1 Remove global variables from prior_posterior_statistics.m and PosteriorIRF.m 2023-09-25 12:08:41 +02:00
Johannes Pfeifer 782a2e8d69 dynare_estimation_1.m: move display and storing of classical smoother to separate function 2023-09-25 12:08:40 +02:00
Stéphane Adjemian (Ryûk) 6417520c09
Allow cherrypicking and aggregation with PAC/MCE. 2023-09-23 17:43:19 +02:00
Stéphane Adjemian (Ryûk) 8d7a5e69d7
Return Computing and preprocessing time. 2023-09-22 22:29:42 +02:00
Sébastien Villemot 9a1f150e38
Merge branch 'default_mode_compute' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2160
2023-09-22 14:35:45 +02:00
Sébastien Villemot c424366440
CI: bump to MATLAB R2023b 2023-09-22 10:52:57 +02:00
Sébastien Villemot 7eb1959f66
Provisions for MATLAB R2023b 2023-09-22 10:49:27 +02:00
Johannes Pfeifer 552e6575cc Use newrat as default mode-finder
Tends to perform better than csminwel
2023-09-20 12:55:29 +02:00
Sébastien Villemot 6f5e346bf6
Merge branch 'preparations_irf_matching' of git.dynare.org:wmutschl/dynare
Ref. !2181
2023-09-20 10:17:14 +02:00
Sébastien Villemot 14a71a6d98
Merge branch 'additional_optimizer_steps' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2178
2023-09-20 10:15:38 +02:00
Sébastien Villemot 44f307ce45
Merge branch 'dynare-complex_resid'
Ref. !2155
2023-09-20 10:09:07 +02:00
Johannes Pfeifer 87ce652088
Account for complex value during resid and steady 2023-09-20 10:08:53 +02:00
Johannes Pfeifer f6a8473144 estimation: support additional_optimizer_steps
Closes https://git.dynare.org/Dynare/dynare/-/issues/1573
2023-09-19 18:14:24 +02:00
Willi Mutschler 330b10ec85
cosmetical changes to headers and comments 2023-09-19 13:26:33 +02:00
Willi Mutschler 649f668dd1
cosmetical: don't use hh for figure/plot/table handles
We use it to denote the hessian and even store it in many mat files.
2023-09-19 13:26:33 +02:00
Willi Mutschler c8be1a3274
Refactor mode_check codes 2023-09-19 13:26:33 +02:00
Willi Mutschler a41fbdefbc
estimation: more flexible handling of displayed string in command window
Also removed estim_params_ as unused input argutment to CutSample
2023-09-19 13:26:33 +02:00
Willi Mutschler 9a4e022eb7
remove global from GetAllPosteriorDraws 2023-09-19 13:26:33 +02:00
Willi Mutschler 268d511e29
estimation: better organize files into folders (latex,graphs,output) 2023-09-19 13:26:33 +02:00
Willi Mutschler 8f650a9cca
Put raftery lewis convergence under oo_.convergence 2023-09-19 13:26:33 +02:00
Johannes Pfeifer 7df3ff5059 dynare_solve.m: fix logic of initial guess randomization which forgot case of imaginary numbers 2023-09-19 12:52:55 +02:00
Johannes Pfeifer b0358b9939 dynare_solve.m: add option to disable randomization of starting value 2023-09-19 12:52:54 +02:00
Johannes Pfeifer 62c3a14026 get_error_message.m: fix typo in error message 2023-09-19 12:52:53 +02:00
Johannes Pfeifer dafe3fbdb2 evaluate_steady_state.m: do not require second solver call if debug is requested
All output has already been computed before
2023-09-19 12:52:52 +02:00
Johannes Pfeifer 757b6e10ec display_static_residuals: make output more legible in presence of tags 2023-09-19 12:52:51 +02:00
Johannes Pfeifer 624eabe2e8 dynare_solve.m: improve warning message 2023-09-19 12:52:50 +02:00
Johannes Pfeifer 68ff5c4110 evaluate_steady_state.m: Filter out small complex residuals 2023-09-19 12:52:49 +02:00
Johannes Pfeifer ff83c4aea7 evaluate_steady_state_file.m: Octave bug 52568 was fixed in Octave 6 2023-09-14 16:55:13 +02:00
Sébastien Villemot db331c53d4
Merge branch 'display_static_residuals' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2176
2023-09-14 12:06:34 +02:00
Sébastien Villemot bea2d7905b
Merge branch 'dynare-bvar'
Ref. !2175
2023-09-14 12:05:59 +02:00
Johannes Pfeifer 14634946dc
🐛 bvar_irf: SquareRoot-option erroneously used Cholesky decomposition 2023-09-14 12:05:21 +02:00
Johannes Pfeifer 2b313b0308
BVAR: move to subfolder 2023-09-14 12:05:18 +02:00
Johannes Pfeifer 838bb2f4b5 display_static_residuals.m: fix bug introduced in 4598dba40c 2023-09-13 15:26:05 +02:00
Sébastien Villemot e86b372464
Display more explicit error message when k_order_perturbation MEX fails 2023-09-13 15:06:51 +02:00
Sébastien Villemot 43af789eda
Merge branch 'csminwel' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2172
2023-09-13 11:31:56 +02:00
Sébastien Villemot eb16bb4373
Merge branch 'dynare-osr_analytic'
Ref. !2171
2023-09-13 11:19:20 +02:00
Johannes Pfeifer 885fda0e20
OSR: allow using analytic gradient 2023-09-13 11:19:13 +02:00
Johannes Pfeifer 2473b57782 Correct Johannes's old Cologne email 2023-09-12 21:07:57 +02:00
Johannes Pfeifer ac0ecde1d9 mom: fix incorrect options-reference 2023-09-12 19:24:32 +02:00
Johannes Pfeifer b8a1b63572 newrat.m: clean up files 2023-09-12 13:32:16 +02:00
Johannes Pfeifer 3895da48a1 🐛 Enable analytic_derivation for csminwel
Requires column vector output
2023-09-12 13:26:25 +02:00
Johannes Pfeifer 497c6bd1b1 csminwel1.m and csminwel1.m: cosmetic changes 2023-09-12 12:54:36 +02:00
Sébastien Villemot 6037b9f096
Merge branch 'dynare-osr_globals'
Ref. !2166
2023-09-11 16:46:29 +02:00
Johannes Pfeifer 2b240210d0
OSR: Remove globals and wrapper layer, move to +subfolder 2023-09-11 16:46:08 +02:00
Sébastien Villemot a0ea6005e8
Merge branch 'dynare-globals'
Ref. !2167
2023-09-11 16:43:36 +02:00
Johannes Pfeifer 4598dba40c
display_static_residuals.m: remove globals 2023-09-11 16:43:26 +02:00
Sébastien Villemot f26a469208
Merge branch 'further_cosmetics' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2168
2023-09-11 16:26:44 +02:00
Sébastien Villemot 890c6b2e1d
Merge branch 'trace_plot' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2169
2023-09-11 16:25:31 +02:00
Sébastien Villemot 4a0b87fdaf
Merge branch 'cosmetics' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2165
2023-09-11 15:34:52 +02:00
Sébastien Villemot dee66e8351
Merge branch 'cleanup' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2164
2023-09-11 15:33:09 +02:00
Johannes Pfeifer 91dd4d9a83 dyn_first_order_solver.m: remove reference to kstate 2023-09-09 09:23:07 +02:00
Johannes Pfeifer 7eaa974484 Remove unused disp_model_summary.m 2023-09-09 09:22:41 +02:00
Johannes Pfeifer baf8243fac generate_trace_plots.m: allow for plotting traces of multiple chains
Closes #1904
2023-09-08 22:04:25 +02:00
Johannes Pfeifer 825763b18f Move pruned_state_space functions to subfolder 2023-09-08 15:45:41 +02:00
Sébastien Villemot d601ca4a2e Merge branch 'var_decomp' into 'master'
Add variance decomposition for pruned state space

Closes #1836

See merge request Dynare/dynare!2163
2023-09-08 12:55:19 +00:00
Johannes Pfeifer af274aec3f Remove unused dsample.m and mcompare.m 2023-09-08 14:43:02 +02:00
Johannes Pfeifer 3a851dd8f3 disp_dr.m: remove globals 2023-09-08 14:42:38 +02:00
Johannes Pfeifer c72763501e Delete unused dcompare.m 2023-09-08 14:22:09 +02:00
Johannes Pfeifer 290f19c705 resol + stoch_simul.m: header fixes
Also makes global naming consistent
2023-09-08 11:59:37 +02:00
Johannes Pfeifer 74399f0728 🐛 fix check for Metropolis folder 2023-09-08 10:31:09 +02:00
Johannes Pfeifer 5ac11449ce slice: move saved files to subfolder 2023-09-08 10:27:35 +02:00
Johannes Pfeifer bd905360e0 Slice: provide convergence diagnostics even for low number of draws 2023-09-08 10:26:21 +02:00
Johannes Pfeifer 842bf3d687 csminwel1.m: clean up file 2023-09-08 10:02:14 +02:00
Willi Mutschler 2e742462b3
Rename McMCDiagnostics and McMCDiagnostics_core 2023-09-08 09:44:43 +02:00
Johannes Pfeifer cd05bfb8a2 Remove unused ghx2transition.m 2023-09-08 08:09:20 +02:00
Johannes Pfeifer c43308a07b forcst.m: remove redundant call to make_ex_ 2023-09-08 08:08:35 +02:00
Johannes Pfeifer 2fa6c437f7 solve_model_for_online_filter.m: remove redundant call to Lyapunov solver 2023-09-08 08:05:48 +02:00
Johannes Pfeifer 420cbc8202 kalman_transition_matrix.m: remove redundant input argument 2023-09-08 08:03:18 +02:00
Johannes Pfeifer c063d53646 th_autocovariances.m: fix matrix dimension 2023-09-07 18:09:28 +02:00
Johannes Pfeifer f2f1c48baf compute_moments_varendo.m: cosmetic fixes 2023-09-07 17:52:31 +02:00
Johannes Pfeifer 3dd1ffb8fe pruned_state_space_system.m: gracefully exit in case of unit roots 2023-09-07 17:52:18 +02:00
Johannes Pfeifer 41ac891f80 Factorize variance decomposition code 2023-09-07 17:13:09 +02:00
Willi Mutschler a0b443b9f8
Cosmetical changes to headers and message strings 2023-09-07 09:36:27 +02:00
Willi Mutschler 777ec76536
method_of_moments: cosmetical changes to cleanup 2023-09-07 09:36:27 +02:00
Willi Mutschler 55dc4a00d5
method_of_moments: refactor displaying of moments 2023-09-07 09:36:27 +02:00
Willi Mutschler e025d56a59
method_of_moments: refactor J-Test 2023-09-07 09:36:27 +02:00
Willi Mutschler 07b62fe554
method_of_moments: refactor iterated GMM/SMM estimation 2023-09-07 09:36:27 +02:00
Willi Mutschler 9dc4878f9f
method_of_moments: refactor printing of info to a utility function 2023-09-07 09:36:27 +02:00
Willi Mutschler e52c007d8b
method_of_moments: cosmetical changes to checks for objective function at initial parameters 2023-09-07 09:36:27 +02:00
Willi Mutschler fb326638f9
method_of_moments: remove redundant noconstant option check 2023-09-07 09:36:27 +02:00
Willi Mutschler e170b64713
method_of_moments: refactor steady-state check utility functions
Reuse same functions from full-information estimation command
2023-09-07 09:36:27 +02:00
Willi Mutschler b737d46d61
method_of_moments: cosmetical changes to smm shock series 2023-09-07 09:36:27 +02:00
Willi Mutschler 9914d764c2
method_of_moments: refactor data moments computation
Also rename function to not confuse this with the variable stored in oo_.mom.datamoments.
2023-09-07 09:36:27 +02:00
Willi Mutschler c0cae0ebaa
method_of_moments: cosmetical changes to mom.objective function 2023-09-07 09:36:27 +02:00
Willi Mutschler 0cd65df72a
method_of_moments: add warnings for problematic prior stderr/corr and value
Also moved oo_.prior to oo_.mom.prior
2023-09-07 09:36:27 +02:00
Willi Mutschler 017b4f05f6
method_of_moments: cosmetical changes on estimated params initializations 2023-09-07 09:36:27 +02:00
Willi Mutschler 1ef026dc9d
method_of_moments: factorize correct bounds for stderr and corr 2023-09-07 09:36:27 +02:00
Willi Mutschler 180b92cb1e
method_of_moments: refactor penalized estimation with laplace prior 2023-09-07 09:36:27 +02:00
Willi Mutschler c3327e000c
method_of_moments: refactor matched moments block transformations 2023-09-07 09:36:27 +02:00
Willi Mutschler 0487dd4a77
method_of_moments: refactor and function for default options & initializations
Also changed:
- options_mom_.vector_output to options_mom_.mom.vector_output
- optimizer_vec to options_mom_.optimizer_vec
- oo_.dr.obs_var to oo_.mom.obs_var
2023-09-07 09:36:27 +02:00
Willi Mutschler f25188cf2f
method_of_moments: improved header 2023-09-07 09:36:27 +02:00
Willi Mutschler 3c0f3c1c24
Factorize estimation: check steady-state (static, changes parameters) 2023-09-07 09:36:27 +02:00
Willi Mutschler 23f6019cdf
Factorize estimation: check prior stderr and corr parameters 2023-09-07 09:36:27 +02:00
Willi Mutschler 6941bd5516
Factorize estimation: wrapper for tune_mh_jscale 2023-09-07 09:36:27 +02:00
Willi Mutschler c356db4531
Factorize estimation: set_mcmc_jumping_covariance 2023-09-07 09:36:27 +02:00
Willi Mutschler aa99eff81d
Factorize estimation: set_mcmc_prior_bounds 2023-09-07 09:36:27 +02:00
Willi Mutschler 7f22414843
Factorize estimation: checks for VAROBS 2023-09-07 09:36:27 +02:00
Willi Mutschler 688d847489
Factorize estimation: check_mode_file 2023-09-07 09:36:27 +02:00
Willi Mutschler c21f75887d
Factorize estimation: check_hessian_at_the_mode 2023-09-07 09:36:27 +02:00
Willi Mutschler dd2c816df0
compute_mh_covariance_matrix: remove globals 2023-09-07 09:36:27 +02:00
Willi Mutschler d8105a3237
Cosmetical changes 2023-09-07 09:36:27 +02:00
Willi Mutschler 960c075420
Replace "Estimation::mcmc::" by a variable
This enables re-using estimation functions for other Bayesian estimation routines such as Bayesian method_of_moments and printing it nicer to the console.
2023-09-07 09:36:27 +02:00
Sébastien Villemot 6551b88fc8
Merge branch 'truncated_normal' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2161
2023-09-07 08:56:13 +02:00
Johannes Pfeifer 8f79e848f0 Remove remnants of GPU code 2023-09-07 08:00:05 +02:00
Johannes Pfeifer 9afd75ca9b th_autocovariances.m: rework routing to clarify approach
Changes reflect model representation with 1 lag only
2023-09-06 22:14:19 +02:00
Johannes Pfeifer 7283838a0f dynare_config.m: sort added paths 2023-09-06 22:11:35 +02:00
Johannes Pfeifer 02b4242c75 Remove MATLAB:dividebyzero identifier
Was removed from Matlab
2023-09-06 15:09:39 +02:00
Johannes Pfeifer 5f68504919 prior sampling: suppress loop output 2023-09-06 14:14:31 +02:00
Johannes Pfeifer d60a19ce49 Finish implementation of truncated normal distribution
Closes https://git.dynare.org/Dynare/dynare/-/issues/1593
2023-09-06 12:46:41 +02:00
Sébastien Villemot 16f921ed62
Add Meson build system
Mostly working. The testsuite remains to be done.

In particular, windows/deps/mkoctfile64 is modified to print its version number
on stdout instead of stderr. This is what the standard mkoctfile does, and it
allows easier capture of the output from Meson.
2023-09-04 18:04:00 +02:00
Sébastien Villemot 6747f2130e
Perfect foresight: fix illegal memory read with bytecode + endval_steady
The exogenous steady state vector was passed as a row-vector to
evaluate_steady_state, thus leading to an incorrectly-sized matrix passed to
bytecode when checking the steady state on the dynamic model (when different
from the static model).
2023-09-01 14:52:57 +02:00
Johannes Pfeifer c70f2f1e4b Allow x13 to deal with missing values 2023-08-31 09:07:51 +02:00
Sébastien Villemot 0d21927381
Merge branch 'mod_comp' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2157
2023-08-30 11:47:22 +02:00
Sébastien Villemot 01011cb849
Merge branch 'shock_decomp' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2156
2023-08-30 11:46:47 +02:00
Sébastien Villemot 38f36258ed
Merge branch 'endogenous_prior' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2153
2023-08-30 11:45:54 +02:00
Johannes Pfeifer e70b2fdfcf makedataset.m: account for short filenames 2023-08-29 16:15:34 +02:00
Johannes Pfeifer 183e6fbb3b model_comparison.m: account for short filenames 2023-08-29 16:14:50 +02:00
Johannes Pfeifer 9e53bd9967 shock_decomposition.m: do not overwrite other output
Closes https://git.dynare.org/Dynare/dynare/-/issues/1897
2023-08-29 14:40:10 +02:00
Johannes Pfeifer 0729ee72af det_cond_forecast.m: cosmetic changes to error messages 2023-08-24 12:38:50 +02:00
Johannes Pfeifer a85a00bfcf endogenous prior: fix logic of missing observations check
Message should only be displayed if there are missing observations
2023-08-23 09:32:24 +02:00
Stéphane Adjemian (Argos) 91825d4b5b
Fix cherrypick routine with max and min functions in model block. 2023-07-21 15:36:52 +02:00
Normann Rion 710589eb5b Adds pruning in k_order_simul
See issue #1643 about beyond-third-order pruning
2023-07-20 06:58:35 +01:00
Stéphane Adjemian (Ryûk) c02e550582
Update dseries submodule.
Pass more than one variable name to remove and remove_ methods.
2023-07-19 18:23:08 +02:00
Johannes Pfeifer d2fecdc5d3 load_*_mh_history_file: remove assignin statements 2023-07-18 10:01:47 -04:00
Johannes Pfeifer 8532d6abd7 Cosmetic changes to various estimation routines 2023-07-13 14:40:01 -04:00
Johannes Pfeifer e6c43c2a29 load_last_mh_history_file: make sure number of blocks and parameters matches loaded files 2023-07-13 14:39:50 -04:00
Stéphane Adjemian (Ryûk) b5a74b96e5
Merge particles submodule into master. 2023-07-12 14:01:25 +02:00
Stéphane Adjemian (Ryûk) 21dcc911bc
Move files and delete unused folders and files. 2023-07-12 09:29:41 +02:00
Stéphane Adjemian (Argos) 6265a6d2b1
Update dseries submodule (add two arguments to dplot command). 2023-07-07 11:40:41 +02:00
Stéphane Adjemian (Argos) bd0493d135
Add routine for dynamic contributions in semi-structural models. 2023-07-06 22:26:09 +02:00
Stéphane Adjemian (Argos) 5e869669a0
Set verbose to false by default. 2023-07-06 22:26:07 +02:00
Sébastien Villemot ae67b4a145 Merge branch 'master' into 'master'
Variable number of parameter MCMC convergence plots

See merge request Dynare/dynare!2127
2023-07-05 10:07:39 +00:00
William Gatt eb5eefdcf0 Variable number of parameter MCMC convergence plots
This change allows the user to change the number of parameters for which the MCMC convergence diagnostics are shown. The user needs to set a value for options_.convergence.brooksgelman.plotrows for an arbitrary number of parameters to be shown, but defaulting to 3 if no input is supplied.
2023-07-05 10:07:38 +00:00
Normann Rion 23dbb2b4b9 Fixes local_state_space_iteration_3 and adds a test comparing the various pruning routines used in dynare up to order 3.
The considered pruning routines can be found in
   - `simult_.m`
   - `local_state_space_iteration_2` MEX
   - `local_state_space_iteration_3` MEX
   - `pruned_state_space_system.m`
2023-07-04 19:15:43 +02:00
Normann Rion d2c324eeee Amends the various filters to fit the fixed version of local_state_space_iteration_3
See MR !2144 for more details
2023-07-01 16:43:48 +02:00
Johannes Pfeifer d386bb9f76 Cholesky decomposition: only add to diagonal if really necessary
Closes #1891
2023-06-23 11:26:14 -04:00
Johannes Pfeifer ed7fe89bfa Remove unused exo_names_orig_ord 2023-06-23 08:41:12 -04:00
Willi Mutschler e6920a60a1
Default option: don't save files for csminwel and cmaes
Usually these files are not needed (if then user can turn this option on manually) and only clutter the folder.
Moreover, the testsuite crashes on rare occasions if several mod files are run in the same folder and the optimizers write the files simultaneously.
2023-06-23 12:11:23 +02:00
Johannes Pfeifer 050679cd56
Rename resid.m
Closes #1888
2023-06-23 12:10:18 +02:00
Johannes Pfeifer 782368eb9b dseries: document saving of atr log
Related to dseries@f2bdd617
2023-06-22 13:56:19 -04:00
Sébastien Villemot d5a3a8e16a
Various improvements to perfect foresight homotopy
– new option “endval_steady” to pf_setup command to recompute terminal
  steady state in the homotopy loop

– new options “homotopy_linearization_fallback” and
  “homotopy_marginal_linearization_fallback” to pf_solver and pfwee_solver
  commands, to get an approximate solution when homotopy fails to go to 100%

– new options “homotopy_initial_step_size”, “homotopy_min_step_size”,
  “homotopy_step_size_increase_success_count” and “homotopy_max_completion_share”
  to pf_solver and pfwee_solver commands to fine tune the homotopy behaviour

– removed option “homotopy_alt_starting_point” to pf_solver command, not really
  useful

– new options “steady_solve_algo”, “steady_tolf”, “steady_tolx”,
  “steady_maxit”, “steady_markowitz” to pf_solver and pfwee_solver commands, to
  control the computation of the terminal steady state (and remove the
  equivalent options which previously had different names in pfwee_solver command)
2023-06-21 15:58:23 +02:00
Sébastien Villemot 3a789ca780
🐛 dynare_solve would incorrectly accept some guess values leading to NaN residuals
If the guess value passed to dynare_solve was such that the residuals were all
below tolerance, except some that were NaN, then this guess value would be
incorrectly accepted as a solution.
2023-06-20 15:35:36 +02:00
Sébastien Villemot 8fa37a0439
perfect_foresight_with_expectation_errors_solver: remove obsolete code
This should have been removed in c1b78e26ac
2023-06-16 16:45:04 +02:00
Sébastien Villemot d4b5e156d1
perfect_foresight_with_expectation_errors_solver: check convergence of informational iterations
Error out if an iteration failed.

Also display an informative message about those iterations.
2023-06-16 16:45:04 +02:00
Sébastien Villemot 396267260a
Block solvers: improvement to error messages
– Do not mention internal options_ structure
– Remain agnostic about whether we are in a steady state or a deterministic simulation

[skip ci]
2023-06-15 15:49:50 +02:00