Commit Graph

76 Commits (4fa5df0c2445085ba83618b215d7587593fd0107)

Author SHA1 Message Date
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 420cbc8202 kalman_transition_matrix.m: remove redundant input argument 2023-09-08 08:03:18 +02: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
NormannR 4cdb763ea4 Integrates the local_state_space_iteration_3 mex into dynare's bayesian estimation eco-system
Should be merged after the mex MR !2045 and the particles MR !16
2022-09-26 09:14:34 +02:00
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