You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: lectures/ak_aiyagari.md
+72-68Lines changed: 72 additions & 68 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,14 +11,37 @@ kernelspec:
11
11
name: python3
12
12
---
13
13
14
-
# Prerequisite
15
14
16
-
Two quantecon lectures:
15
+
# A Long-Lived, Heterogeneous Agent, Overlapping Generations Model
16
+
17
+
## Overview
18
+
19
+
This lecture describes an overlapping generations model with these features:
20
+
21
+
- A competitive equilibrium with incomplete markets determines prices and quantities
22
+
- Agents live many periods as in {cite}`auerbach1987dynamic`
23
+
- Agents receive idiosyncratic labor productivity shocks that cannot be fully insured as in {cite}`Aiyagari1994`
24
+
- Government fiscal policy instruments include tax rates, debt, and transfers as in chapter 2 of {cite}`auerbach1987dynamic` and {doc}`Transitions in an Overlapping Generations Model<ak_2>`
25
+
- Among other equilibrium objects, a competitive determines a sequence of cross-section densities of heterogeneous agents' consumptions, labor incomes, and savings
26
+
27
+
28
+
We use the model to study:
29
+
- How fiscal policies affect different generations
30
+
- How market incompleteness promotes precautionary savings
31
+
- How life-cycle savings and buffer-stock savings motives interact
32
+
- How fiscal policies redistribute resources across and within generations
33
+
34
+
35
+
As prerequisites for this lecture, we recommend two quantecon lectures:
17
36
18
37
1.[Discrete State Dynamic Programming](https://python-advanced.quantecon.org/discrete_dp.html)
19
38
2.[Transitions in an Overlapping Generations Model](https://python.quantecon.org/ak2.html)
20
39
21
-
Optional: [The Aiyagari Model (with JAX)](https://jax.quantecon.org/aiyagari_jax.html)
40
+
as well as the following optional reading
41
+
42
+
3.[The Aiyagari Model (with JAX)](https://jax.quantecon.org/aiyagari_jax.html)
43
+
44
+
As usual, let's start by importing some Python modules.
22
45
23
46
```{code-cell} ipython3
24
47
:id: ac32ac26
@@ -33,59 +56,42 @@ import jax
33
56
34
57
+++ {"id": "ec922397", "user_expressions": []}
35
58
36
-
#Transitions in an AK-Aiyagari Model
59
+
## Environment
37
60
38
-
## 1. Introduction
39
-
40
-
This lecture describes an overlapping generations model with these features:
41
-
42
-
43
-
- Agents live many periods as in Auerbach and Kotlikoff (1987) (AK)
44
-
- Agents receive idiosyncratic labor productivity shocks that cannot be fully insured as in Aiyagari (1994)
45
-
- Government fiscal policy instruments include taxes, debt, and transfers as in AK
46
-
- A competitive equilibrium determines prices and quantities
47
-
48
-
We use the framework to study:
49
-
- How fiscal policies affect different generations
50
-
- How market incompleteness promotes precautionary savings
51
-
- How life-cycle savings and buffer-stock savings motives interact
52
-
- Fiscal policies that redistribute resources across and within generations
53
-
54
-
## 2. Basic Settings
55
-
56
-
### Demographics and Time
61
+
## Demographics and Time
57
62
58
63
- Time is discrete and is indexed by $t = 0, 1, 2, ...$
59
64
- Each agent lives for $J = 50$ periods and faces no mortality risk
60
65
- Age is indexed by $j = 0, 1, ..., 49$
61
66
- Population size is fixed at $1/J$
62
67
63
-
### Individual State Variables
68
+
##Individuals' State Variables
64
69
65
-
Agent $i$ of age $j$ at time t is characterized by:
70
+
Agent $i$ of age $j$ at time $t$ has
66
71
67
-
1. Asset holdings $a_{i,j,t}$
68
-
2. Idiosyncratic labor productivity $γ_{i,j,t}$
72
+
- Asset holdings $a_{i,j,t}$
73
+
- Idiosyncratic labor productivity $γ_{i,j,t}$
69
74
70
-
The idiosyncratic labor productivity process follows a two-state Markov chain with:
75
+
An idiosyncratic labor productivity process follows a two-state Markov chain with:
71
76
- Values $γ_l, γ_h$
72
77
- Transition matrix $Π$
73
78
- Initial distribution for newborns $π = [0.5, 0.5]$
74
79
75
-
###Labor Supply
80
+
## Labor Supply
76
81
77
82
- An agent with productivity $γ_{i,j,t}$ supplies $l(j)γ_{i,j,t}$ efficiency units of labor
78
83
- $l(j)$ is a deterministic age-specific labor efficiency units profile
79
-
- An agent's effective labor supply combines both the life-cycle efficiency profile and the idiosyncratic stochastic process
80
-
### Initial Conditions
84
+
- An agent's effective labor supply depends on a life-cycle efficiency profile and an idiosyncratic stochastic process
85
+
86
+
## Initial Conditions
81
87
82
88
- Newborns start with zero assets: $a_{i,0,t} = 0$
83
89
- Initial idiosyncratic productivityies are drawn from distribution $π$
84
90
- Agents leave no bequests and have terminal value function $V_J(a) = 0$
85
91
86
-
## 3. Production
92
+
## Production
87
93
88
-
A representative firm operates a constant returns to scale Cobb-Douglas technology:
94
+
A representative firm operates a constant returns to scale Cobb-Douglas production:
89
95
90
96
$$Y_t = Z_t K_t^\alpha L_t^{1-\alpha}$$
91
97
@@ -95,16 +101,16 @@ where:
95
101
- $Z_t$ is total factor productivity
96
102
- $α$ is the capital share
97
103
98
-
## 4. Government
104
+
## Government
99
105
100
-
The government:
106
+
The government
101
107
102
108
1. Issues one-period debt $D_t$
103
109
2. Collects flat-rate tax rate $τ_t$ on labor and capital income
Using tools in [discrete state dynamic programming lecture](https://python-advanced.quantecon.org/discrete_dp.html), we solve our
224
-
AK-Aiyagari model by combining
229
+
Using tools in [discrete state dynamic programming lecture](https://python-advanced.quantecon.org/discrete_dp.html), we solve our model by combining
225
230
226
231
* value function iteration with
227
232
* equilibrium price determination.
228
233
229
-
A reasonable approach is to nest a discrete DP solver inside an outer loop that searches for market-clearing prices.
234
+
A sensible approach is to nest a discrete DP solver inside an outer loop that searches for market-clearing prices.
230
235
231
236
For each candidate sequence of prices (interest rates $r$ and wages $w$), we can solve individual households' dynamic programming problems using either value function iteration or policy function iteration to obtain optimal policy functions, then deduce associated stationary joint probability distributions of asset holdings and idiosyncratic labor efficiency units for each age cohort.
232
237
233
-
That would give us aggregate capital supply (from household savings) and labor supply (from the age-efficiency profile and productivity shocks).
238
+
That will give us an aggregate capital supply (from household savings) and a labor supply (from the age-efficiency profile and productivity shocks).
234
239
235
-
We can then compare these with capital and labor demand from firms, compute deviations between factor market supplies and demands,
236
-
then update our price guesses until we find market-clearing prices.
240
+
We can then compare these with capital and labor demand from firms, compute deviations between factor market supplies and demands, then update price guesses until we find market-clearing prices.
237
241
238
-
For transition dynamics, we want to compute sequences of time-varying prices by
242
+
For transition dynamics, we can compute sequences of time-varying prices by
239
243
240
244
* using backward induction to compute value and policy functions,
241
245
* forward iteration for the distributions of agents across states.
0 commit comments