10. Geometric Series for Elementary Economics#

10.1. Overview#

The lecture describes important ideas in economics that use the mathematics of geometric series.

Among these are

  • the Keynesian multiplier

  • the money multiplier that prevails in fractional reserve banking systems

  • interest rates and present values of streams of payouts from assets

(As we shall see below, the term multiplier comes down to meaning sum of a convergent geometric series)

These and other applications prove the truth of the wise crack that

“In economics, a little knowledge of geometric series goes a long way.”

Below we’ll use the following imports:

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (11, 5)  #set default figure size
import numpy as np
import sympy as sym
from sympy import init_printing
from matplotlib import cm

10.2. Key formulas#

To start, let cc be a real number that lies strictly between 1-1 and 11.

  • We often write this as c(1,1)c \in (-1,1).

  • Here (1,1)(-1,1) denotes the collection of all real numbers that are strictly less than 11 and strictly greater than 1-1.

  • The symbol \in means in or belongs to the set after the symbol.

We want to evaluate geometric series of two types – infinite and finite.

10.2.1. Infinite geometric series#

The first type of geometric that interests us is the infinite series

1+c+c2+c3+ 1 + c + c^2 + c^3 + \cdots

Where \cdots means that the series continues without end.

The key formula is

(10.1)#1+c+c2+c3+=11c1 + c + c^2 + c^3 + \cdots = \frac{1}{1 -c }

To prove key formula (10.1), multiply both sides by (1c)(1-c) and verify that if c(1,1)c \in (-1,1), then the outcome is the equation 1=11 = 1.

10.2.2. Finite geometric series#

The second series that interests us is the finite geometric series

1+c+c2+c3++cT 1 + c + c^2 + c^3 + \cdots + c^T

where TT is a positive integer.

The key formula here is

1+c+c2+c3++cT=1cT+11c 1 + c + c^2 + c^3 + \cdots + c^T = \frac{1 - c^{T+1}}{1-c}

Remark 10.1

The above formula works for any value of the scalar cc. We don’t have to restrict cc to be in the set (1,1)(-1,1).

We now move on to describe some famous economic applications of geometric series.

10.3. Example: The Money Multiplier in Fractional Reserve Banking#

In a fractional reserve banking system, banks hold only a fraction r(0,1)r \in (0,1) of cash behind each deposit receipt that they issue

  • In recent times

    • cash consists of pieces of paper issued by the government and called dollars or pounds or \ldots

    • a deposit is a balance in a checking or savings account that entitles the owner to ask the bank for immediate payment in cash

  • When the UK and France and the US were on either a gold or silver standard (before 1914, for example)

    • cash was a gold or silver coin

    • a deposit receipt was a bank note that the bank promised to convert into gold or silver on demand; (sometimes it was also a checking or savings account balance)

Economists and financiers often define the supply of money as an economy-wide sum of cash plus deposits.

In a fractional reserve banking system (one in which the reserve ratio rr satisfies 0<r<10 < r < 1), banks create money by issuing deposits backed by fractional reserves plus loans that they make to their customers.

A geometric series is a key tool for understanding how banks create money (i.e., deposits) in a fractional reserve system.

The geometric series formula (10.1) is at the heart of the classic model of the money creation process – one that leads us to the celebrated money multiplier.

10.3.1. A simple model#

There is a set of banks named i=0,1,2,i = 0, 1, 2, \ldots.

Bank ii’s loans LiL_i, deposits DiD_i, and reserves RiR_i must satisfy the balance sheet equation (because balance sheets balance):

(10.2)#Li+Ri=DiL_i + R_i = D_i

The left side of the above equation is the sum of the bank’s assets, namely, the loans LiL_i it has outstanding plus its reserves of cash RiR_i.

The right side records bank ii’s liabilities, namely, the deposits DiD_i held by its depositors; these are IOU’s from the bank to its depositors in the form of either checking accounts or savings accounts (or before 1914, bank notes issued by a bank stating promises to redeem notes for gold or silver on demand).

Each bank ii sets its reserves to satisfy the equation

