var_forecast tests
parent
20ba99cf94
commit
7c9e54c8b4
|
@ -0,0 +1,33 @@
|
|||
var i, pi, y;
|
||||
varexo ee, nu;
|
||||
parameters bet, bet1, gam, sig, phi, psi;
|
||||
|
||||
|
||||
bet = 0.99;
|
||||
bet1 = 0.99;
|
||||
gam = 0.1275;
|
||||
sig = 1;
|
||||
phi = 1.5;
|
||||
psi = 0.125;
|
||||
|
||||
|
||||
model;
|
||||
|
||||
% Taylor Rule
|
||||
i = phi*pi + psi*y + ee;
|
||||
|
||||
% Phillips Curve
|
||||
pi = bet*pi(1) + gam*y;
|
||||
|
||||
% IS
|
||||
y = y(1) + y(-1) - 1/sig*(i - pi(1)) + nu;
|
||||
|
||||
end;
|
||||
|
||||
shocks;
|
||||
var ee; stderr 0.0205;
|
||||
var nu; stderr 0.898;
|
||||
end;
|
||||
|
||||
stoch_simul(order=1, periods=200);
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
var i, pi, y;
|
||||
varexo ee, nu;
|
||||
parameters bet, gam, sig, phi, psi;
|
||||
|
||||
|
||||
bet = 0.99;
|
||||
gam = 0.1275;
|
||||
sig = 1;
|
||||
phi = 1.5;
|
||||
psi = 0.125;
|
||||
|
||||
var_model(model_name=my_var_est, order=1) pi y;
|
||||
|
||||
model;
|
||||
|
||||
% Taylor Rule
|
||||
i = phi*pi + psi*y + ee;
|
||||
|
||||
% Phillips Curve
|
||||
pi = bet*pi(1) + gam*y;
|
||||
|
||||
% IS
|
||||
y = var_expectation(y, model_name=my_var_est) + y(-1) - 1/sig*(i - var_expectation(pi, model_name=my_var_est)) + nu;
|
||||
|
||||
end;
|
||||
|
||||
shocks;
|
||||
var ee; stderr 0.0205;
|
||||
var nu; stderr 0.0305;
|
||||
end;
|
||||
|
||||
stoch_simul(order=1, periods=200);
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
clearvars
|
||||
clearvars -global
|
||||
!rm nkm_saved_data.mat
|
||||
!rm my_var_est.mat
|
||||
!rm nkm_var_saved_data.mat
|
||||
|
||||
%% Call Dynare without VAR
|
||||
dynare nkm.mod
|
||||
save('nkm_saved_data.mat')
|
||||
|
||||
%% Estimate VAR using simulated data
|
||||
disp('VAR Estimation');
|
||||
Y = oo_.endo_simul(2:3, 2:end);
|
||||
Z = [ones(1, size(Y,2)); oo_.endo_simul(2:3, 1:end-1)];
|
||||
|
||||
% OLS
|
||||
B = Y*transpose(Z)/(Z*transpose(Z));
|
||||
|
||||
%% save values
|
||||
mu = B(:, 1);
|
||||
autoregressive_matrices{1} = B(:, 2:end);
|
||||
save('my_var_est.mat', 'mu', 'autoregressive_matrices');
|
||||
|
||||
%% Call Dynare with VAR
|
||||
clearvars
|
||||
clearvars -global
|
||||
dynare nkm_var.mod
|
||||
save('nkm_var_saved_data.mat')
|
||||
|
||||
%% compare values
|
||||
clearvars
|
||||
clearvars -global
|
||||
zerotol = 1e-12;
|
||||
|
||||
nv = load('nkm_saved_data.mat');
|
||||
wv = load('nkm_var_saved_data.mat');
|
||||
|
||||
assert(max(max(abs(nv.y - wv.y))) < zerotol);
|
||||
assert(max(max(abs(nv.pi - wv.pi))) < zerotol);
|
||||
assert(max(max(abs(nv.i - wv.i))) < zerotol);
|
||||
|
||||
fn = fieldnames(nv.oo_.irfs);
|
||||
for i=1:length(fn)
|
||||
assert(max(max(abs(nv.oo_.irfs.(fn{i}) - (wv.oo_.irfs.(fn{i}))))) < zerotol);
|
||||
end
|
Loading…
Reference in New Issue