Skip to content

Commit ea732d4

Browse files
committed
updates
1 parent bcaf69b commit ea732d4

4 files changed

Lines changed: 239 additions & 243 deletions

File tree

lectures/atkeson_1991.md

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ $\mathcal{Y} = \{Y_1,\ldots,Y_N\}$ with $0 < Y_1 < \cdots < Y_N$.
4949
The technology is built from two fixed probability distributions on
5050
$\mathcal{Y}$, which we call $g_0$ and $g_1$.
5151

52-
We think of $g_1$ as the distribution of output when the borrower's effort is
53-
least productive and $g_0$ as the distribution when it is most productive.
52+
We think of $g_1$ as the output distribution when investment is lowest and
53+
$g_0$ as the output distribution when investment is highest.
5454

5555
Accordingly $g_0$ places relatively more weight on high outputs than $g_1$
5656
does.
@@ -89,7 +89,7 @@ the borrower invested little.
8989

9090
### Agents and preferences
9191

92-
**The borrower** is an infinitely-lived, risk-averse agent with normalised
92+
**The borrower** is an infinitely-lived, risk-averse agent with normalized
9393
discounted utility
9494

9595
$$
@@ -129,7 +129,7 @@ in full in feasibility condition {eq}`eq:atkeson_feasibility`.
129129
$\mathbb{E}_0^{\sigma}$ is the expectation over output histories that this plan
130130
induces, evaluated at date $0$.
131131

132-
The factor $(1 - \beta)$ normalises lifetime utility to per-period units, so
132+
The factor $(1 - \beta)$ normalizes lifetime utility to per-period units, so
133133
$v$ is comparable to a one-period payoff.
134134

