Commit f40af9be authored by MichelJuillard's avatar MichelJuillard
Browse files

adding tests for shocks decomposition of estimated model. Closes #313

parent 9f63c408
...@@ -151,7 +151,9 @@ MODFILES = \ ...@@ -151,7 +151,9 @@ MODFILES = \
trend_var/fs2000_nonstationary.mod \ trend_var/fs2000_nonstationary.mod \
trend_var/fs2000_log_nonstationary.mod \ trend_var/fs2000_log_nonstationary.mod \
third_order/FV2011.mod \ third_order/FV2011.mod \
shock_decomp_calibrated_model/example1_calib_shock_decomp.mod \ shock_decomposition/example1_calib_shock_decomp.mod \
shock_decomposition/fs2000_est.mod \
shock_decomposition/fs2000_est_varlist.mod \
stochastic_purely_forward/stochastic_purely_forward.mod \ stochastic_purely_forward/stochastic_purely_forward.mod \
stochastic_purely_forward/stochastic_purely_forward_with_static.mod stochastic_purely_forward/stochastic_purely_forward_with_static.mod
...@@ -306,7 +308,8 @@ EXTRA_DIST = \ ...@@ -306,7 +308,8 @@ EXTRA_DIST = \
ep/mean_preserving_spread.m \ ep/mean_preserving_spread.m \
third_order/comparison_policy_functions_dynare_mathematica.m \ third_order/comparison_policy_functions_dynare_mathematica.m \
third_order/policyfunctions.mat \ third_order/policyfunctions.mat \
shock_decomp_calibrated_model/example1_calib_shock_decomp_data.mat shock_decomposition/example1_calib_shock_decomp_data.mat \
shock_decomposition/fsdat_simul.m
TARGETS = TARGETS =
......
// See fs2000.mod in the examples/ directory for details on the model
var m P c e W R k d n l gy_obs gp_obs y dA;
varexo e_a e_m;
parameters alp bet gam mst rho psi del;
alp = 0.33;
bet = 0.99;
gam = 0.003;
mst = 1.011;
rho = 0.7;
psi = 0.787;
del = 0.02;
model;
dA = exp(gam+e_a);
log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
W = l/n;
-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
P*c = m;
m-1+d = l;
e = exp(e_a);
y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
gy_obs = dA*y/y(-1);
gp_obs = (P/P(-1))*m(-1)/dA;
end;
shocks;
var e_a; stderr 0.014;
var e_m; stderr 0.005;
end;
steady_state_model;
dA = exp(gam);
gst = 1/dA;
m = mst;
khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1));
xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1);
nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp );
n = xist/(nust+xist);
P = xist + nust;
k = khst*n;
l = psi*mst*n/( (1-psi)*(1-n) );
c = mst/P;
d = l - mst + 1;
y = k^alp*n^(1-alp)*gst^alp;
R = mst/bet;
W = l/n;
e = 1;
gp_obs = m/dA;
gy_obs = dA;
end;
steady;
check;
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.223;
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;
end;
varobs gp_obs gy_obs;
// Metropolis replications are too few, this is only for testing purpose
estimation(order=1,datafile=fsdat_simul,nobs=192,loglinear,mh_replic=0);
shock_decomposition;
// See fs2000.mod in the examples/ directory for details on the model
var m P c e W R k d n l gy_obs gp_obs y dA;
varexo e_a e_m;
parameters alp bet gam mst rho psi del;
alp = 0.33;
bet = 0.99;
gam = 0.003;
mst = 1.011;
rho = 0.7;
psi = 0.787;
del = 0.02;
model;
dA = exp(gam+e_a);
log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;
-P/(c(+1)*P(+1)*m)+bet*P(+1)*(alp*exp(-alp*(gam+log(e(+1))))*k^(alp-1)*n(+1)^(1-alp)+(1-del)*exp(-(gam+log(e(+1)))))/(c(+2)*P(+2)*m(+1))=0;
W = l/n;
-(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
P*c = m;
m-1+d = l;
e = exp(e_a);
y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
gy_obs = dA*y/y(-1);
gp_obs = (P/P(-1))*m(-1)/dA;
end;
shocks;
var e_a; stderr 0.014;
var e_m; stderr 0.005;
end;
steady_state_model;
dA = exp(gam);
gst = 1/dA;
m = mst;
khst = ( (1-gst*bet*(1-del)) / (alp*gst^alp*bet) )^(1/(alp-1));
xist = ( ((khst*gst)^alp - (1-gst*(1-del))*khst)/mst )^(-1);
nust = psi*mst^2/( (1-alp)*(1-psi)*bet*gst^alp*khst^alp );
n = xist/(nust+xist);
P = xist + nust;
k = khst*n;
l = psi*mst*n/( (1-psi)*(1-n) );
c = mst/P;
d = l - mst + 1;
y = k^alp*n^(1-alp)*gst^alp;
R = mst/bet;
W = l/n;
e = 1;
gp_obs = m/dA;
gy_obs = dA;
end;
steady;
check;
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.223;
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;
end;
varobs gp_obs gy_obs;
estimation(order=1,datafile=fsdat_simul,nobs=192,loglinear,mh_replic=0) y W R;
shock_decomposition y W R;
gy_obs =[
1.0030045
0.99990934
1.0172778
0.99464043
1.0253423
1.0150215
0.97772557
0.97832186
1.0159561
1.0085937
1.0102649
1.0007604
1.0112596
1.0163279
1.0173204
1.0103896
1.0006493
0.99447124
1.0196405
1.0089304
0.99650737
1.0139707
0.97865842
1.0192225
0.99139628
1.0141362
1.0196612
0.97483476
0.99686151
0.99594464
1.0000642
1.0172243
1.0025773
0.97199728
1.0217815
1.0219949
0.99490252
1.0190728
1.0111337
1.0003792
0.98969164
1.010438
1.0216309
1.0016671
1.0357588
0.98803787
1.0093457
1.0177035
0.98548204
1.0274294
1.0141377
1.0091174
0.96427632
1.0083272
1.0007882
0.99038262
1.0031336
0.99500213
0.98203716
0.9889452
1.011632
0.99451949
0.97291047
0.98750871
0.99992418
0.97657318
0.99930448
1.0008515
1.0044064
0.98133792
1.0091702
1.0087023
1.0119876
1.0143019
1.0311061
0.99340471
1.0057428
0.99197259
1.0071019
0.99448853
1.0061819
1.0070088
0.9950913
1.0302318
0.9817693
1.0072885
0.97355282
0.98782586
1.0136674
0.99863956
1.0205668
0.99611384
1.0073805
0.99691529
1.0089194
1.0030467
1.0112006
1.0260523
0.97803331
0.99423374
1.0043727
1.0140173
1.0111473
0.99524348
0.99775943
0.9958619
0.9982344
1.0210212
1.0022288
1.0014801
1.011456
1.0124871
0.99843599
0.99324886
0.99912838
1.003327
1.0072071
1.0115223
1.009266
1.0070554
1.0129916
1.0053413
1.0051638
0.99212952
1.0214422
0.98716707
0.99905788
0.98877357
0.98568476
0.99767393
1.0061791
0.98423439
0.99492949
0.98786999
0.99754239
1.0168619
0.99472384
1.0041658
0.98123181
1.0112882
0.99245422
1.0010255
1.0017799
1.0089968
1.0072824
0.99768475
1.0044726
1.0118678
1.0056385
1.0276965
1.0025122
1.0065161
1.0234338
0.99760167
0.98922272
1.0101918
1.011615
1.0085286
1.0074455
0.98866757
0.99959012
1.0129881
0.99127881
0.97971901
1.0185314
1.020054
1.0132605
0.98063643
0.99490253
1.0101531
1.0004526
1.0059109
0.98974491
1.0062391
1.0216488
0.99398446
0.97786609
1.0019274
0.99587153
1.0095881
1.0111887
0.99457649
0.97896734
1.000172
1.0142951
1.0034224
1.0037242
1.0016059
1.016556
0.99687023
1.0117844
1.0059212
0.98083159
0.98638851
1.0128713
1.0096232
1.0115891
1.0011213
1.0147105
1.0066344
1.0164429
0.99825038
0.99403411
];
gp_obs =[
1.0079715
1.0074573
1.0153107
1.0152677
1.0011653
0.99950061
1.0328311
1.0192317
1.009827
0.99588916
1.007474
1.0113061
0.98696624
0.99978663
0.98240542
0.98861723
0.99008763
1.0185076
1.0052452
0.99447194
1.0092685
1.01208
1.0105237
0.98513875
1.0165628
0.99485934
1.0050255
1.0140756
1.0093128
1.0155868
1.0107023
0.99212762
1.0095465
1.0028435
1.0069437
1.0070473
1.0145902
1.0186922
1.0059917
1.0113072
1.0107386
0.99769196
0.99793444
1.0050791
0.98307821
1.0107594
0.99689982
0.98667064
0.9991662
0.98274722
0.98422032
0.99393016
1.0118567
0.99912781
1.0023744
1.0086662
1.0164773
1.0169327
1.0372478
1.0314242
1.0004256
1.0110541
1.0076575
1.0119851
1.0055188
1.0213959
1.0234416
1.0264917
1.0292725
1.0385184
1.0200999
1.0107697
1.008583
1.0200332
1.0030413
1.0108659
1.0185145
1.0168619
1.0180462
1.0239657
1.0205509
1.0189973
1.0246446
1.0135089
1.0352973
1.0099289
1.0266474
1.0279829
1.0101653
1.041216
1.0103861
1.0114727
1.0054605
1.0190722
1.0114837
1.0179213
1.006082
1.0049696
1.0143629
0.9971036
1.0005602
1.0078403
1.0240222
1.0195063
1.0355136
1.0218743
1.0171331
1.0049817
1.0140974
1.0168431
1.0049966
1.0045568
1.0156414
1.0273055
1.0197653
1.0030624
1.0154993
0.99782084
0.99711648
1.014408
1.0057417
0.99936837
1.0096934
1.0095138
1.0057734
1.0114497
1.0059784
1.0328889
1.0098032
1.0041114
1.0101247
1.0181588
1.0115712
1.0227509
1.0065104
1.0110902
1.0298169
1.0089532
1.0368733
1.0123033
1.0060763
1.0150937
1.0239325
0.99555536
0.99861271
1.0076201
0.99941535
1.0119522
1.0129183
0.99288924
1.0260784
1.0144982
1.0121985
1.0234916
1.02215
1.0190118
1.0172679
1.0118398
1.0002123
1.0092124
1.0071943
0.99508468
1.0019303
1.0030733
0.9964198
1.0027298
0.99797614
1.006942
0.99793928
1.0083214
1.0283732
1.0111102
1.016936
1.0229061
0.98846454
1.0015387
1.0201769
1.0079822
1.0064007
1.0095543
1.0092207
1.0135485
1.0198974
1.0140252
1.0128686
1.0092903
1.0141974
1.0023492
0.99731455
1.0026598
0.99303643
1.0036469
1.0160975
1.0368378
1.0139625
1.01493
1.0113531
1.0114548
0.99833441
0.99648401
0.97645361
1.0154053
1.01703
];
Y_obs =[
1
0.99690484
1.0111781
1.0028141
1.0251518
1.0371688
1.0118899
0.98720726
1.0001589
1.0057481
1.0130085
1.0107643
1.0190194
1.0323428
1.0466587
1.0540438
1.0516886
1.0431553
1.0597913
1.0657172
1.0592201
1.0701863
1.0458402
1.0620582
1.0504499
1.0615817
1.0782384
1.0500687
1.0439257
1.0368658
1.0339255
1.0481453
1.0477181
1.0167109
1.0354878
1.0544782
1.0463762
1.0624445