diff --git a/matlab/initial_estimation_checks.m b/matlab/initial_estimation_checks.m index 0e293e7c2..fd1c7de98 100644 --- a/matlab/initial_estimation_checks.m +++ b/matlab/initial_estimation_checks.m @@ -66,6 +66,9 @@ if DynareOptions.order>1 if DynareOptions.order>2 && DynareOptions.particle.pruning==1 error('initial_estimation_checks:: the particle filter with order>2 does not support pruning') end + if DynareOptions.particle.pruning~=DynareOptions.pruning + fprintf('initial_estimation_checks:: the pruning settings differ between the particle filter and the one used for IRFs/simulations. Make sure this is intended.\n') + end end non_zero_ME=length(EstimatedParameters.H_entries_to_check_for_positive_definiteness); diff --git a/matlab/non_linear_dsge_likelihood.m b/matlab/non_linear_dsge_likelihood.m index a4bef4237..b5a9ff76f 100644 --- a/matlab/non_linear_dsge_likelihood.m +++ b/matlab/non_linear_dsge_likelihood.m @@ -143,10 +143,13 @@ switch DynareOptions.particle.initialization StateVectorMean = ReducedForm.constant(mf0); old_DynareOptionsperiods = DynareOptions.periods; DynareOptions.periods = 5000; + old_DynareOptionspruning = DynareOptions.pruning; + DynareOptions.pruning = DynareOptions.particle.pruning; y_ = simult(DynareResults.steady_state, dr,Model,DynareOptions,DynareResults); y_ = y_(dr.order_var(state_variables_idx),2001:5000); %state_variables_idx is in dr-order while simult_ is in declaration order StateVectorVariance = cov(y_'); DynareOptions.periods = old_DynareOptionsperiods; + DynareOptions.pruning = old_DynareOptionspruning; clear('old_DynareOptionsperiods','y_'); case 3% Initial state vector covariance is a diagonal matrix (to be used % if model has stochastic trends).