|
| 1 | +--- |
| 2 | +jupytext: |
| 3 | + text_representation: |
| 4 | + extension: .md |
| 5 | + format_name: myst |
| 6 | + format_version: 0.13 |
| 7 | + jupytext_version: 1.14.5 |
| 8 | +kernelspec: |
| 9 | + display_name: Python 3 (ipykernel) |
| 10 | + language: python |
| 11 | + name: python3 |
| 12 | +--- |
| 13 | + |
| 14 | ++++ {"user_expressions": []} |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | +# A Fiscal Theory of Price Level with Adaptive Expectations |
| 19 | + |
| 20 | +## Introduction |
| 21 | + |
| 22 | +As usual, we'll start by importing some Python modules. |
| 23 | + |
| 24 | +```{code-cell} ipython3 |
| 25 | +import numpy as np |
| 26 | +from collections import namedtuple |
| 27 | +import matplotlib.pyplot as plt |
| 28 | +``` |
| 29 | + |
| 30 | ++++ {"user_expressions": []} |
| 31 | + |
| 32 | +<!-- #region --> |
| 33 | + |
| 34 | +This lecture is a sequel or prequel to this lecture {doc}`fiscal theory of the price level <cagan_ree>`. |
| 35 | + |
| 36 | +We'll use linear algebra to do some experiments with an alternative "fiscal theory of the price level". |
| 37 | + |
| 38 | +Like the model in this lecture {doc}`fiscal theory of the price level <cagan_ree>`, the model asserts that when a government persistently spends more than it collects in taxes and prints money to finance the shortfall, it puts upward pressure on the price level and generates persistent inflation. |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | +Instead of the "perfect foresight" or "rational expectations" version of the model in this lecture {doc}`fiscal theory of the price level <cagan_ree>`, our model in the present lecture is an "adaptive expectations" version of a model that Philip Cagan {cite}`Cagan` used to study the monetary dynamics of hyperinflations. |
| 43 | + |
| 44 | +It combines these components: |
| 45 | + |
| 46 | + * a demand function for real money balances that says asserts that the logarithm of the quantity of real balances demanded depends inversely on the public's expected rate of inflation |
| 47 | + |
| 48 | + * an **adaptive expectations** model that describes how the public's anticipated rate of inflation responds to past values of actual inflation |
| 49 | + |
| 50 | + * an equilibrium condition that equates the demand for money to the supply |
| 51 | + |
| 52 | + * an exogenous sequence of rates of growth of the money supply |
| 53 | + |
| 54 | +Our model stays quite close to Cagan's original specification. |
| 55 | + |
| 56 | +As in the {doc}`present values <pv>` and {doc}`consumption smoothing<cons_smooth>` lectures, the only linear algebra operations that we'll be using are matrix multplication and matrix inversion. |
| 57 | + |
| 58 | +To facilitate using linear matrix algebra as our principal mathematical tool, we'll use a finite horizon version of |
| 59 | +the model. |
| 60 | + |
| 61 | +## Structure of the Model |
| 62 | + |
| 63 | +Let |
| 64 | + |
| 65 | + * $ m_t $ be the log of the supply of nominal money balances; |
| 66 | + * $\mu_t = m_{t+1} - m_t $ be the net rate of growth of nominal balances; |
| 67 | + * $p_t $ be the log of the price level; |
| 68 | + * $\pi_t = p_{t+1} - p_t $ be the net rate of inflation between $t$ and $ t+1$; |
| 69 | + * $\pi_t^*$ be the public's expected rate of inflation between $t$ and $t+1$; |
| 70 | + * $T$ the horizon -- i.e., the last period for which the model will determine $p_t$ |
| 71 | + * $\pi_0^*$ public's initial expected rate of inflation between time $0$ and time $1$. |
| 72 | + |
| 73 | + |
| 74 | +The demand for real balances $\exp\left(\frac{m_t^d}{p_t}\right)$ is governed by the following version of the Cagan demand function |
| 75 | + |
| 76 | +$$ |
| 77 | +m_t^d - p_t = -\alpha \pi_t^* \: , \: \alpha > 0 ; \quad t = 0, 1, \ldots, T . |
| 78 | +$$ (eq:caganmd) |
| 79 | +
|
| 80 | +
|
| 81 | +This equation asserts that the demand for real balances |
| 82 | +is inversely related to the public's expected rate of inflation. |
| 83 | +
|
| 84 | +Equating the logarithm $m_t^d$ of the demand for money to the logarithm $m_t$ of the supply of money in equation {eq}`eq:caganmd` and solving for the logarithm $p_t$ |
| 85 | +of the price level gives |
| 86 | +
|
| 87 | +$$ |
| 88 | +p_t = m_t + \alpha \pi_t^* |
| 89 | +$$ (eq:eqfiscth1) |
| 90 | +
|
| 91 | +Taking the difference between equation {eq}`eq:eqfiscth1` at time $t+1$ and at time |
| 92 | +$t$ gives |
| 93 | +
|
| 94 | +
|
| 95 | +
|
| 96 | +$$ |
| 97 | +\pi_t = \mu_t + \alpha \pi_{t+1}^* - \alpha \pi_t^* |
| 98 | +$$ (eq:eqpipi) |
| 99 | +
|
| 100 | +We assume that the expected rate of inflation $\pi_t^*$ is governed |
| 101 | +by the Friedman-Cagan adaptive expectations scheme |
| 102 | +
|
| 103 | +$$ |
| 104 | +\pi_{t+1}^* = \lambda \pi_t^* + (1 -\lambda) \pi_t |
| 105 | +$$ (eq:adaptexpn) |
| 106 | +
|
| 107 | +As exogenous inputs into the model, we take initial conditions $m_0, \pi_0^*$ |
| 108 | +and a money growth sequence $\vec \mu = \{\mu_t\}_{t=0}^T$. |
| 109 | +
|
| 110 | +As endogenous outputs of our model we want to find sequences $\vec \pi = \{\pi_t\}_{t=0}^T, \vec p = \{p_t\}_{t=0}^T$ as functions of the endogenous inputs. |
| 111 | +
|
| 112 | +We'll do some mental experiments by studying how the model outputs vary as we vary |
| 113 | +the model inputs. |
| 114 | +
|
| 115 | +<!-- #endregion --> |
| 116 | +
|
| 117 | +<!-- #region --> |
| 118 | +## Representing key equations with linear algebra |
| 119 | +
|
| 120 | +We begin by writing the equation {eq}`eq:adaptexpn` adaptive expectations model for $\pi_t^*$ for $t=0, \ldots, T$ as |
| 121 | +
|
| 122 | +
|
| 123 | +
|
| 124 | +$$ |
| 125 | +\begin{bmatrix} 1 & 0 & 0 & \cdots & 0 & 0 \cr |
| 126 | +-\lambda & 1 & 0 & \cdots & 0 & 0 \cr |
| 127 | +0 & - \lambda & 1 & \cdots & 0 & 0 \cr |
| 128 | +\vdots & \vdots & \vdots & \cdots & \vdots & \vdots \cr |
| 129 | +0 & 0 & 0 & \cdots & -\lambda & 1 |
| 130 | +\end{bmatrix} |
| 131 | +\begin{bmatrix} \pi_0^* \cr |
| 132 | + \pi_1^* \cr |
| 133 | + \pi_2^* \cr |
| 134 | + \vdots \cr |
| 135 | + \pi_{T+1}^* |
| 136 | + \end{bmatrix} = |
| 137 | + (1-\lambda) \begin{bmatrix} |
| 138 | + 0 & 0 & 0 & \cdots & 0 \cr |
| 139 | + 1 & 0 & 0 & \cdots & 0 \cr |
| 140 | + 0 & 1 & 0 & \cdots & 0 \cr |
| 141 | + \vdots &\vdots & \vdots & \cdots & \vdots \cr |
| 142 | + 0 & 0 & 0 & \cdots & 1 \end{bmatrix} |
| 143 | + \begin{bmatrix}\pi_0 \cr \pi_1 \cr \pi_2 \cr \vdots \cr \pi_T |
| 144 | + \end{bmatrix} + |
| 145 | + \begin{bmatrix} \pi_0^* \cr 0 \cr 0 \cr \vdots \cr 0 \end{bmatrix} |
| 146 | +$$ |
| 147 | +
|
| 148 | +Write this equation as |
| 149 | +
|
| 150 | +$$ |
| 151 | +A \vec \pi^* = (1-\lambda) B \vec \pi + \vec \pi_0^* |
| 152 | +$$ (eq:eq1) |
| 153 | +
|
| 154 | +where the $(T+2) \times (T+2) $matrix $A$, the $(T+2)\times (T+1)$ matrix $B$, and the vectors $\vec \pi^* , \vec \pi_0, \pi_0^*$ |
| 155 | +are defined implicitly by aligning these two equations. |
| 156 | +<!-- #endregion --> |
| 157 | +
|
| 158 | +<!-- #region --> |
| 159 | +Next we write the key equation {eq}`eq:eqpipi` in matrix notation as |
| 160 | +
|
| 161 | +$$ \begin{bmatrix} |
| 162 | +\pi_0 \cr \pi_1 \cr \pi_1 \cr \vdots \cr \pi_T \end{bmatrix} |
| 163 | += \begin{bmatrix} |
| 164 | +\mu_0 \cr \mu_1 \cr \mu_2 \cr \vdots \cr \mu_T \end{bmatrix} |
| 165 | ++ \begin{bmatrix} - \alpha & \alpha & 0 & \cdots & 0 & 0 \cr |
| 166 | +0 & -\alpha & \alpha & \cdots & 0 & 0 \cr |
| 167 | +0 & 0 & -\alpha & \cdots & 0 & 0 \cr |
| 168 | +\vdots & \vdots & \vdots & \cdots & \alpha & 0 \cr |
| 169 | +0 & 0 & 0 & \cdots & -\alpha & \alpha |
| 170 | +\end{bmatrix} |
| 171 | +\begin{bmatrix} \pi_0^* \cr |
| 172 | + \pi_1^* \cr |
| 173 | + \pi_2^* \cr |
| 174 | + \vdots \cr |
| 175 | + \pi_{T+1}^* |
| 176 | + \end{bmatrix} |
| 177 | +$$ |
| 178 | + |
| 179 | +Represent the previous equation system in terms of vectors and matrices as |
| 180 | + |
| 181 | +$$ |
| 182 | +\vec \pi = \vec \mu + C \vec \pi^* |
| 183 | +$$ (eq:eq2) |
| 184 | +
|
| 185 | +where the $(T+1) \times (T+2)$ matrix $C$ is defined implicitly to align this equation with the preceding |
| 186 | +equation system. |
| 187 | +
|
| 188 | +
|
| 189 | +
|
| 190 | +## Harvesting Returns from our Matrix Formulation |
| 191 | +
|
| 192 | +
|
| 193 | +We now have all of the ingredients we need to solve for $\vec \pi$ as |
| 194 | +a function of $\vec \mu, \pi_0, \pi_0^*$. |
| 195 | +
|
| 196 | +Combine equations {eq}`eq:eq1`and {eq}`eq:eq2` to get |
| 197 | +
|
| 198 | +$$ |
| 199 | +\begin{align*} |
| 200 | +A \vec \pi^* & = (1-\lambda) B \vec \pi + \vec \pi_0^* \cr |
| 201 | + & = (1-\lambda) B \left[ \vec \mu + C \vec \pi^* \right] + \vec \pi_0^* |
| 202 | +\end{align*} |
| 203 | +$$ |
| 204 | +
|
| 205 | +which implies that |
| 206 | +
|
| 207 | +$$ |
| 208 | +\left[ A - (1-\lambda) B C \right] \vec \pi^* = (1-\lambda) B \vec \mu+ \vec \pi_0^* |
| 209 | +$$ |
| 210 | +
|
| 211 | +Multiplying both sides of the above equation by the inverse of the matrix on the left side gives |
| 212 | +
|
| 213 | +$$ |
| 214 | +\vec \pi^* = \left[ A - (1-\lambda) B C \right]^{-1} \left[ (1-\lambda) B \vec \mu+ \vec \pi_0^* \right] |
| 215 | +$$ (eq:eq4) |
| 216 | +
|
| 217 | +Having solved equation {eq}`eq:eq4` for $\vec \pi^*$, we can use equation {eq}`eq:eq2` to solve for $\vec \pi$: |
| 218 | +
|
| 219 | +$$ |
| 220 | +\vec \pi = \vec \mu + C \vec \pi^* |
| 221 | +$$ |
| 222 | +
|
| 223 | +
|
| 224 | +We have thus solved for two of the key endogenous time series determined by our model, namely, the sequence $\vec \pi^*$ |
| 225 | +of expected inflation rates and the sequence $\vec \pi$ of actual inflation rates. |
| 226 | +
|
| 227 | +Knowing these, we can then quickly calculate the associated sequence $\vec p$ of the logarithm of the price level |
| 228 | +from equation {eq}`eq:eqfiscth1`. |
| 229 | +
|
| 230 | +Let's fill in the details for this step. |
| 231 | +<!-- #endregion --> |
| 232 | +
|
| 233 | +Since we now know $\vec \mu$ it is easy to compute $\vec m$. |
| 234 | +
|
| 235 | +Thus, notice that we can represent the equations |
| 236 | +
|
| 237 | +$$ |
| 238 | +m_{t+1} = m_t + \mu_t , \quad t = 0, 1, \ldots, T |
| 239 | +$$ |
| 240 | +
|
| 241 | +as the matrix equation |
| 242 | +
|
| 243 | +$$ |
| 244 | +\begin{bmatrix} |
| 245 | +1 & 0 & 0 & \cdots & 0 & 0 \cr |
| 246 | +-1 & 1 & 0 & \cdots & 0 & 0 \cr |
| 247 | +0 & -1 & 1 & \cdots & 0 & 0 \cr |
| 248 | +\vdots & \vdots & \vdots & \vdots & 0 & 0 \cr |
| 249 | +0 & 0 & 0 & \cdots & 1 & 0 \cr |
| 250 | +0 & 0 & 0 & \cdots & -1 & 1 |
| 251 | +\end{bmatrix} |
| 252 | +\begin{bmatrix} |
| 253 | +m_1 \cr m_2 \cr m_3 \cr \vdots \cr m_T \cr m_{T+1} |
| 254 | +\end{bmatrix} |
| 255 | += \begin{bmatrix} |
| 256 | +\mu_0 \cr \mu_1 \cr \mu_2 \cr \vdots \cr \mu_{T-1} \cr \mu_T |
| 257 | +\end{bmatrix} |
| 258 | ++ \begin{bmatrix} |
| 259 | +m_0 \cr 0 \cr 0 \cr \vdots \cr 0 \cr 0 |
| 260 | +\end{bmatrix} |
| 261 | +$$ (eq:eq101) |
| 262 | +
|
| 263 | +Multiplying both sides of equation {eq}`eq:eq101` with the inverse of the matrix on the left will give |
| 264 | +
|
| 265 | +$$ |
| 266 | +m_t = m_0 + \sum_{s=0}^{t-1} \mu_s, \quad t =1, \ldots, T+1 |
| 267 | +$$ (eq:mcum) |
| 268 | +
|
| 269 | +Equation {eq}`eq:mcum` shows that the log of the money supply at $t$ equals the log $m_0$ of the initial money supply |
| 270 | +plus accumulation of rates of money growth between times $0$ and $t$. |
| 271 | +
|
| 272 | +We can then compute $p_t$ for each $t$ from equation {eq}`eq:eqfiscth1`. |
| 273 | +
|
| 274 | +We can write a compact formula for $\vec p $ as |
| 275 | +
|
| 276 | +$$ |
| 277 | +\vec p = \vec m + \alpha \hat \pi^* |
| 278 | +$$ |
| 279 | +
|
| 280 | +where |
| 281 | +
|
| 282 | +$$ |
| 283 | +\hat \pi^* = \begin{bmatrix} \pi_0^* \cr |
| 284 | + \pi_1^* \cr |
| 285 | + \pi_2^* \cr |
| 286 | + \vdots \cr |
| 287 | + \pi_{T}^* |
| 288 | + \end{bmatrix}, |
| 289 | + $$ |
| 290 | +
|
| 291 | +which is just $\vec \pi^*$ with the last element dropped. |
| 292 | + |
| 293 | +
|
| 294 | +
|
| 295 | +## Forecast Errors |
| 296 | +
|
| 297 | +Our computations will verify that |
| 298 | +
|
| 299 | +$$ |
| 300 | +\hat \pi^* \neq \vec \pi, |
| 301 | +$$ |
| 302 | +
|
| 303 | +so that in general |
| 304 | +
|
| 305 | +$$ |
| 306 | +\pi_t^* \neq \pi_t, \quad t = 0, 1, \ldots , T |
| 307 | +$$ (eq:notre) |
| 308 | +
|
| 309 | +This outcome is typical in models in which adaptive expectations hypothesis like equation {eq}`eq:adaptexpn` appear as a |
| 310 | +component. |
| 311 | +
|
| 312 | +In this lecture {doc}`fiscal theory of the price level <cagan_ree>`, we studied a version of the model that replaces hypothesis {eq}`eq:adaptexpn` with |
| 313 | +a "perfect foresight" or "rational expectations" hypothesis. |
| 314 | +
|
| 315 | +```{code-cell} ipython3 |
| 316 | +Cagan_Adaptive = namedtuple("Cagan_Adaptive", |
| 317 | + ["α", "m0", "Eπ0", "T", "λ"]) |
| 318 | +
|
| 319 | +def create_cagan_model(α, m0, Eπ0, T, λ): |
| 320 | + return Cagan_Adaptive(α, m0, Eπ0, T, λ) |
| 321 | +``` |
| 322 | ++++ {"user_expressions": []} |
| 323 | +
|
| 324 | +Here we define the parameters. |
| 325 | +
|
| 326 | +```{code-cell} ipython3 |
| 327 | +# parameters |
| 328 | +T = 80 |
| 329 | +T1 = 60 |
| 330 | +α = 5 |
| 331 | +λ = 0.9 # 0.7 |
| 332 | +m0 = 1 |
| 333 | +
|
| 334 | +μ0 = 0.5 |
| 335 | +μ_star = 0 |
| 336 | +
|
| 337 | +md = create_cagan_model(α=α, m0=m0, Eπ0=μ0, T=T, λ=λ) |
| 338 | +``` |
| 339 | ++++ {"user_expressions": []} |
| 340 | +
|
| 341 | +We solve the model and plot variables of interests using the following functions. |
| 342 | +
|
| 343 | +```{code-cell} ipython3 |
| 344 | +def solve(model, μ_seq): |
| 345 | + " Solve the Cagan model in finite time. " |
| 346 | + |
| 347 | + model_params = model.α, model.m0, model.Eπ0, model.T, model.λ |
| 348 | + α, m0, Eπ0, T, λ = model_params |
| 349 | + |
| 350 | + A = np.eye(T+2, T+2) - λ*np.eye(T+2, T+2, k=-1) |
| 351 | + B = np.eye(T+2, T+1, k=-1) |
| 352 | + C = -α*np.eye(T+1, T+2) + α*np.eye(T+1, T+2, k=1) |
| 353 | + Eπ0_seq = np.append(Eπ0, np.zeros(T+1)) |
| 354 | +
|
| 355 | + # Eπ_seq is of length T+2 |
| 356 | + Eπ_seq = np.linalg.inv(A - (1-λ)*B @ C) @ ((1-λ) * B @ μ_seq + Eπ0_seq) |
| 357 | +
|
| 358 | + # π_seq is of length T+1 |
| 359 | + π_seq = μ_seq + C @ Eπ_seq |
| 360 | +
|
| 361 | + D = np.eye(T+1, T+1) - np.eye(T+1, T+1, k=-1) |
| 362 | + m0_seq = np.append(m0, np.zeros(T)) |
| 363 | +
|
| 364 | + # m_seq is of length T+2 |
| 365 | + m_seq = np.linalg.inv(D) @ (μ_seq + m0_seq) |
| 366 | + m_seq = np.append(m0, m_seq) |
| 367 | +
|
| 368 | + # p_seq is of length T+2 |
| 369 | + p_seq = m_seq + α * Eπ_seq |
| 370 | +
|
| 371 | + return π_seq, Eπ_seq, m_seq, p_seq |
| 372 | +``` |
| 373 | +
|
| 374 | ++++ {"user_expressions": []} |
| 375 | +
|
| 376 | +```{code-cell} ipython3 |
| 377 | +def solve_and_plot(model, μ_seq): |
| 378 | + |
| 379 | + π_seq, Eπ_seq, m_seq, p_seq = solve(model, μ_seq) |
| 380 | + |
| 381 | + T_seq = range(model.T+2) |
| 382 | + |
| 383 | + fig, ax = plt.subplots(2, 3, figsize=[10,5], dpi=200) |
| 384 | + ax[0,0].plot(T_seq[:-1], μ_seq) |
| 385 | + ax[0,1].plot(T_seq[:-1], π_seq, label=r'$\pi_t$') |
| 386 | + ax[0,1].plot(T_seq, Eπ_seq, label=r'$\pi^{*}_{t}$') |
| 387 | + ax[0,2].plot(T_seq, m_seq - p_seq) |
| 388 | + ax[1,0].plot(T_seq, m_seq) |
| 389 | + ax[1,1].plot(T_seq, p_seq) |
| 390 | + |
| 391 | + x_lab = r'$t$' |
| 392 | + y_labs = [r'$\mu$', r'$\pi$', r'$m - p$', r'$m$', r'$p$'] |
| 393 | +
|
| 394 | + k = 0 |
| 395 | + for i,j in zip([0, 0, 0, 1, 1], [0, 1, 2, 0, 1]): |
| 396 | + ax[i,j].set_xlabel(x_lab) |
| 397 | + ax[i,j].set_ylabel(y_labs[k]) |
| 398 | + k = k + 1 |
| 399 | +
|
| 400 | + ax[0,1].legend() |
| 401 | + ax[1,2].set_axis_off() |
| 402 | + plt.tight_layout() |
| 403 | + plt.show() |
| 404 | + |
| 405 | + return π_seq, Eπ_seq, m_seq, p_seq |
| 406 | +``` |
| 407 | +
|
| 408 | ++++ {"user_expressions": []} |
| 409 | +
|
| 410 | +
|
| 411 | +
|
| 412 | +## Technical condition for stability |
| 413 | +
|
| 414 | +In constructing our examples, we shall assume that $(\lambda, \alpha)$ satisfy |
| 415 | +
|
| 416 | +$$ |
| 417 | +\Bigl| \frac{\lambda-\alpha(1-\lambda)}{1-\alpha(1-\lambda)} \Bigr| < 1 |
| 418 | +$$ (eq:suffcond) |
| 419 | +
|
| 420 | +The source of this condition is the following string of deductions: |
| 421 | +
|
| 422 | +$$ |
| 423 | +\begin{align*} |
| 424 | +\pi_{t}&=\mu_{t}+\alpha\pi_{t+1}^{*}-\alpha\pi_{t}^{*}\\\pi_{t+1}^{*}&=\lambda\pi_{t}^{*}+(1-\lambda)\pi_{t}\\\pi_{t}&=\frac{\mu_{t}}{1-\alpha(1-\lambda)}-\frac{\alpha(1-\lambda)}{1-\alpha(1-\lambda)}\pi_{t}^{*}\\\implies\pi_{t}^{*}&=\frac{1}{\alpha(1-\lambda)}\mu_{t}-\frac{1-\alpha(1-\lambda)}{\alpha(1-\lambda)}\pi_{t}\\\pi_{t+1}&=\frac{\mu_{t+1}}{1-\alpha(1-\lambda)}-\frac{\alpha(1-\lambda)}{1-\alpha(1-\lambda)}\left(\lambda\pi_{t}^{*}+(1-\lambda)\pi_{t}\right)\\&=\frac{\mu_{t+1}}{1-\alpha(1-\lambda)}-\frac{\lambda}{1-\alpha(1-\lambda)}\mu_{t}+\frac{\lambda-\alpha(1-\lambda)}{1-\alpha(1-\lambda)}\pi_{t} |
| 425 | +\end{align*} |
| 426 | +$$ |
| 427 | +
|
| 428 | +By assuring that the coefficient on $\pi_t$ is less than one in absolulte value, condition {eq}`eq:suffcond` assures stability of the dynamics of $\{\pi_t\}$ described by the last line of our string of deductions. |
| 429 | +
|
| 430 | +The reader is free to study outcomes in examples that violate condition {eq}`eq:suffcond`. |
| 431 | +<!-- #endregion --> |
| 432 | +
|
| 433 | +```{code-cell} ipython3 |
| 434 | +print(np.abs((λ - α*(1-λ))/(1 - α*(1-λ)))) |
| 435 | +``` |
| 436 | ++++ {"user_expressions": []} |
| 437 | +
|
| 438 | +```{code-cell} ipython3 |
| 439 | +print(λ - α*(1-λ)) |
| 440 | +``` |
| 441 | ++++ {"user_expressions": []} |
| 442 | +
|
| 443 | +Now we'll turn to some experiments. |
| 444 | +
|
| 445 | +<!-- #region --> |
| 446 | +
|
| 447 | +### Experiment 1 |
| 448 | +
|
| 449 | +We'll study a situation in which the rate of growth of the money supply is $\mu_0$ |
| 450 | +from $t=0$ to $t= T_1$ and then permanently falls to $\mu^*$ at $t=T_1$. |
| 451 | +
|
| 452 | +Thus, let $T_1 \in (0, T)$. |
| 453 | +
|
| 454 | +So where $\mu_0 > \mu^*$, we assume that |
| 455 | +
|
| 456 | +$$ |
| 457 | +\mu_{t+1} = \begin{cases} |
| 458 | + \mu_0 , & t = 0, \ldots, T_1 -1 \\ |
| 459 | + \mu^* , & t \geq T_1 |
| 460 | + \end{cases} |
| 461 | +$$ |
| 462 | +
|
| 463 | +Notice that we studied exactly this experiment in a rational expectations version of the model in this lecture {doc}`fiscal theory of the price level <cagan_ree>`. |
| 464 | +
|
| 465 | +So by comparing outcomes across the two lectures, we can learn about consequences of assuming adaptive expectations, as we do here, instead of rational expectations as we assumed in that other lecture. |
| 466 | +
|
| 467 | +
|
| 468 | +```{code-cell} ipython3 |
| 469 | +μ_seq_1 = np.append(μ0*np.ones(T1), μ_star*np.ones(T+1-T1)) |
| 470 | +
|
| 471 | +# solve and plot |
| 472 | +π_seq_1, Eπ_seq_1, m_seq_1, p_seq_1 = solve_and_plot(md, μ_seq_1) |
| 473 | +``` |
| 474 | ++++ {"user_expressions": []} |
| 475 | +
|
| 476 | +We invite the reader to compare outcomes with those under rational expectations studied in this lecture {doc}`fiscal theory of the price level <cagan_ree>`. |
| 477 | +
|
| 478 | +Please note how the actual inflation rate $\pi_t$ "overshoots" its ultimate steady-state value at the time of the sudden reduction in the rate of growth of the money supply at time $T_1$. |
| 479 | +
|
| 480 | +We invite you to explain to yourself the source of this overshooting and why it does not occur in the rational expectations version of the model. |
| 481 | +
|
| 482 | +### Experiment 2 |
| 483 | +
|
| 484 | +Now we'll do a different experiment, namely, a gradual stabilization in which the rate of growth of the money supply smoothly |
| 485 | +decline from a high value to a persistently low value. |
| 486 | +
|
| 487 | +While price level inflation eventually falls, it falls more slowly than the driving force that ultimately causes it to fall, namely, the falling rate of growth of the money supply. |
| 488 | +
|
| 489 | +The sluggish fall in inflation is explained by how anticipated inflation $\pi_t^*$ persistently exceeds actual inflation $\pi_t$ during the transition from a high inflation to a low inflation situation. |
| 490 | +
|
| 491 | +```{code-cell} ipython3 |
| 492 | +# parameters |
| 493 | +ϕ = 0.9 |
| 494 | +μ_seq_2 = np.array([ϕ**t * μ0 + (1-ϕ**t)*μ_star for t in range(T)]) |
| 495 | +μ_seq_2 = np.append(μ_seq_2, μ_star) |
| 496 | +
|
| 497 | +
|
| 498 | +# solve and plot |
| 499 | +π_seq_2, Eπ_seq_2, m_seq_2, p_seq_2 = solve_and_plot(md, μ_seq_2) |
| 500 | +``` |
| 501 | ++++ {"user_expressions": []} |
1 commit comments
github-actions[bot] commentedon Jun 9, 2023
🚀 Deployed on https://6482f07d84de5800d8b95bbd--taupe-gaufre-c4e660.netlify.app