2016-11-23 20:52:57 +01:00
|
|
|
// 3 independent local trend models
|
|
|
|
// test that the three local trends processes are still independent in the smoother
|
|
|
|
|
|
|
|
var
|
|
|
|
beta1, beta2, beta3,
|
|
|
|
mu1, mu2, mu3,
|
|
|
|
psi1, psi2, psi3,
|
|
|
|
tren1, tren2, tren3,
|
|
|
|
slop1, slop2, slop3,
|
|
|
|
cyc1, cyc2, cyc3,
|
|
|
|
v1, v2, v3;
|
|
|
|
|
|
|
|
varexo
|
|
|
|
e_irr1, e_irr2, e_irr3,
|
|
|
|
e_lev1, e_lev2, e_lev3,
|
|
|
|
e_slp1, e_slp2, e_slp3,
|
|
|
|
e_cyc1, e_cyc2, e_cyc3;
|
|
|
|
|
|
|
|
parameters
|
|
|
|
rho,
|
|
|
|
sdirr1, sdirr2, sdirr3,
|
|
|
|
sdlev1, sdlev2, sdlev3,
|
|
|
|
sdslp1, sdslp2, sdslp3,
|
|
|
|
sdcyc1, sdcyc2, sdcyc3;
|
|
|
|
|
|
|
|
rho = 0.75;
|
|
|
|
sdirr1 = 0.005;
|
|
|
|
sdirr2 = 0.005;
|
|
|
|
sdirr3 = 0.005;
|
|
|
|
sdlev1 = 0.0001;
|
|
|
|
sdlev2 = 0.0001;
|
|
|
|
sdlev3 = 0.0001;
|
|
|
|
sdslp1 = 0.0001;
|
|
|
|
sdslp2 = 0.0001;
|
|
|
|
sdslp3 = 0.0001;
|
|
|
|
sdcyc1 = 0.005;
|
|
|
|
sdcyc2 = 0.005;
|
|
|
|
sdcyc3 = 0.005;
|
|
|
|
|
|
|
|
model(linear);
|
|
|
|
|
|
|
|
mu1 = mu1(-1) + beta1(-1) + sdlev1*e_lev1;
|
|
|
|
beta1 = beta1(-1) + sdslp1*e_slp1;
|
|
|
|
psi1 = rho*psi1(-1) + sdcyc1*e_cyc1;
|
|
|
|
|
|
|
|
mu2 = mu2(-1) + beta2(-1) + sdlev2*e_lev2;
|
|
|
|
beta2 = beta2(-1) + sdslp2*e_slp2;
|
|
|
|
psi2 = rho*psi2(-1) + sdcyc2*e_cyc2;
|
|
|
|
|
|
|
|
mu3 = mu3(-1) + beta3(-1) + sdlev3*e_lev3;
|
|
|
|
beta3 = beta3(-1) + sdslp3*e_slp3;
|
|
|
|
psi3 = rho*psi3(-1) + sdcyc3*e_cyc3;
|
|
|
|
|
|
|
|
tren1 = mu1(-1);
|
|
|
|
tren2 = mu2(-1);
|
|
|
|
tren3 = mu3(-1);
|
|
|
|
|
|
|
|
slop1 = beta1(-2);
|
|
|
|
slop2 = beta2(-2);
|
|
|
|
slop3 = beta3(-2);
|
|
|
|
|
|
|
|
cyc1 = psi1(-1);
|
|
|
|
cyc2 = psi2(-1);
|
|
|
|
cyc3 = psi3(-1);
|
|
|
|
|
|
|
|
v1 = tren1 + cyc1 + sdirr1*e_irr1;
|
|
|
|
v2 = tren2 + cyc2 + sdirr2*e_irr2;
|
|
|
|
v3 = tren3 + cyc3 + sdirr3*e_irr3;
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
shocks;
|
|
|
|
var e_irr1; stderr 1;
|
|
|
|
var e_irr2; stderr 1;
|
|
|
|
var e_irr3; stderr 1;
|
|
|
|
var e_lev1; stderr 1;
|
|
|
|
var e_lev2; stderr 1;
|
|
|
|
var e_lev3; stderr 1;
|
|
|
|
var e_slp1; stderr 1;
|
|
|
|
var e_slp2; stderr 1;
|
|
|
|
var e_slp3; stderr 1;
|
|
|
|
var e_cyc1; stderr 1;
|
|
|
|
var e_cyc2; stderr 1;
|
|
|
|
var e_cyc3; stderr 1;
|
|
|
|
end;
|
|
|
|
|
|
|
|
// stoch_simul(order=1,irf=20);
|
|
|
|
|
|
|
|
|
|
|
|
varobs v1, v2, v3;
|
|
|
|
|
|
|
|
options_.qz_criterium = 1+1e-6;
|
|
|
|
|
2021-11-12 16:22:22 +01:00
|
|
|
calib_smoother(datafile=data_Pinf_Pstar,diffuse_filter);
|
2016-11-23 20:52:57 +01:00
|
|
|
|
|
|
|
mf = bayestopt_.smoother_var_list(bayestopt_.smoother_mf);
|
|
|
|
Q = M_.Sigma_e;
|
2021-06-22 14:28:46 +02:00
|
|
|
[T,R,SteadyState,info,M_,oo_] = dynare_resolve(M_,options_,oo_);
|
2016-11-23 20:52:57 +01:00
|
|
|
|
|
|
|
[Pstar,Pinf] = compute_Pinf_Pstar(mf,T,R,Q,options_.qz_criterium);
|
|
|
|
|
|
|
|
k = reshape(1:M_.endo_nbr,3,round(M_.endo_nbr/3));
|
|
|
|
kc = k(1,:);
|
|
|
|
kr = k(2:3,:);
|
|
|
|
|
2017-03-16 15:51:11 +01:00
|
|
|
if norm(Pinf(kr(:),kc)) > 1e-14
|
2016-11-23 20:52:57 +01:00
|
|
|
error('Pinf isn''t correct')
|
|
|
|
end
|
2017-03-16 15:51:11 +01:00
|
|
|
if norm(Pinf(kr(:),kc)) > 1e-14
|
2016-11-23 20:52:57 +01:00
|
|
|
error('Pstar isn''t correct')
|
|
|
|
end
|