(10.3)#Ri=rDiR_i = r D_i

where r(0,1)r \in (0,1) is its reserve-deposit ratio or reserve ratio for short

  • the reserve ratio is either set by a government or chosen by banks for precautionary reasons

Next we add a theory stating that bank i+1i+1’s deposits depend entirely on loans made by bank ii, namely

(10.4)#Di+1=LiD_{i+1} = L_i

Thus, we can think of the banks as being arranged along a line with loans from bank ii being immediately deposited in i+1i+1

  • in this way, the debtors to bank ii become creditors of bank i+1i+1

Finally, we add an initial condition about an exogenous level of bank 00’s deposits

D0  is given exogenously D_0 \ \text{ is given exogenously}

We can think of D0D_0 as being the amount of cash that a first depositor put into the first bank in the system, bank number i=0i=0.

Now we do a little algebra.

Combining equations (10.2) and (10.3) tells us that

(10.5)#Li=(1r)DiL_i = (1-r) D_i

This states that bank ii loans a fraction (1r)(1-r) of its deposits and keeps a fraction rr as cash reserves.

Combining equation (10.5) with equation (10.4) tells us that

Di+1=(1r)Di  for i0 D_{i+1} = (1-r) D_i \ \text{ for } i \geq 0

which implies that

(10.6)#Di=(1r)iD0  for i0D_i = (1 - r)^i D_0 \ \text{ for } i \geq 0

Equation (10.6) expresses DiD_i as the ii th term in the product of D0D_0 and the geometric series

1,(1r),(1r)2, 1, (1-r), (1-r)^2, \cdots

Therefore, the sum of all deposits in our banking system i=0,1,2,i=0, 1, 2, \ldots is

(10.7)#i=0(1r)iD0=D01(1r)=D0r\sum_{i=0}^\infty (1-r)^i D_0 = \frac{D_0}{1 - (1-r)} = \frac{D_0}{r}

10.3.2. Money multiplier#

The money multiplier is a number that tells the multiplicative factor by which an exogenous injection of cash into bank 00 leads to an increase in the total deposits in the banking system.

Equation (10.7) asserts that the money multiplier is 1r\frac{1}{r}

  • An initial deposit of cash of D0D_0 in bank 00 leads the banking system to create total deposits of D0r\frac{D_0}{r}.

  • The initial deposit D0D_0 is held as reserves, distributed throughout the banking system according to D0=i=0RiD_0 = \sum_{i=0}^\infty R_i.

10.4. Example: The Keynesian Multiplier#

The famous economist John Maynard Keynes and his followers created a simple model intended to determine national income yy in circumstances in which

  • there are substantial unemployed resources, in particular excess supply of labor and capital

  • prices and interest rates fail to adjust to make aggregate supply equal demand (e.g., prices and interest rates are frozen)

  • national income is entirely determined by aggregate demand

10.4.1. Static version#

An elementary Keynesian model of national income determination consists of three equations that describe aggregate demand for yy and its components.

The first equation is a national income identity asserting that consumption cc plus investment ii equals national income yy:

c+i=y c+ i = y

The second equation is a Keynesian consumption function asserting that people consume a fraction b(0,1)b \in (0,1) of their income:

c=by c = b y

The fraction b(0,1)b \in (0,1) is called the marginal propensity to consume.

The fraction 1b(0,1)1-b \in (0,1) is called the marginal propensity to save.

The third equation simply states that investment is exogenous at level ii.

  • exogenous means determined outside this model.

Substituting the second equation into the first gives (1b)y=i(1-b) y = i.

Solving this equation for yy gives

y=11bi y = \frac{1}{1-b} i

The quantity 11b\frac{1}{1-b} is called the investment multiplier or simply the multiplier.

Applying the formula for the sum of an infinite geometric series, we can write the above equation as

y=it=0bt y = i \sum_{t=0}^\infty b^t

where tt is a nonnegative integer.

So we arrive at the following equivalent expressions for the multiplier:

11b=t=0bt \frac{1}{1-b} = \sum_{t=0}^\infty b^t

