%Hansen's Model: Ruge-Mucria: Methods to Estimate DSGE-Models

%Testing the different estimation methods

%The Model:

close all;

var y c i h k a; 
varexo eps_a; 

parameters beta gamma eta theta delta rho sigma yss css iss hss kss ass ahat;

beta = 0.99;
gamma = 0.0045;
eta = 1.0039;
theta = 0.2342;
delta = 0.025;
ahat = 6.0952;
rho = 0.9983;
sigma = 0.01581;
ass = ahat;
kss = (theta/(eta/beta-1+delta))*yss;
iss = ((theta*(eta-1+delta))/(eta/beta-1+delta))*yss;
css = (1-((theta*(eta-1+delta))/(eta/beta-1+delta)))*yss;
hss = ((1-theta)/(gamma))*(1-((theta*(eta-1+delta))/(eta/beta-1+delta)))^(-1);
yss = ass^(1/(1-theta))*(theta/(eta/beta-1+delta))^((theta)/(1-theta))*((1-theta)/(gamma))*(1-((theta*(eta-1+delta))/(eta/beta-1+delta)))^(-1);

model;
y = a*k^(theta)*h^(1-theta);
log(a)=(1-rho)*log(ahat)+rho*log(a(-1))+eps_a;
y=c+i;
eta*k=(1-delta)*k(-1)+i(-1);
gamma*c*h=(1-theta)*y;
eta/c=beta*((1/c(+1))*(theta*(y(+1)/k(+1))+1-delta));
end;

initval;
y = yss;
c = css;
i = iss;
k = kss;
h = hss;
a = ass;
c = css;
end;

shocks;
var eps_a;
stderr sigma;
end;

check;
steady;

stoch_simul(periods = 200,order=1,irf=0,noprint);