Commit Graph

133 Commits (7dd2dd5e24a343fbeaf3522ea5e535c27d8b9f95)

Author SHA1 Message Date
Stéphane Adjemia (Scylla) e5317b17de
Cosmetic change. 2018-10-06 17:52:58 +02:00
Stéphane Adjemia (Scylla) 108854a484
Bug fix. verbosity option was not honoured in simplex algorithm (8).
Thanks to Reuben for reporting.
2018-10-06 17:50:37 +02:00
Stéphane Adjemian(Charybdis) 7421e6b5b2 Fixed copyright header. 2018-07-19 15:36:02 +02:00
Stéphane Adjemian(Charybdis) 44c49eaef8 Improved iterations display of Dynare's simplex routine. 2018-07-19 15:15:05 +02:00
Stéphane Adjemian(Charybdis) 2d321cb0e3 Increased default number of iterations in simplex. 2018-07-19 15:15:05 +02:00
Johannes Pfeifer 97229177b4 simplex_optimization_routine.m: account for penalty indicator being third output, not fourth one
Caused occasional crashes
2018-07-19 09:25:27 +02:00
Sébastien Villemot 7cbac0c989 Fix user_has_octave_forge_package
Packages are no longer autoloaded, so testing whether they are "Loaded" does
not work in all cases.

The function now ensures that the package is loaded.
2018-06-05 19:53:02 +02:00
Stéphane Adjemian (Scylla) ce7cfccddb Cosmetic changes. 2017-10-10 10:14:59 +02:00
Marco Ratto da063b2e18 bug fix in optimizer 5 [newrat] for dsge_var_likelihood objective function. Fixes #1494 2017-10-09 17:53:19 +02:00
Johannes Pfeifer 89326090b9 simpsa: Only store output strcuture if requested
Otherwise a huge three-dimensional array is created by default that is not used, but can run computer out of memory
2017-06-23 10:50:06 +02:00
Stéphane Adjemian (Charybdis) 1bf81c9f5a Fixed copyright notices. 2017-05-18 18:36:38 +02:00
Stéphane Adjemian (Charybdis) 5417b27ac7 Fixed indentation of matlab files. 2017-05-16 15:10:20 +02:00
Stéphane Adjemian (Charybdis) a53636e24e Fixed copyright notices. 2017-05-16 14:11:15 +02:00
Stéphane Adjemian (Charybdis) 88e1701289 Removed useless commas and semicolons. 2017-05-16 13:24:46 +02:00
Johannes Pfeifer f1123200e5 mode_compute=9: Make sure initial search volume (SIGMA) is not badly conditioned 2017-04-12 13:39:34 +02:00
Stéphane Adjemian (Charybdis) 9fbef0c107 Removed penalty_hessian routine.
+ Code factorization.
 + Added an option for using the penalized objective when computing numerically
 the hessian at the mode.

Previous behaviour (introduced with penalty_hessian routine) was to compute the
hessian matrix at the mode with the penalized objective function (instead of
the original objective function). This behaviour hides problematic situations,
where the computed hessian (using the original objective) would not be full
rank. For instance, if the estimation ends up with a parameter on (or very
close to) the bounds of its possible values (which is often not a desirable
outcome), the estimated posterior variance would be zero for this
parameter (with the original objective) because the hessian is not finite in
this direction, while the posterior variance would be positive if the penalized
objective is used instead. But this estimate would not be reliable by
construction of the penalty which is quite ad-hoc (more fundamentally I do not
think that there exists any rational for approximating the covariance matrix
with the inverse of the hessian matrix if the mode is on the border of the set
of possible values).

This commit restore the behaviour previous to 2446ab02ba.