135135
**Lenders** are a sequence of short-lived, risk-neutral agents, one born each
@@ -379,7 +379,7 @@ $\mathcal V(Q) \subseteq \mathcal B(\mathcal V)(Q)$ for all $Q$.
379379
380380
Together, {prf:ref}`atkeson_self_generation` and
381381
{prf:ref}`atkeson_factorization` imply
382-
$\mathcal V = \mathcal B(\mathcal V)$, characterising the utility
382+
$\mathcal V = \mathcal B(\mathcal V)$, characterizing the utility
383383
possibility correspondence as the fixed point of $\mathcal B$.
384384
385385
### Program P*
@@ -508,11 +508,8 @@ after output $Y_j'$, $\eta$ is the multiplier on the relaxed
508508
investment-incentive condition, and $\xi_j$ enforces consistency between
509509
$v_j$ and the frontier value $\bar v(Q_j')$.
510510
511-
In the paper's numbered notation, $\mu_3(Y_j')$ corresponds to $\mu_j$,
512-
and $\mu_4$ corresponds to $\eta$.
513-
514-
The numbers are just labels for constraints in the Lagrangian
515-
{eq}`eq:atkeson_relaxed_lagrangian`.
511+
In the numbered notation of {cite:t}`Atkeson1991`, $\mu_3(Y_j')$ corresponds
512+
to $\mu_j$ and $\mu_4$ corresponds to $\eta$.
516513
517514
The first-order condition with respect to $v_j$ is, up to the common
518515
positive scale factor $\beta g_j(I)$,
@@ -717,12 +714,12 @@ v_{\text{aut}}(Q) =
717714
$$
718715
719716
Note that the continuation values depend only on $Y_L$ and $Y_H$, not on the
720-
current $Q$, because next period's state is simply the realised output.
717+
current $Q$, because next period's state is simply the realized output.
721718
722719
```{code-cell} ipython3
723720
@jax.jit
724721
def autarky_operator_jax(V, β_val, g_high_val, g_low_val):
725-
"""One vectorised Bellman step for the autarky problem."""
722+
"""One vectorized Bellman step for the autarky problem."""
726723
V_Y = jnp.interp(Y_j, Q_grid_j, V)
727724
g_I = g_of_I_jax(I_grid_j, g_high_val, g_low_val)
728725
EV_I = g_I @ V_Y
@@ -991,7 +988,7 @@ ax.plot(Q_grid, V_pareto, lw=2, ls='--',
991988
label=r'Program P* value $\bar v(Q)$')
992989
993990
ax.set_xlabel(r'state $Q$ (output net of repayment)')
994-
ax.set_ylabel('normalised utility')
991+
ax.set_ylabel('normalized utility')
995992
ax.legend()
996993
plt.tight_layout()
997994
plt.show()
@@ -1497,12 +1494,6 @@ parameters fixed).
14971494
Here is one solution:
14981495
14991496
```{code-cell} ipython3
1500-
---
1501-
mystnb:
1502-
figure:
1503-
caption: continuation state across patience levels
1504-
name: fig-atk-patience
1505-
---
15061497
fig, ax = plt.subplots()
15071498
15081499
for β_val, ls, color, tag in [
@@ -1524,6 +1515,7 @@ for β_val, ls, color, tag in [
15241515
15251516
ax.set_xlabel(r'state $Q$')
15261517
ax.set_ylabel(r"$Q'_L$ (continuation state after low output)")
1518+
ax.set_title('continuation state across patience levels')
15271519
ax.legend()
15281520
plt.tight_layout()
15291521
plt.show()
@@ -1588,12 +1580,6 @@ weaker signal of investment.
15881580
Here is one solution:
15891581
15901582
```{code-cell} ipython3
1591-
---
1592-
mystnb:
1593-
figure:
1594-
caption: net outflow under weak signal
1595-
name: fig-atk-signal
1596-
---
15971583
# Weak-signal specification
15981584
g_high_ws = np.array([0.40, 0.60])
15991585
g_low_ws = np.array([0.60, 0.40])
@@ -1624,6 +1610,7 @@ ax.plot(Q_grid, net_L_ws,
16241610
ax.axhline(0, color='k', lw=0.8, ls=':')
16251611
ax.set_xlabel(r'state $Q$')
16261612
ax.set_ylabel('net capital outflow')
1613+
ax.set_title('net outflow under weak signal')
16271614
ax.legend()
16281615
plt.tight_layout()
16291616
plt.show()

lectures/repeat_mh.md

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@ kernelspec:
1515

1616
## Overview
1717

18-
This lecture computes information-constrained optima in the
19-
Phelan-Townsend repeated moral-hazard environment
20-
{cite}`Phelan_Townsend_91`.
18+
This lecture computes information-constrained optima in the repeated
19+
moral-hazard environment of {cite:t}`Phelan_Townsend_91`.
2120

2221
The environment is a continuum-agent economy with unobserved effort.
2322

@@ -28,8 +27,8 @@ discounted social surplus.
2827
The key recursive idea comes from {cite:t}`Spear_Srivastava_87`: an
2928
agent's promised continuation utility is a sufficient state variable.
3029

31-
Phelan and Townsend combine that idea with lotteries, finite grids, and
32-
linear programming to compute full-information, static
30+
{cite:t}`Phelan_Townsend_91` combine that idea with lotteries, finite grids,
31+
and linear programming to compute full-information, static
3332
unobserved-action, and repeated unobserved-action allocations.
3433

3534
The lecture proceeds from the recursive formulation to the computational
@@ -342,7 +341,7 @@ $$
342341
\quad \forall\, a,\, \hat a \in A.
343342
$$
344343
345-
### Parameterisation
344+
### Parameterization
346345
347346
The baseline utility specification is
348347
@@ -1103,7 +1102,7 @@ def solve_multi_period_economy(A=None,
11031102
We use the same parameters as for the static economy, plus a
11041103
discount factor $\beta = 0.8$ and grids of $N = N_m = 100$ points.
11051104
1106-
We initialise the value function iteration with the one-period
1105+
We initialize the value function iteration with the one-period
11071106
(static) solution, scaled to discounted-sum units.
11081107
11091108
```{code-cell} ipython3
@@ -1769,12 +1768,6 @@ $$
17691768
```
17701769
17711770
```{code-cell} ipython3
1772-
---
1773-
mystnb:
1774-
figure:
1775-
caption: agency cost function
1776-
name: fig-rmh-agency-cost
1777-
---
17781771
δ_W = s_W_full - s_W_unobs
17791772
17801773
plt.figure()
@@ -1783,6 +1776,7 @@ plt.xlabel("w")
17831776
plt.ylabel(r"$\delta(w) = s^{FI}(w) - s^{UA}(w)$")
17841777
plt.xlim([1.0, 5.0])
17851778
plt.ylim(bottom=0.0)
1779+
plt.title("agency cost function")
17861780
plt.show()
17871781
17881782
max_i = np.nanargmax(δ_W)
@@ -1836,12 +1830,6 @@ in which output is less informative about effort than in the baseline $P$.
18361830
```
18371831
18381832
```{code-cell} ipython3
1839-
---
1840-
mystnb:
1841-
figure:
1842-
caption: surplus and effort under flatter probabilities
1843-
name: fig-rmh-flat-p
1844-
---
18451833
P_flat = np.array([[0.70, 0.30],
18461834
[0.55, 0.45],
18471835
[0.45, 0.55],
@@ -1869,6 +1857,7 @@ axes[1].set_xlim([1.0, 5.0])
18691857
axes[1].set_ylim([0.0, 0.8])
18701858
axes[1].legend()
18711859
1860+
fig.suptitle("surplus and effort under flatter probabilities")
18721861
plt.tight_layout()
18731862
plt.show()
18741863
```

0 commit comments

Comments
 (0)