var LGDP LGDP_BAR Y  RS RR RR_US PIE PIE12 PIETAR G RR_BAR UNR_GAP UNR_BAR UNR UNR_G LZ LZ_BAR LZ_E;
varexo RES_RS RES_LGDP_BAR RES_G RES_RR_BAR RES_UNR_GAP RES_UNR_BAR RES_UNR_G RES_PIE RES_RR_DIFF RES_Y RES_LZ_BAR RES_PIETAR RES_RR_US;
parameters omega1 omega2 omega2 omega3 gamma1 gamma2 gamma3 pietar_ss tau growth_ss rho rr_bar_ss rr_bar_us alpha1 alpha2 alpha3 lambda1 lambda2 lambda3 beta1 beta2 beta3 beta4 phi;
omega1=0.00;
omega2=0.8;
gamma1=0.7;
gamma2=2.5;
gamma3=0.05;
pietar_ss=0.03;
tau=0.05;
growth_ss=0.037;
rho=0.80;
rr_bar_us=0.01;
rr_bar_ss=0.024;
alpha1=0.7;
alpha2=0.1;
alpha3=0.2;
lambda1=0.3 ;
lambda2=0.25 ;
lambda3=0.05;
beta1=0.75; 
beta2=0.25; 
beta3=0.1; 
beta4=0.05; 
phi=0.5;

shocks;
var RES_RS; stderr 0.001;
var RES_LGDP_BAR; stderr 0.001;
var RES_G; stderr 0.001;
var RES_RR_BAR; stderr 0.001;
var RES_UNR_GAP; stderr 0.01;
var RES_UNR_BAR; stderr 0.01;
var RES_UNR_G; stderr 0.01;
var RES_PIE; stderr 0.001;
var RES_RR_DIFF; stderr 0.001;
var RES_Y; stderr 0.001;
var RES_LZ_BAR; stderr 0.001;
var RES_PIETAR; stderr 0.001;
var RES_RR_US; stderr 0.001;

end;

model;    
         
          RS = gamma1*RS(-1)+(1-gamma1)*(RR_BAR+PIE12(+9)+gamma2*(PIE12(+9)-PIETAR)+gamma3*Y)+RES_RS ;
          PIETAR = omega1*pietar_ss+(1-omega1)*PIETAR(-1)+RES_PIETAR ; 
          RR = RS-PIE(+1) ;
          RR_BAR = rho*rr_bar_ss+(1-rho)*RR_BAR(-1)+RES_RR_BAR ; 
          RR_US = omega2*rr_bar_us+(1-omega2)*RR_US(-1) +RES_RR_US;
          PIE12 = (PIE+PIE(-1)+PIE(-2)+PIE(-3)+PIE(-4)+PIE(-5)+PIE(-6)+PIE(-7)+PIE(-8)+PIE(-9)+PIE(-10)+PIE(-11))/12 ;
          LGDP_BAR = LGDP_BAR(-1)+G/12+RES_LGDP_BAR ;
          G = tau*growth_ss+(1-tau)*G(-1)+RES_G ;    
          UNR_GAP = alpha1*UNR_GAP(-1)+alpha2*Y+RES_UNR_GAP ;
          UNR = UNR_BAR+UNR_GAP ;
          UNR_BAR = UNR_BAR(-1)+UNR_G+RES_UNR_BAR ;
          UNR_G = (1-alpha3)*UNR_G(-1)+RES_UNR_G ;
          PIE = lambda1*PIE12(+12)+(1-lambda1)*PIE12(-1)+lambda2*Y(-1)+lambda3*(LZ-LZ(-1))- RES_PIE ;
          RR-RR_US = 12*(LZ_E-LZ)+RR_BAR-rr_bar_us+RES_RR_DIFF ;
          Y = beta1*Y(-1)+beta2*Y(+1)-beta3*(RR(-1)-RR_BAR(-1))+beta4*(LZ - LZ_BAR)+RES_Y ;
          LZ_BAR = LZ_BAR(-1)+RES_LZ_BAR ;
          LZ_E = phi*LZ(+1)+(1-phi)*LZ(-1); 
          LGDP = LGDP_BAR + Y ;    
end;
steady_state_model;
Y=0;
RS=rr_bar_ss+pietar_ss ;
RR=rr_bar_ss;
RR_US=rr_bar_us;
PIE=pietar_ss ;
PIE12 =pietar_ss; 
PIETAR = pietar_ss;
LGDP=4.5;
LGDP_BAR=4.5; 
G=growth_ss; 
RR_BAR=rr_bar_ss ;
UNR_GAP=0 ;
UNR_BAR=6; 
UNR=6; 
UNR_G=0;
LZ=7.6;
LZ_BAR=7.6; 
LZ_E=7.6;
end;

steady(nocheck);


estimated_params;
gamma1 ,beta_pdf,      0.7, 0.05;
gamma2 ,gamma_pdf,     1, 0.30;
gamma3,gamma_pdf,     0.2, 0.05;
tau, beta_pdf,      0.03, 0.05;
rho ,beta_pdf,      0.35, 0.05;
alpha1, beta_pdf,      0.7, 0.1;
omega2, beta_pdf,      0.5, 0.15;
alpha2,    gamma_pdf,     0.1, 0.20;
alpha3,    beta_pdf,     0.2, 0.20;
lambda1 ,gamma_pdf,      0.8, 0.10;
lambda2  ,gamma_pdf,     0.2, 0.05;
lambda3  ,gamma_pdf,     0.1, 0.05;
beta1 ,gamma_pdf,      0.8, 0.10; 
beta2 ,gamma_pdf,      0.9, 0.10; 
beta3 ,gamma_pdf,     0.2, 0.05;  
beta4 ,gamma_pdf,     0.2, 0.05; 
phi ,gamma_pdf,      0.8, 0.10;

stderr RES_UNR_GAP, inv_gamma_pdf, 0.01  , inf;
stderr RES_UNR_BAR, inv_gamma_pdf,  0.01  , inf;
stderr RES_UNR_G, inv_gamma_pdf,  0.01  ,inf;
stderr RES_Y, inv_gamma_pdf,       0.001 , inf; 
stderr RES_LGDP_BAR, inv_gamma_pdf, 0.001 , inf; 
stderr RES_G, inv_gamma_pdf,  0.001  ,inf;
stderr RES_PIE,   inv_gamma_pdf,  0.001  , inf; 
stderr RES_RS,	inv_gamma_pdf,  0.001  , inf; 
stderr RES_RR_BAR, inv_gamma_pdf,  0.001  , inf;
stderr RES_RR_DIFF, inv_gamma_pdf,  0.001  , inf;
stderr RES_LZ_BAR, inv_gamma_pdf,  0.001  , inf;
%stderr RES_PIETAR, inv_gamma_pdf,  0.001  , inf;
stderr RES_RR_US, inv_gamma_pdf,  0.001  , inf;
%corr RES_Y, RES_G, beta_pdf, 0.25, 0.1;
%corr RES_LGDP_BAR,RES_PIE, beta_pdf, 0.1, 0.02;
end;


varobs LGDP RS RR_US PIE PIETAR UNR LZ;

observation_trends;
LGDP (0.037/12);
end;

estimation(first_obs=1, datafile=DATA, xls_sheet=data, plot_priors=0, kalman_algo=3, mode_compute=4, mh_replic=0, diffuse_filter, mode_check) LGDP LGDP_BAR Y RS RR RR_US PIE PIE12 PIETAR G RR_BAR UNR_GAP UNR_BAR UNR UNR_G LZ LZ_BAR LZ_E;
 