From b38d6f8139b68230cf37ff4bf54b17dc5b91ead6 Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Sun, 17 Jan 2021 18:21:29 +0100 Subject: [PATCH] compute_moments_varendo: use pruned state space at higher order --- matlab/dsge_simulated_theoretical_correlation.m | 16 +++++++++++++++- matlab/dsge_simulated_theoretical_covariance.m | 13 ++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/matlab/dsge_simulated_theoretical_correlation.m b/matlab/dsge_simulated_theoretical_correlation.m index c32aa9db4..73a7db56d 100644 --- a/matlab/dsge_simulated_theoretical_correlation.m +++ b/matlab/dsge_simulated_theoretical_correlation.m @@ -71,6 +71,13 @@ if ~posterior end nvar = length(ivar); +if options_.pruning + obs_var=NaN(nvar,1); + for i=1:nvar + obs_var(i,1) = find(strcmp(M_.endo_names(ivar(i),:), M_.endo_names(oo_.dr.order_var))); + end +end + % Set the size of the auto-correlation function to nar. oldnar = options_.ar; options_.ar = nar; @@ -109,7 +116,14 @@ for file = 1:NumberOfDrawsFiles M_=set_parameters_locally(M_,temp.pdraws{linee,1}); [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_); end - tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition); + if ~options_.pruning + tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition); + else + pruned_state_space = pruned_state_space_system(M_, options_, dr, obs_var, options_.ar, 1, 0); + for i=1:nar + tmp{i+1} = pruned_state_space.Corr_yi(:,:,i); + end + end for i=1:nar Correlation_array(linea,:,:,i) = tmp{i+1}; end diff --git a/matlab/dsge_simulated_theoretical_covariance.m b/matlab/dsge_simulated_theoretical_covariance.m index bbd470275..20511c159 100644 --- a/matlab/dsge_simulated_theoretical_covariance.m +++ b/matlab/dsge_simulated_theoretical_covariance.m @@ -70,6 +70,12 @@ if ~posterior end nvar = length(ivar); +if options_.pruning + obs_var=NaN(nvar,1); + for i=1:nvar + obs_var(i,1) = find(strcmp(M_.endo_names(ivar(i),:), M_.endo_names(oo_.dr.order_var))); + end +end % Set the size of the auto-correlation function to zero. nar = options_.ar; options_.ar = 0; @@ -108,7 +114,12 @@ for file = 1:NumberOfDrawsFiles M_=set_parameters_locally(M_,temp.pdraws{linee,1}); [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_); end - tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition); + if ~options_.pruning + tmp = th_autocovariances(dr,ivar,M_,options_,nodecomposition); + else + pruned_state_space = pruned_state_space_system(M_, options_, dr, obs_var, options_.ar, 1, 0); + tmp{1} = pruned_state_space.Var_y; + end for i=1:nvar for j=i:nvar Covariance_matrix(linea,symmetric_matrix_index(i,j,nvar)) = tmp{1}(i,j);