An RBC Model with Irreversible Investment
The standard RBC model can also be solved easily using local methods. Now we consider an extension which can only be solved properly using global methods. The model features an investment irreversibility constraint, which requires investment to be larger than a certain threshold.
The Model
We augment the simple RBC model with two additional features.
First, productivity follows a continuous AR(1) process
where parameter \(\rho \in (0,1)\) is the persistence, \(\epsilon_t\) is an I.I.D. shock.
Second, when accumulating capital,
the representative firm is subject to an irreversibility constraint
where \(I_{ss}\) is the steady-state level of investment and parameter \(\phi\) corresponds to the tightness of the irreversibility constraint.
These features require us to keep track of two continuous state variables: exogenous \(z_t\) and endogenous \(K_t\). The toolbox is well designed to handle models with more than one continuous state variables like the current one.
Let \(\mu_t\) denote the Lagrange multiplier on the irreversibility constraint, the complete-markets equilibrium can be characterized by the Euler equation, the complementary-slackness condition, and the goods market clearing condition:
A recursive competitive equilibrium consists of functions: \(c(z,K), K'(z,K), \mu(z,K)\) s.t.
This recursive system can be solved using a time iteration procedure similar to the one for the standard RBC model. In the period-\(t\) time step, we take functions \(c_{t+1}(z,K),\mu_{t+1}(z,K)\) as known, and solve for \(c_t,\mu_t,K'_t\) from the system of three equations:
We keep iterating until convergence.
The gmod File
The recursive system can now be input to the GDSGE toolbox via a mod file rbcIrr.gmod
below.
1% Parameters
2parameters beta sigma alpha delta K_min K_max rho Imin;
3
4beta = 0.99; % dicount factor
5sigma = 2; % risk aversion
6alpha = 0.36; % capital share
7delta = 0.025; % depreciation rate
8rho = 0.90; %persistent of productivity shocks
9phi = 0.975; %investment irreversibility constraint
10
11TolEq = 1e-6;
12SaveFreq = 50;
13SimuSaveFreq = 1000;
14SimuPrintFreq = 1000;
15NumThreads = feature('NumCores');
16
17% Shocks
18var_shock e;
19shock_num = 2;
20shock_trans = [1/2.0,1/2.0;1/2.0,1/2.0];
21e = [-0.01,0.01]*sqrt(1-rho^2);
22
23% Steady state
24Kss = (alpha/(1/beta - 1 + delta))^(1/(1-alpha));
25Iss = delta*Kss;
26Imin = phi*Iss;
27K_min = 0.5*Kss;
28K_max = 1.5*Kss;
29
30% States
31var_state z K;
32z_pts = 21;
33z = linspace(0.9,1.1,z_pts);
34K_pts = 201;
35K = exp(linspace(log(K_min),log(K_max),K_pts));
36
37var_interp Euler_interp muc_interp;
38
39% Last period
40var_policy_init c;
41inbound_init c 1e-6 100;
42
43var_aux_init Euler mu muc;
44
45model_init;
46 Y = z*(K^alpha);
47 resid = 1 - c/(Y-Imin);
48
49 mu = 1;
50 muc = mu*(c^-sigma);
51 Euler = (c^-sigma)*(1-delta+z*alpha*K^(alpha-1));
52
53 equations;
54 resid;
55 end;
56end;
57
58initial Euler_interp Euler;
59Euler_interp = Euler;
60initial muc_interp muc;
61muc_interp = muc;
62
63% Endogenous variables, bounds, and initial values
64var_policy c invst mu;
65
66inbound c 1e-6 100 adaptive(2);
67inbound invst 0 50 adaptive(1.5);
68inbound mu 0 2 adaptive(1.5);
69
70% Other equilbirium variables
71var_aux Y Euler K_next muc z_next[2] Inv;
72
73model;
74 %investment irreversiility constraint
75 Inv = invst + Imin;
76 K_next = Inv + (1-delta)*K;
77 Y = z*(K^alpha);
78 resid = 1 - (Inv+c)/Y;
79
80 %transition to z_next
81 z_next' = exp(rho*log(z)+e');
82
83 %interpolation of future policies
84 Euler_future' = Euler_interp'(z_next',K_next);
85 EEuler_future = GDSGE_EXPECT{Euler_future'};
86 muc_future' = muc_interp'(z_next',K_next);
87 Emuc_future = GDSGE_EXPECT{muc_future'};
88
89 Euler = (c^-sigma)*(1-delta+z*alpha*K^(alpha-1));
90 muc = mu*(c^-sigma);
91
92 % First order conditions for firms
93 foc = 1-mu - (beta*EEuler_future-beta*(1-delta)*Emuc_future)/(c^-sigma);
94 comp_slack = mu*invst;
95
96 equations;
97 foc;
98 resid;
99 comp_slack;
100 end;
101end;
102
103simulate;
104 num_periods = 15000;
105 num_samples = 100;
106
107 initial K Kss;
108 initial z 1;
109 initial shock 2;
110
111 var_simu z K Y c Inv;
112 K' = K_next;
113 z' = z_next';
114end;
The toolbox solves the model and produces the policy functions. The following figure displays the investment policy function \(I(z,K)\). The investment irreversibility constraint tends to bind when \(K\) is low or \(z\) is low.
We then use the policy functions to simulate the model. The following figures show the long run distributions of investment and capital. The investment irreversibility constraint binds around 20% of the times. The distribution of capital is asymmetric and skewed towards lower levels of capital. It is significantly different from the distribution in the RBC model without the irreversibility constraint.