The expression t=0bt\sum_{t=0}^\infty b^t motivates an interpretation of the multiplier as the outcome of a dynamic process that we describe next.

10.4.2. Dynamic version#

We arrive at a dynamic version by interpreting the nonnegative integer tt as indexing time and changing our specification of the consumption function to take time into account

  • we add a one-period lag in how income affects consumption

We let ctc_t be consumption at time tt and iti_t be investment at time tt.

We modify our consumption function to assume the form

ct=byt1 c_t = b y_{t-1}

so that bb is the marginal propensity to consume (now) out of last period’s income.

We begin with an initial condition stating that

y1=0 y_{-1} = 0

We also assume that

it=i  for all t0 i_t = i \ \ \textrm {for all } t \geq 0

so that investment is constant over time.

It follows that

y0=i+c0=i+by1=i y_0 = i + c_0 = i + b y_{-1} = i

and

y1=c1+i=by0+i=(1+b)i y_1 = c_1 + i = b y_0 + i = (1 + b) i

and

y2=c2+i=by1+i=(1+b+b2)i y_2 = c_2 + i = b y_1 + i = (1 + b + b^2) i

and more generally

yt=byt1+i=(1+b+b2++bt)i y_t = b y_{t-1} + i = (1+ b + b^2 + \cdots + b^t) i

or

yt=1bt+11bi y_t = \frac{1-b^{t+1}}{1 -b } i

Evidently, as t+t \rightarrow + \infty,

yt11bi y_t \rightarrow \frac{1}{1-b} i

Remark 1: The above formula is often applied to assert that an exogenous increase in investment of Δi\Delta i at time 00 ignites a dynamic process of increases in national income by successive amounts

Δi,(1+b)Δi,(1+b+b2)Δi, \Delta i, (1 + b )\Delta i, (1+b + b^2) \Delta i , \cdots

at times 0,1,2,0, 1, 2, \ldots.

Remark 2 Let gtg_t be an exogenous sequence of government expenditures.

If we generalize the model so that the national income identity becomes

ct+it+gt=yt c_t + i_t + g_t = y_t

then a version of the preceding argument shows that the government expenditures multiplier is also 11b\frac{1}{1-b}, so that a permanent increase in government expenditures ultimately leads to an increase in national income equal to the multiplier times the increase in government expenditures.

10.5. Example: Interest Rates and Present Values#

We can apply our formula for geometric series to study how interest rates affect values of streams of dollar payments that extend over time.

We work in discrete time and assume that t=0,1,2,t = 0, 1, 2, \ldots indexes time.

We let r(0,1)r \in (0,1) be a one-period net nominal interest rate

  • if the nominal interest rate is 55 percent, then r=.05r= .05

A one-period gross nominal interest rate RR is defined as

R=1+r(1,2) R = 1 + r \in (1, 2)
  • if r=.05r=.05, then R=1.05R = 1.05

Remark: The gross nominal interest rate RR is an exchange rate or relative price of dollars at between times tt and t+1t+1. The units of RR are dollars at time t+1t+1 per dollar at time tt.

When people borrow and lend, they trade dollars now for dollars later or dollars later for dollars now.

The price at which these exchanges occur is the gross nominal interest rate.

  • If I sell xx dollars to you today, you pay me RxR x dollars tomorrow.

  • This means that you borrowed xx dollars for me at a gross interest rate RR and a net interest rate rr.

We assume that the net nominal interest rate rr is fixed over time, so that RR is the gross nominal interest rate at times t=0,1,2,t=0, 1, 2, \ldots.

Two important geometric sequences are

(10.8)#1,R,R2,1, R, R^2, \cdots

and

(10.9)#1,R1,R2,1, R^{-1}, R^{-2}, \cdots

Sequence (10.8) tells us how dollar values of an investment accumulate through time.

Sequence (10.9) tells us how to discount future dollars to get their values in terms of today’s dollars.

10.5.1. Accumulation#

