// example 1 from Collard's guide to Dynare
var y a k c i h yobs cobs hobs uy uc uh;
varexo ea eyobs ecobs ehobs;

parameters theta rho eta gam bet delta aa dyy dyc dyh dcy dcc
dch dhy dhc dhh;


bet = 0.99; dcy = 0;
delta = 0.025; dcc = 0.99;
theta = 0.2; dch = 0;
rho = 0.95; dhy = 0;
eta = 1.0051; dhc = 0;
gam = 0.0045; dhh = 0.99;
aa = 1.8;
dyy = 0.99;
dyc = 0;
dyh = 0;


% model;
% y = a*k(-1)^theta*h^(1-theta);
% log(a)=(1-rho)*log(aa)+rho*log(a(-1))+ea;
% y = c + i;
% eta*k=(1-delta)*k(-1)+i;
% gam*c*h = (1-theta)*y;
% eta/c=bet*(1/c(+1))*(theta*(y(+1)/k)+1-delta);
% yobs = y + uy; cobs = c + uc; hobs = h + uh;
% uy = dyy*uy(-1) + dyc*uc(-1)+ dyh*uh(-1) + eyobs;
% uc = dcy*uy(-1)+dcc*uc(-1)+dch*uh(-1) + ecobs;
% uh = dhy*uy(-1) + dhc*uc(-1)+ dhh*uh(-1) + ehobs;
% end;

//log-linearized model
model;
exp(y) = exp(a)*exp(k(-1))^theta*exp(h)^(1-theta);
a=(1-rho)*aa+rho*a(-1)+ea;
exp(y) = exp(c) + exp(i);
eta*exp(k)=(1-delta)*exp(k(-1))+exp(i);
gam*exp(c)*exp(h) = (1-theta)*exp(y);
eta/exp(c) = bet*(1/exp(c(+1)))*
(theta*(exp(y(+1))/exp(k))+1-delta);
yobs = y + uy; cobs = c + uc; hobs = h + uh;
uy = dyy*uy(-1) + dyc*uc(-1)+ dyh*uh(-1) + eyobs;
uc = dcy*uy(-1)+dcc*uc(-1)+dch*uh(-1) + ecobs;
uh = dhy*uy(-1) + dhc*uc(-1)+ dhh*uh(-1) + ehobs;
end;

initval;
a = 1.7; uy = 0;
y = 8; uc = 0;
c = 8; uh = 0;
k = 10; yobs = y;
i = 5; cobs = c;
h = 4; hobs = h;
end;

shocks;
var ea = 0.0056;
var eyobs = 0.007;
var ecobs = 0.0069;
var ehobs = 0.0018;
var eyobs, ecobs = 0.0040;
var eyobs, ehobs = 0.0015;
var ecobs, ehobs = 0.0010;
end;
maxit=10000;
steady;
//check;

stoch_simul(irf=40,order=1, ar=10) y c h;
//forecast(periods=20);



