// This is the dynare programme for Smets-Wouters Model.

var k, l, w, rk, i, y, c, r, pi, q, eg, ea, eb, el, epi, ei;
varexo delel, delea, deleb, delg, delpi, nr, delei, np, nw,  nq;
parameters tao, psai, ky, gy, cy, invy, fai, alfa, rho, rpi, ry, rdpi, rdy, h, deltac, beta, dfai, rkstar, gamp, omegap, gamw, omegaw, lamw, deltal, rhog, rhoea, rhoeb, rhoel, rhopi, rhoei;

beta=0.99;
tao=0.025;
psai=5.917;
ky=8.8;
cy=0.6;
invy=0.22;
gy=0.18;
fai=1.408;
alfa=0.3;
rho=0.961;
rpi=1.684;
ry=0.099;
rdpi=0.14;
rdy=0.59;
h=0.573;
deltac=1.353;
dfai=0.148;
rkstar=0.035;
gamp=0.469;
omegap=0.908;
gamw=0.763;
omegaw=0.737;
lamw=0.5;
deltal=2.4;
rhoel=0.889;
rhoea=0.823;
rhoeb=0.855;
rhog=0.949;
rhopi=0.924;
rhoei=0.927;

model (linear);
k=(1-tao)*k(-1)+tao*i(-1);
l=-w+(1+psai)*rk+k(-1);
y=(1-tao*ky-gy)*c+tao*ky*i+eg;
y=fai*ea+fai*alfa*k(-1)+fai*alfa*psai*rk+fai*(1-alfa)*l;
r=rho*r(-1)+(1-rho)*(epi+rpi*(pi(-1)-epi)+ry*y)+rdpi*(pi-pi(-1))+rdy*(y-y(-1))+nr;
c=h/(1+h)*c(-1)+1/(1+h)*c(+1)-(1-h)/((1+h)*deltac)*(r-pi(+1))+(1-h)/((1+h)*deltac)*eb;
i=1/(1+beta)*i(-1)+beta/(1+beta)*i(+1)+dfai/(1+beta)*q+ei;
q=-(r-pi(+1))+(1-tao)/(1-tao+rkstar)*q(+1)+rkstar/(1-tao+rkstar)*rk(+1)+nq;
pi=beta/(1+beta*gamp)*pi(+1)+gamp/(1+beta*gamp)*pi(-1)+(1-beta*omegap)*(1-omegap)/(omegap*(1+beta*gamp))*(alfa*rk+(1-alfa)*w-ea)+np;
w=beta/(1+beta)*w(+1)+1/(1+beta)*w(-1)+beta/(1+beta)*pi(+1)-(1+beta*gamw)/(1+beta)*pi+gamw/(1+beta)*pi(-1)-
1/(1+beta)*(1-beta*omegaw)*(1-omegaw)/((1+(1+lamw)*deltal/lamw)*omegaw)*(w-deltal*l-deltac/(1-h)*(c-h*c(-1))+el)+nw;
eg=rhog*eg(-1)+delg;
ea=rhoea*ea(-1)+delea;
el=rhoel*el(-1)+delel;
eb=rhoeb*eb(-1)+deleb;
epi=rhopi*epi(-1)+delpi;
ei=rhoei*ei(-1)+delei;
end;

initval;
k=0;
l=0;
y=0;
c=0;
i=0;
q=0;
w=0;
pi=0;
r=1.01;
rk=0.035;
eg=0;
eb=1.0;
el=1.0;
ei=1;
epi=0.0;
ea=1.0;
end;


shocks;
var delel; stderr 3.52;
var delea; stderr 0.598;
var deleb; stderr 0.336;
var delg; stderr 0.325;
var delpi; stderr 0.017;
var nr; stderr 0.081;
var delei; stderr 0.085;
var np; stderr 0.16;
var nw; stderr 0.289;
var nq; stderr 0.604;
end;

steady;

check;

estimated_params;                          // Posterior 
stderr delea, inv_gamma_pdf, 0.4, 2;       // mode:0.598; 
stderr delpi, inv_gamma_pdf, 0.02, 2;      // mode:0.017;
stderr deleb, inv_gamma_pdf, 0.2, 2;       // mode:0.336;
stderr delg, inv_gamma_pdf, 0.3, 2;       // mode:0.325;
stderr delel, inv_gamma_pdf, 1.0, 2;       // mode:3.52;
stderr delei, inv_gamma_pdf, 0.1, 2;       // mode:0.085;      
stderr nr, inv_gamma_pdf, 0.1, 2;       // mode:0.081;
stderr nq, inv_gamma_pdf, 0.4, 2;       // mode:0.604;
stderr np, inv_gamma_pdf, 0.15, 2;      // mode:0.160;
stderr nw, inv_gamma_pdf, 0.25, 2;      // mode:0.289;
rhoea, beta_pdf, 0.85, 0.10;             // mode:0.823;
rhopi, beta_pdf, 0.85, 0.10;             // mode:0.924; 
rhoeb, beta_pdf, 0.85, 0.10;             // mode:0.855;
rhog, beta_pdf, 0.85, 0.10;             // mode:0.949;
rhoel, beta_pdf, 0.85, 0.10;             // mode:0.889;
rhoei, beta_pdf, 0.85, 0.10;             // mode:0.927; 
deltac, normal_pdf, 1.0,  0.375;        // mode:1.353;
h, beta_pdf,   0.7,  0.1;          // mode:0.573; 
deltal, normal_pdf, 2.0,  0.75;         // mode:2.400;
fai, normal_pdf, 1.45, 0.25;         // mode:1.408;     // fixed cost
omegaw, beta_pdf, 0.75, 0.05;             // mode:0.737; 
omegap, beta_pdf, 0.75, 0.05;             // mode:0.908;  
gamw, beta_pdf, 0.75, 0.15;             // mode:0.763;
gamp, beta_pdf, 0.75, 0.15;             // mode:0.469;
rpi, normal_pdf, 1.7, 0.1;           // mode:1.684; 
rdpi,normal_pdf, 0.3, 0.1;           // mode:0.14;
rho, beta_pdf,   0.8, 0.1;           // mode:0.961;   
ry, normal_pdf, 0.125, 0.05;        // mode:0.099; 
rdy,normal_pdf, 0.0625, 0.05;       // mode:0.159;
end;



varobs y, c, i, w, r, pi; 

estimation(datafile=Book1, order =1, nobs = 79, mode_compute=0, mode_file=smetswouters_mode, mode_check, mh_replic=20000);