Geometric sequence (10.8) tells us how one dollar invested and re-invested in a project with gross one period nominal rate of return accumulates

  • here we assume that net interest payments are reinvested in the project

  • thus, 11 dollar invested at time 00 pays interest rr dollars after one period, so we have r+1=Rr+1 = R dollars at time11

  • at time 11 we reinvest 1+r=R1+r =R dollars and receive interest of rRr R dollars at time 22 plus the principal RR dollars, so we receive rR+R=(1+r)R=R2r R + R = (1+r)R = R^2 dollars at the end of period 22

  • and so on

Evidently, if we invest xx dollars at time 00 and reinvest the proceeds, then the sequence

x,xR,xR2, x , xR , x R^2, \cdots

tells how our account accumulates at dates t=0,1,2,t=0, 1, 2, \ldots.

10.5.2. Discounting#

Geometric sequence (10.9) tells us how much future dollars are worth in terms of today’s dollars.

Remember that the units of RR are dollars at t+1t+1 per dollar at tt.

It follows that

  • the units of R1R^{-1} are dollars at tt per dollar at t+1t+1

  • the units of R2R^{-2} are dollars at tt per dollar at t+2t+2

  • and so on; the units of RjR^{-j} are dollars at tt per dollar at t+jt+j

So if someone has a claim on xx dollars at time t+jt+j, it is worth xRjx R^{-j} dollars at time tt (e.g., today).

10.5.3. Application to asset pricing#

A lease requires a payments stream of xtx_t dollars at times t=0,1,2,t = 0, 1, 2, \ldots where

xt=Gtx0 x_t = G^t x_0

where G=(1+g)G = (1+g) and g(0,1)g \in (0,1).

Thus, lease payments increase at gg percent per period.

For a reason soon to be revealed, we assume that G<RG < R.

The present value of the lease is

p0=x0+x1/R+x2/(R2)+=x0(1+GR1+G2R2+)=x011GR1 \begin{aligned} p_0 & = x_0 + x_1/R + x_2/(R^2) + \cdots \\ & = x_0 (1 + G R^{-1} + G^2 R^{-2} + \cdots ) \\ & = x_0 \frac{1}{1 - G R^{-1}} \end{aligned}

where the last line uses the formula for an infinite geometric series.

Recall that R=1+rR = 1+r and G=1+gG = 1+g and that R>GR > G and r>gr > g and that rr and gg are typically small numbers, e.g., .05 or .03.

Use the Taylor series of 11+r\frac{1}{1+r} about r=0r=0, namely,

11+r=1r+r2r3+ \frac{1}{1+r} = 1 - r + r^2 - r^3 + \cdots

and the fact that rr is small to approximate 11+r1r\frac{1}{1+r} \approx 1 - r.

Use this approximation to write p0p_0 as

p0=x011GR1=x011(1+g)(1r)=x011(1+grrg)x01rg \begin{aligned} p_0 &= x_0 \frac{1}{1 - G R^{-1}} \\ &= x_0 \frac{1}{1 - (1+g) (1-r) } \\ &= x_0 \frac{1}{1 - (1+g - r - rg)} \\ & \approx x_0 \frac{1}{r -g } \end{aligned}

where the last step uses the approximation rg0r g \approx 0.

The approximation

p0=x0rg p_0 = \frac{x_0 }{r -g }

is known as the Gordon formula for the present value or current price of an infinite payment stream x0Gtx_0 G^t when the nominal one-period interest rate is rr and when r>gr > g.

We can also extend the asset pricing formula so that it applies to finite leases.

Let the payment stream on the lease now be xtx_t for t=1,2,,Tt= 1,2, \dots,T, where again

xt=Gtx0 x_t = G^t x_0

The present value of this lease is:

p0=x0+x1/R++xT/RT=x0(1+GR1++GTRT)=x0(1GT+1R(T+1))1GR1 \begin{aligned} \begin{split}p_0&=x_0 + x_1/R + \dots +x_T/R^T \\ &= x_0(1+GR^{-1}+\dots +G^{T}R^{-T}) \\ &= \frac{x_0(1-G^{T+1}R^{-(T+1)})}{1-GR^{-1}} \end{split}\end{aligned}

Applying the Taylor series to R(T+1)R^{-(T+1)} about r=0r=0 we get:

