diff --git a/tests/estimation/fs2000_calibrated_covariance.mod b/tests/estimation/fs2000_calibrated_covariance.mod index 79d309786857d00238fc1fb57a88e1cdf4972b20..a2acc3387567c23ed748063b5981b9afe5bb7b2c 100644 --- a/tests/estimation/fs2000_calibrated_covariance.mod +++ b/tests/estimation/fs2000_calibrated_covariance.mod @@ -80,7 +80,7 @@ corr e_a, e_m, 0.5; stderr gp_obs, 0.5; end; -estimation(order=1,datafile=fsdat_simul,nobs=192, loglinear, mh_replic=2002, mh_nblocks=1, mh_jscale=0.8); +estimation(order=1,datafile=fsdat_simul,nobs=192, loglinear, mh_replic=0, mh_nblocks=1, mh_jscale=0.8,moments_varendo,consider_all_endogenous); if isequal(M_.Sigma_e(2,1),5e-5) || isequal(M_.Sigma_e(1,2),5e-5) error('Problem in overriding calibrated covariance of structural shocks by estimated correlation') @@ -88,3 +88,5 @@ end if ~isequal(M_.H(2,1),5e-5) || ~isequal(M_.H(1,2),5e-5) error('Problem in setting calibrated covariance of measurement errors') end + +stoch_simul(order=1,periods=1000); diff --git a/tests/kalman_filter_smoother/check_variable_dimensions/fs2000_ML.mod b/tests/kalman_filter_smoother/check_variable_dimensions/fs2000_ML.mod index b333d7ff0773dd523b5e33ef114999a94e353251..19d5c5c1a24da0f247a95628c7450bc1fa4fa02e 100644 --- a/tests/kalman_filter_smoother/check_variable_dimensions/fs2000_ML.mod +++ b/tests/kalman_filter_smoother/check_variable_dimensions/fs2000_ML.mod @@ -116,7 +116,7 @@ corr e_m, e_a, 0; stderr gp_obs, 0.01; end; options_.prior_trunc=0; -estimation(order=1,datafile='../fsdat_simul', nobs=192, loglinear, forecast=8,smoother,filter_covariance,filtered_vars,filter_step_ahead=[1,2,4],filter_decomposition,selected_variables_only) m P c e W R k d y gy_obs; +estimation(order=1,datafile='../fsdat_simul', nobs=192, loglinear, moments_varendo,conditional_variance_decomposition=[1,3],forecast=8,smoother,filter_covariance,filtered_vars,filter_step_ahead=[1,2,4],filter_decomposition,selected_variables_only) m P c e W R k d y gy_obs gp_obs; if size(oo_.FilteredVariablesKStepAhead,3)~=(options_.nobs+max(options_.filter_step_ahead)) || ... diff --git a/tests/moments/example1_one_sided_hp_test.mod b/tests/moments/example1_one_sided_hp_test.mod index 1e61f23d26ef407864f1dbfdecfc3bc95f944120..c87763ff06c2a01f9a1572c2945cd56f781d0345 100644 --- a/tests/moments/example1_one_sided_hp_test.mod +++ b/tests/moments/example1_one_sided_hp_test.mod @@ -68,3 +68,14 @@ end; steady(solve_algo=4,maxit=1000); stoch_simul(order=1,nofunctions,one_sided_hp_filter=1600,irf=0,periods=5000,filtered_theoretical_moments_grid=8192); + +varobs k c y; + +shocks; +var e; stderr 0.009; +var u; stderr 0.009; +var e, u = phi*0.009*0.009; +var c; stderr 0.01; +end; + +stoch_simul(order=1,nofunctions,one_sided_hp_filter=1600,irf=0,periods=5000,filtered_theoretical_moments_grid=8192); diff --git a/tests/moments/fs2000_post_moments.mod b/tests/moments/fs2000_post_moments.mod index 3ea15dcef0946954f34f1a85f03927a40fa13c09..fce555f413c5c50a86e4267c5a0ca679ca4509f6 100644 --- a/tests/moments/fs2000_post_moments.mod +++ b/tests/moments/fs2000_post_moments.mod @@ -169,7 +169,7 @@ end conditional_variance_decomposition=mean(conditional_variance_decomposition,4); nvars=M_.orig_endo_nbr; -horizon_size=size(conditional_variance_decomposition,3); +horizon_size=size(conditional_variance_decomposition,2); for var_iter_1=1:nvars for shock_iter=1:M_.exo_nbr for horizon_iter=1:horizon_size @@ -180,6 +180,105 @@ for var_iter_1=1:nvars end end +// case with measurement error +estimated_params; +alp, beta_pdf, 0.356, 0.02; +bet, beta_pdf, 0.993, 0.002; +gam, normal_pdf, 0.0085, 0.003; +mst, normal_pdf, 1.0002, 0.007; +rho, beta_pdf, 0.129, 0.100; +psi, beta_pdf, 0.65, 0.05; +del, beta_pdf, 0.01, 0.005; +stderr e_a, inv_gamma_pdf, 0.035449, inf; +stderr e_m, inv_gamma_pdf, 0.008862, inf; +stderr gp_obs, inv_gamma_pdf, 0.003, inf; +end; + +estimation(order=1,mode_compute=5, datafile='../fs2000/fsdat_simul.m', nobs=192, loglinear, mh_replic=20, mh_nblocks=1, mh_jscale=0.8,moments_varendo, +conditional_variance_decomposition=[2,2000],consider_all_endogenous,sub_draws=2); + +stoch_simul(order=1,conditional_variance_decomposition=[2,2000],noprint,nograph); +par=load([M_.fname filesep 'metropolis' filesep M_.fname '_posterior_draws1']); + +for par_iter=1:size(par.pdraws,1) + M_=set_parameters_locally(M_,par.pdraws{par_iter,1}); + [info, oo_, options_, M_]=stoch_simul(M_, options_, oo_, var_list_); + correlation(:,:,par_iter)=cell2mat(oo_.autocorr); + covariance(:,:,par_iter)=oo_.var; + conditional_variance_decomposition(:,:,:,par_iter)=oo_.conditional_variance_decomposition; + conditional_variance_decomposition_ME(:,:,:,par_iter)=oo_.conditional_variance_decomposition_ME; + variance_decomposition(:,:,par_iter)=oo_.variance_decomposition; + variance_decomposition_ME(:,:,par_iter)=oo_.variance_decomposition_ME; + [~,obs_order]=sort(options_.varobs_id); +end + +correlation=mean(correlation,3); +nvars=M_.orig_endo_nbr; +for var_iter_1=1:nvars + for var_iter_2=1:nvars + if max(abs(correlation(var_iter_1,var_iter_2:nvars:end)'-oo_.PosteriorTheoreticalMoments.dsge.correlation.Mean.(M_.endo_names{var_iter_1}).(M_.endo_names{var_iter_2})))>1e-8 + error('Correlations do not match') + end + end +end + +covariance=mean(covariance,3); +nvars=M_.orig_endo_nbr; +for var_iter_1=1:nvars + for var_iter_2=var_iter_1:nvars + if max(abs(covariance(var_iter_1,var_iter_2)-oo_.PosteriorTheoreticalMoments.dsge.covariance.Mean.(M_.endo_names{var_iter_1}).(M_.endo_names{var_iter_2})))>1e-8 + error('Covariances do not match') + end + end +end + +variance_decomposition=mean(variance_decomposition,3); +nvars=M_.orig_endo_nbr; +for var_iter_1=1:nvars + for shock_iter=1:M_.exo_nbr + if max(abs(variance_decomposition(var_iter_1,shock_iter)/100-oo_.PosteriorTheoreticalMoments.dsge.VarianceDecomposition.Mean.(M_.endo_names{var_iter_1}).(M_.exo_names{shock_iter})))>1e-8 + error('Variance decomposition does not match') + end + end +end + +variance_decomposition_ME=mean(variance_decomposition_ME,3); +nvars=length(options_.varobs); +for var_iter_1=1:nvars + for shock_iter=1:M_.exo_nbr + if max(abs(variance_decomposition_ME(obs_order(var_iter_1),shock_iter)/100-oo_.PosteriorTheoreticalMoments.dsge.VarianceDecompositionME.Mean.(options_.varobs{var_iter_1}).(M_.exo_names{shock_iter})))>1e-8 + error('Variance decomposition does not match') + end + end +end + +conditional_variance_decomposition=mean(conditional_variance_decomposition,4); +nvars=M_.orig_endo_nbr; +horizon_size=size(conditional_variance_decomposition,2); +for var_iter_1=1:nvars + for shock_iter=1:M_.exo_nbr + for horizon_iter=1:horizon_size + if max(abs(conditional_variance_decomposition(var_iter_1,horizon_iter,shock_iter)-oo_.PosteriorTheoreticalMoments.dsge.ConditionalVarianceDecomposition.Mean.(M_.endo_names{var_iter_1}).(M_.exo_names{shock_iter})(horizon_iter)))>1e-8 + error('Conditional Variance decomposition does not match') + end + end + end +end + +conditional_variance_decomposition_ME=mean(conditional_variance_decomposition_ME,4); +exo_names=[M_.exo_names;'ME']; +nvars=length(options_.varobs); +horizon_size=size(conditional_variance_decomposition_ME,2); +for var_iter_1=1:nvars + for shock_iter=1:M_.exo_nbr+1 + for horizon_iter=1:horizon_size + if max(abs(conditional_variance_decomposition_ME(obs_order(var_iter_1),horizon_iter,shock_iter)-oo_.PosteriorTheoreticalMoments.dsge.ConditionalVarianceDecompositionME.Mean.(options_.varobs{var_iter_1}).(exo_names{shock_iter})(horizon_iter)))>1e-8 + error('Conditional Variance decomposition does not match') + end + end + end +end + /* * The following lines were used to generate the data file. If you want to * generate another random data file, comment the "estimation" line and uncomment