%Hansen's Model: Ruge-Mucria: Methods to Estimate DSGE-Models

%Testing the different estimation methods

%The Model:

close all;

var c n w x r k y z; 
varexo eps_z; 

parameters eta beta psi delta alpha rho sigma kss nss css yss xss wss rss;

beta = 0.95;
psi = 1;
delta = 0.025;
alpha = 0.36;
rho = 0.85;
sigma = 0.04;
eta = ((1/beta+delta-1)/(alpha))^(1/(1-alpha));
kss = (((1-alpha)*eta^(-alpha))/psi)*(eta^(1-alpha)-delta)^(-1);
nss = eta*kss;
yss = (kss)^(alpha)*(nss)^(1-alpha);
rss = alpha*(yss/kss);
wss = (1-alpha)*(yss/nss);
css = wss/psi;
xss = delta*kss;
zss = 1;

model;

%Euler Equation:
1/c = beta*(1/c(+1))*(1+r(+1)-delta);
psi*c = w;

%Wages and rental rate:
w = (1-alpha)*(y/n);
r = alpha*(y/k);

%Capital Accumulation:
x = k-(1-delta)*k(-1);

%Production:
y = z*(k)^(alpha)*(n)^(1-alpha);

%Market Clearing Conditions:
c + x = y;

%Shocks:
log(z) = rho*log(z(-1)) + eps_z;

end;

initval;
k = kss;
n = nss;
w = wss;
r = rss;
y = yss;
x = xss;
z = zss;
c = css;
end;

check;
steady;


shocks;
var eps_z;
stderr sigma;
end;
%set_dynare_seed=100;
stoch_simul(periods = 1200,order=1,irf=0);datatomfile('Hansendata',[]);