So consumption is strict fraction of disposable income - no $\alpha_0$ Government spending is no longer constant but increases with tax take
In [1]:
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
N = 200
G0 = 5
theta = 0.2
alpha = 0.95
C = np.zeros(N) # consumption
G = np.zeros(N) # government spending
Y = np.zeros(N) # income
Y_d = np.zeros(N) # disposable income
T = np.zeros(N) # tax revenue
H_h = np.zeros(N) # private savings
H_g = np.zeros(N) # government debt
for t in range(0, N):
# calculate consumer spending
C[t] = alpha*Y_d[t-1]
# calculate government spending
G[t] = G0 + T[t-1]
# calculate total income (consumer spending plus constant government spending)
Y[t] = G[t] + C[t]
# calculate the tax take
T[t] = theta * Y[t]
# calculate disposable income
Y_d[t] = Y[t] - T[t]
# calculate the change in private savings
H_h[t] = H_h[t-1] + (1-alpha)*Y_d[t-1]
# calculate the change in government debt
H_g[t] = H_g[t-1] + T[t]- G[t]
In [2]:
fig = plt.figure(figsize=(12, 8))
consumption_plot = fig.add_subplot(241, xlim=(0, N), ylim=(0, np.max(Y)))
consumption_plot.plot(range(N), C, lw=3)
consumption_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('consumption')
gov_plot = fig.add_subplot(242, xlim=(0, N), ylim=(0, np.max(Y)))
gov_plot.plot(range(N), G, lw=3)
gov_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government spending')
income_plot = fig.add_subplot(243, xlim=(0, N), ylim=(0, np.max(Y)))
income_plot.plot(range(N), Y, lw=3)
income_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('income')
savings_plot = fig.add_subplot(244, xlim=(0, N), ylim=(0, np.max(H_h)))
savings_plot.plot(range(N), H_h, lw=3)
savings_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('private savings')
gov_plot = fig.add_subplot(245, xlim=(0, N), ylim=(0, np.max(G)*1.5))
gov_plot.plot(range(N), G, lw=3)
gov_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government spending')
tax_plot = fig.add_subplot(246, xlim=(0, N), ylim=(0, np.max(G)*1.5))
tax_plot.plot(range(N), T, lw=3)
tax_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('tax revenue')
deficit_plot = fig.add_subplot(247, xlim=(0, N), ylim=(np.min(T-G)*1.5,0))
deficit_plot.plot(range(N), T-G, lw=3)
deficit_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government budget')
debt_plot = fig.add_subplot(248, xlim=(0, N), ylim=(np.min(H_g)*1.5,0))
debt_plot.plot(range(N), H_g, lw=3)
debt_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government debt')
# space subplots neatly
plt.tight_layout()
Points to note
In [61]:
Y[-1]
Out[61]:
In [62]:
G[-1]
Out[62]:
In [63]:
T[-1]
Out[63]:
In [67]:
In [ ]:
In [ ]:
Steady state equations
$$ \begin{array}{lcl} Y^* = C^* + G^* \hspace{1cm} & (8) \\ T^* = \theta Y^* \hspace{1cm} & (9) \\ Y_{d}^* = Y^* - T^* = (1 - \theta) Y^* \hspace{1cm} & (10) \\ C^* = \alpha Y_{d}^* \hspace{1cm} & (11) \\ G^* = G_0 + T^* \hspace{1cm} & (12) \\ \end{array} $$Solve for $Y^*$ in terms of exogeneous parameters
$$Y^* = C^* + G^*$$$$Y^* = \alpha Y_{d}^* + G_0 + T^*$$$$Y^* = \alpha (1 - \theta) Y^* + G_0 + \theta Y^*$$$$1 = \alpha (1 - \theta) + \frac {G_0}{Y^*} + \theta$$$$\frac {G_0}{Y^*} = 1 - \alpha (1 - \theta) - \theta$$$$ Y^* = \frac {G_0}{1 - \alpha (1 - \theta) - \theta}$$$$ Y^* = \frac {G_0}{1 - \alpha + \alpha \theta - \theta}$$$$ Y^* = \frac {G_0}{(1 - \alpha)(1 - \theta)}$$Same as yours!
Change of Y with $\theta$
$$ Y^* = \frac {G_0}{(1 - \alpha)(1 - \theta)}$$$$ Y^* = \frac {G_0}{(1 - \alpha)}(1 - \theta)^{-1}$$let $u(\theta) = 1 - \theta$
then
$$ Y^* = \frac {G_0}{(1 - \alpha)}u^{-1}$$$$\frac {dY}{d \theta} = \frac {dY}{du} \frac {du}{d \theta}$$$$\frac {dY}{du} = -\frac {G_0}{(1 - \alpha)}u^{-2}$$$$\frac {du}{d \theta} = -1$$$$\frac {dY}{d \theta} = -1 \times \frac {G_0}{(1 - \alpha)}u^{-2} \times -1 $$$$\frac {dY}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)^{2}} $$Comsumption...
$$$$$$C^* = \alpha (1 - \theta) Y^*$$$$C^* = \frac {\alpha (1 - \theta) G_0}{(1 - \alpha)(1 - \theta)}$$$$C^* = \frac {\alpha G_0}{(1 - \alpha)}$$$$\frac {dC^*}{d \theta} = 0$$Disposable income...
$$$$$$Y_d^* = (1 - \theta) Y^*$$$$Y_d^* = \frac {(1 - \theta) G_0}{(1 - \alpha)(1 - \theta)}$$$$Y_d^* = \frac {G_0}{(1 - \alpha)}$$$$\frac {dY_d^*}{d \theta} = 0$$Government spending...
$$$$$$G^* = G_0 + T^* $$$$G^* = G_0 + \theta Y^* $$$$G^* = G_0 + \theta \frac {G_0}{(1 - \alpha)(1 - \theta)}$$Use product rule
$$f(\theta) = \theta$$$$\frac {df}{d \theta} = 1$$$$g(\theta) = \frac {G_0}{(1 - \alpha)(1 - \theta)}$$$$\frac {dg}{d \theta} =\frac {G_0}{(1 - \alpha)(1 - \theta)^{2}} $$$$\frac {dG^*}{d \theta} = f \frac{dg}{d \theta} + \frac {df}{d \theta}g$$$$\frac {dG^*}{d \theta} = \theta \frac {G_0}{(1 - \alpha)(1 - \theta)^{2}} + 1 \times \frac {G_0}{(1 - \alpha)(1 - \theta)}$$$$\frac {dG^*}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)}\Big (\frac {\theta}{1 - \theta} + 1 \Big)$$but
$$\frac {dY}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)^{2}} $$$$\frac {dY}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)} \Big (\frac {1}{1 - \theta} \Big) $$since
$$\Big (\frac {1}{1 - \theta} \Big) = \Big (\frac {\theta}{1 - \theta} + 1 \Big)$$then
$$\frac {dG^*}{d \theta} = \frac {dY}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)^{2}}$$
In [235]:
(G0/((1-alpha)*(1-0.2)))*((0.2/(1-0.2))+1)*0.05
Out[235]:
In [255]:
val = 0.5
print(1/(1-val))
print((val/(1-val))+1)
Savings rate...
$$\Delta H_h = (1 - \alpha) Y_{d} $$$$\Delta H_h = (1 - \alpha) (1 - \theta) Y^* $$$$\Delta H_h = \frac {(1 - \alpha) (1 - \theta) G_0}{(1 - \alpha)(1 - \theta)} $$$$\Delta H_h = G_0 $$
In [280]:
((G0/((1.0-alpha)*(1.0-0.25)))-(G0/((1.0-alpha)*(1.0-0.2))))
Out[280]:
In [279]:
(G0/((1.0-alpha)*(1.0-0.2)**2))*0.05
Out[279]:
In [164]:
alpha*(G0/(1-alpha))
Out[164]:
In [206]:
(1-alpha)*(1-0.25)*Y[-1]
Out[206]:
Now try increasing the tax rate halfway through...
In [3]:
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
N = 500
G0 = 5
alpha = 0.95
C = np.zeros(N) # consumption
G = np.zeros(N) # government spending
Y = np.zeros(N) # income
Y_d = np.zeros(N) # disposable income
T = np.zeros(N) # tax revenue
H_h = np.zeros(N) # private savings
H_g = np.zeros(N) # government debt
theta = np.zeros(N) # tax rate
theta[0:250] = 0.2
theta[250:] = 0.25
for t in range(0, N):
# calculate consumer spending
C[t] = alpha*Y_d[t-1]
# calculate government spending
G[t] = G0 + T[t-1]
# calculate total income (consumer spending plus constant government spending)
Y[t] = G[t] + C[t]
# calculate the tax take
T[t] = theta[t] * Y[t]
# calculate disposable income
Y_d[t] = Y[t] - T[t]
# calculate the change in private savings
H_h[t] = H_h[t-1] + (1-alpha)*Y_d[t-1]
# calculate the change in government debt
H_g[t] = H_g[t-1] + T[t]- G[t]
In [4]:
fig = plt.figure(figsize=(12, 8))
consumption_plot = fig.add_subplot(241, xlim=(0, N), ylim=(0, np.max(Y)))
consumption_plot.plot(range(N), C, lw=3)
consumption_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('consumption')
gov_plot = fig.add_subplot(242, xlim=(0, N), ylim=(0, np.max(Y)))
gov_plot.plot(range(N), G, lw=3)
gov_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government spending')
income_plot = fig.add_subplot(243, xlim=(0, N), ylim=(0, np.max(Y)))
income_plot.plot(range(N), Y, lw=3)
income_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('income')
savings_plot = fig.add_subplot(244, xlim=(0, N), ylim=(0, np.max(H_h)))
savings_plot.plot(range(N), H_h, lw=3)
savings_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('private savings')
gov_plot = fig.add_subplot(245, xlim=(0, N), ylim=(0, np.max(G)*1.5))
gov_plot.plot(range(N), G, lw=3)
gov_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government spending')
tax_plot = fig.add_subplot(246, xlim=(0, N), ylim=(0, np.max(G)*1.5))
tax_plot.plot(range(N), T, lw=3)
tax_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('tax revenue')
deficit_plot = fig.add_subplot(247, xlim=(0, N), ylim=(np.min(T-G)*1.5,0))
deficit_plot.plot(range(N), T-G, lw=3)
deficit_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government budget')
debt_plot = fig.add_subplot(248, xlim=(0, N), ylim=(np.min(H_g)*1.5,0))
debt_plot.plot(range(N), H_g, lw=3)
debt_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government debt')
# space subplots neatly
plt.tight_layout()
In [268]:
Y[-1]
Out[268]:
In [269]:
G[-1]
Out[269]:
In [270]:
T[-1]
Out[270]:
In [271]:
print(C[249])
print(C[250])
print(C[251])
print(C[252])
print(C[-1])
In [272]:
print(G[249])
print(G[250])
print(G[251])
print(G[252])
print(G[-1])
In [273]:
print(Y[249])
print(Y[250])
print(Y[251])
print(Y[252])
print(Y[-1])
print(Y[-1]-Y[249])
In [274]:
print(H_h[249])
print(H_h[250])
print(H_h[251])
print(H_h[252])
print(H_h[-1])
print(H_h[-1]-H_h[-2])
Note, the income, government spend, and tax take all increase by the same amount. This is consistent with what we said about the balanced budget model - increasing Y, G and T by the same amount implies a change in tax rate.
Is the intuitive explanation as simple as this: saving happens after tax. So when the government taxes at a greater rate, that leaves less to be spent but also less to be saved, and when the government spends the same amount in the next time step, it does not take off the corresponding saved fraction, so more ends up being spent in total. If that is the case, then it is the case that the increase in income arises because the government is spending money which would otherwise be saved. It's not resolved in this model but in reality that would disproportionately come from richer folk probably, since $\alpha$ would be greater for them.
In [ ]: