Skip to content

Commit a1ed6bc

Browse files
authored
FIX: aligned and general tidy up for new Monetary Lectures (#409)
* FIX: aligned issues * fix aligned * fixes for spelling, generaly tidy up
1 parent 46e870e commit a1ed6bc

File tree

4 files changed

+143
-255
lines changed

4 files changed

+143
-255
lines changed

lectures/laffer_adaptive.md

Lines changed: 18 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ kernelspec:
1111
name: python3
1212
---
1313

14-
+++ {"user_expressions": []}
15-
1614
# Laffer Curves with Adaptive Expectations
1715

1816
## Overview
@@ -24,8 +22,6 @@ As in the lecture {doc}`money_inflation`, this lecture uses the log-linear versi
2422
But now, instead of assuming ''rational expectations'' in the form of ''perfect foresight'',
2523
we'll adopt the ''adaptive expectations'' assumption used by {cite}`Cagan` and {cite}`Friedman1956`.
2624

27-
28-
2925
This means that instead of assuming that expected inflation $\pi_t^*$ is described by the "perfect foresight" or "rational expectations" hypothesis
3026

3127
$$
@@ -34,20 +30,16 @@ $$
3430

3531
that we adopted in lectures {doc}`money_inflation` and lectures {doc}`money_inflation_nonlinear`, we'll now assume that $\pi_t^*$ is determined by the adaptive expectations hypothesis described in equation {eq}`eq:adaptex` reported below.
3632

37-
38-
3933
We shall discover that changing our hypothesis about expectations formation in this way will change some our findings and leave others intact. In particular, we shall discover that
4034

41-
4235
* replacing rational expectations with adaptive expectations leaves the two stationary inflation rates unchanged, but that $\ldots$
43-
* it reverse the pervese dynamics by making the **lower** stationary inflation rate the one to which the system typically converges
36+
* it reverse the perverse dynamics by making the **lower** stationary inflation rate the one to which the system typically converges
4437
* a more plausible comparative dynamic outcome emerges in which now inflation can be **reduced** by running **lower** government deficits
4538

46-
These more plausible comparative dynamics underly the "old time religion" that states that
47-
"inflation is always and everwhere caused by government deficits".
39+
These more plausible comparative dynamics underlie the "old time religion" that states that
40+
"inflation is always and everywhere caused by government deficits".
4841

49-
50-
These issues were studyied by {cite}`bruno1990seigniorage`.
42+
These issues were studied by {cite}`bruno1990seigniorage`.
5143

5244
Their purpose was to reverse what they thought were counter intuitive
5345
predictions of their model under rational expectations (i.e., perfect foresight in this context)
@@ -58,23 +50,20 @@ by dropping rational expectations and instead assuming that people form expecta
5850
{cite}`marcet2003recurrent` and {cite}`sargent2009conquest` extended that work and applied it to study recurrent high-inflation episodes in Latin America.
5951
```
6052

61-
6253
## The Model
6354

6455
Let
6556

66-
* $m_t$ be the log of the money supply at the beginning of time $t$
67-
* $p_t$ be the log of the price level at time $t$
68-
* $\pi_t^*$ be the public's expectation of the rate of inflation between $t$ and $t+1$
57+
* $m_t$ be the log of the money supply at the beginning of time $t$
58+
* $p_t$ be the log of the price level at time $t$
59+
* $\pi_t^*$ be the public's expectation of the rate of inflation between $t$ and $t+1$
6960

70-
7161
The law of motion of the money supply is
7262

7363
$$
7464
\exp(m_{t+1}) - \exp(m_t) = g \exp(p_t)
7565
$$ (eq:ada_msupply)
7666
77-
7867
where $g$ is the part of government expenditures financed by printing money.
7968
8069
Notice that equation {eq}`eq:ada_msupply` implies that
@@ -91,8 +80,6 @@ $$ (eq:ada_mdemand)
9180
9281
where $\alpha \geq 0$.
9382
94-
95-
9683
Expectations of inflation are governed by
9784
9885
$$
@@ -101,7 +88,6 @@ $$ (eq:adaptex)
10188
10289
where $\delta \in (0,1)$
10390
104-
10591
## Computing An Equilibrium Sequence
10692
10793
Equation the expressions for $m_{t+1}$ promided by {eq}`eq:ada_mdemand` and {eq}`eq:ada_msupply2` and use equation {eq}`eq:adaptex` to eliminate $\pi_t^*$ to obtain
@@ -111,7 +97,6 @@ $$
11197
\log[ \exp(m_t) + g \exp(p_t)] - p_t = -\alpha [(1-\delta) (p_t - p_{t-1}) + \delta \pi_{t-1}^*]
11298
$$ (eq:pequation)
11399
114-
115100
**Pseudo-code**
116101
117102
Here is pseudo code for our algorithm.
@@ -131,19 +116,17 @@ This completes the algorithm.
131116
132117
It will turn out that
133118
134-
* if they exist, limiting values $\overline \pi$ and $\overline \mu$ will be equal
135-
136-
* if limiting values exists, there are two possible limiting values, one high, one low
137-
138-
* unlike the outcome in lecture {doc}`money_inflation_nonlinear`, for almost all initial log price levels and expected inflation rates $p_0, \pi_{t}^*$, the limiting $\overline \pi = \overline \mu$ is the **lower** steady state value
139-
140-
* for each of the two possible limiting values $\bar \pi$ ,there is a unique initial log price level $p_0$ that implies that $\pi_t = \mu_t = \bar \mu$ for all $t \geq 0$
141-
142-
* this unique initial log price level solves $\log(\exp(m_0) + g \exp(p_0)) - p_0 = - \alpha \bar \pi $
143-
144-
* the preceding equation for $p_0$ comes from $m_1 - p_0 = - \alpha \bar \pi$
119+
* if they exist, limiting values $\overline \pi$ and $\overline \mu$ will be equal
145120
146-
+++ {"user_expressions": []}
121+
* if limiting values exists, there are two possible limiting values, one high, one low
122+
123+
* unlike the outcome in lecture {doc}`money_inflation_nonlinear`, for almost all initial log price levels and expected inflation rates $p_0, \pi_{t}^*$, the limiting $\overline \pi = \overline \mu$ is the **lower** steady state value
124+
125+
* for each of the two possible limiting values $\bar \pi$ ,there is a unique initial log price level $p_0$ that implies that $\pi_t = \mu_t = \bar \mu$ for all $t \geq 0$
126+
127+
* this unique initial log price level solves $\log(\exp(m_0) + g \exp(p_0)) - p_0 = - \alpha \bar \pi $
128+
129+
* the preceding equation for $p_0$ comes from $m_1 - p_0 = - \alpha \bar \pi$
147130
148131
## Limiting Values of Inflation Rate
149132
@@ -180,8 +163,6 @@ Soon we'll plot the left and right sides of equation {eq}`eq:ada_steadypi`.
180163
But first we'll write code that computes a steady-state
181164
$\bar \pi$.
182165
183-
184-
185166
Let's start by importing some libraries
186167
187168
```{code-cell} ipython3
@@ -213,8 +194,6 @@ def create_model(α=0.5, m0=np.log(100), g=0.35, δ=0.9):
213194
model = create_model()
214195
```
215196
216-
+++ {"user_expressions": []}
217-
218197
Now we write code that computes steady-state $\bar \pi$s.
219198
220199
```{code-cell} ipython3
@@ -232,12 +211,8 @@ def solve_π_bar(model, x0):
232211
print(f'The two steady state of π are: {π_l, π_u}')
233212
```
234213
235-
+++ {"user_expressions": []}
236-
237214
We find two steady state $\bar \pi$ values
238215
239-
+++ {"user_expressions": []}
240-
241216
## Steady State Laffer Curve
242217
243218
The following figure plots the steady state Laffer curve together with the two stationary inflation rates.
@@ -283,12 +258,9 @@ def plot_laffer(model, πs):
283258
plot_laffer(model, (π_l, π_u))
284259
```
285260
286-
+++ {"user_expressions": []}
287-
288261
## Associated Initial Price Levels
289262
290-
291-
Now that we have our hands on the two possible steady states, we can compute two initial log price levels $p_{-1}$, which as initial conditions, imply that $\pi_t = \bar \pi $ for all $t \geq 0$.
263+
Now that we have our hands on the two possible steady states, we can compute two initial log price levels $p_{-1}$, which as initial conditions, imply that $\pi_t = \bar \pi $ for all $t \geq 0$.
292264
293265
In particular, to initiate a fixed point of the dynamic Laffer curve dynamics we set
294266
@@ -307,16 +279,10 @@ p_l, p_u = map(lambda π: solve_p_init(model, π), (π_l, π_u))
307279
print('Associated initial p_{-1}s', f'are: {p_l, p_u}')
308280
```
309281
310-
+++ {"user_expressions": []}
311-
312282
### Verification
313283
314-
315-
316284
To start, let's write some code to verify that if we initial $\pi_{-1}^*,p_{-1}$ appropriately, the inflation rate $\pi_t$ will be constant for all $t \geq 0$ (at either $\pi_u$ or $\pi_l$ depending on the initial condition)
317285
318-
319-
320286
The following code verifies this.
321287
322288
```{code-cell} ipython3
@@ -352,8 +318,6 @@ def solve_laffer_adapt(p_init, π_init, model, num_steps):
352318
return π_seq, μ_seq, m_seq, p_seq
353319
```
354320
355-
+++ {"user_expressions": []}
356-
357321
Compute limiting values starting from $p_{-1}$ associated with $\pi_l$
358322
359323
```{code-cell} ipython3
@@ -369,8 +333,6 @@ eq_g = lambda x: np.exp(-model.α * x) - np.exp(-(1 + model.α) * x)
369333
print('eq_g == g:', np.isclose(eq_g(m_seq[-1] - m_seq[-2]), model.g))
370334
```
371335
372-
+++ {"user_expressions": []}
373-
374336
Compute limiting values starting from $p_{-1}$ associated with $\pi_u$
375337
376338
```{code-cell} ipython3
@@ -386,24 +348,17 @@ eq_g = lambda x: np.exp(-model.α * x) - np.exp(-(1 + model.α) * x)
386348
print('eq_g == g:', np.isclose(eq_g(m_seq[-1] - m_seq[-2]), model.g))
387349
```
388350
389-
+++ {"user_expressions": []}
390-
391351
## Slippery Side of Laffer Curve Dynamics
392352
393-
394-
395353
We are now equipped to compute time series starting from different $p_{-1}, \pi_{-1}^*$ settings, analogous to those in this lecture {doc}`money_inflation` and this lecture {doc}`money_inflation_nonlinear`.
396354
397-
398355
Now we'll study how outcomes unfold when we start $p_{-1}, \pi_{-1}^*$ away from a stationary point of the dynamic Laffer curve, i.e., away from either $\pi_u$ or $ \pi_l$.
399356
400357
To construct a perturbation pair $\check p_{-1}, \check \pi_{-1}^*$we'll implement the following pseudo code:
401358
402359
* set $\check \pi_{-1}^* $ not equal to one of the stationary points $\pi_u$ or $ \pi_l$.
403360
* set $\check p_{-1} = m_0 + \alpha \check \pi_{-1}^*$
404361
405-
406-
407362
```{code-cell} ipython3
408363
:tags: [hide-cell]
409364
@@ -440,8 +395,6 @@ def draw_iterations(π0s, model, line_params, π_bars, num_steps):
440395
plt.show()
441396
```
442397
443-
+++ {"user_expressions": []}
444-
445398
Let's simulate the result generated by varying the initial $\pi_{-1}$ and corresponding $p_{-1}$
446399
447400
```{code-cell} ipython3

0 commit comments

Comments
 (0)