//Code to replicate Mankiw & Reis: Sticky Information vs Sticky Prices (2004)
//Choose whether you want to produce figure 1 or figure 4 by %ing out 
//either the law of motion for m or for dm.  
//Roberto Croce 2/26/2008

var p pi y m dm
z
zf1 zf2 zf3 zf4 zf5 zf6 zf7 zf8 zf9 zf10 zf11 zf12 zf13 zf14 zf15
z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15;


  
   
varexo eM eDM;
   
parameters lam alph rho_r;

lam = 0.25;
alph = 0.1;
rho_r = 0.5;



model(linear);
//Equations that drive sticky info
z = alph*(y-y(-1))+pi;
zf1 = z(+1);
zf2 = z(+2);
zf3 = z(+3);
zf4 = z(+4);
zf5 = z(+5);
zf6 = z(+6);
zf7 = z(+7);
zf8 = z(+8);
zf9 = z(+9);
zf10 = z(+10);
zf11 = z(+11);
zf12 = z(+12);
zf13 = z(+13);
zf14 = z(+14);
zf15 = z(+15);

z1 = zf1(-1);
z2 = zf2(-2);
z3 = zf3(-3);
z4 = zf4(-4);
z5 = zf5(-5);
z6 = zf6(-6);
z7 = zf7(-7);
z8 = zf8(-8);
z9 = zf9(-9);
z10 = zf10(-10);
z11 = zf11(-11);
z12 = zf12(-12);
z13 = zf13(-13);
z14 = zf14(-14);
z15 = zf15(-15);


//Inflation Definition
pi = p - p(-1);
dm = m - m(-1);

//Inflation Euler
pi = lam*((alph/(1-lam))*y +  z1 + (1-lam)*z2 + (1-lam)^2*z3 + (1-lam)^3*z4 + (1-lam)^4*z5 + (1-lam)^5*z6 + (1-lam)^6*z7 + (1-lam)^7*z8 + (1-lam)^8*z9 + (1-lam)^9*z10 + (1-lam)^10*z11 + (1-lam)^11*z12 + (1-lam)^12*z13 + (1-lam)^13*z14 + (1-lam)^14*z15);

//Nominal Demand
m = p + y;

//Persistent Shock Processes
%m = m(-1) - eM;
dm = rho_r*dm(-1) - eDM;
end;

check;
steady;

shocks;
var eM; stderr 0.1;
var eDM; stderr 0.007;
end;


stoch_simul(irf=20) y pi;

dyngraph;

figure(4)
subplot(2,1,1)
plot(y_eM,'b-s')
xlim([1,20])
title('A. Output');
subplot(2,1,2)
plot(pi_eM, 'b-v')
xlim([1,20])
title('B. Inflation')
suptitle('Mankiw Reis (2002) Figure I, Perm. 10% Fall in Demand')


figure(5)
subplot(2,1,1)
plot(y_eDM,'b-s')
xlim([1,20])
title('A. Output');
subplot(2,1,2)
plot(pi_eDM, 'b-v')
xlim([1,20])
title('B. Inflation')
suptitle('Mankiw Reis (2002) Figure IV, Perm. 10% Fall in Demand')