1(1+r)T+1=1r(T+1)+12r2(T+1)(T+2)+1r(T+1) \frac{1}{(1+r)^{T+1}}= 1-r(T+1)+\frac{1}{2}r^2(T+1)(T+2)+\dots \approx 1-r(T+1)

Similarly, applying the Taylor series to GT+1G^{T+1} about g=0g=0:

(1+g)T+1=1+(T+1)g+T(T+1)2!g2+(T1)T(T+1)3!g3+1+(T+1)g (1+g)^{T+1} = 1+(T+1)g+\frac{T(T+1)}{2!}g^2+\frac{(T-1)T(T+1)}{3!}g^3+\dots \approx 1+ (T+1)g

Thus, we get the following approximation:

p0=x0(1(1+(T+1)g)(1r(T+1)))1(1r)(1+g) p_0 =\frac{x_0(1-(1+(T+1)g)(1-r(T+1)))}{1-(1-r)(1+g) }

Expanding:

p0=x0(11+(T+1)2rg+r(T+1)g(T+1))11+rg+rg=x0(T+1)((T+1)rg+rg)rg+rg=x0(T+1)(rg)rg+rg+x0rg(T+1)2rg+rgx0(T+1)(rg)rg+x0rg(T+1)rg=x0(T+1)+x0rg(T+1)rg \begin{aligned} p_0 &=\frac{x_0(1-1+(T+1)^2 rg +r(T+1)-g(T+1))}{1-1+r-g+rg} \\&=\frac{x_0(T+1)((T+1)rg+r-g)}{r-g+rg} \\ &= \frac{x_0(T+1)(r-g)}{r-g + rg}+\frac{x_0rg(T+1)^2}{r-g+rg}\\ &\approx \frac{x_0(T+1)(r-g)}{r-g}+\frac{x_0rg(T+1)}{r-g}\\ &= x_0(T+1) + \frac{x_0rg(T+1)}{r-g} \end{aligned}

We could have also approximated by removing the second term rgx0(T+1)rgx_0(T+1) when TT is relatively small compared to 1/(rg)1/(rg) to get x0(T+1)x_0(T+1) as in the finite stream approximation.

We will plot the true finite stream present-value and the two approximations, under different values of TT, and gg and rr in Python.

First we plot the true finite stream present-value after computing it below

# True present value of a finite lease
def finite_lease_pv_true(T, g, r, x_0):
    G = (1 + g)
    R = (1 + r)
    return (x_0 * (1 - G**(T + 1) * R**(-T - 1))) / (1 - G * R**(-1))
# First approximation for our finite lease

def finite_lease_pv_approx_1(T, g, r, x_0):
    p = x_0 * (T + 1) + x_0 * r * g * (T + 1) / (r - g)
    return p

# Second approximation for our finite lease
def finite_lease_pv_approx_2(T, g, r, x_0):
    return (x_0 * (T + 1))

# Infinite lease
def infinite_lease(g, r, x_0):
    G = (1 + g)
    R = (1 + r)
    return x_0 / (1 - G * R**(-1))

Now that we have defined our functions, we can plot some outcomes.

First we study the quality of our approximations

def plot_function(axes, x_vals, func, args):
    axes.plot(x_vals, func(*args), label=func.__name__)

T_max = 50

T = np.arange(0, T_max+1)
g = 0.02
r = 0.03
x_0 = 1

our_args = (T, g, r, x_0)
funcs = [finite_lease_pv_true,
        finite_lease_pv_approx_1,
        finite_lease_pv_approx_2]
        # the three functions we want to compare

fig, ax = plt.subplots()
for f in funcs:
    plot_function(ax, T, f, our_args)
ax.legend()
ax.set_xlabel('$T$ Periods Ahead')
ax.set_ylabel('Present Value, $p_0$')
plt.show()
_images/eccb360b6dc9957217d6d22ea117b1e19d11ca7e4cf33fb9247a1259936a5637.png

Fig. 10.1 Finite lease present value TT periods ahead#

Evidently our approximations perform well for small values of TT.