An option is available for computing the hessian with the penalized
objective function.
2017-02-08 13:07:25 +00: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
Stéphane Adjemian (Charybdis) 35078e13ee Completed header + cosmetic changes. 2017-02-08 13:07:25 +00:00
Houtan Bastani 920a9911ee add missing copyright 2016-11-10 17:49:05 +01:00
Houtan Bastani 46cdaf8e0a fiminsearch only has two output args under Octave 2016-10-21 17:40:27 +02:00
Houtan Bastani 744b52d362 fix bug introduced in 1c892bb3e9 2016-09-27 15:28:43 +02:00
Houtan Bastani 1c892bb3e9 octave: try to load the needed package before ending with an error 2016-09-27 15:26:59 +02:00
Johannes Pfeifer 552a9b5230 Fix bugs previously introduces in dynare_estimation_1.m related to penalty function 2016-06-15 00:30:28 +02:00
Johannes Pfeifer 2446ab02ba Transform persistent variables of newrat.m into function arguments 2016-06-15 00:30:28 +02:00
Johannes Pfeifer 0c00e28799 Remove objective_function_penalty_base 2016-06-15 00:30:28 +02:00
Johannes Pfeifer 0edd8e2025 Add penalty_hessian.m and penalty_objective_function.m 2016-06-15 00:30:28 +02:00
Johannes Pfeifer 676182f550 Cosmetic fix to dynare_minimize_objective.m 2016-05-22 11:41:54 +02:00
Houtan Bastani bebcfffe04 fix license, file copyright errors 2016-05-04 16:30:16 +02:00
Johannes Pfeifer 0eba93dd71 Add missing input argument in newrat.m to prevent crashes 2015-11-28 14:06:10 +01:00
Marco Ratto 2d59920a70 - systematically check bounds for each parameter during optimization
- make htol adaptive to each parameter to speed up computations
2015-10-13 11:07:01 +02:00
Johannes Pfeifer fd9f2db79d Allow resuming previous run of CMAES
Also enables saving of intermediate results, consistent with the manual.
2015-10-11 19:13:48 +02:00
Johannes Pfeifer e3e34e1c7d Reduce default accuracy criterion in cmaes.m 2015-10-11 18:50:05 +02:00
Johannes Pfeifer df47be4076 Properly set bounds and H0 for CMAES 2015-10-11 18:21:25 +02:00
Michel Juillard 6502c311a0 replaced global timer by local timer 2015-10-10 14:33:30 +02:00
Michel Juillard f7f158f078 Revert "removed global objective_function_penalty_base"
This reverts commit 5ade8d7c6f.
2015-10-09 14:23:32 +02:00
Michel Juillard 818fa47375 Revert "adding new functions for penalty optimization"
This reverts commit b9e535e99e.
2015-10-09 14:23:31 +02:00
Michel Juillard 295eed6118 Revert "adapted dsge-var code for new handling of penalties"
This reverts commit 3966296aca.
2015-10-09 14:23:31 +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 035adeb89e Revert "More fixing related to objective_function_penalty_base"
This reverts commit 1ad8df4635.
2015-10-09 14:23:31 +02:00
Michel Juillard 1a9aa17c9e Revert "More fixings around objective_function"
This reverts commit 05cd51111c.
2015-10-09 14:23:31 +02:00
Michel Juillard 063a548bd3 Revert "changed persitent variables into local ones in mr_hessian.m"
This reverts commit fe077fc710.
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 a7a3bbef89 Revert "reset newratflag = 0 in dynare_minimize_objective"
This reverts commit d4cf3576e4.
2015-10-09 14:23:31 +02:00
Michel Juillard 7202c497de Revert "removed initialization of mr_hessian()"
This reverts commit f48a026d89.
2015-10-09 14:23:31 +02:00
Michel Juillard f48a026d89 removed initialization of mr_hessian() 2015-10-08 20:57:00 +02:00
Michel Juillard d4cf3576e4 reset newratflag = 0 in dynare_minimize_objective 2015-10-08 20:57:00 +02:00
Michel Juillard 3dac7f8809 more fixes for penalty objective function 2015-10-08 20:57:00 +02:00
Michel Juillard fe077fc710 changed persitent variables into local ones in mr_hessian.m 2015-10-08 20:57:00 +02:00
Michel Juillard 05cd51111c More fixings around objective_function 2015-10-08 20:57:00 +02:00
Michel Juillard 1ad8df4635 More fixing related to objective_function_penalty_base 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
Michel Juillard 3966296aca adapted dsge-var code for new handling of penalties 2015-10-08 20:57:00 +02:00
Michel Juillard b9e535e99e adding new functions for penalty optimization 2015-10-08 20:57:00 +02:00
Michel Juillard 5ade8d7c6f removed global objective_function_penalty_base
added penalty_objective_function.m and penalty_hessian.m
2015-10-08 20:57:00 +02:00
Stéphane Adjemian (Charybdis) 489bffdfd8 Fixed option names for mode_compute=6. 2015-10-06 11:34:56 +02:00
Johannes Pfeifer 3bf13dd53b Add functionality for TaRB 2015-06-08 16:44:44 +02:00
Johannes Pfeifer 0769fd1cce Add verbosity and SaveFile options to some optimizers
Also moves additional optimizer-related files to corresponding subfolder
Closes #894
2015-06-08 16:44:44 +02:00
Stéphane Adjemian (Hermes) b53578dc80 Completed description of minimizer_algorithm input argument. 2015-06-01 16:42:02 +02:00
Johannes Pfeifer 05635a4546 Change dynare_minimize_objective.m to use the correct field when selecting user-defined optimizer. 2015-06-01 16:42:02 +02:00
Johannes Pfeifer cb1fc3ec3c Lift unnecessary restriction of not allowing simpsa with infinite bounds
Introduction of options_.huge_number makes this redundant
2015-05-13 20:33:14 +02:00
Stéphane Adjemian (Hermes) f960e7bb68 Merged branch simpsa-inf-fix. 2015-05-07 16:01:43 +02:00
Stéphane Adjemian (Hermes) 6d0dfc2d3f Do not use hard coded value for the finite interval replacing unbounded intervals in simpsa and simulated annealing algorithms. 2015-05-07 15:59:46 +02:00
Stéphane Adjemian f26cec2430 Merge pull request #904 from JohannesPfeifer/mode_compute7_octave
Fix compatibility of mode_compute=7
2015-05-07 15:16:15 +02:00
Johannes Pfeifer 9408319e48 Cosmetic changes related to solvopt.m 2015-04-24 12:31:27 +02:00
Johannes Pfeifer 8eaa645800 Fix compatibility of mode_compute=7
Uses wrapper as for mode_compute=3 to restore to conform to Octave syntax
2015-04-22 11:08:32 +02:00
Johannes Pfeifer c6c5cd8ce8 Allow Inf bounds in simpsa by replacing them with big finite number
Closes #585
2015-04-21 16:26:46 +02:00
Johannes Pfeifer bc6cf0345f Clean up csminwel1.m
Adds documentation and puts calling of numerical gradient to nested function as previously suggested in comment at the bottom of file
2015-04-17 07:05:01 +02:00
Johannes Pfeifer b629d3ca19 Cosmetic changes to csminwel routines
Mostly adds documentation
2015-04-17 07:05:00 +02:00
Johannes Pfeifer 84f0060cbd Fix bug where inverse Hessian from csminwel1.m was taken as Hessian 2015-04-17 07:05:00 +02:00
Stéphane Adjemian (Charybdis) f0770186ca Exhanged mode_compute=2 and mode_compute=102.
These options are for the simulated annealing algorithm, the Mathworks' global optimization
toolbox is mandatory for mode_compute=102. The first option relies on a
free implementation (works also with Octave).
2015-04-15 12:42:08 +02:00
Johannes Pfeifer 49d4643481 Fix copy and paste typo in gmhmaxlik.m 2015-04-06 12:04:11 +02:00
Johannes Pfeifer d1a80acb44 Replace non-available simulated annealing by Matlab's routine
Closes #814
2015-04-06 11:28:32 +02:00
Johannes Pfeifer 39ed3eb3f0 Fix bugs related to allowing mode_compute to be a string
Crashes otherwise
2015-04-06 11:24:42 +02:00
Johannes Pfeifer a81c9da9a2 Add simulated_annealing.m to optimizers
Restores compatibility of mode_compute=102
2015-04-06 11:08:20 +02:00
Johannes Pfeifer 405b1f7368 Add solvopt.m to Dynare optimizers
Restores compatibility of mode_compute=101
2015-04-06 11:05:12 +02:00
Marco Ratto 214dc74723 - Fixed bugs around analytic derivation.
- Fixed test routine, eliminating diffuse filter.
- Trapped incompatibility of diffuse filter with analytic derivation.
2015-04-01 09:00:51 +02:00
Marco Ratto c881cfff17 Fixed issues related to newratflag.
This options relates to alternative numerical hessian computations:

