63 lines
1.8 KiB
Modula-2
63 lines
1.8 KiB
Modula-2
//Rudebusch Svensson (1999) model with optimized policy rule
|
|
|
|
var pi y i;
|
|
varexo epsilon eta;
|
|
|
|
parameters alpha_pi1 alpha_pi2 alpha_pi3 alpha_pi4 alpha_y
|
|
beta_y1 beta_y2 beta_r
|
|
gamma_pi1 gamma_pi2 gamma_pi3 gamma_pi4
|
|
gamma_y1 gamma_y2 gamma_i1 gamma_i2 gamma_i3;
|
|
|
|
|
|
alpha_pi1 = 0.7;
|
|
alpha_pi2 = -0.1;
|
|
alpha_pi3 = 0.28;
|
|
alpha_pi4 = 0.12;
|
|
alpha_y = 0.14;
|
|
beta_y1 = 1.16;
|
|
beta_y2 = -0.25;
|
|
beta_r = 0.1;
|
|
gamma_pi1 = 0.88;
|
|
gamma_pi2 = 0.30;
|
|
gamma_pi3 = 0.38;
|
|
gamma_pi4 = 0.13;
|
|
gamma_y1 = 1.30;
|
|
gamma_y2 = -0.33;
|
|
gamma_i1 = 0.47;
|
|
gamma_i2 = -0.06;
|
|
gamma_i3 = -0.03;
|
|
|
|
|
|
|
|
|
|
model(linear);
|
|
pi = alpha_pi1*pi(-1) +alpha_pi2*pi(-2) +alpha_pi3*pi(-3) +alpha_pi4*pi(-4) + alpha_y*y(-1) + epsilon;
|
|
y = beta_y1*y(-1) + beta_y2*y(-2) - beta_r*((i(-1)+i(-2)+i(-3)+i(-4))/4 - (pi(-1)+pi(-2)+pi(-3)+pi(-4))/4) + eta;
|
|
i = gamma_pi1*pi + gamma_pi2*pi(-1) + gamma_pi3*pi(-2) + gamma_pi4*pi(-3)
|
|
+ gamma_y1*y + gamma_y2*y(-1) + gamma_i1*i(-1) + gamma_i2*i(-2) + gamma_i3*i(-3);
|
|
end;
|
|
|
|
stoch_simul(irf=0);
|
|
|
|
A = diag(ones(12,1));
|
|
A(3,1) = -0.88;
|
|
A(3,2) = -1.30;
|
|
B = [ 0.7 0.14 0 -0.1 0 0 0.28 0 0 0.12 0 0;
|
|
0.025 1.16 -0.025 0.025 -0.25 -0.025 0.025 0 -0.025 0.025 0 -0.025;
|
|
0.30 -0.33 0.47 0.38 0 -0.06 0.13 0 -0.03 0 0 0;
|
|
1 0 0 0 0 0 0 0 0 0 0 0;
|
|
0 1 0 0 0 0 0 0 0 0 0 0;
|
|
0 0 1 0 0 0 0 0 0 0 0 0;
|
|
0 0 0 1 0 0 0 0 0 0 0 0;
|
|
0 0 0 0 1 0 0 0 0 0 0 0;
|
|
0 0 0 0 0 1 0 0 0 0 0 0;
|
|
0 0 0 0 0 0 1 0 0 0 0 0;
|
|
0 0 0 0 0 0 0 1 0 0 0 0;
|
|
0 0 0 0 0 0 0 0 1 0 0 0];
|
|
|
|
eigenvalues = sort(abs(eig(A\B)));
|
|
if (max(sort(abs(oo_.dr.eigval)) - eigenvalues(3:end))) > 1e-13;
|
|
error(sprintf('Eigenvalues aren''t correct. Absolute maximum error: %f',max(abs(oo_.dr.eigval - eig(A)))));
|
|
end;
|
|
|