Commit Graph

71 Commits (7dd2dd5e24a343fbeaf3522ea5e535c27d8b9f95)

Author SHA1 Message Date
Sébastien Villemot 10af04c6d8
Use Unicode copyright symbol (in UTF-8 encoding) in all source files
It is now supported by the MATLAB editor (as of R2022a).

The old ASCII notation is left in some files that we copy as-is from other
sources (e.g. in the contrib/ and m4/ subdirectories).

The particles submodule is not updated at this point, because it is in an
inconsistent state.

[skip ci]
2022-04-13 14:54:25 +02:00
Sébastien Villemot 39f47dc957
local_state_space_iteration_k MEX now uses the Fortran code (instead of the C++ code)
Closes: #1802
2022-02-04 11:49:46 +01:00
Johannes Pfeifer f7a232061a
Remove unused options_-output
Prevents accidentally changing something
2021-06-22 18:17:11 +02:00
Sébastien Villemot 766fff88f6
Use secure URL for link to GNU licenses 2021-06-09 17:35:05 +02:00
Johannes Pfeifer cac6f82e34 non_linear_dsge_likelihood.m: filter out explosive initial simulation 2021-05-27 21:04:35 +02: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
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 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
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
Johannes Pfeifer dab5d38068 Fix initialization of state variances
- incomplete computation of variances in case 1
- wrong ordering for case 2
2020-11-12 10:43:04 +01:00
Johannes Pfeifer 3b85fea02e Move setting of parameters out of check_bounds_and_definiteness_estimation.m
Increases transparency
2020-07-17 15:02:12 +02:00
Johannes Pfeifer cfe1069367 Factorize prior bound and definiteness checks
also removes useless isestimation check
2020-06-22 20:37:31 +02:00
Stéphane Adjemian (Charybdis) 031569fa96 Allow higher order approximations in nonlinear filters. 2019-12-20 11:31:56 +01:00
Stéphane Adjemian (Charybdis) 4e0deb7987 Removed persistent variables. 2019-12-20 11:31:56 +01:00
Stéphane Adjemian (Charybdis) 76e3c6ca68 Removed unnecessary parts of the code.
- Call resol instead of dynare_resolve.
 - Removed definition of constant and trend which are not used in nonlinear filters.
 - Cosmetic changes.
2019-12-20 11:31:56 +01:00
Stéphane Adjemian (Charybdis) 6418e225bf Rewrote doc header. 2019-12-20 11:31:56 +01:00
Johannes Pfeifer ce4d8c3544 Cosmetic fix to error message 2017-11-28 10:27:43 +01:00
Stéphane Adjemian (Charybdis) 5417b27ac7 Fixed indentation of matlab files. 2017-05-16 15:10:20 +02:00
Stéphane Adjemian (Charybdis) f9a462bf07 Added option nonlinear_filter_initialization.
Default value is 1 (initialization with the ergodic variance of the reduced
form solution of the model approximated at order one).

If the model has unit roots, the user must use `nonlinear_filter_initialization=3`,
which select an identity matrix for the initial covariance matrix of the state variables.

