Modelos Con Dynare
Modelos Con Dynare
varexo e;
parameters alpha betta delta psii chii rho sigma;
// 2) Calibration
alpha = 0.36657;
betta = 0.95563;
delta = 0.03852;
psii = 8.41149695;
chii = 0.5;
rho = 0.961879;
sigma = 0.017812;
// 3) Model
model;
(1/c) = betta*(1/c(+1))*(1+alpha*(k^(alpha-1))*(exp(z(+1))*l(+1))^(1-
alppha)-delta);
psii*c*(l^chii) = (1-alppha)*(k(-1)^alppha)*(exp(z)^(1-alppha))*(l^(-
alppha));
c+invest = y;
y = (k(-1)^alppha)*(exp(z)*l)^(1-alppha);
invest = k-(1-delta)*k(-1);
y_l = y/l;
z = rho*z(-1)+e;
log_y=log(y);
log_invest=log(invest);
log_c=log(c);
log_l=log(l);
log_k=log(k);
log_y_l=log(y_l);
end;
// 4) Computation
shocks;
var e = sigma^2;
end;
steady;
check;
stoch_simul(order=1,hp_filter=100);
/*
* This file replicates the model studied in:
* Hansen, Gary D. (1985): "Invisible labor and the business cycle",
Journal
* of Monetary Economics 16, pp.309-327.
*
* It provides a full replication of the main results of the original
paper
* reported in Table 1 for both the divisible and indivisible labor
models.
*
* This mod-file shows how to use the loglinear option to get moments of
* percentage deviations without loglinearizing the model and how to use
the
* get_simul_replications.m file to read out simulations generated by the
simul_replic option
*
* Notes:
* - The correlation between output and the capital stock is reported to
be
* acyclical in the original paper, but is procyclical in the
current file.
* Given that all other numbers match closely, including the
standard
* deviation of the capital stock, this seems to be a typo in the
original paper.
*
* This implementation was written by Johannes Pfeifer. If you spot
mistakes, email me at [email protected]
*
* Please note that the following copyright notice only applies to this
Dynare
* implementation of the model.
*/
/*
* Copyright (C) 2013-15 Johannes Pfeifer
*
* This is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* It is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For a copy of the GNU General Public License,
* see <http://www.gnu.org/licenses/>.
*/
@#define indivisible_labor=1
@#if indivisible_labor==1
title_string='Economy with indivisble labor'
@#else
title_string='Economy with divisble labor'
@#endif
varexo ea;
//Calibration
alpha = 1/3;
delta = 0.025;
rhoa = 0.97;
beta = 0.99;
B = 2.63;
sigma_ea = 0.009;
model;
//1,2. Euler Equation
1/c = beta*((1/c(+1))*(R(+1) +(1-delta)));
1/c = beta*((1/c(+1))*(1+ r(+1)));
//3. Labor FOC
@#if indivisible_labor
(1-alpha)*(y/n) = B*c;
@#else
(1-alpha)*(y/n) = a/(1-n)*c;
@#endif
//4. Real interest rate
w = (1-alpha)*(y/n);
//5. Real interest rate
R = alpha*(y/k(-1));
//6. LOM capital
k= (1-delta)*k(-1) + invest;
//7. Resource constraint
c = y +(1-delta)*k(-1) - k;
//8. Production function
y = a*k(-1)^(alpha)*n^(1-alpha);
//9. LOM TFP
log(a)=rhoa*log(a(-1))+ea;
end;
steady_state_model;
//Follows footnote 15
B = ((1-alpha)*(k/n)^(alpha))/(n*((k/n)^(alpha)-delta*(k/n));
a = 1;
@#if indivisible_labor
n = (1/3);
@#else
n = (1+(a/(1-alpha))*(1 - (beta*delta*alpha)/(1-beta*(1-delta))))^(-1);
@#endif
k = n*((alpha/((1/beta)-(1-alpha)))^(1/(1-alpha));
invest = delta*k;
y = a*k^(alpha)*n^(1-alpha);
c = n*((k/n) ^(alpha)-delta*(k/n));
r = 1/beta - (1-delta);
w = (1-alpha)*(y/n);
end;
steady;
shocks;
var ea; stderr sigma_ea;
end;
check;
steady;
stoch_simul(order=1,irf=40,loglinear,hp_filter=1600) y c invest n a w r;
stoch_simul(order=1,irf=40,loglinear,hp_filter=1600,simul_replic=100,peri
ods=115) y c invest n a w r;
%filter series
simulated_series_filtered=NaN(size(simulated_series_raw));
for ii=1:options_.simul_replic
[trend, cycle]=sample_hp_filter(simulated_series_raw(:,:,ii)',1600);
simulated_series_filtered(:,:,ii)=cycle';
end;
%Compute correlations
for ii=1:options_.simul_replic
corr_mat(1,ii)=corr(simulated_series_filtered(y_pos,:,ii)',simulated_seri
es_filtered(y_pos,:,ii)');
corr_mat(2,ii)=corr(simulated_series_filtered(y_pos,:,ii)',simulated_seri
es_filtered(c_pos,:,ii)');
corr_mat(3,ii)=corr(simulated_series_filtered(y_pos,:,ii)',simulated_seri
es_filtered(i_pos,:,ii)');
corr_mat(4,ii)=corr(simulated_series_filtered(y_pos,:,ii)',simulated_seri
es_filtered(k_pos,:,ii)');
corr_mat(5,ii)=corr(simulated_series_filtered(y_pos,:,ii)',simulated_seri
es_filtered(h_pos,:,ii)');
corr_mat(6,ii)=corr(simulated_series_filtered(y_pos,:,ii)',simulated_seri
es_filtered(productivity_pos,:,ii)');
end;
%Indivisible Labor
%-----------------------------------------------------------------------%
% VARIABLES (8)
%-----------------------------------------------------------------------%
var
cc %consumo
ii %inversión
yy %producto
kk %capital
nn %trabajo
rr %renta de alquiler de capital
ww %salario real
RR %renta de alquiler de capital sin depreciación
aa %productividad
;
varexo ea;
%-----------------------------------------------------------------------%
% PARAMETROS ()
%-----------------------------------------------------------------------%
parameters
alpha
delta
rhoa
beta
B
sigma_ea
y_ss
c_ss
i_ss
w_ss
r_ss
R_ss
k_ss
n_ss
a_ss
kn
cn
ik
ck
yk
;
%-----------------------------------------------------------------------%
% CALIBRACIÓN
%-----------------------------------------------------------------------%
alpha = 0.33;
delta = 0.025;
rhoa = 0.97;
beta = 0.99;
B = 2.63;
sigma_ea = 0.009;
%-----------------------------------------------------------------------%
% ESTADO ESTACIONARIO
%-----------------------------------------------------------------------%
kn = (alpha/((1/beta)-1+delta)^(1/(1-alpha)); %k/n
cn = ((kn)^(alpha)-delta*(kn));
n_ss = 0.33;
a_ss = 1;
r_ss = 1/beta - (1-delta);
R_ss = 1/beta
yk = (r_ss/alpha)
B = ((1-alpha)*(kn)^(alpha))/(n_ss*((kn)^(alpha)-delta*(kn)))
w_ss= (1-alpha)*yk/nk;
R_ss= (alpha)*y/k;
ik = delta; %i/k
ck = yk - ik;
k_ss = n_ss*(nk)^(-1);
i_ss = ik*k_ss;
y_ss = yk*k_ss;
c_ss = y_ss - i_ss;
model;
%================================
% Familias
%================================
1/exp(cc) = beta*(1/exp(cc(+1)))*(exp(RR(+1)) + (1-delta));
1/exp(cc) = beta*(1/exp(cc(+1)))*(exp(rr(+1)) + 1));
exp(kk) = (1-delta)*exp(kk(-1)) + exp(ii);
B*(cc) = (1-alpha)*(y/n)
%================================
% Firmas
%================================
exp(yy) = exp(aa)*((exp(kk(-1)))^alpha)*(exp(nn)^(1-alpha));
exp(ww) = (1-alpha)*exp(yy)/exp(nn);
exp(rr) = alpha*exp(yy)/exp(kk(-1));
%================================
% Condición de mercado
%================================
exp(yy) = exp(cc) + exp(ii);
%================================
% Fuentes de incertidumbre
%================================
aa = rhoa*aa(-1) + ea;
end;
%-----------------------------------------------------------------------%
% VALORES INICIALES
%-----------------------------------------------------------------------%
initval;
hh = log(h_ss);
kk = log(k_ss);
ii = log(i_ss);
cc = log(c_ss);
ww = log(w_ss);
rr = log(r_ss);
RR = log(R_ss);
yy = log(y_ss);
aa = log(a_ss);
end;
resid(1);
steady;
%-----------------------------------------------------------------------%
% CHOQUES
%-----------------------------------------------------------------------%
shocks;
var ea = (sigma_ea)^2;
end;
check;
%-----------------------------------------------------------------------%
%SIMULACIÓN:
%-----------------------------------------------------------------------%
stoch_simul(order=1,hp_filter = 1600);
oo_sims_s8{j}=oo_;
end;
save oo_sims_2017_s8;
%Indivisible Labor
%-----------------------------------------------------------------------%
% VARIABLES (9)
%-----------------------------------------------------------------------%
var
cc %consumo
ii %inversión
yy %producto
kk %capital
nn %trabajo
rr %renta de alquiler de capital
ww %salario real
RR %renta de alquiler de capital sin depreciación
aa %productividad
;
varexo ea;
%-----------------------------------------------------------------------%
% PARAMETROS ()
%-----------------------------------------------------------------------%
parameters
alpha
delta
rhoa
beta
B
sigma_ea
c_ss
i_ss
y_ss
k_ss
n_ss
r_ss
w_ss
R_ss
a_ss
;
%-----------------------------------------------------------------------%
% CALIBRACIÓN
%-----------------------------------------------------------------------%
alpha = 0.33;
delta = 0.025;
rhoa = 0.97;
beta = 0.99;
B = 2.63;
sigma_ea = 0.009;
%-----------------------------------------------------------------------%
% ESTADO ESTACIONARIO
%-----------------------------------------------------------------------%
n_ss = 0.33;
k_ss = 9.45;
a_ss = 1;
r_ss = (1/beta)-1;
R_ss = (1/beta)-(1-delta);
i_ss = delta*k_ss;
w_ss = (1-alpha)*((alpha/((1/beta)-(1-alpha)))^(alpha/(1-alpha)));
y_ss = ((alpha/((1/beta)-(1-alpha)))^(alpha/(1-alpha)))*n_ss;
c_ss = ((1-alpha)/B)*((alpha/((1/beta)-(1-alpha)))^(alpha/(1-alpha)));
model;
%================================
% Familias
%================================
1/exp(cc) = beta*(1/exp(cc(+1)))*(exp(RR(+1)) + (1-delta));
1/exp(cc) = beta*(1/exp(cc(+1)))*(exp(rr(+1))+1);
exp(kk) = (1-delta)*exp(kk(-1)) + exp(ii);
B*exp(cc) = (1-alpha)*(exp(yy)/exp(nn));
%================================
% Firmas
%================================
exp(yy) = exp(aa)*((exp(kk(-1)))^alpha)*(exp(nn)^(1-alpha));
exp(ww) = (1-alpha)*(exp(yy)/exp(nn));
exp(RR) = alpha*(exp(yy)/exp(kk(-1)));
%================================
% Condición de mercado
%================================
exp(ii) = exp(yy) - exp(cc);
%================================
% Fuentes de incertidumbre
%================================
aa = rhoa*aa(-1) + ea;
end;
%-----------------------------------------------------------------------%
% VALORES INICIALES
%-----------------------------------------------------------------------%
initval;
cc = 0.7681;
ii = 0.2362;
yy = 1.0051;
kk = 9.45;
nn = 0.3333;
rr = 0.1010;
ww = 2.0202;
RR = 0.0351;
aa = 1;
end;
resid(1);
steady;
%-----------------------------------------------------------------------%
% CHOQUES
%-----------------------------------------------------------------------%
shocks;
var ea = (sigma_ea)^2;
end;
check;
%-----------------------------------------------------------------------%
%SIMULACIÓN:
%-----------------------------------------------------------------------%
stoch_simul(order = 1, periods=150, irf=40);
%Indivisible Labor
%-----------------------------------------------------------------------%
% VARIABLES (9)
%-----------------------------------------------------------------------%
var
cc %consumo
ii %inversión
yy %producto
kk %capital
nn %trabajo
rr %renta de alquiler de capital
ww %salario real
RR %renta de alquiler de capital sin depreciación
aa %productividad
;
varexo ea;
%-----------------------------------------------------------------------%
% PARAMETROS ()
%-----------------------------------------------------------------------%
parameters
alpha
delta
rhoa
beta
B
sigma_ea
c_ss
i_ss
y_ss
k_ss
n_ss
r_ss
w_ss
R_ss
a_ss
;
%-----------------------------------------------------------------------%
% CALIBRACIÓN
%-----------------------------------------------------------------------%
alpha = 0.33;
delta = 0.025;
rhoa = 0.97;
beta = 0.99;
B = 2.63;
sigma_ea = 0.009;
%-----------------------------------------------------------------------%
% ESTADO ESTACIONARIO
%-----------------------------------------------------------------------%
n_ss = 0;
k_ss = 0;
a_ss = 0;
r_ss = 0;
R_ss = 0;
i_ss = 0;
w_ss = 0;
y_ss = 0;
c_ss = 0;
model;
%================================
% Familias
%================================
1/exp(cc) = beta*(1/exp(cc(+1)))*(exp(RR(+1)) + (1-delta));
1/exp(cc) = beta*(1/exp(cc(+1)))*(exp(rr(+1))+1);
exp(kk) = (1-delta)*exp(kk(-1)) + exp(ii);
B*exp(cc) = (1-alpha)*(exp(yy)/exp(nn));
%================================
% Firmas
%================================
exp(yy) = exp(aa)*((exp(kk(-1)))^alpha)*(exp(nn)^(1-alpha));
exp(ww) = (1-alpha)*(exp(yy)/exp(nn));
exp(RR) = alpha*(exp(yy)/exp(kk(-1)));
%================================
% Condición de mercado
%================================
exp(ii) = exp(yy) - exp(cc);
%================================
% Fuentes de incertidumbre
%================================
exp(aa) = rhoa*(exp(aa(-1))) + ea;
end;
%-----------------------------------------------------------------------%
% VALORES INICIALES
%-----------------------------------------------------------------------%
initval;
cc = 0.7681;
ii = 0.2362;
yy = 1.0051;
kk = 9.45;
nn = 0.3333;
rr = 0.1010;
ww = 2.0202;
RR = 0.0351;
aa = 0;
end;
resid(1);
steady;
%-----------------------------------------------------------------------%
% CHOQUES
%-----------------------------------------------------------------------%
shocks;
var ea = (sigma_ea)^2;
end;
check;
%-----------------------------------------------------------------------%
%SIMULACIÓN:
%-----------------------------------------------------------------------%
stoch_simul(order = 1, periods=150, irf=40);
var c k n r d er m b f x ior;
varexo e_x e_ior;
model;
% 1/c = (1/c(+1))*(alph*k(-1)^(alph-1));
c=k(-1)^alph-k+(1-del)*k(-1);
r = alph*k(-1)^(alph-1); % MPK
l =(eta/c)^(eta/(1-eta))*(r-ior)^(eta/(1-eta))*(eta*d)^(1/(1-eta));
l=P*k(-1);
d=P*(c+k-(1-del)*k(-1)); % CIA constraint
er=d+x-l;
m= (l/(eta*(d+x)))^(1/eta);
b(+1)=r*l+ior*er-c*m;
f = P*k(-1)^alph-r*k(-1)*P-del*k(-1)*P+0.1899; % includes FC
P*c=f+b;
x=rho*x(-1)+eta*e_x;
ior=rho*ior(-1)+(1-rho)*e_ior/sqrt(1+e_ior);
end;
steady_state_model;
k = (alph)^(1/(1-alph));
c=k^alph-del*k;
r = alph*k^(alph-1);
l =(eta/c*r)^(-1)*(eta*(c/k+del))^(-1/(eta));
P=l/k;
d=P*(c+k-(1-del)*k);
er=d-l;
m=(l/(eta*d))^(1/eta);
ior=0;
b=r*l+ior*er-c*m;
f=P*c-b;
% FC = P*k^alph-r*k*P-del*k*P-f; % use to find FC
end;
shocks;
var e_x = sigma^2;
var e_ior = sigma^2;
end;
estimated_params;
alph, beta_pdf, 0.356, 0.02;
del, beta_pdf, 0.025, 0.005;
stderr e_x, inv_gamma_pdf, 0.035449, inf;
end;
steady;
stoch_simul(irf=40, order=1, nocorr, sylvester=default, dr=default,
relative_irf); %, spectral_density);
var y I k a c w R r;
varexo e;
parameters alpha beta delta rho sigma sigmae;
alpha = 1/3;
beta = 0.99;
delta = 0.025;
rho = 0.95;
sigma = 1;
sigmae = 0.01;
model;
exp(c)^(-sigma) = beta*exp(c(+1))^(-
sigma)*(alpha*exp(a(+1))*exp(k)^(alpha-1) + (1-delta));
exp(y) = exp(a)*exp(k(-1))^(alpha);
exp(k) = exp(a)*exp(k(-1))^(alpha) - exp(c) + (1-delta)*exp(k(-1));
a = rho*a(-1) + e;
exp(y) = exp(c) + exp(I);
exp(c)^(-sigma) = beta*exp(c(+1))^(-sigma)*(1+r);
exp(R) = alpha*exp(a)*exp(k(-1))^(alpha-1);
exp(w) = (1-alpha)*exp(a)*exp(k(-1))^(alpha);
end;
initval;
k = log(30);
y = log(3);
c = log(2.5);
I = log(0.5);
a = 0;
r = (1/beta) - 1;
R = log((1/beta) - (1-delta));
w = log(1);
end;
shocks;
var e = sigmae^2;
end;
steady;
stoch_simul(order=1,irf=20);
Ok
var y I k n a c w R r;
varexo e;
parameters alpha beta delta rhoa B sigma_ea;
alpha = 1/3;
beta = 0.99;
delta = 0.025;
rhoa = 0.97;
sigma_ea = 0.009;
B = 2.63;
model;
exp(c)^(-1) = beta*exp(c(+1))^(-1)*(alpha*exp(a(+1))*exp(k)^(alpha-
1)*exp(n)^(1-alpha) + (1-delta));
exp(y) = exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha);
exp(k) = exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha) - exp(c) + (1-
delta)*exp(k(-1));
a = rhoa*a(-1) + e;
exp(y) = exp(c) + exp(I);
exp(c)^(-1) = beta*exp(c(+1))^(-1)*(1+r);
exp(R) = alpha*exp(a)*exp(k(-1))^(alpha-1)*exp(n)^(1-alpha);
exp(w) = (1-alpha)*exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha);
exp(c)^(-1) = (1-alpha)*exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha)*B^(-
1);
end;
initval;
k = 9.45;
y = 3;
c = 0.77;
I = 0.2362;
a = 0;
r = (1/beta) - 1;
R = log((1/beta) - (1-delta));
w = 1;
n = 1/3;
end;
shocks;
var e = sigma_ea^2;
end;
steady;
stoch_simul(order=1,irf=40);
var y I k n a c w R r;
varexo e;
parameters alpha beta delta rhoa B sigma_ea;
alpha = 1/3;
beta = 0.99;
delta = 0.025;
rhoa = 0.97;
sigma_ea = 0.009;
B = 2.63;
model;
exp(c)^(-1) = beta*exp(c(+1))^(-1)*(alpha*exp(a(+1))*exp(k)^(alpha-
1)*exp(n)^(1-alpha) + (1-delta));
exp(y) = exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha);
exp(k) = exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha) - exp(c) + (1-
delta)*exp(k(-1));
a = rhoa*a(-1) + e;
exp(y) = exp(c) + exp(I);
exp(c)^(-1) = beta*exp(c(+1))^(-1)*(1+r);
exp(R) = alpha*exp(a)*exp(k(-1))^(alpha-1)*exp(n)^(1-alpha);
exp(w) = (1-alpha)*exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha);
exp(c)^(-1) = (1-alpha)*exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha)*B^(-
1);
end;
initval;
k = 9.45;
y = 0.10;
c = 0.77;
I = 0.2362;
a = 0;
r = (1/beta) - 1;
R = log((1/beta) - (1-delta));
w = 2.02;
n = 1/3;
end;
shocks;
var e = sigma_ea^2;
end;
steady;
stoch_simul(order=1,irf=40);
var y I k n a c w R r;
varexo e;
parameters alpha beta delta rhoa B sigma_ea;
alpha = 1/3;
beta = 0.99;
delta = 0.025;
rhoa = 0.97;
sigma_ea = 0.009;
B = 2.63;
model;
(c)^(-1) = beta*(c(+1))^(-1)*(alpha*(a(+1))*(k)^(alpha-1)*(n)^(1-alpha) +
(1-delta));
(y) = (a)*(k(-1))^(alpha)*(n)^(1-alpha);
(k) = (a)*(k(-1))^(alpha)*(n)^(1-alpha) - (c) + (1-delta)*(k(-1));
a = rhoa*a(-1) + e;
(y) = (c) + (I);
(c)^(-1) = beta*(c(+1))^(-1)*(1+r);
(R) = alpha*(a)*(k(-1))^(alpha-1)*(n)^(1-alpha);
(w) = (1-alpha)*(a)*(k(-1))^(alpha)*(n)^(1-alpha);
(c)^(-1) = (1-alpha)*(a)*(k(-1))^(alpha)*(n)^(1-alpha)*B(-1);
end;
initval;
k = 9.45;
y = 3;
c = 0.77;
I = 0.2362;
a = 0;
r = (1/beta) - 1;
R = log((1/beta) - (1-delta));
w = 1;
n = 1/3;
end;
shocks;
var e = sigma_ea^2;
end;
steady;
stoch_simul(order=1,irf=40);
var y I k n a c w R r;
varexo ea;
parameters alpha beta delta rhoa sigma_ea;
alpha = 0.33;
delta = 0.025;
rhoa = 0.97;
beta = 0.99;
B = 2.63;
sigma_ea = 0.009;
model;
exp(c)^(-1) = beta*exp(c(+1))^(-1)*(alpha*exp(a(+1))*exp(k)^(alpha-1)*
exp(n)^(1-alpha) + (1-delta));
exp(y) = exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha);
exp(k) = exp(a)*exp(k(-1))^(alpha)* exp(n)^(1-alpha) - exp(c) + (1-
delta)*exp(k(-1));
a = rhoa*a(-1) + ea;
exp(y) = exp(c) + exp(I);
exp(c)^(-1) = beta*exp(c(+1))^(-1)*(1+r);
exp(R) = alpha*exp(a)*exp(k(-1))^(alpha-1)*exp(n)^(1-alpha);
exp(w) = (1-alpha)*exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha);
B*exp(c) = (1-alpha)*exp(a)*exp(k(-1))^(alpha)*exp(n)^(1-alpha);
end;
initval;
k = log(30);
n = log(1/3);
y = log(3);
c = log(2.5);
I = log(0.5);
a = 0;
r = (1/beta) - 1;
R = log((1/beta) - (1-delta));
w = log(1);
end;
shocks;
var e = sigma_ea^2;
end;
steady;
stoch_simul(order=1,irf=20);