optim=('Hessian',1) is the default dynare numeric Hessian
optim=('Hessian',0) is the outer product gradient
optim=('Hessian',2) is the 'mixed' outer product gradient, where diagonal elements using second order derivation formula,

Both 0 and 2 cases require univariate filters, to ensure using maximum number of individual densities.
2015-03-12 17:24:21 +01:00
Stéphane Adjemian (Charybdis) 392486273e Fixed bug (options_.optim_opt is now initialized as an empty array). 2015-02-26 08:43:30 +01:00
Stéphane Adjemian (Charybdis) 83981125c9 Added missing routine and fixed licence header. 2015-02-24 20:42:19 +01:00
Stéphane Adjemian (Charybdis) 5ef340b8cf Rewrote gmhmaxlik routine (mode_compute==6). 2015-02-24 20:34:35 +01:00
Stéphane Adjemian (Charybdis) fac1d206ab Use new wrapper for optimization algorithms when maximizing the prior density. 2015-02-23 18:26:34 +01:00
Stéphane Adjemian (Charybdis) 0ffb9dd6e2 Changed order of the input arguments in dynare_mimimize_objective.
It is more standard to have the name of the routine (defining the
objective to be minimized) as a first argument.
2015-02-23 14:35:41 +01:00
Stéphane Adjemian (Charybdis) beb7826376 Moved optimization related routines in a common subfolder. 2015-02-23 14:26:07 +01:00