Commit Graph

6898 Commits (2f13d6610d6842adc4a4b448eb45ebd4223967e6)

Author SHA1 Message Date
Sébastien Villemot 44b50d41ae
Fix EOL convention of some files add in 666c9b8003 2019-03-20 16:49:52 +01:00
Willi Mutschler 666c9b8003 Improvement of Identification Toolbox
# Improvements
  * heavily commented (also auxiliary functions) and changed notation to make all the functions (hopefully) more readable and understandable, and hence, easier to debug
  * added identification criteria of Komunjer and Ng (2011, Econometrica) and Qu and Tkachenko (2012, Quantitative Economics)
  * tests can be turned of, i.e. nostrength disables identification strenght, noreducedform disables reduced form criteria, nomoments disables moment criteria, nospectrum disables spectrum criteria, nominimal disables minimal system criteria
  * all kronflags (analytic_derivation_mode) actually work in all functions
  * added functionality when there is correlation in Sigma_e and when one wants to consider corr parameters of exogenous shocks. Previously, (1) corr parameters were not allowed when calling identification and (2) when Sigma_e was not diagonal then the toolbox relied on numerical derviatives only (kronflag=-1). Now it is possible to handle both identification of corr parameters as well as correct analytical derivatives when Sigma_e is not diagonal with all possible kronflag values (-1|-2|0|1)
  * all plots and results are stored in the same folder named identification (previously there was another one with a capital I (Identification))

