From 3f907efbcdfde9a2c6a565fb16917bc14d08985e Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer <jpfeifer@gmx.de> Date: Sun, 2 Oct 2016 12:54:36 +0200 Subject: [PATCH] initial_estimation_checks.m: Add proper check for stochastic singularity --- matlab/initial_estimation_checks.m | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/matlab/initial_estimation_checks.m b/matlab/initial_estimation_checks.m index 967390309..819b72cd2 100644 --- a/matlab/initial_estimation_checks.m +++ b/matlab/initial_estimation_checks.m @@ -130,7 +130,19 @@ ana_deriv = DynareOptions.analytic_derivation; DynareOptions.analytic_derivation=0; if ~isequal(DynareOptions.mode_compute,11) || ... (isequal(DynareOptions.mode_compute,11) && isequal(DynareOptions.order,1)) - [fval,info] = feval(objective_function,xparam1,DynareDataset,DatasetInfo,DynareOptions,Model,EstimatedParameters,BayesInfo,BoundsInfo,DynareResults); + %shut off potentially automatic switch to diffuse filter for the + %purpose of checking stochastic singularity + use_univariate_filters_if_singularity_is_detected_old=DynareOptions.use_univariate_filters_if_singularity_is_detected; + DynareOptions.use_univariate_filters_if_singularity_is_detected=0; + [fval,info] = feval(objective_function,xparam1,DynareDataset,DatasetInfo,DynareOptions,Model,EstimatedParameters,BayesInfo,BoundsInfo,DynareResults); + if info(1)==50 + fprintf('\ninitial_estimation_checks:: The forecast error variance in the multivariate Kalman filter became singular.\n') + fprintf('initial_estimation_checks:: This is often a sign of stochastic singularity, but can also sometimes happen by chance\n') + fprintf('initial_estimation_checks:: for a particular combination of parameters and data realizations.\n') + error('initial_estimation_checks:: The forecast error variance in the multivariate Kalman filter became singular.') + end + %reset options + DynareOptions.use_univariate_filters_if_singularity_is_detected=use_univariate_filters_if_singularity_is_detected_old; else info=0; fval = 0; -- GitLab