%----------------------------------------------------------------
% 1. Defining variables
%----------------------------------------------------------------

var y c iv n l k a;
varexo e;

parameters alp bet phi pssi del rho;

%----------------------------------------------------------------
% 2. Calibration
%----------------------------------------------------------------

alp   = 0.33;
bet    = 0.975;
phi     = 2;
pssi     = 0.5;
del   = 0.06;
rho     = 0.9;

%----------------------------------------------------------------
% 3. Model
%----------------------------------------------------------------

model; 
  0 = log((1-pssi)/pssi) + log(c(+1)) - log(l(+1)) - log(1-alp) - log(a(+1))
    - alp*log(k) + alp*log(n(+1));
  0 = (pssi*(1-phi)-1)*(log(c)-log(c(+1))) + (1-pssi)*(1-phi)*(log(l)-log(l(+1)))
    - log(bet) - log( alp*exp(log(a(+1)))*exp((alp-1)*log(k(+1)))*exp((1-alp)*log(n(+1))) 
    + (1-del) );
  0 = log(y(+1)) - log(a(+1)) - alp*log(k(+1)) - (1-alp)*log(n(+1));
  0 = log(y(+1)) - log( exp(log(c(+1))) + exp(log(iv(+1))) );
  0 = log(k(+1)) - log( exp(log(iv)) + (1-del)*exp(log(k)) );
  0 = -log( exp(log(n(+1))) + exp(log(l(+1))) );
  0 = log(a(+1)) - rho*log(a);
end;

%----------------------------------------------------------------
% 4. Computation
%----------------------------------------------------------------

initval;
a = 1;
y = 0.8;
k = 3.49;
iv = .209;
n = 0.47;
l = 0.53;
c = 0.69;
end;

shocks;
var e; stderr 0.01;
end;

estimated_params;
alp, beta_pdf, 0.33, 0.05; 
bet, beta_pdf, 0.975, 0.1;
phi, gamma_pdf, 2, 2;
pssi, beta_pdf, 0.5, 0.1;
del, beta_pdf, 0.06, 0.05;
rho, beta_pdf, 0.9, 0.05;
stderr e, inv_gamma_pdf, 0.01, 4;
end;


varobs y;
estimation(datafile=gdp, mh_drop=0.5, mh_replic=50000,mh_nblocks=3, mh_jscale=0.7,
   filtered_vars);

