%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% DSGEBVAR
%%%%%%
%%%%%% Artículo "Monetary Policy in Closed and Open Economies"
%%%%%%
%%%%%% UPPSALA UNIVERSITET Master Thesis
%%%%%% Glenn Mickelson
%%%%%%
%%%%%%
%%%%%% 2009-06-04
%%%%%%
%%%%%% Copiado directamente del Anexo del Artículo
%%%%%% http://uu.diva-portal.org/smash/get/diva2:233883/FULLTEXT01
%%%%%%
%%%%%% Esta version es replicada para el caso de una economia
%%%%%% abierta sencilla en Colombia, se extiende para el caso 
%%%%%% VAR Bayesiano. El sector externo puede compararse 
%%%%%% directamente con EEUU
%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


var c c_h im s y y_star i i_star inflation inflation_star n w b a v nx 
inflation_h q ex u z;

varexo Taylor_shock output_shock philip_shock world_output_shock 
inflation_star_shock is_shock;

parameters theta phiy phip phiy_star phip_star kappa_a kappa_y lambda 
disc beta epsilon rhoi rhoy alpha phi psi M mu theta_gamma gamma
etha delta rhoy_star rho_inflation lambda_ex etha_star rho_inflation_1
rho_is;


lambda_ex = 0.1;      %Elasticidad Preferencia entre Producto Foráneo/Doméstico Tomado de Gottfries(2003)
etha_star = 3;        %Elasticidad de Sustitucion con el resto del Mundo Tomado de Gottfries(2003)
etha = 5;             %(COL)Tomado de Henao(2008) Demanda Externa,Term. Intercambio y el papel Pol.Mon Crisis 2008. Elasticidad de sustitucion entre bienes Extranjeros/Domesticos
delta = 0.25;         %(COL)Grado de Apertura Economica, (0 es Econ. Cerrada). Tomado de Henao(2008) Demanda Externa,Term. Intercambio y el papel Pol.Mon Crisis 2008. 
disc = 0.01;          %(COL)Parametro que refleja el tiempo de espera Trimestral (Pag 24), se ajusta para que de el beta de Henao(2008) Demanda Externa,Term. Intercambio y el papel Pol.Mon Crisis 2008 
alpha = 0.58;         %(COL)Producto Marginal del Trabajo (dY/dL) Par. de Firmas (Pag 24)
                      %(COL)Productividad del Trabajo tomado de Parra et al (2007) Pag 14 Cuadro 3
gamma = 0.2572;       %(Formacion de hábitos)(COL)Tomado de Henao(2008) Demanda Externa,Term. Intercambio y el papel Pol.Mon Crisis 2008. Parametro tomado de Fuhrer(2000) y  Abel(1999) Pag 23
phi = 1.6;            %(Formacion de hábitos)(COL)Tomado de Henao(2008) Demanda Externa,Term. Intercambio y el papel Pol.Mon Crisis 2008. Elasticidad de la Oferta Laboral. Pag 23 Meghir et al (1998)  
psi = 0.01;           %Elasticidad de la tasa libre de Riesgo Doméstica Tomado Post(2007), Beigno(2001) Eq51 Pag18 
rho_inflation_1 = 0.8; %Choque tomado de Svensson (2000) Pag 25
rhoi = 0.66;           %(COL)Parametros de choque tasa de interes de Gali(2008) (Colombia 0.66 Henao(2008))
rhoy = 0.86;           %(COL)Parametros de choque tecnologico de Gali(2008) (Colombia 0.86 Henao(2008))
rhoy_star = 0.45;      %(COL)Parametros de choque tecnologico externo tomado de Svensson (2000) (Colombia 0.45 Henao(2008))
rho_inflation = 0.635; %Parametros de choque tomado de Svensson (2000)
rho_is = 0.8;         %Parametros de Choque tasa de interes externo tomado de Svensson (2000)
beta = exp(-disc);    %(COL)Factor de Descuento de los Flujos, parecido a Henao(2008) Demanda Externa,Term. Intercambio y el papel Pol.Mon Crisis 2008.
                      %(COL)Tomado del Artículo Puede seguirse a Sandra Moreno (Pag 29, Cuadro 2, Beta (0.910,0.988,0.999,1.000,1.018))
phip = 0.50;          %(COL) Calculos Propios Aproximaciones Trimestrales
phiy = 1.50;          %(COL) Calculos Propios Aproximaciones Trimestrales
phip_star = 1.5;      %(COL) Calculos Propios 0.5;Aunque 1.5 Tomados de la regla de Taylor Externa (precios) Sevensson (2000)
phiy_star = 0.5;      %(COL) Calculos Propios 0.4; Aunque 0.5 Tomados de la regla de Taylor Externa (Producto) Svensson(2000)
theta = 2;            %(Formacion de hábitos)(COL)Tomado de Henao(2008) Demanda Externa,Term. Intercambio y el papel Pol.Mon Crisis 2008. Parametro tomado de Fuhrer(2000) y  Abel(1999) Pag 23 Elasticidad de Sust = 1/theta.  
epsilon = 6;          %(COL)Tomado de Gali(2008) parametro para Firmas (Pag 24)
M = epsilon/(epsilon-1);
mu = log(M);
omega = 0.75;        %(COL)Tomado de Henao(2008) Demanda Externa,Term. Intercambio y el papel Pol.Mon Crisis 2008. Para las Firmas- precios Domesticos. Duracion temporal antes del cambio de los precios (Pag 24) Adolfson et al (2007) tiene valores para dif países
                     %(COL)Valor tomado del articulo Importancia Rigideces Nominales y Reales para Colombia (2012) Pag 62-63 