# Needed changes to preprocessor
  * add as field to options_ident:

    - tex (same as in options_)
    - nostrength (to turn off identification strength)
    - noreducedform (to turn off reduced form criteria)
    - nomoments (to turn off Iskrev's moment criteria)
    - nominimal (to turn off Komunjer and Ng's minimal system criteria)
    - nospectrum (to turn off Qu and Tkachenko's spectrum criteria)

  * add to options_ident:
    - normalize_jacobians (whether to normalize Jacobians or not)
    - grid_nbr (integer used to discretize the interval [-pi;pi]
    - tol_rank (tolerance level to compute ranks)
    - tol_deriv (tolerance level to select nonzero columns in derivatives)
    - tol_sv (tolerance level to select nonzero singular values)
    - ChecksViaSubsets (for debugging purposes, uses different function to find problematic parameter sets)
    - max_dim_subsets_groups (for debugging purposes, used for ChecksViaSubsets)

# Further Suggestions
  * Rename getH.m into getParamsDerivReducedForm.m to make the purpose of this function evident
  * Rename getJJ.m into getIdentificationJacobians.m to make the purpose of this function evident
  * Rename thet2tau.m into IdentificationNumericalObjectiveFunction.m to make the purpose of this function evident
  * dYss, d2Yss, dg1 should also include derivatives wrt to stderr and corr parameters (even though these are just 0), as in other functions (getJJ, dynare_estimation) we always add these manually
  * I am pretty sure the current handling in getH.m of dYss and d2Yss is not correct in the case of nonstationary variables (if g2static is nonempty), I added a warning message, as I am not sure whether this is ever used
  * It would be straigthforward to also include stderr and corr parameters of measurement errors (these is not possible right now). Should I do this?
  * Computations of d2A and d2Om need to be checked, as the differences between computing these with analytically (kronflag=0|1) or numerically kronflag=-1|-2 is really large for the example model of AnSchorfheide.
  * I am not sure how to best normalize Qu and Tkachenko's G matrix. It looks (and in the Gaussian case actually is) very similar to the Ahess matrix. So I used the same normalization rule as for the Ahess matrix. See comments in identification_checks.m. Anyone has a better idea? Please also check the models in test/identification/cgg for differences.
  * parts that are unclear to me are marked by a [@wmutschl] tag
  * the run time of tests/identification/as2007.mod increases from 0h01m27s to 0h03m46s (as Qu and Tkachenko's G matrix takes a little while to compute). One could decrease prior_mc=250 to prior_mc=150.

# New functions
  * commutation: Returns Magnus and Neudecker's commutation matrix that solves k*vec(X)=vec(X')
  * DerivABCD: Derivative of X(p)=A(p)*B(p)*C(p)*D(p) w.r.t to p as in Magnus and Neudecker (1999), p. 175
  * DeriveMinimalState: Derives minimal state space system by checking observability and controllability of all possible combinations of variables
  * duplication: Duplication Matrix (and its Moore Penrose Inverse) as defined by Magnus and Neudecker (2002), p.49, Dp*vec(X) = X
  * identification_checks_via_subsets: finds problematic parameters in a bruteforce fashion: It computes the rank of the Jacobians for all possible parameter combinations, if the rank condition is not fullfilled, these parameter sets are flagged as non-identifiable. For debugging purposes only, as the current identification_checks.m (based on nullspace and multicorrelation coefficients) is much faster

# Detailed changes in getH.m
  * functionality improvements

    - heavily commented (also auxiliary functions) and changed notation of several variables to make this function (hopefully) more readable and understandable, and hence, easier to debug
    - added functionality when Sigma_e is not diagonal and/or when one wants to consider corr parameters of exogenous shocks independent of the value of kronflag
    - fixed function for all values of kronflag, i.e. kronflag=-2|-1|0|1. Previosuly, only kronflag=-2|0 were working, all other kronflags ran into errors (-1 was actually never called , but was dealt with in getJJ.m). I assume kronflag=-1|1 was used only for debugging issues, but still was not working. I fixed this now, the function now works out-of-the-box for all kronflag values.
    - I also outlined and documented what each kronflag does and point to the corresponding equations in Ratto and Iskrev (2012) or Iskrev (2010,Appendix A)
    - the function additionally outputs the Jacobians of B and Sig, which are needed for Qu and Tkachenko (2012) and Komunjer and Ng (2011)'s criteria
    - Moved computation of Jacobian of tau=[ys;vec(A);vech(B * M_.Sigma_e * B')] into getJJ.m to have all Jacobians which are needed for identification in one place. That is, getH.m computes first and second parameter derivatives of (1) reduced-form solution, (2) steady state and (3) Jacobian of dynamic model, whereas getJJ computes and sets up all Jacobians which are used for identification purposes. Therefore, getH might be useful more generally for other purposes than identification. For instance, when doing a GMM estimation, we could use this function to compute analytically the gradient of the moments and provide this to the optimizer used in a GMM context.

  * output arguments

    - renamed `H` (Jacobian wrt parameters of tau=[ys;vec(A);vech(B * M_.Sigma_e * B')] into dTAU, (as H is very confusing, e.g. in other functions it is a Hessian, or Hss and H2ss is also just the steady state. Morevoer, tau is used in Iskrev(2010) for the steady state and reduced-form solution)
    - renamed `Hss` (Jacobian of steady state wrt model parameters only) into `dYss` (as H is very confusing here, see above)
    - renamed `H2ss` (Hessian wrt model parameters only of ys) into d2Yss (as H is very confusing, see above)
    - renamed `gp` into `dg1`, where g1 corresponds to the same variable as in dynamic model files. Note that in params_deriv files gp lacks the contribution of Jacobian wrt steady state and dg1 includes this using the implicit function theorem as outlined in Ratto and Iskrev (2012). Hence, dg1 denotes Jacobian wrt to parameters. It is useful and important to distinguish gp and dg1.
    - added `dB` (Jacobian wrt parameters of solution matrix B) needed for Qu and Tkachenko (2012) as well as Komunjer and Ng (2011)
    - added `dSig` (Jacobian wrt parameters of M_.Sigma_e) needed for Qu and Tkachenko (2012) as well as Komunjer and Ng (2011)

  * input arguments

    - renamed `indx` (index of model parameters to be checked) into `indpmodel`, the p makes it more clear that this is a parameter index
    - renamed `indexo` (index of stderr parameters) into `indpstderr`, the p makes it more clear that this is a parameter index
    - renamed `iv` (index of variables to consider) into `indvar`
    - Renamed `M_` to `M`, `estim_params_` to `estim_params`, `options_` to `options` , `oo_` to `oo` to visualize that these are local and not global variables
    - included `indpcorr` a matrix of indices for corr parameters to be checked

  * misc

    - distinguished clearly between variables in DR or in declaration order without overwriting this in between
    - added which functions call getH.m
    - updated copyright to 2010-2019

# Detailed changes in getJJ.m

  * functionality improvements

    - heavily commented and changed notation of several variables to make this function (hopefully) more readable and understandable, and hence, easier to debug
    - added functionality when Sigma_e is not diagonal and/or when one wants to consider corr parameters of exogenous shocks independent of the value of kronflag
    - tidied the function up, such that it sets up all Jacobians which are needed for identification, i.e. Iskrev's J matrix, Qu and Tkachenko (2012)'s G matrix, Komunjer and Ng (2011)'s D matrix, reduced-form solution (dTAU), linear rational expectation (i.e. Jacobian of steady state and dynamic model equations dLRE).
    - dTAU is now constructed in getJJ instead of in getH (see comment above in getH.m)
    - works for all kronflags, i.e. for numerical derivatives (-1 and -2) as well as for analytical derivatives based on kronecker products (1) or Sylvester Equations (0)
    - added functionality for stderr and corr parameters independent of the value of kronflag (previously this was only possible with numerical derivatives, now it works for all kronflags)
    - finds minimal state vector needed for Komunjer and Ng (2011)'s criteria (function `DeriveMinimalState.m`)
    - moved computations from kronflag=-1 (which were used in case of corr in shock block) into getH.m, so that getJJ now only sets up the Jacobians for LRE, Iskrev's J, Qu and Tkachenko's G and Komunjer and Ng's D, whereas getH computes the Jacobians (wrt parameters) of A, B, Sigma_e, Om, Yss and g1. This should simplify debugging as everything is now in one place and not in two

  * output arguments

    - renamed `JJ` into `J`
    - renamed `H` into `dTAU` (as H is very confusing, e.g. in other functions it is a Hessian, or Hss and H2ss is also just the steady state. Morevoer, tau is used in Iskrev(2010) for the steady state and reduced-form solution)
    - renamed `gp` into `dLRE`, as this corresponds to Jacobian of LRE=[Yss;vec(g1)] where g1 is the Jacobian of the dynamic model equations.
    - renamed `gam` into `MOMENTS`
    - added `G` for Qu and Tkachenko's Jacobian matrix G
    - added `D` for Komunjer and Ng's Jacobian matrix D
    - reordered output arguments

  * input arguments

    - added `options_ident` as input argument; hence, `kronflag`, `nlags` and `useautocorr` are removed from input arguments as these are available in options_ident
    - Renamed `M_` to `M`, `estim_params_` to `estim_params`, `options_` to `options` , `oo_` to `oo` to visualize that these are local and not global variables
    - renamed `indx` (index of model parameters to be checked) into `indpmodel`, the p makes it more clear that this is a parameter index
    - renamed `indexo` (index of stderr parameters) into `indpstderr`, the p makes it more clear that this is a parameter index
    - added `indpcorr` (index of corr parameters)
    - renamed `mf` (index of VAROBS variables) into `indvobs`

  * misc

    - updated copyright to 2010-2019
    - provided some comments on several ways to compute the spectral density matrix
    - added which functions call getJJ.m

# Detailed changes in thet2tau.m

  * functionality improvements

    - heavily commented and changed notation of several variables to make this function (hopefully) more readable and understandable, and hence, easier to debug
    - Added output option to compute spectral density matrix
    - Reorded and added some output option.
    - Instead of Om, `outputflag=0` computes B and Sigma_e, which are needed for Qu and Tkachenko as well as Komunjer and Ng. The Jacobian of Om is then computed in getJJ or getH from Jacobian of B and Sigma_e. Due to some testing with An and Schorfheide model this seems to be more accurate when I compare these with the analytical derivatives. The old behavior (computing Om directly) can be restored by setting `outputflag=-2`.
    - In total this function can now be used to compute numerically Jacobians of Yss, A, B, Sigma_e, Om, g1, autocovariogram and spectral density
    - Clearly distinguished (and commented) on the different outputs of this function.
    - Works for all types of parameters, ie. model, stderr and corr.
    - This function can now also be used when there is no estimated_params block. Previously, there was an error when there was no estimated_params block when calling `set_all_parameters` as this requires some information in `estim_params`. I fixed this by providing a temporary local estim_parms structure with the necessary information on model, stderr and corr parameters. In this way, this can be easily extended to also include stderr and corr parameters of measurement errors.

  * output arguments

    - renamed `tau` into `out`, as this function computes *very* different things (and not only tau) depending on an input flag

  * input arguments

    - renamed `flagmoments` into `outputflag` as this function does not only compute moments but many other things (see above)
    - renamed `indx` (index of model parameters to be checked) into `indpmodel`, the p makes it more clear that this is a parameter index
    - renamed `indexo` (index of stderr parameters) into `indpstderr`, the p makes it more clear that this is a parameter index
    - added `indpcorr` (index of corr parameters)
    - merged `mf` (index of observable variables) and `iv` (index of variables to consider) into a single index `indvar` as there is no need to distinguish between these two indices (they were never used in combination)
    - added `grid_nbr` (number of grid points to compute spectral density)
    - reordered input arguments

  * misc

    - added which functions call thet2tau
    - updated copyright to 2010-2019

# Detailed changes in identification_analysis.m

  * functionality improvements

    - heavily commented and changed notation of several variables to make this function (hopefully) more readable and understandable, and hence, easier to debug
    - renamed `dg1` to `dLRE`, renamed `vecg1` to `lre`, renamed `H` to `dTAU` (see comments above)
    - added option `numzerotolderiv` with default `1.e-8` used for non-zero derivatives
    - added option `numzerotolrank` with default `1.e-10` used for rank computations
    - added theoretical identification analysis based on Komunjer and Ng (2011)'s method, i.e. steady state and observational equivalent spectral densities within a minimal system
    - added theoretical identification analysis based on Qu and Tkachenko (2012)'s method, i.e. steady state and spectral density
    - restructured the code slightly to combined chunks of code that belong together on the one hand, and on the other hand to differentiate between the different criteria
    - added call to new function `identification_checks_via_subsets.m` (see above for the definition of the functionality) to perform identification checks differently as find it more intuitive and (most likely) more precise.

  * input arguments

    - removed `bounds` and `dataset_` as input argument, because these are not needed
    - moved `name_tex` and `tittxt` into `options_ident` as these two inputs are only used in `ident_bruteforce.m` and already set in `dynare_identification.m`

  * output arguments

    - added `ide_spectrum` structure for Qu and Tkachenko's criteria based on the spectral density
    - added `ide_minimal` structure for Komunjer and Ng's criteria based on the minimal state space system
    - reordered output arguments

  * misc

    - added which functions call identification_analysis
    - updated copyright to 2010-2019

# Detailed changes in dynare_identification.m

  * functionality improvements

    - heavily commented and changed notation of several variables to make this function (hopefully) more readable and understandable, and hence, easier to debug
    - included more options (and default values) which can be set by the user, i.e. nostrength, nomoments, nominimal, nospectrum, tex, tol_rank, tol_deriv, tol_sv, grid_nbr, ChecksViaSubsets, max_dim_subsets_group
    - instead of turning warnings globally off, I specified the relevant warnings for matlab and octave, respectively, off
    - improved the warning messages slightly
    - restructured chunks of code with respect to different criteria

  * output arguments

    - renamed arguments: TAU to STO_TAU, GAM to STO_MOMENTS, LRE to STO_LRE, gp to STO_si_dLRE, H to STO_si_dTAU, JJ to STO_si_J
    - added arguments: STO_G and STO_D for the two new criteria

  * misc

    - added which functions call dynare_identification
    - updated copyright to 2010-2019

# Detailed changes in identification_checks.m

  * functionality improvements

    - added checks for Komunjer and Ng's D matrix. Note that the Jacobian D=[D_par D_rest], where D_par depends on the parameters and D_rest does not. So this is taken into account.
    - added checks for Qu and Tkachenko's G matrix. Note that the Jacobian G is a Gram matrix with dimension nparam x nparam, similar to Ahess. So this is taken into account. I am, however, not sure whether this is correct regarding the multicorrelation and pairwise correlation coefficients. Please double check.
    - the rank is now actually computed at the prespecified tolerance level (and not Matlab's default level), so this is in accordance to the further analysis of problematic parameter sets

  * output arguments

    - added the rank to output arguments which is later also displayed
    - replaced the J or JJ part in the variable names with X as this function is used for all sorts of Jacobians, not only Iskrev's J

  * input arguments

    - renamed hess_flag to output_flag (and clearly outlined what each value does)
    - added tol_rank and tol_sv as input arguments, such that the tolerance levels can be changed by the user and not preimplemented in this function
    - added param_nbr which is needed for Komunjer and Ng's D matrix

  * misc

    - updated copyright to 2010-2019

# Detailed changes in ident_bruteforce.m

  * functionality improvements

    - the output directory was set with a capital I, i.e. Identification, whereas in all other functions we rely on lower case i, i.e. identification. I changed this to lower-cases, so everything is now saved in the same folder.
    - changed displayed strings to be more precise with the corresponding papers and notation

  * input arguments

    - renamed `n` to `max_dim_cova_group` to name options the same across functions
    - renamed `pnames_TeX` to `name_tex` to name options the same across functions
    - added `tol_deriv` as tolerance level which can be changed by the user

  * misc

    - Added some comments
    - updated copyright to 2010-2019

# Detailed changes in disp_identification.m

  * functionality improvements

    - this function displays the same output for different Jacobians, hence I put the common code into a for loop. This should simplify changing the output that is printed to the console. Previously the code was simply repeated for the different criteria and only the strings changed.
    - some settings relevant for the computation are now printed as a summary to the console
    - the tolerance level, rank and required rank are always displayed on the command line to see how many problematic sets there are and which tolerance level was used
    - the function is also able to display problematic parameters computed by the new function `identification_checks_via_subsets.m` which is only used for debugging.

  * input arguments

    - added `idespectrum` structure for analysis based on Qu and Tkachenko
    - added `ideminimal` structure for analysis based on Komunjer and Ng
    - added `options_ident` to have all necessary settings in a structure

  * misc

    - Added some comments
    - Removed uncommented code that was not used as this was redundant and probably an artifact of the original programming?!
    - updated copyright to 2010-2019

# Detailed changes in dsge_likelihood.m

  * misc

    - adjusted call of getH due to changes of input and output arguments
    - updated copyright to 2010-2019

# Detailed changes in cosn.m

  * misc

    - commented functionality, input and output arguments of this function
    - updated copyright to 2010-2019
2019-03-20 15:44:54 +00:00
Sébastien Villemot 89a3e94cbf
Use true/false instead of 1/0 for boolean options
This is more elegant, and makes it easier to distinguish them from integer
options.

Also simplify test expressions for these boolean options.
2019-03-19 15:21:16 +01:00
Sébastien Villemot a357003ba7
Octave compatibility fix 2019-03-08 15:59:51 +01:00
Sébastien Villemot 7a2d5d4f0e
1st order approximation: fix for purely-forward models
Closes #1641
2019-03-08 15:54:10 +01:00
Houtan Bastani 6f80abd1f8
gui: various fixes to perfect foresight 2019-03-06 14:11:25 +01:00
Houtan Bastani ce97e51aec
small fixes 2019-03-06 14:01:29 +01:00
Houtan Bastani 67df1d2df1
clarify field names 2019-03-06 14:01:29 +01:00
Houtan Bastani 1abec862e1
gui: if no unanticipated shocks, run simulation and return 2019-03-06 14:01:29 +01:00
Houtan Bastani 16dfc206bf
gui: fix up initval and endval: don’t start at simulation at steady state; initialize endogenous variables as well 2019-03-06 14:01:29 +01:00
Stéphane Adjemian (Charybdis) 580939d70b
Cosmetic, strmatch() -> find(strcmp()).
[skip ci]
2019-02-28 21:23:05 +01:00
Stéphane Adjemian (Charybdis) e1f1fd2de3
Updated header.
We recently added leads on first differences as an auxiliary variable type.

[skip ci]
2019-02-28 10:23:23 +01:00
Stéphane Adjemian (Charybdis) 3400e13c06
Return 0 if the input is not the name of an endogenous variable.
Also removed the call to deprecated strmatch.

[skip ci]
2019-02-28 10:15:08 +01:00
Stéphane Adjemian (Charybdis) 45fbfe4dce
Adapted disp_dr for new auxilary variables.
diffs, lagged diffs and leaded diffs.
2019-02-25 17:18:54 +01:00
Sébastien Villemot d4217c02b0
Provisions for Octave 5 2019-02-25 15:28:24 +01:00
Sébastien Villemot 870d75857c
Simplification for missing nanmean
Handle it as other functions from the Statistics toolbox
2019-02-25 15:28:23 +01:00
Stéphane Adjemian (Charybdis) d81545941e
Cosmetic changes. 2019-02-25 14:54:57 +01:00
Stéphane Adjemian (Charybdis) d6e6b29620
Removed unused global it_. 2019-02-25 14:54:57 +01:00
Stéphane Adjemian (Charybdis) 84cdf6d142
Removed unnecessary square brackets. 2019-02-25 14:54:56 +01:00
Sébastien Villemot 414b0a19b6
Fix error message of makedataset 2019-02-19 18:57:17 +01:00
Sébastien Villemot 1f84bc051d
Under Octave, the "statistics" Forge package is now a requirement
The gamrnd fallback under matlab/missing/stats/ does not work under Octave
because the +gamrnd/ folder is not accessible (it has the same name as the
function, which does not work under Octave).

Instead of fixing this, rather make the statistics toolbox a requirement, since
anyways it is very easy to obtain under Octave.

Accordingly:
- do not try to run the unit tests of matlab/missing/stats/ under Octave
- merge the matlab/missing/stats-matlab/ into matlab/missing/stats/, since this
  directory is now MATLAB-only.

Also:
- move matlab/distributions/+gamrnd/ under matlab/missing/stats/ for
  consistency
- in the manual: remove obsolete link to Octave downloads on the Dynare
  website; update URL of Octave Forge

Closes #1638
2019-02-18 17:41:10 +01:00
Sébastien Villemot 0b1c465b38
Octave compatibility fix: intersect(..., 'stable')
The 'stable' option of intersect(), which keeps the element order of the first
argument, is not available on Octave. Provide a fallback implementation, and
adapt the code.
2019-02-15 18:43:19 +01:00
Houtan Bastani b89e3b2e85
steady: various simplifications
(cherry picked from commit 31ec5ac90abf3ece558b1c7d0fab3e5baea54e02)
2019-02-15 17:11:38 +01:00
Stéphane Adjemia (Scylla) 3cb3b4aee5
Allow models with leads in bgp.write().
Also added tests to check that we are able to identify the Balanced Growth
Path, note that it does not work with tests/bgp/fs2000.mod.
2019-02-15 16:59:26 +01:00
Sébastien Villemot 5011b94aa7
Update dseries submodule 2019-02-14 19:01:56 +01:00
Stéphane Adjemia (Scylla) e9688560f6
Allow initialization with histval block.
[skip ci]
2019-02-11 16:57:20 +01:00
Stéphane Adjemia (Scylla) 219d2bb31b
Updated dseries submodule. 2019-02-10 00:02:14 +01:00
Houtan Bastani fd880a9387
gui: other simplifications/aesthetic changes 2019-02-07 19:02:35 +01:00
Houtan Bastani 922536e4ea
gui: rework transitory shocks 2019-02-07 19:02:35 +01:00
Houtan Bastani aef31e25e8
gui: rework permanent shocks 2019-02-07 19:02:35 +01:00
Houtan Bastani 6b4a9b300c
gui: initialize M_.det_shocks to [] 2019-02-07 19:02:35 +01:00
Houtan Bastani ae5dbdee9f
gui: no need to specify indices 2019-02-07 19:02:34 +01:00
Houtan Bastani a6549397a0
change folder name as `-` prevented recognition of the file 2019-02-05 18:08:34 +01:00
Houtan Bastani 0ad8bfbd16
gui: clean up file 2019-02-05 18:04:09 +01:00
Houtan Bastani ce3be98aa0
gui: potentially return output as JSON string 2019-02-05 17:49:08 +01:00
Houtan Bastani 67a7e43573
gui: pass JSON as string 2019-02-05 17:49:08 +01:00
Houtan Bastani 99060b0f80
gui: small improvements 2019-02-05 17:49:08 +01:00
Sébastien Villemot b2fa7dd3c1 Merge branch 'discret_error_message' into 'master'
discretionary_policy_1.m: check for NaN before checking for non-zero derivatives

See merge request Dynare/dynare!1644
2019-02-05 14:42:33 +00:00
Johannes Pfeifer d5e25c8f43 mr_hessian.m: prevent infinite loop
Make sure hessian is not 0 and add counter.
Fixes #1636
2019-02-05 10:00:54 +01:00
Johannes Pfeifer 8cb99bfe9d discretionary_policy_1.m: check for NaN before checking for non-zero derivatives
Prevents false error message
2019-02-05 09:14:20 +01:00
Stéphane Adjemia (Scylla) 5c75c30104
Fixed matlab warning.
[skip ci]
2019-02-04 16:26:48 +01:00
Stéphane Adjemian 768555b523 Merge branch 'fixes_4.6' into 'master'
Fixes 4.6

See merge request Dynare/dynare!1641
2019-02-04 10:19:05 +00:00
Stéphane Adjemia (Scylla) b7c60ddf59
Added a routine for writing the problem to be solved to compute the BGP of a model.
- Only works with backward models.
 - Probably doesn't work if the model includes auxiliary variables.
 - Assumes that the trends are multiplicative.
2019-02-04 10:04:33 +01:00
Houtan Bastani 18b006d46f
fix comments 2019-02-01 16:45:13 +01:00
Houtan Bastani f29d974410
add copyright and fix spacing 2019-02-01 16:42:32 +01:00
Sumudu Kankanamge 31d59d6be3 -add file to read JSON gui perfect-foresight 2019-02-01 14:54:52 +01:00
Houtan Bastani a68f3fc082
remove unused output from functions 2019-01-31 16:11:35 +01:00
Houtan Bastani d32de4deae
preprocessor, reporting: submodule update 2019-01-28 15:47:40 +01:00
Sébastien Villemot cfc81bc5ff
Update preprocessor and dseries submodules 2019-01-28 15:16:37 +01:00
Houtan Bastani d15c998804
reporting: submodule update 2019-01-25 18:02:16 +01:00
Stéphane Adjemia (Scylla) 3690dc2e6f
Updated dseries submodule. 2019-01-23 17:26:08 +01:00
Stéphane Adjemia (Scylla) 2482eafdb7
Fixed dseries class initialization in Octave. 2019-01-23 15:49:55 +01:00
Sébastien Villemot f484942154
Update dseries submodule 2019-01-22 18:10:16 +01:00
Marco Ratto a798889fe1 fix crashes of the expand interactive mode of shock decomp plots, requiring to store and use more info on the plot itself (manual cherry-pick from 2914805e0803165eb324081483b6e85e288c3ce0) 2019-01-17 11:37:41 +01:00
Marco Ratto aeceafbec2 fixed error in formula of annualized steady state
(cherry picked from commit 696800b277dadd164244771ccfce8e39f1146472)
2019-01-17 10:57:39 +01:00
Marco Ratto 6e033a800b trap possible cases where the option is type dates (manual cherry pick from commit 392ee4ae8a200a82003acd0c9b70c47c542f6b32) 2019-01-17 10:56:12 +01:00
Marco Ratto 47900a5909 trap slice sampler when doing mh_recover
(cherry picked from commit 4ba9c9296f1939fa14b1401886d9e9b86541e5e3)
2019-01-17 09:50:07 +00:00
Marco Ratto beb165c002 bug fix with definition of steady state of plotted var when realtime is not zero
(manual cherry picked from commit 5badd34380f20e511e91b455482931c107a8f73b)
2019-01-17 10:47:39 +01:00
Marco Ratto 8713e46c4e fixed bug with non-increasing time declarations of moment restrictions. Modified example to get more sensible graph of ACF.
(cherry picked from commit b0e7c47a000a679420970f1d05e4f2ed7d60764c)
2019-01-17 09:26:37 +00:00
Houtan Bastani c94401ea66
remove spurious semicolon 2019-01-02 18:00:21 +01:00
Houtan Bastani 42ad1a85ba
remove unnecessary find in statement 2019-01-02 17:56:45 +01:00
Houtan Bastani 24eb3bcb34
remove unnecessary brackets from strings 2019-01-02 17:56:35 +01:00
Stéphane Adjemia (Scylla) 6d5f86b464
Updated dseries submodule (fix for macOS).
X13 binary was not detected.

[ci-skip]
2018-12-27 10:59:38 +01:00
Stéphane Adjemian (Hermes) c7988c0717
Updated dseries submodule (moved dates class into dseries submodule). 2018-12-24 10:37:26 +01:00
Sébastien Villemot f546eb67ed
Update preprocessor and dseries submodules 2018-12-20 17:10:22 +01:00
Sébastien Villemot f363c3da6b
Restore behavior of 'nolog' option
The option had been broken by 0e77815ece.

This option cannot be entirely handled at the preprocessor level, since the
main log file is created at the MATLAB/Octave level. Handle it via a dedicated
regular expression.
2018-12-20 17:10:22 +01:00
Stéphane Adjemian (Hermes) 14305851a9
Updated dates submodule. 2018-12-19 17:24:00 +01:00
Sébastien Villemot 0e77815ece
Options list at the top of the mod-file now parsed by the preprocessor
Closes #1630
2018-12-19 16:15:48 +01:00
Johannes Pfeifer 5db86aaf7f Use global instead of local variable 2018-12-18 12:44:08 +01:00
Sébastien Villemot fc74dded42
Increase tolerance in quantile.m unit test
The failure appeared because of (seemingly unrelated) changes in gamrnd, which
have modified the random seed when entering this test.
2018-12-17 12:38:41 +01:00
Stéphane Adjemia (Scylla) f2b5a909f3
Update dseries submodule. 2018-12-17 10:50:39 +01:00
Johannes Pfeifer 6460a3a1e5
Document prior moments(distribution) option 2018-12-15 19:23:06 +01:00
Johannes Pfeifer 68d3852cbf
Correctly update covariance matrix of exogenous shocks during prior simulation 2018-12-15 19:23:06 +01:00
Johannes Pfeifer b333f6bf2b
Correctly update covariance matrix of shocks for posterior draws 2018-12-15 19:23:05 +01:00
Johannes Pfeifer 2ba9a8e10b
Prevent inconsistent specification in estim_params-block
Also documents the behavior
2018-12-15 18:49:53 +01:00
Johannes Pfeifer 1880a34d2f
Provide error message if unsupported endogenous prior restriction is used 2018-12-15 18:44:53 +01:00
Johannes Pfeifer fec7455555
Make prior.m function account for endogenous prior restrictions 2018-12-15 18:44:53 +01:00
Stéphane Adjemia (Scylla) d5bdc19e19
Added unit tests for gamrnd algorithms.
Only tests first order moemnt, second order moment and Cumulative Distribution
Function (should also add some tests for independance).
2018-12-15 16:48:25 +01:00
Stéphane Adjemia (Scylla) e32b87d4b3
Streamlined gamrnd routine.
Give access to all the implemented algorithms through the third argument. The
last argument is a structure with two fields `large` and `small`. The first
field specifies the algorithm to be used for α>1 while the second field defines
the algorithm to be used for α ∈ (0,1).

Default algorithms are:

 - Cheng (1977) for α>1,
 - Johnk (1964)  α ∈ (0,1).
2018-12-15 16:48:24 +01:00
Stéphane Adjemia (Scylla) d628b078ab
Fixed typo. 2018-12-15 16:48:24 +01:00
Stéphane Adjemia (Scylla) 4206cabe52
Streamlined gamrnd algorithms. 2018-12-15 16:48:24 +01:00
Stéphane Adjemia (Scylla) 8ac4860150
Fixed Weibull rejection algorithm.
The description given by Devroye (1986) is clearly wrong, this implementation
is based on the original paper Väduva (Series Statistics, 1977).
2018-12-15 16:48:24 +01:00
Stéphane Adjemia (Scylla) 79ad4e952b
Bug fixes in Cheng (1977)'s gamrnd algorithm.
- Definition of Y was wrong (error in Devroye's book).
 - Definition of X was wrong.

Also simplified the code w.r.t. update of the vector of indices.
2018-12-15 16:48:24 +01:00
Stéphane Adjemia (Scylla) 162c8ab7d0
Set default value for the second hyperparameter. 2018-12-15 16:48:24 +01:00
Stéphane Adjemia (Scylla) 426c63a735
Created namespace for gamrnd routines.
Also fixed implementation of Jonk's algorithm.
2018-12-15 16:48:23 +01:00
Sébastien Villemot 552c40cfc4
Update dseries and m-unit-tests submodules 2018-12-12 14:48:50 +01:00
Sébastien Villemot 139e922c0f
No longer downoald x13 binary within CI
The binary is now picked from the Debian package.
2018-12-12 11:06:20 +01:00
Sébastien Villemot d2c10f216b
Update dseries submodule 2018-12-12 10:36:17 +01:00
Stéphane Adjemian (Hermes) 8f5ba227d1
Updated dseries submodule. 2018-12-11 19:38:29 +01:00
Stéphane Adjemian (Hermes) 89a8331eb6
Updated dseries submodule. 2018-12-10 23:00:52 +01:00
Sébastien Villemot efec664667
Preprocessor update + corresponding change in parameters derivatives
In the *_params_derivs.m files, in the "hp" matrix, the preprocessor now fully
outputs the symmetric elements, so getH needs to be adapted.

By the way, also clean up code for "rpp" and "gpp", were full symmetric
elements were also already present (and therefore do not need to be duplicated
in getH).
2018-11-22 17:53:39 +01:00
Sébastien Villemot 635aa65665 Merge branch 'ident_plot_bug' into 'master'
identification_analysis.m: Fix bug introduced in 60d95b65f2

See merge request Dynare/dynare!1637
2018-11-16 16:21:14 +00:00
Johannes Pfeifer b615d2d795 identification_analysis.m: Fix bug introduced in 60d95b65f2
We already used a variable called offset
2018-11-16 16:20:27 +01:00
Johannes Pfeifer 4ecbcbb136 evaluate_steady_state_file.m: Remove redundant setting of auxiliary variables
The original problems seems to have been fixed by #1133

Essentially reverts 3c7e60b744 and closes #1175
2018-11-16 14:12:55 +01:00
Johannes Pfeifer f947a31b80 evaluate_steady_state_file.m: fix two bugs in debugging mode 2018-11-16 09:24:43 +00:00
Johannes Pfeifer 60d95b65f2
Identification strength: make plotting consistent
1. Rely on actually computed standard deviations in bayestopt_ instead of potentially unset estim_params_
2. Remove arbitrary normalizations/omitted normalization in case of division by 0 in normalization
3. Distinguish between 0 identification and division by 0 due to normalization in plots

(cherry picked from commit 7341e21a381850c47fbed018bf6a7acdda4fa92e)
2018-11-16 10:17:30 +01:00
Sébastien Villemot ad451ad224 Merge branch 'prior_dens_info' into 'master'
Deal with info returned by priordens being a vector

See merge request Dynare/dynare!1629
2018-11-15 09:39:11 +00:00
Sébastien Villemot 513f3ec68e Merge branch 'evaluate_steady_state' into 'master'
evaluate_steady_state.m: consistently use params

Closes #1627

See merge request Dynare/dynare!1630
2018-11-15 09:22:09 +00:00
Johannes Pfeifer 30361ccb49 GSA scatter plots: Correctly pass LaTeX-names to figure 2018-11-14 18:37:54 +01:00
Johannes Pfeifer 022913579a map_calibration.m: Fix bug that prevented display of restrictions 2018-11-14 18:37:05 +01:00
Johannes Pfeifer c16c2fb894 evaluate_steady_state.m: consistently use params
Prevents erroneously relying on stale parameters from M.params (thanks to Tom Holden); closes #1627
2018-11-14 16:01:55 +01:00
Johannes Pfeifer 09a166f4e7 Revert "adding missing any()"
This reverts commit a5b97a28a0.
2018-11-14 15:04:27 +01:00
Johannes Pfeifer c1b0bb5ee3 initial_estimation_checks.m: Turn vector info into scalar
Related to a5b97a28a0 that needs to be reverted
2018-11-14 15:02:15 +01:00
Sébastien Villemot 18faa9733c
Further updates related to minimal MATLAB version bump 2018-11-13 18:29:20 +01:00
Sébastien Villemot 7a75872f72
Modernization: use tilde (~) syntax for ignored output arguments 2018-11-13 18:02:09 +01:00
Sébastien Villemot ce49cd95df
Add missing iscolumn and ismatrix for MATLAB < R2010b
Also fix a bug in isrow (it was not checking the rank of the array).
2018-11-13 16:59:27 +01:00
Sébastien Villemot 736d43c4e6
Bump minimal MATLAB version requirement to 7.9 (R2009b) 2018-11-13 15:59:16 +01:00
Sébastien Villemot 096936be9c
The preprocessor now compiles the MEX when use_dll is specified
Update documentation accordingly (except on macOS where the solution has not
yet been implemented).

Also include MinGW in the Windows installer.
2018-10-29 14:41:34 +01:00
Sébastien Villemot cc4183d3a5
Fix for recent MATLABs under Windows 2018-10-26 15:02:26 +02:00
Sébastien Villemot 8cb51e26e6
options_.instruments is now a cell array
This fixes crashes under Octave (while MATLAB seems to accept array-indexing
with cell arrays).
2018-10-25 15:01:53 +02:00
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
Michel Juillard 3ad654b9b8
Allowing for different number of periods in conditional_forecast_path.
Updated preprocessor submodule.
2018-09-27 18:58:24 +02:00
Stéphane Adjemian(Charybdis) 07141a8681
Various optimizations. 2018-09-26 22:51:05 +02:00
Stéphane Adjemian(Charybdis) 7c83ba7ea7
Fixed documentation header. 2018-09-26 22:51:05 +02:00
Stéphane Adjemian(Charybdis) 2cf6ccdaa5 Updated dseries submodule. 2018-09-18 17:37:37 +02:00
Stéphane Adjemian(Charybdis) 3e6e448134 Updated dates and dseries submodules. 2018-09-14 23:13:13 +02:00
Stéphane Adjemian(Charybdis) 99aadf7d1a Updated m-unit-tests submodule. 2018-09-14 15:37:30 +02:00
Sébastien Villemot 51416bf2ae Always use "isoctave" for testing Octave context 2018-09-07 17:22:08 +02:00
Stéphane Adjemian(Charybdis) 86445832fd Added routine returning true iff a variable is an auxiliary variable. 2018-08-10 14:52:22 +02:00
Sébastien Villemot 13526bcbce Octave now has the same graphical waitbar as MATLAB (for MCMC progress) 2018-08-02 15:33:18 +02:00
Sébastien Villemot d03cc56587 solve_algo=7 and stack_solve_algo=2 are now allowed under Octave
The gmres() function has been implemented (actually since Octave 3.4.1!).
2018-08-02 15:20:39 +02:00
Sébastien Villemot fda021855c Fix forecast command with deterministic exogenous and linear option
Closes #1608
2018-08-02 14:20:51 +02:00
Stéphane Adjemian(Charybdis) 6d79ca4f58 Return 0 if input is empty. 2018-07-28 10:48:43 +02:00
Michel Juillard a5b97a28a0 adding missing any() 2018-07-27 20:24:13 +02:00
Johannes Pfeifer 433a68169d TaRB: fix bug where incorrect last posterior was returned if last draw was rejected 2018-07-24 17:07:29 +02:00
Stéphane Adjemian(Charybdis) 157641ac91 Updated particles submodule. 2018-07-24 14:12:53 +02:00
Stéphane Adjemian(Charybdis) cffff796f1 Added routine to test if an auxiliary variable is a lag of a variable. 2018-07-23 10:41:34 +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
Stéphane Adjemian(Charybdis) 5361325ba9 Fixed unit test (false negative in Octave testsuite). 2018-07-18 12:18:43 +02:00
Stéphane Adjemian(Charybdis) ac3af2052a Remove test from Octave testsuite.
The function is only called by Matlab if the statistics toolbox is not available.
2018-07-18 11:14:47 +02:00
Stéphane Adjemian(Charybdis) 064b270795 Updated dseries submodule (Octave testsuite fixes). 2018-07-17 18:41:25 +02:00
Stéphane Adjemian(Charybdis) 8b0d673458 Cosmetic change (Octave unit test).
(cherry picked from commit 48ee13646a072d0ad9466f901f2d048594717d71)
2018-07-17 17:44:42 +02:00
Stéphane Adjemian(Charybdis) 0d27bd8dea Fixed unit tests on Weibull pdf (Octave testsuite).
(cherry picked from commit bc962a91c0749e6c9f108c867acde134e6bb80fc)
2018-07-17 17:44:15 +02:00
Stéphane Adjemian(Charybdis) 4154817acc Added missin semicolons.
(cherry picked from commit 4a0b1c2e93d23c85a7874b1bbea85819f56739f5)
2018-07-17 17:43:58 +02:00
Stéphane Adjemian(Charybdis) 9d01b17e03 Removed one unit test from Octave testsuite. 2018-07-17 11:30:20 +02:00
Stéphane Adjemian(Charybdis) 0074561182 Updated dseries submodule (unit test fix). 2018-07-14 11:54:01 +02:00
Sébastien Villemot 7685a0ccda Octave compatibility fix
Now that the set_auxiliary_variables file is in a "+" directory, Octave fails
at str2func if the file does not exist.
2018-07-13 17:22:27 +02:00
Stéphane Adjemian(Charybdis) 30c41733bc Updated dseries submodule. 2018-07-12 19:38:15 +02:00
Stéphane Adjemian(Charybdis) ebad639546 Bug fix (parenthesis mismatch). 2018-07-11 11:03:15 +02:00
Stéphane Adjemian(Charybdis) f0a5a2aac9 Adapted codes to the json files new location. 2018-07-10 20:17:43 +02:00
Sébastien Villemot 3863a74319 Fix bug introduced in 13ce91861 in graph decomposition under MATLAB 2018-07-04 12:33:51 +02:00
Sébastien Villemot 13ce918612 Octave compatibility fixes in graph decomposition 2018-07-02 16:06:11 +02:00
Sébastien Villemot b2c554623f Various fixes related to the new layout of generated files 2018-06-28 18:14:40 +02:00
Sébastien Villemot 87bb0c6997 Fix mistake in previous commit w.r.t. steadystate file 2018-06-27 17:15:13 +02:00
Sébastien Villemot a1b8bd39b2 Move the location of various generated files on the filesystem
- M and MEX files are now under +${MODELNAME}/
- bytecode, C source and JSON now under ${MODELNAME}/model/
2018-06-27 17:03:39 +02:00
Stéphane Adjemian(Charybdis) 93bb326cc2 Added routines for dealing with extraction of a single equation from JSON output. 2018-06-21 18:46:38 +02:00
Stéphane Adjemian(Charybdis) e3727db6a4 Updated particles submodule. 2018-06-14 11:50:55 +02:00
Stéphane Adjemian(Charybdis) eacb6eb498 Updated dseries submodule (bug fix). 2018-06-09 18:34:09 +02:00
Johannes Pfeifer 6607d3907a disp_identification.m: Account for jweak_pair generally being a matrix 2018-06-09 08:59:43 +02:00
Johannes Pfeifer b8094a2e84 Correct display of identification message if parameters are only collinear
Closes #1614
2018-06-07 19:29:24 +02:00
Sébastien Villemot 79484607a7 Fix various issues with stack_solve_algo=7 and lags on exogenous > 1
Complete the fix started in 8913791ff0.

Change the test case to prevent regressions.
2018-06-07 16:14:02 +02:00
Johannes Pfeifer 09ac7f6249 identification_analysis.m: make sure that increase in options_.ar is passed back via options_ident 2018-06-07 13:17:42 +02:00
Michel Juillard 8913791ff0 fixes bug for solve_algo = 10 and lags on exogenous variables 2018-06-07 12:21:58 +02:00
Sébastien Villemot a71e0ebee4 Add a compile-time check for MATLAB version, as we already do for Octave 2018-06-06 14:31:25 +02:00
Sébastien Villemot 88e89dfb21 Refactor test for Octave version
Distinguish between a minimal version required (from a source code perspective,
applicable on all platforms) and an exact version requirement (from a binary
package perspective, in practice used only for our Windows package).
2018-06-06 14:27:53 +02:00
Sébastien Villemot 57f6183d2f Move some functions out of missing/stats/, since they are only needed for MATLAB 2018-06-06 13:02:42 +02:00
Sébastien Villemot 9211d902a0 Update dseries 2018-06-05 19:56:42 +02:00
Sébastien Villemot 933ed45ead Octave 4.4 no longer includes statistics functions
Those have been moved to the statistics package. If that package is not there,
use a fallback.
2018-06-05 19:53:06 +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
Sébastien Villemot 0b2828af8a Fix typo 2018-06-05 17:27:22 +02:00
Sébastien Villemot e8ade6a187 Fix display of Dynare command arguments 2018-06-05 17:27:03 +02:00
Sébastien Villemot 8cadb2ac59 Silence Octave:classdef-to-struct warning 2018-06-05 17:24:52 +02:00
Sébastien Villemot c7a57e5906 corrcoef is included in Octave 4.4 2018-06-05 17:14:41 +02:00
Sébastien Villemot 7b546ba696 Compatibility fix for MATLAB < R2010b (7.11) 2018-05-30 17:44:46 +02:00
Stéphane Adjemian(Charybdis) 474556e0ca Added routines related to auxiliary variables. 2018-05-29 15:44:41 +02:00
Houtan Bastani d5862f93bf add comment explaining changes in 4e79d12e53 2018-05-28 14:32:11 +02:00
Houtan Bastani 4e79d12e53 move declaration of default values from global_initialization to a separate function 2018-05-28 14:07:32 +02:00
Houtan Bastani 97af53b82d fix mkdir call in global_initialization 2018-05-28 14:07:32 +02:00
Sébastien Villemot 02084ce310 Remove qzcomplex Oct-file
It's actually not needed. The QZ complex decomposition can be obtained in
Octave on real matrices by casting them to the complex type.
2018-05-17 12:11:15 +02:00
Stéphane Adjemian(Charybdis) ac5fcbe231 Use new approach for setting aux variables in model inversion routine.
(cherry picked from commit f1ed81aae2)
2018-05-16 17:27:51 +02:00
Sébastien Villemot 14fbfa028b Move qzdiv.m and qzswitch.m to partial_information/ subdir
They are no longer used in the main codebase.
2018-05-16 17:12:48 +02:00
Sébastien Villemot 59ad26a3c9 Improve fallback code when mjdgges DLL is absent
The new code relies on qz(..., 'real'), ordqz and ordeig, and returns a real
decomposition. The previous version was using Sims' qzdiv and returned a
complex decomposition.

As a consequence, we can drop options_.qzdiv, which was used to detect when
imaginary parts had to be dropped.

This code does not work on Octave for the time being, but this is acceptable
since it is only a fallback.
2018-05-16 17:12:48 +02:00
Sébastien Villemot c180777818 Move check about Octave version to the same place as check for MATLAB 2018-05-16 17:12:48 +02:00
Sébastien Villemot 42b82087d5 Remove codepaths for unsupported Octave versions 2018-05-16 17:12:48 +02:00
Stéphane Adjemian(Charybdis) afbac2e8eb Added strsplit routine in missing. 2018-05-16 16:41:43 +02:00
Stéphane Adjemian(Charybdis) f53be721c1 Added new option mh_tune_jscale.
Works only with the Random Walk Metropolis Hastings algorithm.

Closes #1598
2018-05-16 16:37:22 +02:00
Sébastien Villemot e2c2f2d966 Remove fallbacks for ilu, linsolve and ordschur under Octave
These functions are all included in Octave 4.2.
2018-05-16 10:48:44 +02:00
Sébastien Villemot 473b2f59ef Provisions for MATLAB 9.4 (R2018a)
Take into account the API break in the MEX interface (new interleaved complex API).
But do not split MEX directories on MacOS X for the time being.
2018-05-14 15:16:03 +02:00
Stéphane Adjemian(Charybdis) 3fe758c2b2 Cosmetic change in doc headers. 2018-05-05 21:58:52 +02:00
Stéphane Adjemian(Charybdis) 8f53be2a6f Impose the consistency of the count of unstable eigenvalues...
... Between stoch_simul and check. Added sdim (the number of stable
eigenvalues) and edim (the complementary number of explosive eigenvalues) in dr
structure. The test is always done with sdim (or edim) returned by mjdgges.
2018-05-05 19:53:13 +02:00
Stéphane Adjemian(Charybdis) fa15c3dbc7 Updated dates submodule. Closes #1601. 2018-05-05 14:56:56 +02:00
Stéphane Adjemian(Charybdis) fa67aeb7a6 Fixes issue #1607. 2018-05-05 10:29:37 +02:00
Stéphane Adjemian(Charybdis) 891e3ba7be Cosmetic change in doc headers. 2018-05-05 10:24:01 +02:00
Stéphane Adjemian(Charybdis) cee6dda44d Fixed check for octave version.
We should not issue a warning if version() is greater than supported_octave_version().
2018-03-24 22:48:45 +01:00
Stéphane Adjemian(Charybdis) aa4cabcbeb Fixed bug (simulation of backward models).
Was crashing with three inputs (last one is for innovations) when the first input was an empty array.
2018-03-12 09:45:15 +01:00
Stéphane Adjemian(Charybdis) 8263bbba8a Use new mechanism for setting auxiliary time series. 2018-03-12 09:34:56 +01:00
Stéphane Adjemian(Charybdis) 86be2cb998 Fixed typo. 2018-03-02 10:26:48 +01:00
Stéphane Adjemian(Charybdis) 857a3842e3 Cosmetic change.
Changed M_.max_*_orig into M_.orig_maximum_* for consistency with other fields.
2018-03-01 10:13:44 +01:00
Stéphane Adjemian(Charybdis) b84e3054e3 Various fixes for backward models routines. 2018-03-01 09:29:48 +01:00
Houtan Bastani 667bfb6948 dseries: submodule update 2018-02-20 11:03:12 +01:00
Stéphane Adjemian (Charybdis) fa598b751b Fixed prior command with optimize.
Penalty was not passed correctly.
2018-02-17 21:00:23 +01:00
Houtan Bastani d54cdbf0ac fix output when no arguments are passed to dynare 2018-02-16 17:31:53 +01:00
Houtan Bastani 5d439bcb18 submodule update: preprocessor and add dynare version to dynare.m 2018-02-16 17:31:47 +01:00
Stéphane Adjemian (Charybdis) 350b8fb529 Updated dseries submodule (prevent initialization crash if unable to install X13 binary). 2018-02-10 12:24:20 +01:00
Johannes Pfeifer 224ccb7bab sim1_linear.m: change hard-coded tolerance to option
The tolerance for the steady state check should depend on the accuracy of the steady state computation
2018-02-07 18:42:12 +01:00
Stéphane Adjemian (Charybdis) 4adebd4419 Fixed copyright header. 2018-02-01 22:51:23 +01:00
Marco Ratto cf5f556f4a Do not re-set auxiliary variables if they are already available in the input info [i.e. smoothed variables].
This makes the function robust when one provides info using UpdatedVariables, instead, for faster realtime exercises.
2018-02-01 19:17:59 +01:00
Marco Ratto a7bc6414f5 fixed bug to logical if condition 2018-02-01 19:14:13 +01:00
Johannes Pfeifer 127a543b65 prior bounds: make sure that lower and upper bounds only affect mode-finding
99dbc8c74d introduced a bug by disabling the resetting of the prior bounds used for the MCMC. The manual clearly states the bounds are only operational during mode-finding, but not during MCMC (and therefore prior sampling)
2018-02-01 10:16:47 +01:00
Stéphane Adjemian (Charybdis) fe7da22853 Fixed copyright header. 2018-02-01 10:05:03 +01:00
Johannes Pfeifer da48dea37c identification_analysis.m: remove transformation to char when cell is expected 2018-02-01 09:58:31 +01:00
Stéphane Adjemian (Charybdis) 410f8bd07c Cosmetic change and fixed copyright header. 2018-02-01 09:53:23 +01:00
Johannes Pfeifer 3679afe849 Discretion: Added catch for infinities
Comment: A user provided a file in which the Sylvester equation solved using doubling can evaluate to inf. When Doubling fails, one can try the Hessenberg-Schur algorithm.
2018-02-01 09:53:23 +01:00
Marco Ratto 13a30a0a4e add a new case for ratios between endogenous variables, like trade balance to GDP. 2018-01-27 10:37:31 +01:00
Marco Ratto b3bcd2c8b0 bug fixes: wrong name of field fig_name and properly using user defined fig_name 2018-01-27 10:37:31 +01:00
Marco Ratto 5e7256daeb Bug fixes after changes in the options structures for shock decompositions. 2018-01-27 10:37:31 +01:00
Johannes Pfeifer cbc0cdfef8 Fix bug in multivariate Kalman smoother when observations are missing
The singularity branch did not correctly account for the switching number of observables
2018-01-26 23:13:45 +01:00
Johannes Pfeifer 8e73289fe5 read_variables.m: consistently account for variables being stored as cell array 2018-01-26 12:29:03 +01:00
Stéphane Adjemian (Charybdis) 74fc7cc078 Copyright header fix. 2018-01-26 12:01:07 +01:00
Stéphane Adjemian (Charybdis) c4f1958690 Cosmetic changes + Copyright headers fixes. 2018-01-26 12:00:27 +01:00
Johannes Pfeifer b933a440bf Add debugging info to Kalman filter routines 2018-01-26 11:47:39 +01:00
Marco Ratto b9741548b0 As we do for the smoother, check the rank of Pinf only for the observables (i.e. using Z*Pinf*Z') 2018-01-26 11:47:39 +01:00
Marco Ratto cf8213f7a0 fix to the Kitigawa transformation that allows to reduce the computing time of the likelihood in large models, with a lot of static variables, by 30-50%.
This fixes the bug in e97e5c3407 that led to 2f9dc09285
It is tested and completely fixes the issue highlighted in #1312.
2018-01-26 11:47:39 +01:00
Johannes Pfeifer 60efdd49bb disp_steady_state.m: Use character array to make sure alignment in display of steady state is right 2018-01-26 11:45:54 +01:00
Johannes Pfeifer a418a04249 model_diagnostics.m: bugfix after transition to cell arrays
disp does not work with cell
2018-01-26 11:45:54 +01:00
Johannes Pfeifer 9fadf19bc2 Add -accepteula flag to psexec call
Prevents freezing if dialog has not been opened before
2018-01-25 11:45:41 +01:00
Johannes Pfeifer ec3fb76aa7 posterior_sampler: Fix naming error that crashes parallel estimation 2018-01-25 11:45:41 +01:00
Stéphane Adjemian (Charybdis) 2647f258d4 Cosmetic changes (code factorization). 2018-01-25 11:34:54 +01:00
Johannes Pfeifer 4c7960fbdc AnalyseComputationalEnvironment.m: print out command that caused error as well as system response 2018-01-25 10:49:58 +01:00
Johannes Pfeifer ef797eec0f mode_check.m: account for case where bounds are infinite and not plots are shown 2018-01-24 23:21:10 +01:00
Stéphane Adjemian (Charybdis) c7a860e6b6 Fixed bug in interactive choice of the endogenous variables.
Bug introduced when we replaced the character arrays by cell of row character
arrays. Closes #1577.
2018-01-24 18:22:45 +01:00
Johannes Pfeifer 28b499af3b Filter out cases where stochastic_solvers.m is called at higher order without k_order_solver 2018-01-24 17:50:42 +01:00
Stéphane Adjemian (Charybdis) ad0bff3771 Added comments. 2018-01-24 17:24:21 +01:00
Johannes Pfeifer 99e4cb6e7e evaluate_steady_state_file.m: Condition call to str2func on function being present
Workaround for Octave bug https://savannah.gnu.org/bugs/?52568
2018-01-24 17:21:16 +01:00
Stéphane Adjemian (Charybdis) 76d05aea57 Merge branch 'pr#1583' 2018-01-24 16:38:37 +01:00
Stéphane Adjemian (Charybdis) e6cc7d6a7f Rewrote header. 2018-01-24 15:59:47 +01:00
Stéphane Adjemian (Charybdis) 145f1e7b1c Streamlined code by removing unnecessary conditions. 2018-01-24 15:59:04 +01:00
Johannes Pfeifer 92549e48b1 Make demean.m use nanmean
Otherwise estimation with missing observations and prefilter option will crash
2018-01-20 08:26:00 +01:00
Stéphane Adjemian(Charybdis) 055ffb0b9e Added second input argument to missing/nanmean routine.
This additional argument is optional and can be used to specify along which
dimension the mean has to be computed.

Fixes the bug introduced in b4204f8b9e for those
who do not have the statistics toolbox.
2018-01-13 00:10:50 +01:00
Marco Ratto ec35210e06 - bug fix for when NO parameter is detected below pvalue threshold
- fix to the case when no plot is done when there are too few behavioral/non-behavioral runs [as it already happens when one of the two sets is empty]
- added more explicit messages on screen
2018-01-12 10:04:57 +01:00
Johannes Pfeifer b4204f8b9e Make sure that mean and covariance of data are correctly computed with only one observation
Need to always compute mean along first dimension

(cherry picked from commit 2d371b1997f5fa07fcbbf47e5923d7817d07c6b9)
2018-01-12 09:48:14 +01:00
Stéphane Adjemian (Charybdis) f4867d30b1 Cosmetic changes and fixed cell/chararray issues. 2018-01-10 17:14:59 +01:00
Marco Ratto f4b25efc5a bug fix with initial_date for conditional shock decomposition 2018-01-10 15:12:39 +01:00
Marco Ratto a63bc5b7f0 fixed bugs with dating of AOA decompositions 2018-01-10 15:12:39 +01:00
Marco Ratto 3e589d2440 Bug fixes in
1) definition of annualized_realtime_conditional_shock_decomposition
2) making plots when vintage is not Q4. The latter required some restructuring and factorization of the code
2018-01-10 15:12:39 +01:00
Marco Ratto 6c5fc8d0fe new options fast_realtime, that runs the smoother only twice: for the last in-sample and for the last out-of-sample data points. 2018-01-10 15:10:55 +01:00
Marco Ratto fd8a69d97b bug fix in setting realtime_conditional_shock_decomposition field 2018-01-10 15:06:13 +01:00
Marco Ratto a04b2876f2 bug fixes:
- set xind_tick for very short time intervals in plots
- provisions for change in behavior of matlab bar function since R2017b
2018-01-10 15:06:13 +01:00
Marco Ratto 5d6b688f38 Bug fixes:
- wrong output list of evaluate_smoother (M missing_)
- realtime option must be  forced to be zero
- wrong name of option fig_names
2018-01-10 15:06:13 +01:00
Marco Ratto 45166aba81 Bug fix for undefined yr variable 2018-01-10 13:14:27 +01:00
Stéphane Adjemian (Charybdis) dfcb9df58d Changed the type of the variable returned by list_of_parameters_calibrated_as_{Inf,NaN}. 2018-01-10 10:35:17 +01:00
Johannes Pfeifer 270246acb0 dynare_estimation_init.m: Add debugging info on NaN and Inf parameters 2018-01-10 10:21:23 +01:00
Stéphane Adjemian (Scylla) 7be8f10e0e Use cells of strings instead of char arrays. 2018-01-09 22:30:01 +01:00
Houtan Bastani e3bc725027
Merge pull request #1574 from JohannesPfeifer/octave_prior
Make Octave error message more constructive and informative
2017-12-05 00:14:45 +01:00
Johannes Pfeifer 2e69ae22ff Make Octave error message more constructive and informative
See the discussion at http://savannah.gnu.org/bugs/?52569
2017-12-02 21:28:25 +01:00
Houtan Bastani 93a0351afb
Merge pull request #1569 from JohannesPfeifer/cosmetic
Cosmetic fix to error message
2017-12-01 15:04:43 +01:00
Johannes Pfeifer ce4d8c3544 Cosmetic fix to error message 2017-11-28 10:27:43 +01:00
Johannes Pfeifer b3d399e901 Add diffuse_filter as option to dynare_sensitivity 2017-11-22 16:25:29 +01:00
Houtan Bastani 9be04a449f submodule update: dates 2017-11-17 10:29:29 +01:00
Stéphane Adjemian(Charybdis) 6e527b467d Make backward model IRF routine also return the impulses.
- In the second output argument (a dseries object) where we store the baseline
   scenario for the endogenous variables we add the baseline for the exogenous
   variables).

 - In the third output argument (a structure of dseries objects, one field per
   shock scenario), we also store the impulses considered for generating the
   IRFs.
2017-11-16 17:54:00 +01:00
Stéphane Adjemian(Charybdis) dc670e0199 Fixed test on M_.Sigma_e (backward model irf routine). 2017-11-15 15:01:34 +01:00
Stéphane Adjemian(Charybdis) a0f089af2d Updated dseries submodule (fixed horzcat behaviour). 2017-11-14 14:35:41 +01:00
Houtan Bastani f1db5cd264 dynare command line: fix bug introduced in c258bad2ab 2017-11-14 14:09:15 +01:00
Houtan Bastani c258bad2ab dynare command line: be less strict in accepting macros from .mod file 2017-11-14 12:21:48 +01:00
Stéphane Adjemian(Charybdis) c958f4ac04 Updated dates and dseries submodules (fixed overloaded struct function issue). 2017-11-12 16:09:20 +01:00
Houtan Bastani fc10d35330 submodule update: dseries 2017-11-10 12:38:08 +01:00
Stéphane Adjemian (Charybdis) 6d8b224f67 Updated dseries submodules. 2017-11-08 18:33:56 +01:00
Houtan Bastani d3c4477f3e remove duplicated line 2017-10-24 16:37:08 +02:00
Stéphane Adjemian bb7c245048 Merge pull request #1542 from JohannesPfeifer/isstring
Make isfile.m command work with Matlab versions before 9.1
2017-10-19 20:08:13 +02:00
Stéphane Adjemian (Charybdis) 798c22fb6e Account for matlab R2017b. 2017-10-17 17:55:09 +02:00
Johannes Pfeifer fa26ab10e0 Make isfile.m command work with Matlab versions before 9.1 2017-10-17 09:14:15 +02:00
Stéphane Adjemian (Charybdis) d4e3dbe370 Fixes #1541. 2017-10-16 23:23:58 +02:00
Stéphane Adjemian(Charybdis) 46ce6e02af Updated dseries submodule (fixes abscissa tick labels in plot overloaded function). 2017-10-14 21:41:35 +02:00
Stéphane Adjemian(Charybdis) 4b4c3db3b9 Allow shocks over multiple periods in backward model routine. 2017-10-14 16:35:01 +02:00
Stéphane Adjemian(Charybdis) 56d3adb778 Chek if variance of the shocks in backward model IRF routines are defined when required. 2017-10-14 16:05:55 +02:00
Stéphane Adjemian(Charybdis) bc76988b01 Fixed bug in bakward model IRF routine.
Missing index.
2017-10-14 15:31:52 +02:00
Stéphane Adjemian(Charybdis) 1b042f01e0 Added new interface for specifying shocks in backward models IRFs.
By passing dseries objects to backward_model_irf routine.

(cherry picked from commit 366acf5bac)
2017-10-12 12:18:18 +02:00
Stéphane Adjemian (Charybdis) 008f30ea07 Updated dseries submodule. 2017-10-11 17:57:20 +02:00
Stéphane Adjemian(Charybdis) 61b23a17f4 Merge branch 'upgrade-classes' 2017-10-11 14:09:35 +02:00
Stéphane Adjemian (Scylla) 88a9493bc3 Updated dates submodule. 2017-10-10 15:47:40 +02:00
Stéphane Adjemian (Scylla) 4757713829 Fixed type of first returned argument. 2017-10-10 14:37:07 +02:00
Stéphane Adjemian (Scylla) d3d11b7a9a Updated dseries submodule. 2017-10-10 14:21:25 +02:00
Stéphane Adjemian (Scylla) 560a047a53 Moved isfile routine in missing.
This routine has been introduced in R2017b. Closes #1523.
2017-10-10 13:33:32 +02:00
Stéphane Adjemian (Scylla) a83258d4af Generalised isfile routine (to accept more than one file name to be tested). 2017-10-10 13:19:07 +02:00
Stéphane Adjemian (Scylla) 1181f9bf70 Merge branch 'pr#1535' 2017-10-10 10:57:29 +02:00
Stéphane Adjemian (Scylla) 0e85dfdc15 Upgraded dseries and dates classes.
- Switched to master branch with new OOP interface.
 - Removed initialization of empty dseries and dates objects (preprocessor).
2017-10-10 10:45:07 +02:00
Stéphane Adjemian (Scylla) ce7cfccddb Cosmetic changes. 2017-10-10 10:14:59 +02:00
Stéphane Adjemian (Scylla) 904ce4b4c9 Fixed backward model IRFs and added an interface for baseline scenario.
Note that there is an additional argument (2nd position) for the shocks
baseline scenario.
2017-10-10 09:29:26 +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
Michel Juillard 0068f9f6b6 fix another bug in complementarity constraints with ramsey problem
(cherry picked from commit b1fc34ef99)
2017-10-08 16:45:20 +02:00
Michel Juillard b1fc34ef99 fix bug when there are constraints both on ramsey policy instrument and on
other variables
2017-10-08 12:43:33 +02:00
Houtan Bastani d52f13114d preprocessor: interface for generate_irfs block. Closes #1531 2017-10-06 15:00:55 +02:00
Stéphane Adjemian (Scylla) 6e656fbf50 Only set options_.varlist if necessary. 2017-10-06 09:18:55 +02:00
Michel Juillard 53b1910201 adding missing occbin functions 2017-10-05 14:19:24 +02:00
Johannes Pfeifer a1222a1d1b Implement variance decomposition with measurement error 2017-10-05 11:33:17 +02:00
Johannes Pfeifer 2472c5801a Fix typo 2017-10-05 11:33:17 +02:00
Johannes Pfeifer 818a07a4ef Fix get_posterior_parameters
Get rid of setting variables from the base workspace in the function, making the function read-only (as the name suggests)
2017-10-05 09:54:08 +02:00
Stéphane Adjemian 913425e5a4 Merge pull request #1525 from JohannesPfeifer/cosmetic
Fix incorrect comments
2017-10-04 18:42:29 +02:00
Johannes Pfeifer 3c9880fc3b Fix typos in fjaco.m 2017-10-04 16:52:55 +02:00
Johannes Pfeifer 86e646488c mode_check.m: fix case where parameter is exactly 0
In this case, interval length was 0, crashing the plotting
2017-10-04 16:49:09 +02:00
Johannes Pfeifer 8fa50ad009 Make sure prior distribution is set up without prior estimation command 2017-10-04 15:46:23 +02:00
Johannes Pfeifer f0b9f453e9 Make empirical moments independent of simul_replic by outputting first instead of later replication
Closes #1487
2017-10-04 15:32:28 +02:00
Johannes Pfeifer 0f84dadb9a Reset order=1 for all of stoch_simul.m if the Hessian is 0
Prevents various crashes where functions called rely on fields existing at order>1
2017-10-04 11:34:31 +02:00
Johannes Pfeifer e857df0c93 Correct header of makedataset.m 2017-10-04 10:40:42 +02:00
Johannes Pfeifer 088ac2be55 Fix incorrect comments 2017-10-03 14:09:19 +02:00
Stéphane Adjemian 666e569a27 Merge pull request #1520 from JohannesPfeifer/inv_gamma
Clarify inverse_gamma_specification.m
2017-10-03 13:59:54 +02:00