A side effect of this option is to temporarily change the value of options_.qz_criterium to
a value above one (ie 1+1e-6) so that the unit roots are not rejected. If the
model has unit roots and if the and if the option
nonlinear_filter_initialization has a value less than 3, the evaluation of the
likelihood will fail, because by default the unit root is counted as an
unstable root.
2017-04-03 11:25:05 +02:00
Stéphane Adjemian (Charybdis) dbffe2a841 Do not check boundaries if the model is not estimated. 2017-03-16 15:50:44 +01:00
Stéphane Adjemian (Charybdis) 5b73d7d59c Added new optimization routine (particleswarm).
Only available under Matlab if the Global Optimization Toolbox is installed.
2017-02-08 13:07:25 +00:00
Johannes Pfeifer 2c5b1fed2d Use master function lyapunov_solver.m to call individual solvers 2017-01-04 11:25:44 +01:00
Johannes Pfeifer 39e7c39243 Filter out infinite likelihoods 2016-08-22 19:24:35 +02:00
Johannes Pfeifer 72b8c650e5 Add missing logical operator from likelihood functions introduces when removing global penalty 2016-07-18 11:11:43 +02:00
Johannes Pfeifer 0c00e28799 Remove objective_function_penalty_base 2016-06-15 00:30:28 +02:00
Johannes Pfeifer 329b91d717 Harmonize output of objective functions
Closes #1149
Mirrors 1ad8df4635
2016-06-15 00:30:28 +02:00
Houtan Bastani 25121bca4f fix copyright dates 2016-05-04 16:05:31 +02:00
Johannes Pfeifer efee7b1a47 Remove duplication of restrict_var_list in bayestopt_ 2016-04-12 10:43:28 +02:00
Johannes Pfeifer 1c816aef24 Various interrelated bugfixes dealing with detrending 2016-03-23 10:19:40 +01:00
Johannes Pfeifer f28a7a62bb Only test non-zero measurement error covariance entries for positive definiteness
Otherwise, not having measurement error on one variable is not allowed during estimation
2015-12-15 22:37:08 +01:00
Johannes Pfeifer d513d38f73 Filter out failure of k_order_pert in likelihood computation 2015-10-11 17:55:27 +02:00
Michel Juillard f464760c45 Revert "remove global objective_function_penalty_base"
This reverts commit cf858c7fcb.
2015-10-09 14:23:31 +02:00
Michel Juillard bc37c838c7 Revert "more fixes for penalty objective function"
This reverts commit 3dac7f8809.
2015-10-09 14:23:31 +02:00
Michel Juillard 3dac7f8809 more fixes for penalty objective function 2015-10-08 20:57:00 +02:00
Michel Juillard cf858c7fcb remove global objective_function_penalty_base 2015-10-08 20:57:00 +02:00
Stéphane Adjemian (Charybdis) e5e9bdb892 Adding missing exception...
For cases where a generalized eigenvalue is too close to 0/0.
2015-09-04 11:02:39 +02:00
Johannes Pfeifer 0fd76e0c6f Assigning unique function for each input argument of lyapunov_symm.m
The old way of redefining input arguments to satisfy different options was too error-prone. See 69daaa0460b0ddee97292c39d40355201e316622 of tholden
2015-07-22 15:11:39 +02:00
Stéphane Adjemian (Hermes) ccd4e40b49 Merge branch 'master' into rewrite-nonlinear-filters
Conflicts:
	.gitmodules
	tests/particle/dsge_base2.mod
2015-05-27 12:18:33 +02:00
Johannes Pfeifer 481c470ac9 Make sure non_linear_dsge_likelihood.m and dsge_var_likelihood.m return correct error codes if prior or likelihood are Inf or NaN
Closes #284
2015-05-09 08:03:55 +02:00
Stéphane Adjemian (Charybdis) 84cef49584 Fixed bug (oo_ must be replaced by DynareResults). 2015-01-14 11:38:36 +01:00
Stéphane Adjemian (Charybdis) 647d7b9761 Do not detrend the data (nonlinear filters). 2015-01-07 16:27:41 +01:00
Stéphane Adjemian (Charybdis) 1927f6181f Updated particles module.
This commit breaks the codes except for sequential importance particle filter.
2014-12-12 17:57:58 +01:00
Stéphane Adjemian (Karaba) f48566aeae Fixed prior bounds (according to the doc in master branch).
* Second  and  third  positional  arguments  after the  name  of  the
   estimated  parameter   in  the  estimated_params   block  are  only
   considered in the optimization stage (not in the MCMC)

 * Do not  store bounds  in bayestopt_, because  bounds do  not always
   reflect restrictions implied by prior shapes.

 * prior_bounds routine  returns a structure  (with fields lb  and ub)
   instead of a matrix.
2014-10-20 16:18:54 +02:00
Stéphane Adjemian (Karaba) 97b63105a0 Add a parameter to the lyapunov_symm routine (debug mode). 2014-10-13 17:42:53 +02:00
Stéphane Adjemian (Charybdis) 6d42ec66d5 Account for error code 10 (Inf in Jacobian of the dynamic model) in likelihood functions. 2014-09-10 17:49:33 +02:00
Stéphane Adjemian (Scylla) 77a29e95c1 Fixed bugs:
(1) The non_linear_dsge_likelihood routine was not adapted to the last changes related to the way data are handled.

(2) The removal of the trend was missing.
2014-09-08 22:36:40 +02:00
Johannes Pfeifer ca6803b531 Add forgotten case to likelihood functions
Code 25 was not filtered out, leading to cryptic crashes
2014-06-02 14:10:43 +02:00
Stéphane Adjemian (Scylla) 00cfec8fb6 Issue an error message if loglinear option is equal to 1 in non linear likelihood routine. 2014-01-30 14:39:06 +01:00
Johannes Pfeifer fddee8e1db Bugfixes for correlated shocks
Uses preprocessing capabilities introduced in 07137e804b

Fixes #392 and #494. Also fixes a bug in the checking for positive definiteness of covariance matrices in likelihood functions

Allows for calibrated covariances by reading them out and setting them after covariance matrix has been reconstructed from correlation and variances.

Adds unit test
2013-11-05 15:55:29 +01:00