However, holding gg and r fixed, our approximations deteriorate as TT increases.

Next we compare the infinite and finite duration lease present values over different lease lengths TT.

# Convergence of infinite and finite
T_max = 1000
T = np.arange(0, T_max+1)
fig, ax = plt.subplots()
f_1 = finite_lease_pv_true(T, g, r, x_0)
f_2 = np.full(T_max+1, infinite_lease(g, r, x_0))
ax.plot(T, f_1, label='T-period lease PV')
ax.plot(T, f_2, '--', label='Infinite lease PV')
ax.set_xlabel('$T$ Periods Ahead')
ax.set_ylabel('Present Value, $p_0$')
ax.legend()
plt.show()
_images/62466e26d725914163495faaf9b2742df5573cd28604e5194cd456fd4632e2e6.png

Fig. 10.2 Infinite and finite lease present value TT periods ahead#

The graph above shows how as duration T+T \rightarrow +\infty, the value of a lease of duration TT approaches the value of a perpetual lease.

Now we consider two different views of what happens as rr and gg covary

# First view
# Changing r and g
fig, ax = plt.subplots()
ax.set_ylabel('Present Value, $p_0$')
ax.set_xlabel('$T$ periods ahead')
T_max = 10
T=np.arange(0, T_max+1)

rs, gs = (0.9, 0.5, 0.4001, 0.4), (0.4, 0.4, 0.4, 0.5),
comparisons = (r'$\gg$', '$>$', r'$\approx$', '$<$')
for r, g, comp in zip(rs, gs, comparisons):
    ax.plot(finite_lease_pv_true(T, g, r, x_0), label=f'r(={r}) {comp} g(={g})')

ax.legend()
plt.show()
_images/ebe7d2b2766d3ab6a73b54f3fa1208b8938c8275c4f8025a45f4a1ceecd5df74.png

Fig. 10.3 Value of lease of length TT#

This graph gives a big hint for why the condition r>gr > g is necessary if a lease of length T=+T = +\infty is to have finite value.

For fans of 3-d graphs the same point comes through in the following graph.

If you aren’t enamored of 3-d graphs, feel free to skip the next visualization!

# Second view
fig = plt.figure(figsize = [16, 5])
T = 3
ax = plt.subplot(projection='3d')
r = np.arange(0.01, 0.99, 0.005)
g = np.arange(0.011, 0.991, 0.005)

rr, gg = np.meshgrid(r, g)
z = finite_lease_pv_true(T, gg, rr, x_0)

# Removes points where undefined
same = (rr == gg)
z[same] = np.nan
surf = ax.plot_surface(rr, gg, z, cmap=cm.coolwarm,
    antialiased=True, clim=(0, 15))
fig.colorbar(surf, shrink=0.5, aspect=5)
ax.set_xlabel('$r$')
ax.set_ylabel('$g$')
ax.set_zlabel('Present Value, $p_0$')
ax.view_init(20, 8)
plt.show()
_images/1df8ee81a764411a7e1d017d7bf54221537ea76589b045b31b28a4459267707b.png

Fig. 10.4 Three period lease PV with varying gg and rr#

We can use a little calculus to study how the present value p0p_0 of a lease varies with rr and gg.

We will use a library called SymPy.

SymPy enables us to do symbolic math calculations including computing derivatives of algebraic equations.

We will illustrate how it works by creating a symbolic expression that represents our present value formula for an infinite lease.

After that, we’ll use SymPy to compute derivatives

# Creates algebraic symbols that can be used in an algebraic expression
g, r, x0 = sym.symbols('g, r, x0')
G = (1 + g)
R = (1 + r)
p0 = x0 / (1 - G * R**(-1))
init_printing(use_latex='mathjax')
print('Our formula is:')
p0
Our formula is:
x0g+1r+1+1\displaystyle \frac{x_{0}}{- \frac{g + 1}{r + 1} + 1}
print('dp0 / dg is:')
dp_dg = sym.diff(p0, g)
dp_dg
dp0 / dg is:
x0(r+1)(g+1r+1+1)2\displaystyle \frac{x_{0}}{\left(r + 1\right) \left(- \frac{g + 1}{r + 1} + 1\right)^{2}}
print('dp0 / dr is:')
dp_dr = sym.diff(p0, r)
dp_dr
dp0 / dr is:
x0(g+1)(r+1)2(g+1r+1+1)2\displaystyle - \frac{x_{0} \left(g + 1\right)}{\left(r + 1\right)^{2} \left(- \frac{g + 1}{r + 1} + 1\right)^{2}}

