Preprocessor: fix derivation order for “identification” without “stoch_simul”

Also add a regression test.

Closes: preprocessor#40
parent e371b1a9
Subproject commit 1c44baea0575e30416fcf85830f7e3b2156bc874
Subproject commit b0c819cb03a37716adbbf73aa485993e9b44188b
......@@ -191,6 +191,7 @@ MODFILES = \
identification/as2007/as2007_QT.mod \
identification/as2007/as2007_QT_equal_autocorr.mod \
identification/as2007/as2007_order_1_2_3.mod \
identification/as2007/as2007_order3_no_stoch_simul.mod \
identification/BrockMirman/BrockMirman.mod \
identification/cgg/cgg_criteria_differ.mod \
identification/ident_unit_root/ident_unit_root.mod \
......
% This is a regression test for issue preprocessor#40
% (“identification” without “stoch_simul”)
%this is the mod file used in replication files of An and Schorfheide (2007)
% modified to include some obvious and artificial identification failures
% and to check whether all kronflags are working
% created by Willi Mutschler (willi@mutschler.eu)
var y R g z c dy p YGR INFL INT;
varobs y R g z c dy p YGR INFL INT;
varexo e_r e_g e_z;
parameters sigr sigg sigz tau phi psi1 psi2 rhor rhog rhoz rrst pist gamst nu cyst dumpy dumpyrhog;
rrst = 1.0000;
pist = 3.2000;
gamst= 0.5500;
tau = 2.0000;
nu = 0.1000;
kap = 0.3300;
phi = tau*(1-nu)/nu/kap/exp(pist/400)^2;
cyst = 0.8500;
psi1 = 1.5000;
psi2 = 0.1250;
rhor = 0.7500;
rhog = 0.9500;
rhoz = 0.9000;
sigr = 0.2;
sigg = 0.6;
sigz = 0.3;
dumpy = 0;
dumpyrhog = 1;
model;
#pist2 = exp(pist/400);
#rrst2 = exp(rrst/400);
#bet = 1/rrst2;
#gst = 1/cyst;
#cst = (1-nu)^(1/tau);
#yst = cst*gst;
1 = exp(-tau*c(+1)+tau*c+R-z(+1)-p(+1));
(1-nu)/nu/phi/(pist2^2)*(exp(tau*c)-1) = (exp(p)-1)*((1-1/2/nu)*exp(p)+1/2/nu) - bet*(exp(p(+1))-1)*exp(-tau*c(+1)+tau*c+dy(+1)+p(+1));
exp(c-y) = exp(-g) - phi*pist2^2*gst/2*(exp(p)-1)^2;
R = rhor*R(-1) + (1-rhor)*psi1*p + (1-rhor)*psi2*(y-g) + sigr*e_r;
g = dumpyrhog*rhog*g(-1) + sigg*e_g;
z = rhoz*z(-1) + sigz*e_z;
YGR = gamst+100*(dy+z);
INFL = pist+400*p;
INT = pist+rrst+4*gamst+400*R;
dy = y - y(-1);
end;
shocks;
var e_r = 0.6^2;
var e_g = 0.5^2;
var e_z = 0.4^2;
corr e_r, e_g = 0.3;
corr e_r, e_z = 0.2;
corr e_z, e_g = 0.1;
end;
steady_state_model;
z=0; g=0; c=0; y=0; p=0; R=0; dy=0;
YGR=gamst; INFL=pist; INT=pist+rrst+4*gamst;
end;
estimated_params;
tau, 2, 1e-5, 10, gamma_pdf, 2, 0.5;
%these parameters do not enter the linearized solution
cyst, 0.85, 1e-5, 0.99999, beta_pdf, 0.85, 0.1;
sigg, 0.6, 1e-8, 5, inv_gamma_pdf, 0.4, 4;
rhoz, 0.9, 1e-5, 0.99999, beta_pdf, 0.66, 0.15;
corr e_r,e_g, 0.3, 1e-8, 5, inv_gamma_pdf, 0.4, 4;
corr e_z,e_g, 0.3, 1e-8, 5, inv_gamma_pdf, 0.4, 4;
corr e_z,e_r, 0.3, 1e-8, 5, inv_gamma_pdf, 0.4, 4;
%these parameters could only be identified from the steady state of YGR INFL and INT, however, we observer y pi R instead
rrst, 1, 1e-5, 10, gamma_pdf, 0.8, 0.5;
gamst, 0.55, -5, 5, normal_pdf, 0.4, 0.2;
dumpy, 0, -10, 10, normal_pdf, 0, 1;
%these parameters jointly determine the slope kappa of the linearized new keynesian phillips curve
pist, 3.2, 1e-5, 20, gamma_pdf, 4, 2;
nu, 0.1, 1e-5, 0.99999, beta_pdf, 0.1, .05;
phi, 50, 1e-5, 100, gamma_pdf, 50, 20;
%these parameters are pairwise collinear as one should not use both formulations for the standard error of a shock
sigz, 0.3, 1e-8, 5, inv_gamma_pdf, 0.4, 4;
stderr e_z, 0.3, 1e-8, 5, inv_gamma_pdf, 0.4, 4;
%these parameters are pairwise collinear as they are multiplicative
rhog, 0.95, 1e-5, 0.99999, beta_pdf, 0.8, 0.1;
dumpyrhog, 1, -10, 10, normal_pdf, 1, 1;
%these parameters are jointly not identified due to the specification of the Taylor rule
psi1, 1.5, 1e-5, 10, gamma_pdf, 1.5, 0.25;
psi2, 0.125, 1e-5, 10, gamma_pdf, 0.5, 0.25;
rhor, 0.75, 1e-5, 0.99999, beta_pdf, 0.5, 0.2;
stderr e_r, 0.2, 1e-8, 5, inv_gamma_pdf, 0.3, 4;
end;
steady;
check;
identification(order=3, parameter_set=calibration, grid_nbr=10);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment