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/ak2.md
+44-47
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ jupytext:
4
4
extension: .md
5
5
format_name: myst
6
6
format_version: 0.13
7
-
jupytext_version: 1.14.1
7
+
jupytext_version: 1.16.1
8
8
kernelspec:
9
9
display_name: Python 3 (ipykernel)
10
10
language: python
@@ -15,8 +15,9 @@ kernelspec:
15
15
16
16
In addition to what’s in Anaconda, this lecture will need the following libraries:
17
17
18
-
```{code-cell} ipython3
18
+
```{code-cell}
19
19
:tags: [hide-output]
20
+
20
21
!pip install --upgrade quantecon
21
22
```
22
23
@@ -29,6 +30,7 @@ This lecture presents a life-cycle model consisting of overlapping generations
29
30
We'll present the version that was analyzed in chapter 2 of Auerbach and
30
31
Kotlikoff (1987) {cite}`auerbach1987dynamic`.
31
32
33
+
32
34
Auerbach and Kotlikoff (1987) used their two period model as a warm-up for their analysis of overlapping generation models of long-lived people that is the main topic of their book.
33
35
34
36
Their model of two-period lived overlapping generations is a useful starting point because
@@ -214,10 +216,10 @@ We take output at time $t$ as *numeraire*, so the price of output at time $t$ is
To maximize profits a firm equates marginal products to rental rates:
222
+
To maximize profits a firm equates marginal products to rental rates, which can be done by taking the first-order derivatives of the profit function $\pi_t$:
We can use these helper functions to obtain steady state values $\hat{Y}$, $\hat{r}$, and $\hat{W}$ associated with steady state values $\hat{K}$ and $\hat{r}$.
@@ -534,9 +534,9 @@ In each policy experiment below, we will pass two out of three as inputs require
534
534
535
535
We'll then compute the single remaining undetermined policy variable from the government budget constraint.
536
536
537
-
When we simulate transition paths, it is useful to distinguish **state variables** at time $t$ such as $K_t, Y_t, D_t, W_t, r_t$ from **control variables** that include $C_{yt}, C_{ot}, \tau_{t}, G_t$.
537
+
When we simulate transition paths, it is useful to distinguish **state variables** at time $t$ such as $K_t, Y_t, D_t, W_t, r_t$ from **control variables** that include $C_{yt}, C_{ot}, \tau_{t}, G_t$.
538
538
539
-
```{code-cell} ipython3
539
+
```{code-cell}
540
540
class ClosedFormTrans:
541
541
"""
542
542
This class simulates length T transitional path of a economy
@@ -681,8 +681,7 @@ class ClosedFormTrans:
681
681
682
682
We can create an instance `closed` for model parameters $\{\alpha, \beta\}$ and use it for various fiscal policy experiments.
683
683
684
-
685
-
```{code-cell} ipython3
684
+
```{code-cell}
686
685
closed = ClosedFormTrans(α, β)
687
686
```
688
687
@@ -712,7 +711,7 @@ The first step is to prepare sequences of policy variables that describe fiscal
712
711
713
712
We must define sequences of government expenditure $\{G_t\}_{t=0}^{T}$ and debt level $\{D_t\}_{t=0}^{T+1}$ in advance, then pass them to the solver.
714
713
715
-
```{code-cell} ipython3
714
+
```{code-cell}
716
715
T = 20
717
716
718
717
# tax cut
@@ -731,16 +730,16 @@ Let's use the `simulate` method of `closed` to compute dynamic transitions.
731
730
732
731
Note that we leave `τ_pol` as `None`, since the tax rates need to be determined to satisfy the government budget constraint.
@@ -798,7 +797,7 @@ The government targets the same tax rate $\tau_t=\hat{\tau}$ and to accumulate
798
797
799
798
To conduct this experiment, we pass `τ_seq` and `G_seq` as inputs and let `D_pol` be determined along the path by satisfying the government budget constraint.
800
799
801
-
```{code-cell} ipython3
800
+
```{code-cell}
802
801
# government expenditure cut by a half
803
802
G_seq = τ_hat * 0.5 * Y_hat * np.ones(T+1)
804
803
@@ -813,7 +812,7 @@ As the government accumulates the asset and uses it in production, the rental r
813
812
814
813
As a result, the ratio $-\frac{D_t}{K_t}$ of the government asset to physical capital used in production will increase over time
@@ -937,7 +934,7 @@ An optimal consumption plan $C_y^*$ can be found by maximizing `Cy_val`.
937
934
938
935
Here is an example that computes optimal consumption $C_y^*=\hat{C}_y$ in the steady state with $\delta_{yt}=\delta_{ot}=0,$ like one that we studied earlier
939
936
940
-
```{code-cell} ipython3
937
+
```{code-cell}
941
938
W, r_next, τ, τ_next = W_hat, r_hat, τ_hat, τ_hat
942
939
δy, δo_next = 0, 0
943
940
@@ -953,7 +950,7 @@ Let's define a Python class `AK2` that computes the transition paths with the
953
950
954
951
It can handle nonzero lump sum taxes
955
952
956
-
```{code-cell} ipython3
953
+
```{code-cell}
957
954
class AK2():
958
955
"""
959
956
This class simulates length T transitional path of a economy
@@ -1124,13 +1121,13 @@ class AK2():
1124
1121
1125
1122
We can initialize an instance of class `AK2` with model parameters $\{\alpha, \beta\}$ and then use it to conduct fiscal policy experiments.
1126
1123
1127
-
```{code-cell} ipython3
1124
+
```{code-cell}
1128
1125
ak2 = AK2(α, β)
1129
1126
```
1130
1127
1131
1128
We first examine that the "guess and verify" method leads to the same numerical results as we obtain with the closed form solution when lump sum taxes are muted
Let's alter our {ref}`exp-tax-cut` fiscal policy experiment by assuming that the government also increases lump sum taxes for both young and old people $\delta_{yt}=\delta_{ot}=0.005, t\geq0$.
1157
+
Let's alter our {ref}`exp-tax-cut` fiscal policy experiment by assuming that the government also increases lump sum taxes for both young and old people $\delta_{yt}=\delta_{ot}=0.005, t\geq0$.
0 commit comments