From fcdecb5b1fc1ab9f39ff11dc5dd193dccba8a718 Mon Sep 17 00:00:00 2001 From: Marco Ratto Date: Sun, 15 Jan 2017 18:44:08 +0100 Subject: [PATCH] test file for plot_shock_decomposition and realtime_shock_decomposition --- tests/Makefile.am | 1 + tests/shock_decomposition/ls2003_plot.mod | 144 ++++++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 tests/shock_decomposition/ls2003_plot.mod diff --git a/tests/Makefile.am b/tests/Makefile.am index c2b935217..669264157 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -286,6 +286,7 @@ MODFILES = \ shock_decomposition/fs2000_est.mod \ shock_decomposition/fs2000_est_varlist.mod \ shock_decomposition/fs2000_cal_groups.mod \ + shock_decomposition/ls2003_plot.mod \ stochastic_purely_forward/stochastic_purely_forward.mod \ stochastic_purely_forward/stochastic_purely_forward_with_static.mod \ forecast/Hansen_exo_det_forecast.mod \ diff --git a/tests/shock_decomposition/ls2003_plot.mod b/tests/shock_decomposition/ls2003_plot.mod new file mode 100644 index 000000000..ee675b38e --- /dev/null +++ b/tests/shock_decomposition/ls2003_plot.mod @@ -0,0 +1,144 @@ +var y y_s R pie dq pie_s de A y_obs pie_obs R_obs; +varexo e_R e_q e_ys e_pies e_A; + +parameters psi1 psi2 psi3 rho_R tau alpha rr k rho_q rho_A rho_ys rho_pies; + +psi1 = 1.54; +psi2 = 0.25; +psi3 = 0.25; +rho_R = 0.5; +alpha = 0.3; +rr = 2.51; +k = 0.5; +tau = 0.5; +rho_q = 0.4; +rho_A = 0.2; +rho_ys = 0.9; +rho_pies = 0.7; + + +model(linear); +y = y(+1) - (tau +alpha*(2-alpha)*(1-tau))*(R-pie(+1))-alpha*(tau +alpha*(2-alpha)*(1-tau))*dq(+1) + alpha*(2-alpha)*((1-tau)/tau)*(y_s-y_s(+1))-A(+1); +pie = exp(-rr/400)*pie(+1)+alpha*exp(-rr/400)*dq(+1)-alpha*dq+(k/(tau+alpha*(2-alpha)*(1-tau)))*y+alpha*(2-alpha)*(1-tau)/(tau*(tau+alpha*(2-alpha)*(1-tau)))*y_s; +pie = de+(1-alpha)*dq+pie_s; +R = rho_R*R(-1)+(1-rho_R)*(psi1*pie+psi2*(y+alpha*(2-alpha)*((1-tau)/tau)*y_s)+psi3*de)+e_R; +dq = rho_q*dq(-1)+e_q; +y_s = rho_ys*y_s(-1)+e_ys; +pie_s = rho_pies*pie_s(-1)+e_pies; +A = rho_A*A(-1)+e_A; +y_obs = y-y(-1)+A; +pie_obs = 4*pie; +R_obs = 4*R; +end; + +shocks; +var e_R = 1.25^2; +var e_q = 2.5^2; +var e_A = 1.89; +var e_ys = 1.89; +var e_pies = 1.89; +end; + +varobs y_obs R_obs pie_obs dq de; + +estimated_params; +psi1 , gamma_pdf,1.5,0.5; +psi2 , gamma_pdf,0.25,0.125; +psi3 , gamma_pdf,0.25,0.125; +rho_R ,beta_pdf,0.5,0.2; +alpha ,beta_pdf,0.3,0.1; +rr ,gamma_pdf,2.5,1; +k , gamma_pdf,0.5,0.25; +tau ,gamma_pdf,0.5,0.2; +rho_q ,beta_pdf,0.4,0.2; +rho_A ,beta_pdf,0.5,0.2; +rho_ys ,beta_pdf,0.8,0.1; +rho_pies,beta_pdf,0.7,0.15; +stderr e_R,inv_gamma_pdf,1.2533,0.6551; +stderr e_q,inv_gamma_pdf,2.5066,1.3103; +stderr e_A,inv_gamma_pdf,1.2533,0.6551; +stderr e_ys,inv_gamma_pdf,1.2533,0.6551; +stderr e_pies,inv_gamma_pdf,1.88,0.9827; +end; + +estimation(datafile=data_ca1,first_obs=8,nobs=79,mh_nblocks=10,prefilter=1,mh_jscale=0.5,mh_replic=0); + +shock_groups(name=trade); +supply = e_A ; +trade = e_q ; +monetary = e_R ; +end; + +shock_groups(name=row); +supply = e_A ; +'RoW shocks' = e_q e_ys e_pies ; +monetary = e_R ; +end; +options_.initial_date=dates('1980Q1'); +shock_decomposition(use_shock_groups=trade,nograph) y_obs R_obs pie_obs dq de; + +// compute realtime decompositions [pre-processor not yet available] +options_.shock_decomp.forecast=8; +oo_ = realtime_shock_decomposition(M_,oo_,options_,var_list_,bayestopt_,estim_params_); + +// various tests for plot_shock_decompositions +// standard plot [using trde group defined before] +plot_shock_decomposition(M_,oo_,options_,var_list_); + +// test datailed, custom name and yoy plots +options_.shock_decomp.detail_plot = 1; +options_.shock_decomp.fig_names = 'MR'; +options_.shock_decomp.type='yoy'; +plot_shock_decomposition(M_,oo_,options_,var_list_); + +close all, + + +// testing realtime decomposition +options_.shock_decomp.detail_plot = 0; +options_.shock_decomp.type=''; +options_.use_shock_groups=''; +options_.shock_decomp.fig_names = ''; + + +//realtime pooled +options_.shock_decomp.realtime=1; +options_.shock_decomp.vintage=0; +plot_shock_decomposition(M_,oo_,options_,var_list_); + +//conditional pooled +options_.shock_decomp.realtime=2; +plot_shock_decomposition(M_,oo_,options_,var_list_); +options_.shock_decomp.realtime=2; +// conditional 8-step ahead decomposition, given 1989q4 +options_.shock_decomp.detail_plot = 1; +options_.shock_decomp.vintage=40; +plot_shock_decomposition(M_,oo_,options_,var_list_); + +close all, + +//forecast pooled +options_.shock_decomp.detail_plot = 0; +options_.shock_decomp.realtime=3; +options_.shock_decomp.vintage=0; +plot_shock_decomposition(M_,oo_,options_,var_list_); + +// forecast 8-step ahead decomposition, given 1989q4 +options_.shock_decomp.detail_plot = 1; +options_.shock_decomp.realtime=3; +options_.shock_decomp.vintage=40; +plot_shock_decomposition(M_,oo_,options_,var_list_); + +close all, + +//test uimenu for groups +options_.shock_decomp.realtime=0; +options_.shock_decomp.detail_plot = 1; +options_.shock_decomp.interactive=1; +options_.use_shock_groups='row'; +plot_shock_decomposition(M_,oo_,options_,var_list_); + +options_.shock_decomp.detail_plot = 1; +options_.shock_decomp.realtime=3; +options_.shock_decomp.vintage=40; +plot_shock_decomposition(M_,oo_,options_,var_list_);