% Felipe Salce Díaz
% Ilades - Georgetown University 
% Macroeconomia II
% Tarea 4

var c g inv y n k a w z q i r pi  cmg c_obs inv_obs y_obs i_obs inf_obs;
varexo e_a e_g e_i e1 e2;
parameters alpha beta gamma chi delta nu rho_a rho_g sigma theta phi c_y i_y g_y  cy cinv cc cinf ci; 
c_y = 0.5;
i_y = 0.3;
g_y = 0.2;
delta = 0.25;
alpha = 0.5;
beta = 0.99;
gamma = 0.7;
chi = 4;
nu = 2;
rho_a = 0.5;
rho_g = 0.5;
sigma = 1.5;
theta = 0.5;
phi = 1.5;
cy = 1.0993;
cinv = 1.7927;
cc = 1.5300;
cinf = 0.9106;
ci = 1.0086;
varobs c_obs inv_obs y_obs i_obs inf_obs;

model;
//Euler
(sigma/(1-gamma)) * (c(+1) - gamma * c) - beta * ((1/beta) - 1) * r = (sigma/(1-gamma)) * (c - gamma * c(-1));

//Oferta de trabajo
nu * n + (sigma/(1-gamma)) * (c - gamma * c(-1)) = w;

//Ley de movimiento de capital
k = ((1-delta) * k(-1)) + (delta * inv);

//Q de Tobin
q = chi * delta  * (inv - k(-1));

//Dinamica de Q
q + (sigma/(1-gamma))*(c(+1)-gamma*c) = (sigma/(1-gamma))*(c-gamma*c(-1)) + (1-beta*(1-delta)) * z(+1) + beta*q(+1);

//Función de producción
y = a + alpha*k(-1) + (1-alpha)*n;

//Condición de minimización de costos
k(-1) - n  = w - z;

// Costos marginales reales
cmg = alpha * z + (1-alpha) * w  - a;

//Curva de Phillips
pi = beta* pi(+1) + (((1-beta*theta)*(1-theta))/theta) * cmg;

//Regla de Taylor
i = phi * pi  + e_i;

//Tasa de interés real
r = i  - pi(+1);

//Proceo exogeno para el gasto publico
g = rho_g * g(-1) + e_g;

//Proceso exogeno para la tecnologia
a = rho_a * a(-1) + e_a;

//Restricción de la economía
y = c_y * c +  i_y *i +  g_y * g;

//Ecuaciones de medida
y_obs = cy+y-y(-1) + e1;
c_obs = cc+c-c(-1) + e2;
inv_obs = cinv+inv-inv(-1);
inf_obs = cinf + pi;
i_obs = ci + i;
end;

estimated_params;
beta, beta_pdf, 0.99, 0.002;
alpha, normal_pdf, 0.5, 0.15;
rho_a, beta_pdf, 0.5, 0.2;
rho_g, beta_pdf, 0.5, 0.2;
sigma, normal_pdf, 1.5, 0.375;
gamma, beta_pdf, 0.7, 0.1;
nu, normal_pdf, 2, 0.75;
chi, normal_pdf, 4, 1.5;
phi, normal_pdf, 1.5, 0.25;
theta, beta_pdf, 0.5, 0.2;
c_y, normal_pdf, 0.6, 0.2;
i_y, normal_pdf, 0.3, 0.2;
g_y, normal_pdf, 0.1, 0.05;
stderr e_a, inv_gamma_pdf, 0.1, 0.2; 
stderr e_i, inv_gamma_pdf, 0.1, 0.2; 
stderr e_g, inv_gamma_pdf, 0.1, 0.2; 
stderr e1, inv_gamma_pdf, 0.1, 0.2; 
stderr e2, inv_gamma_pdf, 0.1, 0.2; 
cy, normal_pdf, 1.0993, 0.02;
cinv, normal_pdf,  1.7927, 0.02;
cc, normal_pdf, 1.5300, 0.02;
ci, normal_pdf, 1.0086, 0.02;
cinf, normal_pdf, 0.9106, 0.02;
end;

estimation(datafile=data_t4, nobs=52, mh_nblocks=2, mh_replic=2000);//
