Skip to content

Commit 0326295

Browse files
Tom's Jan30 edits of tax-smooth lecture
1 parent 3d5acfc commit 0326295

File tree

1 file changed

+31
-144
lines changed

1 file changed

+31
-144
lines changed

lectures/tax_smooth.md

Lines changed: 31 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,26 @@ kernelspec:
1616
## Overview
1717

1818

19-
In this lecture, we'll study a famous model of optimal tax policy that Robert Barro {cite}`Barro1979` proposed to explain why governments might want to use debt to smooth tax rates over time rather than balancing their budgets period by period.
19+
This is a sister lecture to our lecture on {doc}`consumption-smoothing <cons_smooth>`.
2020

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

23-
This lecture is a sister lecture to our previous lecture on {doc}`consumption-smoothing <cons_smooth>`.
22+
By renaming variables, we obtain a a version of a model "tax-smoothing model" that Robert Barro {cite}`Barro1979` used to explain why governments sometimes choose not to balance their budgets every period but instead use issue debt to smooth tax rates over time.
23+
24+
The government chooses a tax collection path that minimizes the present value of its costs of raising revenue.
25+
26+
27+
The government minimize those costs by varying tax collections little over time.
28+
29+
30+
The present value of government expenditures is at the core of the tax-smoothing model,
31+
so we'll again use formulas presented in {doc}`present value formulas<pv>`.
32+
33+
We'll use the matrix multiplication and matrix inversion tools that we used in {doc}`present value formulas <pv>`.
2434

25-
We will see how "reinterpretating" the paramters in the consumption-smoothing model can lead to the tax-smoothing model.
2635

27-
Formulas presented in {doc}`present value formulas<pv>` are again at the core of the tax-smoothing model because we shall use them to compute the present value of government expenditures.
2836

29-
The government's optimization problem is to choose a tax collection path that minimizes the present value of the costs of raising revenue.
3037

31-
The key idea that inspired Barro was that temporary government spending surges (like wars or natural disasters) create a stream of expenditure requirements that could be optimally financed by issuing debt and raising taxes *gradually* over time.
3238

33-
This approach allows the government to minimize the distortionary costs of taxation by keeping tax rates relatively stable.
3439

3540
## Analysis
3641

