
//------------------------------------------
//                Preamble
//------------------------------------------
var pi y Y rn i m_r a v n; 

varexo eps_v eps_a;

parameters beta epsilon theta sigma rho phi alpha phi_pi phi_y phi_i eta PSI_yan THETA lambda kappa rho_v rho_a LAMBDA_v LAMBDA_a; 

    PSI_yan = (1+phi) / ( sigma*(1-alpha)+phi+alpha );
    THETA = (1-alpha)/(1-alpha+alpha*epsilon);
    lambda = (1-theta)*(1-beta*theta)*THETA/theta;
    kappa = lambda * (sigma + (phi+alpha)/(1-alpha));
    rho = 1/beta -1;

    epsilon = 5;
    eta = 4;
    alpha = 0.4;
       
    LAMBDA_v = 1  /  ( (1-beta*rho_v)*(sigma*(1-rho_v)+phi_y)+kappa*(phi_pi-rho_v) );
    LAMBDA_a = 1  /  ( (1-beta*rho_a)*(sigma*(1-rho_a)+phi_y)+kappa*(phi_pi-rho_a) );

//------------------------------------------
//                 Model
//------------------------------------------

model(linear);
    

// Taylor-Rule
    i = phi_i*i(-1)+ (1-phi_i)*(rho + phi_pi*(pi-0.045)  +  phi_y*y) + v; // eq'n. (25), p. 50
// IS-Equation
    y = y(+1) - 1/sigma * (i - pi(+1) - rn); // y is output gap (22)
    rn = rho + sigma*PSI_yan*  (a(+1)-a); // natural rate of interest (23)
    Y = a * PSI_yan * ( 1 - sigma*(1-rho_a)*(1-beta*rho_a)*LAMBDA_a ); // actual output; 3rd eq'n from bottom, p. 54
// Phillips Curve
    pi = beta*pi(+1) + kappa*y; // (21)
// Money Demand
    m_r = y - eta*i; // ad hoc money demand; m_r = m-p
// Employment
    n = a*( (PSI_yan-1) - sigma*PSI_yan*(1-rho_a)*(1-beta*rho_a)*LAMBDA_a )/(1-alpha); // bottom p. 54
// Autoregressive Error
    a = rho_a*a(-1) + eps_a; // technology shock (28)
    v = rho_v*v(-1) + eps_v; // shock to i (bottom p. 50)
    
end;

check;

varobs y i pi n;
 

//------------------------------------------
//                 Estimation
//------------------------------------------

estimated_params;
beta, normal_pdf, 0.91, 0.01;
phi_pi, normal_pdf, 1.5, 0.75;
phi_y, normal_pdf, 0.5, 0.25;
phi_i, beta_pdf, 0.5, 0.18;
rho_a, beta_pdf, 0.5, 0.18;
theta, beta_pdf, 0.5, 0.18;
sigma, normal_pdf, 1, 0.5;
phi, normal_pdf, 1.5, 0.75;
rho_v, beta_pdf, 0.5, 0.18;
stderr eps_a, inv_gamma_pdf, 2, 2;
stderr eps_v, inv_gamma_pdf, 2, 2;



end;

estimation(datafile=data,first_obs=500,
mh_replic=2000,mh_nblocks=2,mh_drop=0.45,mh_jscale=0.8);

