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
where $σ_{j,t}(a,γ)$ is the optimal saving policy function.
194
204
@@ -225,13 +235,16 @@ Using tools in [discrete state dynamic programming lecture](https://python-adva
225
235
226
236
A sensible approach is to nest a discrete DP solver inside an outer loop that searches for market-clearing prices.
227
237
228
-
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.
238
+
For a candidate sequence of prices interest rates $r_t$ and wages $w_t$, we can
239
+
240
+
* solve individual households' dynamic programming problems using either value function iteration or policy function iteration to obtain optimal policy functions
241
+
* then deduce associated stationary joint probability distributions of asset holdings and idiosyncratic labor efficiency units for each age cohort
229
242
230
-
That will give us an aggregate capital supply (from household savings) and a labor supply (from the age-efficiency profile and productivity shocks).
243
+
* that will give us an aggregate capital supply (from household savings) and a labor supply (from the age-efficiency profile and productivity shocks)
231
244
232
-
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.
245
+
*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
233
246
234
-
For transition dynamics, we can compute sequences of time-varying prices by
247
+
To contruct transition dynamics, we can compute sequences of time-varying prices by
235
248
236
249
* using backward induction to compute value and policy functions,
237
250
* forward iteration for the distributions of agents across states.
@@ -310,7 +323,7 @@ def create_firm(α=0.3, Z=1):
310
323
firm = create_firm()
311
324
```
312
325
313
-
The following helper functions describe relationship between the aggregates ($K, L$) and the prices ($w, r$) that emerge from the representative firm's first-order necessary conditions.
326
+
The following helper functions link aggregates ($K, L$) and prices ($w, r$) that emerge from the representative firm's first-order necessary conditions.
314
327
315
328
```{code-cell} ipython3
316
329
@jax.jit
@@ -328,7 +341,7 @@ def KL_to_w(K, L, firm):
328
341
return Z * (1 - α) * (K / L) ** α
329
342
```
330
343
331
-
We use a function `find_τ` to find flat tax rates that balance the government budget constraint given other policy variables that include s debt levels, government spending, and transfers.
344
+
We use a function `find_τ` to find flat tax rates that balance the government budget constraint given other policy variables that include debt levels, government spending, and transfers.
Given optimal consumption and saving choices by each cohorts, we can compute the stationary joint probability distribution
482
-
of asset levels and idiosyncratic productivity levels in the steady state.
494
+
From optimal consumption and saving choices by each cohort, we can compute a joint probability distribution of asset levels and idiosyncratic productivity levels in a steady state.
We compute transition dynamics using a function `path_iteration`.
716
745
717
-
We iterate over guesses of prices and taxes in our outer loop.
746
+
In an outer loop, we iterate over guesses of prices and taxes.
718
747
719
748
In an inner loop, we compute the optimal consumption and saving choices by each cohort $j$ in each time $t$, then find the implied evolution of the joint distribution of assets and productivities.
We now have tools for computing equilibrium transition dynamics ignited by fiscal policy reforms, in the spirit of the {doc}`Transitions in an Overlapping Generations Model<ak2>`.
1004
+
We can now compute equilibrium transitions that are ignited by fiscal policy reforms.
976
1005
977
1006
## Experiment 1: Immediate Tax Cut
978
1007
@@ -1016,7 +1045,7 @@ Setting the key argument `verbose=True` tells the function `path_iteration` to
To look into the evolution of consumption distribution over age in more detail, let's compute the mean and variance of consumption conditional on age in each time $t$.
1182
+
Now let's compute the mean and variance of consumption conditional on age at each time $t$.
1152
1183
1153
1184
```{code-cell} ipython3
1154
1185
Cmean_seq = np.empty((T, J))
@@ -1194,11 +1225,11 @@ plt.show()
1194
1225
## Experiment 2: Preannounced Tax Cut
1195
1226
1196
1227
1197
-
Instead of implementing a tax rate cut immediately as it did in Experiment 1, now the government announces a tax rate cut at time $0$ but delays implementing it for 20 periods.
1228
+
Now the government announces a permanent tax rate cut at time $0$ but implements it only after 20 periods.
1198
1229
1199
1230
We will use the same key toolkit `path_iteration`.
1200
1231
1201
-
We only need to specify `D_seq` appropriately.
1232
+
We must specify `D_seq` appropriately.
1202
1233
1203
1234
```{code-cell} ipython3
1204
1235
T = 150
@@ -1250,7 +1281,7 @@ for t in range(T):
1250
1281
1251
1282
Below we plot the transition paths of the economy.
1252
1283
1253
-
Notice how prices and quantities respond to the foreseen tax rate increase.
Let's zoom in and look at how the capital stock responds to the future tax cut.
1318
+
Notice how prices and quantities respond immediately to the anticipated tax rate increase.
1319
+
1320
+
Let's zoom in on how the capital stock responds.
1288
1321
1289
1322
```{code-cell} ipython3
1290
1323
# K
@@ -1301,13 +1334,16 @@ plt.xlabel("t")
1301
1334
1302
1335
After the tax cut policy is implemented after $t=20$, the aggregate capital will decrease because of the crowding out effect.
1303
1336
1304
-
Forseeing the increase in the interest rate, individuals living in a few periods before $t=20$ will save more. This will cause a temporary decrease in the interest rate because of the increase in capital supply.
1337
+
Having foreseen an increase in the interest rate, individuals few periods before $t=20$ start saving more.
1338
+
1339
+
Because that increases the capital, a temporary decrease in the interest rate ensues.
1340
+
1341
+
For agents living in much earlier periods, that lower interest rate causes them to save less.
1342
+
1305
1343
1306
-
For agents living in earlier periods, they will consequently save less because the lower interest rate.
1307
1344
1308
-
This manifests interesting dynamics of the economy between the annoucement of a policy and its actual implementation, with agents holding rational expectations.
1345
+
We can also plot evolutions of means and variances of consumption by different cohorts along a transition path.
1309
1346
1310
-
As above, we could also plot the evolution of mean and variance of consumption by different cohorts along the transition path.
0 commit comments