@@ -42,15 +47,17 @@ import matplotlib.pyplot as plt
4247
from collections import namedtuple
4348
```
4449

45-
The model describes a government that operates from time $t=0, 1, \ldots, S$, faces a stream of expenditures $\{G_t\}_{t=0}^S$ and chooses a stream of tax collections $\{T_t\}_{t=0}^S$.
50+
A government exists at times $t=0, 1, \ldots, S$ and faces an exogenous stream of expenditures $\{G_t\}_{t=0}^S$.
51+
52+
It chooses chooses a stream of tax collections $\{T_t\}_{t=0}^S$.
4653

47-
The government expenditure stream is exogenous spending requirements that the government must finance.
54+
The model takes a government expenditure stream as an "exogenous" input that is somehow determined outside the model.
4855

49-
Analogous to {doc}`consumption-smoothing <cons_smooth>`, the model takes a government expenditure stream as an input, regarding it as "exogenous" in the sense of not being determined by the model.
56+
The government faces a gross interest rate of $R >1$ that is constant over time.
5057

51-
The government faces a gross interest rate of $R >1$ that is constant over time, at which it is free to borrow or lend, subject to limits that we'll describe below.
58+
The government can borrow or lend at interest rate $R$, subject to some limits on the amount of debt that it can issue that we'll describe below.
5259

53-
To set up the model, let
60+
Let
5461

5562
* $S \geq 2$ be a positive integer that constitutes a time-horizon.
5663
* $G = \{G_t\}_{t=0}^S$ be a sequence of government expenditures.
@@ -59,19 +66,19 @@ To set up the model, let
5966
* $R \geq 1$ be a fixed gross one period interest rate.
6067
* $\beta \in (0,1)$ be a fixed discount factor.
6168
* $B_0$ be a given initial level of government debt
62-
* $B_{S+1} \geq 0$ be a terminal condition on final government debt.
69+
* $B_{S+1} \geq 0$ be a terminal condition.
6370

6471
The sequence of government debt $B$ is to be determined by the model.
6572

6673
We require it to satisfy two **boundary conditions**:
6774
* it must equal an exogenous value $B_0$ at time $0$
6875
* it must equal or exceed an exogenous value $B_{S+1}$ at time $S+1$.
6976

70-
The **terminal condition** $B_{S+1} \geq 0$ is a constraint that prevents the government from running Ponzi schemes by requiring that it not end with negative assets.
77+
The **terminal condition** $B_{S+1} \geq 0$ requires that it not end with negative assets.
7178

72-
(This no-Ponzi condition ensures that the government must ultimately pay off its debts rather than rolling them over indefinitely.)
79+
(This no-Ponzi condition ensures that the government ultimately pays off its debts -- it can't simply roll them over indefinitely.)
7380

74-
The government faces a sequence of budget constraints that constrains sequences $(G, T, B)$
81+
The government faces a sequence of budget constraints that constrain sequences $(G, T, B)$
7582

7683
$$
7784
B_{t+1} = R (B_t + G_t - T_t), \quad t =0, 1, \ldots S
@@ -81,7 +88,7 @@ Equations {eq}`eq:B_t` constitute $S+1$ such budget constraints, one for each $t
8188
8289
Given a sequence $G$ of government expenditures, a large set of pairs $(B, T)$ of (government debt, tax collections) sequences satisfy the sequence of budget constraints {eq}`eq:B_t`.
8390
84-
Our model has the following logical flow:
91+
The model follows the following logical flow:
8592
8693
* start with an exogenous government expenditure sequence $G$, an initial government debt $B_0$, and
8794
a candidate tax collection path $T$.
@@ -96,14 +103,13 @@ Our model has the following logical flow:
96103
97104
Below, we'll describe how to execute these steps using linear algebra -- matrix inversion and multiplication.
98105
99-
The above procedure seems like a sensible way to find "budget-feasible" tax paths $T$, i.e., paths that are consistent
100-
with the exogenous government expenditure stream $G$, the initial debt level $B_0$, and the terminal debt level $B_{S+1}$.
106+
The above procedure seems like a sensible way to find "budget-feasible" tax paths $T$, i.e., paths that are consistent with the exogenous government expenditure stream $G$, the initial debt level $B_0$, and the terminal debt level $B_{S+1}$.
101107
102108
In general, there are **many** budget feasible tax paths $T$.
103109
104110
Among all budget-feasible tax paths, which one should a government choose?
105111
106-
To answer this question, we shall eventually evaluate alternative budget feasible tax paths $T$ using the following cost functional:
112+
To answer this question, we assess alternative budget feasible tax paths $T$ using the following cost functional:
107113
108114
```{math}
109115
:label: cost
@@ -144,7 +150,7 @@ We create a Python ``namedtuple`` to store these parameters with default values.
144150
TaxSmoothing = namedtuple("TaxSmoothing",
145151
["R", "g1", "g2", "β_seq", "S"])
146152
147-
def create_tax_smoothing_model(R=1.05, g1=1, g2=1/2, S=65):
153+
def create_tax_smoothing_model(R=1.01, g1=1, g2=1/2, S=65):
148154
"""
149155
Creates an instance of the tax smoothing model.
150156
"""
@@ -200,7 +206,7 @@ $$ (eq:taxsmoothing)
200206
201207
Equation {eq}`eq:taxsmoothing` is the tax-smoothing model in a nutshell.
202208
203-
## Mechanics of tax-smoothing model
209+
## Mechanics of tax-smoothing
204210
205211
As promised, we'll provide step-by-step instructions on how to use linear algebra, readily implemented in Python, to compute all objects in play in the tax-smoothing model.
206212
@@ -294,10 +300,10 @@ The drop in government expenditures could reflect a change in spending requireme
294300
295301
```{code-cell} ipython3
296302
# Initial debt
297-
B0 = 2 # initial government debt
303+
B0 = 0 # initial government debt
298304
299305
# Government expenditure process
300-
G_seq = np.concatenate([np.ones(46), np.zeros(20)])
306+
G_seq = np.concatenate([np.ones(46), 5*np.ones(5),np.ones(15)])
301307
tax_model = create_tax_smoothing_model()
302308
T_seq, B_seq, h0 = compute_optimal(tax_model, B0, G_seq)
303309
@@ -655,122 +661,3 @@ the original Keynesian consumption function presented in {doc}`geometric series
655661
Friedman's work opened the door to an enlightening literature on the aggregate consumption function and associated government expenditure multipliers that
656662
remains active today. -->
657663
658-
659-
## Appendix: solving difference equations with linear algebra
660-
661-
In the preceding sections we have used linear algebra to solve a tax-smoothing model.
662-
663-
The same tools from linear algebra -- matrix multiplication and matrix inversion -- can be used to study many other dynamic models.
664-
665-
We'll conclude this lecture by giving a couple of examples.
666-
667-
We'll describe a useful way of representing and "solving" linear difference equations.
668-
669-
To generate some $G$ vectors, we'll just write down a linear difference equation
670-
with appropriate initial conditions and then use linear algebra to solve it.
671-
672-
### First-order difference equation
673-
674-
We'll start with a first-order linear difference equation for $\{G_t\}_{t=0}^S$:
675-
676-
$$
677-
G_{t} = \lambda G_{t-1}, \quad t = 1, 2, \ldots, S
678-
$$
679-
680-
where $G_0$ is a given initial government expenditure.
681-
682-
We can cast this set of $S$ equations as a single matrix equation
683-
684-
$$
685-
\begin{bmatrix}
686-
1 & 0 & 0 & \cdots & 0 & 0 \cr
687-
-\lambda & 1 & 0 & \cdots & 0 & 0 \cr
688-
0 & -\lambda & 1 & \cdots & 0 & 0 \cr
689-
\vdots & \vdots & \vdots & \cdots & \vdots & \vdots \cr
690-
0 & 0 & 0 & \cdots & -\lambda & 1
691-
\end{bmatrix}
692-
\begin{bmatrix}
693-
G_1 \cr G_2 \cr G_3 \cr \vdots \cr G_S
694-
\end{bmatrix}
695-
=
696-
\begin{bmatrix}
697-
\lambda G_0 \cr 0 \cr 0 \cr \vdots \cr 0
698-
\end{bmatrix}
699-
$$ (eq:first_order_lin_diff_tax)
700-
701-
Multiplying both sides of {eq}`eq:first_order_lin_diff_tax` by the inverse of the matrix on the left provides the solution
702-
703-
```{math}
704-
:label: eq:fst_ord_inverse_tax
705-
\begin{bmatrix}
706-
G_1 \cr G_2 \cr G_3 \cr \vdots \cr G_S
707-
\end{bmatrix}
708-
=
709-
\begin{bmatrix}
710-
1 & 0 & 0 & \cdots & 0 & 0 \cr
711-
\lambda & 1 & 0 & \cdots & 0 & 0 \cr
712-
\lambda^2 & \lambda & 1 & \cdots & 0 & 0 \cr
713-
\vdots & \vdots & \vdots & \cdots & \vdots & \vdots \cr
714-
\lambda^{S-1} & \lambda^{S-2} & \lambda^{S-3} & \cdots & \lambda & 1
715-
\end{bmatrix}
716-
\begin{bmatrix}
717-
\lambda G_0 \cr 0 \cr 0 \cr \vdots \cr 0
718-
\end{bmatrix}
719-
```
720-
721-
```{exercise}
722-
:label: taxsmooth_ex1
723-
724-
To get {eq}`eq:fst_ord_inverse_tax`, we multiplied both sides of {eq}`eq:first_order_lin_diff_tax` by the inverse of the matrix $A$. Please confirm that
725-
726-
$$
727-
\begin{bmatrix}
728-
1 & 0 & 0 & \cdots & 0 & 0 \cr
729-
\lambda & 1 & 0 & \cdots & 0 & 0 \cr
730-
\lambda^2 & \lambda & 1 & \cdots & 0 & 0 \cr
731-
\vdots & \vdots & \vdots & \cdots & \vdots & \vdots \cr
732-
\lambda^{S-1} & \lambda^{S-2} & \lambda^{S-3} & \cdots & \lambda & 1
733-
\end{bmatrix}
734-
$$
735-
736-
is the inverse of $A$ and check that $A A^{-1} = I$
737-
```
738-
739-
### Second-order difference equation
740-
741-
A second-order linear difference equation for $\{G_t\}_{t=0}^S$ is
742-
743-
$$
744-
G_{t} = \lambda_1 G_{t-1} + \lambda_2 G_{t-2}, \quad t = 1, 2, \ldots, S
745-
$$
746-
747-
where now $G_0$ and $G_{-1}$ are two given initial expenditure levels determined outside the model.
748-
749-
As we did with the first-order difference equation, we can cast this set of $S$ equations as a single matrix equation
750-
751-
$$
752-
\begin{bmatrix}
753-
1 & 0 & 0 & \cdots & 0 & 0 & 0 \cr
754-
-\lambda_1 & 1 & 0 & \cdots & 0 & 0 & 0 \cr
755-
-\lambda_2 & -\lambda_1 & 1 & \cdots & 0 & 0 & 0 \cr
756-
\vdots & \vdots & \vdots & \cdots & \vdots & \vdots \cr
757-
0 & 0 & 0 & \cdots & -\lambda_2 & -\lambda_1 & 1
758-
\end{bmatrix}
759-
\begin{bmatrix}
760-
G_1 \cr G_2 \cr G_3 \cr \vdots \cr G_S
761-
\end{bmatrix}
762-
=
763-
\begin{bmatrix}
764-
\lambda_1 G_0 + \lambda_2 G_{-1} \cr \lambda_2 G_0 \cr 0 \cr \vdots \cr 0
765-
\end{bmatrix}
766-
$$
767-
768-
Multiplying both sides by inverse of the matrix on the left again provides the solution.
769-
770-
```{exercise}
771-
:label: taxsmooth_ex2
772-
773-
As an exercise, we ask you to represent and solve a **third-order linear difference equation**.
774-
775-
How many initial conditions must you specify?
776-
```

0 commit comments

Comments
 (0)