Skip to content

Commit a5fa03b

Browse files
Tom's Jan 31 edits of two smoothing lectures
1 parent 3cc1be7 commit a5fa03b

File tree

2 files changed

+32
-30
lines changed

2 files changed

+32
-30
lines changed

lectures/cons_smooth.md

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@ kernelspec:
1818

1919
In this lecture, we'll study a famous model of the "consumption function" that Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`) proposed to fit some empirical data patterns that the original Keynesian consumption function described in this QuantEcon lecture {doc}`geometric series <geom_series>` missed.
2020

21-
In this lecture, we'll study what is often called the "consumption-smoothing model" using matrix multiplication and matrix inversion, the same tools that we used in this QuantEcon lecture {doc}`present values <pv>`.
21+
We'll study what is often called the "consumption-smoothing model."
22+
23+
We'll use matrix multiplication and matrix inversion, the same tools that we used in this QuantEcon lecture {doc}`present values <pv>`.
2224

2325
Formulas presented in {doc}`present value formulas<pv>` are at the core of the consumption-smoothing model because we shall use them to define a consumer's "human wealth".
2426

2527
The key idea that inspired Milton Friedman was that a person's non-financial income, i.e., his or
26-
her wages from working, could be viewed as a dividend stream from that person's ''human capital''
27-
and that standard asset-pricing formulas could be applied to compute a person's
28-
''non-financial wealth'' that capitalizes the earnings stream.
28+
her wages from working, can be viewed as a dividend stream from ''human capital''
29+
and that standard asset-pricing formulas can be applied to compute
30+
''non-financial wealth'' that capitalizes that earnings stream.
2931

