Slides 1 The RBC Model
Slides 1 The RBC Model
Bianca De Paoli
November 2009
1 Theory of business cycles
Size of upturns and downturns somewhat similar, but the former are
more persistent (di erent this time around?)
Explaining the business cycles: need to modify neoclassical model of
Macro I as follows
Nt+i = 1 (3)
First-order conditions:
Ct = t (5)
" !#
Yt+1
t = Et t+1 +1 (6)
Kt
Yt = ZtKt 1 (7)
Yt = Ct + Kt (1 t ) Kt 1 (8)
Alternatively, one can assume that agents can trade bonds:
Yt+i + Bt+i 1Rt+i = Ct+i + Bt+i + Kt+i (1 ) Kt+i 1 (9)
First-order conditions:
Ct = t (10)
t = Et [ t+1Rt+1] (11)
k ]
Et[ t+1Rt+1
Et[ t+1Rt+1]
= (12)
t t
k Yt+1
where Rt+1 Kt + 1
But does the introduction of bonds change the dynamics of the model?
All agents need is one asset to store savings from one period to the other.
Representative agents: bonds will be in zero net supply (Bt+i 1 = Bt+i 1 =
0) and all saving will be stored in the form of capital
Solving the deterministic steady state (DSS)
All expectations are realized and uncertainty is absent. How do we nd
the DSS?
The case of no growth: set Ct+i = C 8i, then combine and reduce equa-
tions such that we obtain variables as a function of only the deep pa-
rameters ( ; ; ) : E.g. combining Euler equation and expression for Rt
gives
R = 1=
0 1 1
1 1+ 1
I = @ A
0 1 0 1 1
1 1+ 1 1 1+ 1
C = @ A @ A :
At this point we can turn to the data to nd out e.g. long run level
C ; I and from these we can judge the value of deep parameters.
of Y Y
Solving the RBC model
Linearizing the model
For some special case we can nd reduce form solutions for the non-
linear equilibrium conditions
But solving the model explicitly can deliver better economic insights
where the term o(k k)2 stands for terms of order higher than one
c^t = ^ t (17)
h i
^ t = Et ^ t+1 + r^k (18)
t+1
k Y ^t
Rr^t+1 = y^t+1 k (19)
K
^t 1
y^t = z^t + k (20)
Y C ^t ^t 1
y^t = c^t + k (1 )k (21)
K K
And here we can use the steady state conditions derived above, and sum-
marize the dynamics as:
h i
Et [^
ct+1 c^t] = k
Et r^t+1 (22)
r^tk = yk z^t (1 ^t 1
)k (23)
yk (^ ^t 1) = (yk
zt + k )^ ^t
ct + k (1 ^t 1
)k (24)
1
!
1+
where yk =
The rational expectation solution
Solving linear di erence equations:
We can write the model in the general form
AEtyt+1 = B yt + C xt
where:
= 1(log utility)
The system of equilibrium conditions becomes
h i
Et [^
ct+1 c^t] = k
Et r^t+1 (28)
r^tk = (1 )(^
zt (1 ^t 1)
)k (29)
(1 )(^ ^t 1) = (1
zt + k )^
ct + ^t
(k ^t 1)
k (30)
Et [^
ct+1 c^t] = (1 ) z^t (1 ^t
)k (31)
(1 )(^ ^t 1) = (1
zt + k )^
ct + ^t
(k ^t 1)
k (32)
So, we can guess a formulation for ct as a function of the states, such as
^t 1
c^t = ccz z^t + cck k (33)
and nd the coe cients ccz and cck by plugging this expression into the
the above system.
From equation 32
^t = 1
k (1 ccz )^
zt +
cck (1 )^
kt 1 (34)
^t from 31
And eliminating k
1 cck c2ck (1 )^ ^t 1
ccz ( 1)^
zt + cck (1 ccz )^
zt + kt 1 cck k
!
1 cck (1 ) ^t 1
= (1 ) z^t (1 ) (1 ccz )^
zt (1 )k
^t 1
Equalizing the RHS and LHS coe cients in k
Pick the solution that guarantees ckk < 1: As shown Campbell (1994),
this is given by the positive root of the above equation.
After nding cck , we can then follow the same approach to nd ccz
^t = ckk k
k ^t 1 + ckz z^t (35)
^t 1 + ccz z^t
c^t = cck k (36)
r^tk = crk k
^t 1 + crz z^t (37)
AEtyt+1 = B yt + C xt
where:
yt = Dkt + F xt
kt+1 = Gkt + H xt
So the solution delivers a state space representation of the model
Together, REDS.M and SOLDS.M are a simpli ed version of a package
of codes written by Robert King and Mark Watson, implementing the
algorithms described in their paper \System Reduction and Solution Al-
gorithms for Singular Linear Di erence Systems Under Rational Expecta-
tions" (mimeo, 1995).
We can use D, F , G, and H as inputs to compute impulse responses using
the m-function:
the rst entry speci es the impulse (i.e., the component of xt to which
the system is responding)
Ulhlig also has a toolkit for solving RE models in his web: http://www2.wiwi.hu-
berlin.de/institute/wpol/html/toolkit.htm
Example:
Summary of model in log linear terms
h i
Et [^
ct+1 c^t] = k
Et r^t+1 (43)
r^tk = yk z^t (1 ^t 1
)k (44)
yk (^ ^t 1) = (yk
zt + k )^ ^t
ct + k (1 ^t 1
)k (45)
1
!
1+
where yk =
MATLAB le (instructions and example):
alpha = 0.3;
sigma = 1.0;
rho = 0.95;
beta = 1/1.01;
delta = 0.025;
% Constructed parameters
y k=((1/beta)-1+delta)/alpha;
% Specify model - matrices A, B and C
% Dimensions
NY=6;
NK=2;
NX=1;
A = zeros(NY,NY);
B = zeros(NY,NY);
C = zeros(NY,NX);
ic=1;
ir=2;
ik=3;
iz=4;
iklag=5;
izlag=6;
eps=1;
% Model Equations
% Euler Equation
A(1,ic)=1;
B(1,ic)=1;
A(1,ir)=-sigma^-1;
B(2,ir)=-1;
B(2,iz)=alpha*beta*y k;
B(2,ik)=-alpha*beta*y k*(1-alpha);
% Capital accumulation equation
B(3,ik)=-1;
B(3,iz)=y k;
B(3,iklag)=y k*alpha+(1-delta);
B(3,ic)=-y k+delta;
B(4,iz)=-1;
C(4,eps)=1;
B(4,izlag)=rho;
% Lag identity for k
A(5,iklag)=1;
B(5,ik)=1;
A(6,izlag)=1;
B(6,iz)=1;
% Load solution program
reds;
% (the program checks for solvability- that is, checks if jAz-Bj is identi-
cally null)
solds;
NIR=80;
lead = 0:(NIR-1);
IMP = irf (eps, NIR, D, F, G, H);
gure ('Name', 'Responses to productivity shock')
subplot (311), plot (lead, IMP (ic, :)), title ('Consumption')
subplot (312), plot (lead, IMP (ir, :)), title ('Interest Rate')
subplot (313), plot (lead, IMP (ik, :)), title ('Capital')
Capital: Productivity shock => higher marginal product of capital =>
capital cannot jump (predetermined variable - see capital accumulation
equation) => capital slowly goes up and then down
Return on capital: higher marginal product of capital implies higher return
on capital => but as capital increases interest, marginal product of capital
and its rental return falls => hump in the response of capital implies return
on capital undershooting => Similarly for interest rates
Consumption: higher productivity and output leads to an increase in con-
sumption => and as long as interest rates are falling, and so is the marginal
cost of consuming today relative to tomorrow, consumption is increasing
=> only when interest rates start increasing, consumption starts coming
back to steady state => hump in the response of capital implies an interest
rate undershooting, which in turn implies a hump in consumption
Perturbation methods
http://www.cepremap.cnrs.fr/dynare/
// Variable declaration
var C, K, Z, R, Y, K Y, I Y, C Y, I, MU;
varexo e;
// Parameter declaration and calibration
// List parameters
alpha = 0.3;
sigma = 1.0;
rho = 0.95;
beta = 1/1.01;
delta = 0.025;
Zbar = 1;
// Model declaration
model;
K = Z*K(-1)^alpha - C + (1-delta)*K(-1);
C^(-sigma) = (beta*C(+1)^(-sigma))*(1 + alpha*Z(+1)*K^(alpha-1) -
delta);
Z = Zbar^(1-rho)*Z(-1)^rho*exp(e);
R = 1 + alpha*Z*K(-1)^(alpha-1) - delta;
Y = Z*K(-1)^alpha;
MU = C^(-sigma);
I =K-(1-delta)*K(-1);
K Y = K/Y;
C Y = C/Y;
I Y = I/Y;
end;
// Steady-state values
initval;
Z = 1;
K = ((1/beta - (1-delta))/(Z*alpha))^(1/alpha-1);
C = Z*K^alpha - delta*K;
R = 1/beta;
MU = C^(sigma);
Y = Z*K^alpha;
I = delta*K;
K Y = K/Y;
C Y = C/Y;
I Y = I/Y;
e = 0;
end;
steady;
// Shock declaration
shocks;
var e = 0.01^2;
end;
stoch simul(order=1, irf=80);
1.2 K 0.6
Z C
0.8
1 0.5
0.7
0.8 0.6 0.4
0.5
0.6 0.3
0.4
0.4 0.3 0.2
0.2
0.2 0.1
0.1
0 0 0
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75
0.4 0.2
0.4
0 0 0
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75
1 0.04 MU 0.5
Y R
0.9 0
1.5 1.0
0.03
0.5 0.05 0.8 1.5 1.0
-0.5
logU 0.5 0.05
0.7 logU 0.02
-1
0.6
0.01 -1.5
0.5
0 -2
0.4
-2.5
0.3 -0.01
0.2 -3
1.5 1.0
-0.02
0.1 0.5 0.05 -3.5
Log_U
0 -0.03 -4
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75
Possible homework:
- Replicate the linearization and the method of undetermined coe cients
- Arrive at the ARMA representation and illustrate the autoregressive
process
1
"t+iCt+i
- Simulate the model with preference shocks - ie utility 1