theta_gamma = gamma*(theta-1);
lambda = ((1-omega)*(1-beta*omega)/omega)*((1-alpha)/(1-alpha+alpha*epsilon));  % Grado Stickness Precios
kappa_y = lambda*((phi+alpha)/(1-alpha));                                       % Ecuacion 59 Parametros Curva Phillips NK con formacion de habitos
kappa_a = lambda*((phi+1)/(1-alpha));                                           % Ecuacion 59 Parametros Curva Phillips NK con formacion de habitos
dsge_prior_weight = 0.50;

model(linear);

ex = y_star + lambda_ex*etha_star*s + (1-lambda_ex)*(ex(-1)-y_star(-1));  %(34) Funcion de Exportaciones
q = (1-delta)*s;                                                          %(47) Tasa de cambio Real 
inflation = inflation_h + delta*(s-s(-1));                                %(45) Inflacion Consumidor Total
c = (1-delta)*c_h + delta*im;                                             %(32) Consumo Total
c_h = etha*delta*s + c;                                                   %(31) Consumo Doméstico
y = ((1-delta)*etha + lambda_ex*etha_star)*delta*s + (1-delta)*c + 
    delta*y_star + delta*(1-lambda_ex)*(ex(-1)-y_star(-1));               %(43) PNB
i = phip*inflation + phiy*y + v;                                          %(23) Política Monetaria (Regla Taylor)
i = i_star - psi*b + (s(+1)-s) - inflation(+1) + inflation_star(+1);      %(53) Condicion de Disparidad de Tasas de Interés
w = phi*n - gamma*(theta-1)*c(-1) + theta*c;                              %(3.2-12) Funcion de Oferta Laboral
-(theta_gamma + theta)*c + z = -theta_gamma*c(-1) - theta*c(+1) + i - inflation(+1);  %(3.2-13) Ecuación IS Economia Abierta
inflation_h(-1) = beta*inflation_h + kappa_y*y(-1) - kappa_a*a(-1) - 
    lambda*theta_gamma*c(-2) + lambda*theta*c(-1) + lambda*delta*s(-1) + u; %(59) Curva de Phillips/Costo Marginal de las Firmas
(1-alpha)*n = y-a;                                                         %(3.4) Funcion de Produccion  
inflation_star = rho_inflation*inflation_star(-1) + inflation_star_shock;  %(3.4) Choque CPI Externo
i_star = phip_star*inflation_star + phiy_star*y_star;                      %(3.4) Regla Taylor Política Externa
b = (1+i(-2)-inflation(-1))*b(-1)+y(-1)-c(-1)-delta*s(-1);                 %(49) Dinámica de Inversion en Bonos 
nx = delta*(ex-im);                                                        %(36) Balanza Comercial
v = rhoi*v(-1) + Taylor_shock;                                             %(3.4) Choque Politica Monetaria
a = rhoy*a(-1) + output_shock;                                             %(3.4) Choque Tecnologico
z = rho_is*z(-1) + is_shock;                                               %(3.4) Choque por Demanda
y_star = rhoy_star*y_star(-1) + world_output_shock;                        %(3.4) CHoque de Producto Externo
u = rho_inflation_1*u(-1) + philip_shock;                                  %(3.4) Choque por la Curva Phillips

end;

check;

initval;
c=0;
%c_h=0;
%im=0;
s=0;
y=0;
%y_star=0;
i=0;
i_star=0;
inflation=0;
%inflation_star=0;
%n=0;
%w=0;
%b=0;
%a=0;
%v=0;
%nx=0;
%inflation_h=0;
%q=0;
%ex=0;
%u=0;
%z=0;
end;

shocks;
 var is_shock = (0.1228)^2;
 var Taylor_shock = (0.1517)^2;
 var output_shock = (0.04994)^2;
 var philip_shock = (0.0452)^2;
 var world_output_shock = (0.007762)^2;
 var inflation_star_shock = (0.00238)^2;
end;

estimated_params;
   %stderr is_shock,0.1228,0,1,uniform_pdf,,,0,1;
   %stderr Taylor_shock,0.1517,0,1,uniform_pdf,,,0,1;
   %stderr output_shock,0.04994,0,1,uniform_pdf,,,0,1;
   %stderr philip_shock,0.0452,0,1,uniform_pdf,,,0,1;
   phiy,1.9466,0,2,gamma_pdf,1.0,1.0;
   phip,0.2721,0,1,gamma_pdf,0.5,0.5;
   alpha,0.4325,0,1,gamma_pdf,0.5,0.5;
   phi,1.5265,0,5,gamma_pdf,3.0,3.0;
   gamma,0.3632,0,1,gamma_pdf,0.5,0.5;
   etha,3.7155,0,4,gamma_pdf,2.0,2.0; 
   theta,4.9352,1,5,gamma_pdf,5,4; 
   dsge_prior_weight,0.5137,0,1,uniform_pdf,,,0,1;    
end; 

%varobs inflation_star v a z y_star u;
varobs c s y i inflation i_star;

estimated_params_init(use_calibration);
end;

%initval;
% y = 0;
% inflation = 0;
%end;

%%steady;
%%check;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Estimacion del Modelo Bayesiano DSGEBVAR
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

rand('seed',122); randn('seed',123);
estimation(datafile=DATAB,dsge_var,xls_range=B1:G75,first_obs=10,prefilter=1,nobs=[70:70],mh_nblocks=2,tex,mode_compute=9,mcmc_jumping_covariance=identity_matrix,mh_replic=10000,filtered_vars,smoother,filter_covariance,bayesian_irf,irf=20,forecast=6) c s y i inflation i_star;