3032
```{note}
3133
As we'll see in this QuantEcon lecture {doc}`equalizing difference model <equalizing_difference>`,
@@ -48,13 +50,13 @@ from collections import namedtuple
4850

4951
The model describes a consumer who lives from time $t=0, 1, \ldots, T$, receives a stream $\{y_t\}_{t=0}^T$ of non-financial income and chooses a consumption stream $\{c_t\}_{t=0}^T$.
5052

51-
We usually think of the non-financial income stream as coming from the person's salary from supplying labor.
53+
We usually think of the non-financial income stream as coming from the person's earnings from supplying labor.
5254

53-
The model takes a non-financial income stream as an input, regarding it as "exogenous" in the sense of not being determined by the model.
55+
The model takes a non-financial income stream as an input, regarding it as "exogenous" in the sense that it is determined outside the model.
5456

55-
The consumer faces a gross interest rate of $R >1$ that is constant over time, at which she is free to borrow or lend, up to limits that we'll describe below.
57+
The consumer faces a gross interest rate of $R >1$ that is constant over time, at which she is free to borrow or lend, up to limits that we'll describe below.
5658

57-
To set up the model, let
59+
Let
5860

5961
* $T \geq 2$ be a positive integer that constitutes a time-horizon.
6062
* $y = \{y_t\}_{t=0}^T$ be an exogenous sequence of non-negative non-financial incomes $y_t$.
@@ -128,7 +130,10 @@ By **smoother** we mean as close as possible to being constant over time.
128130
129131
The preference for smooth consumption paths that is built into the model gives it the name "consumption-smoothing model".
130132
131-
Let's dive in and do some calculations that will help us understand how the model works.
133+
We'll postpone verifying our claim that a constant consumption path is optimal when $\beta R=1$
134+
by comparing welfare levels that comes from a constant path with ones that involve non-constant paths.
135+
136+
Before doing that, let's dive in and do some calculations that will help us understand how the model works in practice when we provide the consumer with some different streams on non-financial income.
132137
133138
Here we use default parameters $R = 1.05$, $g_1 = 1$, $g_2 = 1/2$, and $T = 65$.
134139
@@ -282,7 +287,7 @@ def compute_optimal(model, a0, y_seq):
282287
283288
We use an example where the consumer inherits $a_0<0$.
284289
285-
This can be interpreted as a student debt.
290+
This can be interpreted as student debt with which the consumer begins his or her working life.
286291
287292
The non-financial process $\{y_t\}_{t=0}^{T}$ is constant and positive up to $t=45$ and then becomes zero afterward.
288293
@@ -476,8 +481,7 @@ plot_cs(cs_model, a0, y_seq_geo)
476481
477482
### Feasible consumption variations
478483
479-
We promised to justify our claim that a constant consumption play $c_t = c_0$ for all
480-
$t$ is optimal.
484+
We promised to justify our claim that when $\beta R =1$ as Friedman assumed, a constant consumption play $c_t = c_0$ for all $t$ is optimal.
481485
482486
Let's do that now.
483487
@@ -597,7 +601,7 @@ plt.show()
597601
598602
We can even use the Python `np.gradient` command to compute derivatives of welfare with respect to our two parameters.
599603
600-
We are teaching the key idea beneath the **calculus of variations**.
604+
(We are actually discovering the key idea beneath the **calculus of variations**.)
601605
602606
First, we define the welfare with respect to $\xi_1$ and $\phi$
603607
@@ -656,14 +660,12 @@ plt.show()
656660
657661
## Wrapping up the consumption-smoothing model
658662
659-
The consumption-smoothing model of Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`) is a cornerstone of modern macro that has important ramifications for the size of the Keynesian "fiscal policy multiplier" described briefly in
663+
The consumption-smoothing model of Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`) is a cornerstone of modern economics that has important ramifications for the size of the Keynesian "fiscal policy multiplier" that we described in
660664
QuantEcon lecture {doc}`geometric series <geom_series>`.
661665
662-
In particular, it **lowers** the government expenditure multiplier relative to one implied by
663-
the original Keynesian consumption function presented in {doc}`geometric series <geom_series>`.
666+
The consumption-smoothingmodel **lowers** the government expenditure multiplier relative to one implied by the original Keynesian consumption function presented in {doc}`geometric series <geom_series>`.
664667
665-
Friedman's work opened the door to an enlightening literature on the aggregate consumption function and associated government expenditure multipliers that
666-
remains active today.
668+
Friedman's work opened the door to an enlightening literature on the aggregate consumption function and associated government expenditure multipliers that remains active today.
667669
668670
669671
## Appendix: solving difference equations with linear algebra

lectures/tax_smooth.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ By renaming variables, we obtain a a version of a model "tax-smoothing model"
2424
The government chooses a tax collection path that minimizes the present value of its costs of raising revenue.
2525

2626

27-
The government minimize those costs by varying tax collections little over time.
27+
The government minimizes those costs by smoothing tax collections over time and by issuing government debt during temporary surges in government expenditures.
2828

2929

3030
The present value of government expenditures is at the core of the tax-smoothing model,
3131
so we'll again use formulas presented in {doc}`present value formulas<pv>`.
3232

33-
We'll use the matrix multiplication and matrix inversion tools that we used in {doc}`present value formulas <pv>`.
33+
We'll again use the matrix multiplication and matrix inversion tools that we used in {doc}`present value formulas <pv>`.
3434

3535

3636

@@ -74,7 +74,7 @@ We require it to satisfy two **boundary conditions**:
7474
* it must equal an exogenous value $B_0$ at time $0$
7575
* it must equal or exceed an exogenous value $B_{S+1}$ at time $S+1$.
7676

77-
The **terminal condition** $B_{S+1} \geq 0$ requires that it not end with negative assets.
77+
The **terminal condition** $B_{S+1} \geq 0$ requires that the government not end up with negative assets.
7878

7979
(This no-Ponzi condition ensures that the government ultimately pays off its debts -- it can't simply roll them over indefinitely.)
8080

@@ -291,7 +291,7 @@ def compute_optimal(model, B0, G_seq):
291291
292292
We use an example where the government starts with initial debt $B_0>0$.
293293
294-
This represents the government's inherited debt burden.
294+
This represents the government's initial debt burden.
295295
296296
The government expenditure process $\{G_t\}_{t=0}^{S}$ is constant and positive up to $t=45$ and then drops to zero afterward.
297297
@@ -373,7 +373,7 @@ def plot_ts(model, # tax-smoothing model
373373
fig, axes = plt.subplots(1, 2, figsize=(12,5))
374374
375375
axes[0].plot(range(S+1), G_seq, label='expenditures', lw=2)
376-
axes[0].plot(range(S+1), T_seq, label='tax', lw=2)
376+
axes[0].plot(range(S+1), T_seq, label='taxes', lw=2)
377377
axes[1].plot(range(S+2), B_seq, label='debt', color='green', lw=2)
378378
axes[0].set_ylabel(r'$T_t,G_t$')
379379
axes[1].set_ylabel(r'$B_t$')
@@ -410,29 +410,29 @@ Now we assume a permanent increase in government expenditures of $L$ in year 21
410410
Again we can study positive and negative cases
411411
412412
```{code-cell} ipython3
413-
# Positive permanent expenditure shift L = 0.5 when t >= 21
413+
# Positive temporary expenditure shift L = 0.5 when t >= 21
414414
G_seq_pos = np.concatenate(
415-
[np.ones(21), 1.5*np.ones(25), np.zeros(20)])
415+
[np.ones(21), 1.5*np.ones(25), np.ones(20)])
416416
417417
plot_ts(tax_model, B0, G_seq_pos)
418418
```
419419
420420
```{code-cell} ipython3
421-
# Negative permanent expenditure shift L = -0.5 when t >= 21
421+
# Negative temporary expenditure shift L = -0.5 when t >= 21
422422
G_seq_neg = np.concatenate(
423-
[np.ones(21), .5*np.ones(25), np.zeros(20)])
423+
[np.ones(21), .5*np.ones(25), np.ones(20)])
424424
425425
plot_ts(tax_model, B0, G_seq_neg)
426426
```
427427
428-
#### Experiment 3: delayed spending
428+
#### Experiment 3: delayed spending surge
429429
430430
Now we simulate a $G$ sequence in which government expenditures are zero for 46 years, and then rise to 1 for the last 20 years (perhaps due to demographic aging)
431431
432432
```{code-cell} ipython3
433433
# Delayed spending
434434
G_seq_late = np.concatenate(
435-
[np.zeros(46), np.ones(20)])
435+
[np.ones(46), 2*np.ones(20)])
436436
437437
plot_ts(tax_model, B0, G_seq_late)
438438
```
@@ -452,7 +452,7 @@ t_max = 46
452452
# Generate geometric G sequence
453453
geo_seq = λ ** np.arange(t_max) * G_0
454454
G_seq_geo = np.concatenate(
455-
[geo_seq, np.zeros(20)])
455+
[geo_seq, np.max(geo_seq)*np.ones(20)])
456456
457457
plot_ts(tax_model, B0, G_seq_geo)
458458
```

0 commit comments

Comments
 (0)