We can see that for p0r<0\frac{\partial p_0}{\partial r}<0 as long as r>gr>g, r>0r>0 and g>0g>0 and x0x_0 is positive, so p0r\frac{\partial p_0}{\partial r} will always be negative.

Similarly, p0g>0\frac{\partial p_0}{\partial g}>0 as long as r>gr>g, r>0r>0 and g>0g>0 and x0x_0 is positive, so p0g\frac{\partial p_0}{\partial g} will always be positive.

10.6. Back to the Keynesian multiplier#

We will now go back to the case of the Keynesian multiplier and plot the time path of yty_t, given that consumption is a constant fraction of national income, and investment is fixed.

# Function that calculates a path of y
def calculate_y(i, b, g, T, y_init):
    y = np.zeros(T+1)
    y[0] = i + b * y_init + g
    for t in range(1, T+1):
        y[t] = b * y[t-1] + i + g
    return y

# Initial values
i_0 = 0.3
g_0 = 0.3
# 2/3 of income goes towards consumption
b = 2/3
y_init = 0
T = 100

fig, ax = plt.subplots()
ax.set_xlabel('$t$')
ax.set_ylabel('$y_t$')
ax.plot(np.arange(0, T+1), calculate_y(i_0, b, g_0, T, y_init))
# Output predicted by geometric series
ax.hlines(i_0 / (1 - b) + g_0 / (1 - b), xmin=-1, xmax=101, linestyles='--')
plt.show()
_images/0a7e93fa828f3730b330da030b00b197517d0d7a16e14f85f808a9ae8d03bead.png

Fig. 10.5 Path of aggregate output tver time#

In this model, income grows over time, until it gradually converges to the infinite geometric series sum of income.

We now examine what will happen if we vary the so-called marginal propensity to consume, i.e., the fraction of income that is consumed

bs = (1/3, 2/3, 5/6, 0.9)

fig,ax = plt.subplots()
ax.set_ylabel('$y_t$')
ax.set_xlabel('$t$')
x = np.arange(0, T+1)
for b in bs:
    y = calculate_y(i_0, b, g_0, T, y_init)
    ax.plot(x, y, label=r'$b=$'+f"{b:.2f}")
ax.legend()
plt.show()
_images/8dfd7a33a7b0e6bcab8d73ad0da8fd13d74bc8b613610ea245a02cfbf4572a34.png

Fig. 10.6 Changing consumption as a fraction of income#

Increasing the marginal propensity to consume bb increases the path of output over time.

Now we will compare the effects on output of increases in investment and government spending.

fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(6, 10))
fig.subplots_adjust(hspace=0.3)

x = np.arange(0, T+1)
values = [0.3, 0.4]

for i in values:
    y = calculate_y(i, b, g_0, T, y_init)
    ax1.plot(x, y, label=f"i={i}")
for g in values:
    y = calculate_y(i_0, b, g, T, y_init)
    ax2.plot(x, y, label=f"g={g}")

axes = ax1, ax2
param_labels = "Investment", "Government Spending"
for ax, param in zip(axes, param_labels):
    ax.set_title(f'An Increase in {param} on Output')
    ax.legend(loc ="lower right")
    ax.set_ylabel('$y_t$')
    ax.set_xlabel('$t$')
plt.show()
_images/803a80fae20205eadefd554dc873732cc963fd32bdc8b6daba8a6d15931273f9.png

Fig. 10.7 Different increase on output#

Notice here, whether government spending increases from 0.3 to 0.4 or investment increases from 0.3 to 0.4, the shifts in the graphs are identical.