{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#### [**NICOLAS CACHANOSKY**](http://www.ncachanosky.com) | Department of Economics | Metropolitan State University of Denver | ncachano@msudenver.edu" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# IS-LM MODEL\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This note illustrates how to code the IS-LM Model in Python. The purpose of the note is to walk through Python applications, not to offer a detailed discussion of the IS-LM Model or to show best coding practices. The note also assumes familiarity with the IS-LM model and a beginner experience with Python.\n", "\n", "For a more complete and detailed discussion of Python applications see the material in [Quant Econ](https://quantecon.org/).\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## TABLE OF CONTENTS\n", "1. [The IS-LM model](#1.-THE-IS-LM-MODEL)\n", "2. [The IS schedule (Investment-Saving)](#2.-THE-IS-SCHEDULE-(INVESTMENT-SAVING))\n", "3. [The LM schedule (Liquidity Preference-Money Supply)](#3.-THE-LM-SCHEDULE-(LIQUIDITY-PREFERENCE-MONEY-SUPPLY))\n", "4. [Equilibrium](#4.-EQUILIBRIUM)\n", "5. [Dynamics](#5.-DYNAMICS)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. THE IS-LM MODEL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The IS-LM, or Hicks-Hansen, model shows the combinations of interest rate (vertical axis) and income (horizontal axis) for which the goods market (IS) and the loan market (LM) are in equilibrium. There is one particular combination of interest rate and income that is consistent with equilibrium in both markets simultaneosuly. \n", "\n", "In the graphic version of the model, all the points in the **IS shedule** represent equilibrium in the goods makret. Similarly, all the points in the **LM schedule** represents equlibrium in the loan market.\n", "\n", "This model treats the price level as exogenous (given and fixed). In this sense, the IS-LM model is applicable in the context of idle resources or when changes in income has no effect on the price level." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. THE IS SCHEDULE (INVESTMENT-SAVING)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The IS schedule is derived from the equilbrium condition where output $(Y)$ equals spending:\n", "\n", "\\begin{equation}\n", "Y = C + I + G + (X - Z)\n", "\\end{equation}\n", "\n", "where $C$ is household consumption, $I$ is private investment, $G$ is the level of government spending, $X$ is exports, and $Z$ is imports. We can treat variables $G = \\bar{G}$ and $X = \\bar{X}$ as exogenous. The former is defined by policy makers, the latter is given by economic conditions in the rest of the world. A more detailed exposition, such as the Mundell-Fleming model, would also take into consideration the exchange rate, and exprots will also be dependent (to some extent) of domestic economic policy.\n", "\n", "Household's consumption follow a keynesian consumption function:\n", "\n", "\\begin{equation}\n", " C = a + b(Y - T)\n", "\\end{equation}\n", "\n", "where $a \\geq 0$ is the level of autonomous consumption (indepenent of the level of income), $b \\in (0, 1)$ is the marginal propensity to consume, and $T$ is the dollar-amount of taxes.\n", "\n", "Assume now a simple linear relationship between investment and the interst rate $i$:\n", "\n", "\\begin{equation}\n", " I = \\bar{I} - d \\cdot i\n", "\\end{equation}\n", "\n", "where $\\bar{I}$ represents the level of investment when $i = 0$ and $d$ is the rate at which $I$ falls when $i$ increases.\n", "\n", "We can also assume that imports follow a similar functional form than household's domestic consumption:\n", "\n", "\\begin{equation}\n", " Z = \\alpha + \\beta (Y - T)\n", "\\end{equation}\n", "\n", "where $\\alpha$ is the autonomous level of imports and $\\beta$ is the marginal propensity to import.\n", "\n", "To derive the IS schedule we need to use the consumption, investment, and import functions and solve for $i$ from the equilibrium condition:\n", "\n", "\\begin{align}\n", " Y &= C + I + G + (X - Z) \\\\\n", " Y &= \\underbrace{\\left[a + b(Y-T) \\right]}_{C} + \\underbrace{\\left[\\bar{I} - d \\cdot i \\right]}_{I} + \\bar{G} + \\left[X - \\underbrace{\\left(\\alpha + \\beta(Y-T) \\right)}_{Z} \\right] \\\\\n", " i_{IS} &= \\underbrace{\\frac{(a-\\alpha)-(b-\\beta)T + \\bar{I} + \\bar{G} + \\bar{X}}{d}}_\\text{intercept} - \\underbrace{\\frac{1-b+\\beta}{d} }_\\text{slope} \\cdot Y\n", "\\end{align}\n", "\n", "Note that the larger $\\alpha$ and $\\beta$, the lower the intercept. This means that at the same level of $i$ income will be lower. Note also that the intercept and the slope of the IS schedule is sensitive to the value of $d$. The more (less) sensitive investment is to $d$, the more (less) horizontal the IS schedule looks. Finally, note that the IS schedule is a straight line.\n", "\n", "The following code plots the IS scheduel using the above information. The first part of the code imports the required Python packages. The second part of the code defines the parameters and arrays. The third part of the code defines and populates the IS schedule. The fourt part of the code plots the IS schedule." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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CQAA8FNE02W67bbblJGRoRYtWigpKUmNGjXS/v37bc8CAAB5jGjKAyVKlNCsWbM0duxYrVq1SqGhofrwww9tzwIAAHmIaMojxhg9+eST2rx5s44ePaqoqCi9/fbbtmcBAIA8QjTlsejoaLndboWHh+vxxx9Xt27dOJYAAAA/QDTlg2uuuUbr169Xv379NGHCBMXGxurHH3+0PQsAAFwGoimfhISEaPjw4Zo/f74+/fRTORwObdy40fYsAABwiYimfNakSRNlZ2erXLlyqlGjhoYNGyaPx2N7FgAAuEhEUwG48847lZWVpaZNm6p///5q3LixDhw4YHsWAAC4CERTASlZsqTee+89jRo1SsuWLVNYWJg++eQT27MAAEAuEU0FyBijXr16KSUlRYcOHVJERITeffdd27MAAEAuEE0WxMTEyO12y+FwqGXLlurZs6dOnDhhexYAADgPosmSChUqaOPGjerdu7fGjh2ruLg4/fzzz7ZnAQCAf0A0WVSoUCG99tprmjNnjj788EM5HA5t3rzZ9iwAAHAORJMXaN68ubKyslSmTBk99NBDGjlyJMcSAADgZYgmL/Gvf/1LWVlZatSokfr27avmzZvr0KFDtmcBAICziCYvcsUVV2jevHl69dVXtXDhQoWHh2v79u22ZwEAABFNXscYo759+2rDhg3au3evwsLCNHfuXNuzAAAIeESTl6pevbrcbrfuu+8+PfLII+rTp49OnjxpexYAAAGLaPJiFStW1KZNm9SjRw+NGjVKDz30kH755RfbswAACEhEk5crXLiwXn/9db3zzjtyuVx68MEHlZaWZnsWAAABh2jyES1btlRGRoZKliypuLg4jRkzhmMJAAAoQESTD7n33nuVk5OjunXrqlevXmrRooV+//1327MAAAgIRJOPKV26tBYuXKihQ4dq3rx5ioiI0BdffGF7FgAAfo9o8kFBQUHq37+/1q5dq927dyssLEwLFy60PQsAAL9GNPmwhx56SG63W3fddZeaNGmiZ555RqdOnbI9CwAAv0Q0+bgbbrhBW7ZsUdeuXfXqq6+qRo0a+vXXX23PAgDA7xBNfqBIkSJ644039NZbbykjI0MOh0Pp6em2ZwEA4FeIJj/y+OOPKyMjQ0WLFlVsbKzGjRvHsQQAAOQRosnP3H///crJyVFiYqJ69Oih1q1b6/Dhw7ZnAQDg84gmP1S2bFktWbJEgwYN0uzZsxUZGamvvvrK9iwAAHwa0eSngoKClJSUpFWrVunnn39WaGiolixZYnsWAAA+i2jyc4mJiXK73br99tvVqFEjPf/88zp9+rTtWQAA+ByiKQDcdNNNSk1NVefOnTV06FAlJibq//7v/2zPAgDApxBNAaJo0aKaNGmSpk2bprS0NDkcDmVlZdmeBQCAzyCaAky7du20bds2hYSEqGrVqpo4cSLHEgAAkAtEUwByOBxyuVxKSEhQ165d1bZtWx05csT2LAAAvBrRFKCuvPJKLV++XAMGDNDbb7+t6OhoffPNN7ZnAQDgtYimABYUFKTk5GStWLFC33//vZxOp5YvX257FgAAXologmrXri2Xy6XKlSurfv36evHFFzmWAACAvyGaIEm6+eabtXXrVrVv314vv/yy6tSpo99++832LAAAvAbRhP8oVqyYpk6dqjfffFObNm2Sw+FQTk6O7VkAAHgFogn/o2PHjkpLS5MkValSRVOmTLG8CAAA+4gmnFNYWJhcLpeqV6+uTp06qUOHDjp69KjtWQAAWEM04R+VK1dOK1euVFJSkqZNm6YqVaro22+/tT0LAAAriCacV3BwsAYNGqSlS5dqx44dcjqdWrVqle1ZAAAUOKIJuVK/fn25XC7deOONqlu3rv7973/rzJkztmcBAFBgiCbk2i233KJt27apdevWGjBggOrXr6+9e/fangUAQIEgmnBRihcvrhkzZmjChAlat26dnE6n3n//fduzAADId0QTLpoxRk888YRSU1N16tQpRUdHa/r06bZnAQCQr4gmXLKIiAi53W5FR0erffv26tKli44dO2Z7FgAA+YJowmW5+uqrtWbNGvXv31+TJ09WTEyMvvvuO9uzAADIc0QTLltISIiGDh2qRYsW6csvv5TT6dTatWttzwIAIE8RTcgzjRo1Uk5OjipUqKBatWpp8ODBHEsAAPAbRBPy1G233aaMjAy1aNFCSUlJatSokfbv3297FgAAl41oQp4rUaKEZs2apbFjx2rVqlUKDQ3Vhx9+aHsWAACXhWhCvjDG6Mknn9TmzZt19OhRRUVFaebMmbZnAQBwyYgm5Kvo6Gi53W5FRESoTZs26tatm44fP257FgAAF41oQr675pprtG7dOvXr108TJkxQbGysfvjhB9uzAAC4KEQTCkRISIiG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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np # Package for scientific computing with Python\n", "import matplotlib.pyplot as plt # Matplotlib is a 2D plotting library\n", "\n", "\"2|DEFINE PARAMETERS AND ARRAYS\"\n", "# Parameters\n", "Y_size = 100\n", "a = 20 # Autonomous consumption\n", "b = 0.2 # Marginal propensity to consume\n", "alpha = 5 # Autonomous imports\n", "beta = 0.2 # Marginal propensity to import\n", "T = 1 # Taxes\n", "I_bar = 10 # Investment intercept (when i = 0)\n", "G_bar = 8 # Government spending\n", "X_bar = 2 # Exports (given)\n", "d = 5 # Investment slope wrt to i\n", "# Arrays\n", "Y = np.arange(Y_size) # Array values of Y\n", "\n", "\"3|DEFINE AND POPULATE THE IS-SCHEDULE\"\n", "def i_IS(a, alpha, b, beta, T, I_bar, G_bar, X_bar, d, Y):\n", " i_IS = ((a-alpha)-(b-beta)*T + I_bar + G_bar + X_bar - (1-b+beta)*Y)/d\n", " return i_IS\n", "\n", "def Y_IS(a, alpha, b, beta, T, I_bar, G_bar, X_bar, d, i):\n", " Y_IS = ((a-alpha)-(b-beta)*T + I_bar + G_bar + X_bar - d*i)/(1-b+beta)\n", " return Y_IS\n", "\n", "i = i_IS(a, alpha, b, beta, T, I_bar, G_bar, X_bar, d, Y)\n", "\n", "\"4|PLOT THE IS-SCHEDULE\"\n", "y_max = np.max(i)\n", "x_max = Y_IS(a, alpha, b, beta, T, I_bar, G_bar, X_bar, d, 0)\n", "\n", "v = [0, x_max, 0, y_max] # Set the axes range\n", "fig, ax = plt.subplots(figsize=(10, 8))\n", "ax.set(title=\"IS SCHEDULE\", xlabel=r'Y', ylabel=r'r')\n", "ax.plot(Y, i, \"k-\")\n", "ax.yaxis.set_major_locator(plt.NullLocator()) # Hide ticks\n", "ax.xaxis.set_major_locator(plt.NullLocator()) # Hide ticks\n", "plt.axis(v) # Use 'v' as the axes range\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. THE LM SCHEDULE (LIQUIDITY PREFERENCE-MONEY SUPPLY)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To build the LM schedule we need money supply $(M^S)$ and money demand $(M^D)$. Money supply is an exogenous variable (e.g. a policy decision of the central bank). Following Keynes, the three sources of money demand are (1) precautionary reasons (e.g. save for a rainy-day), (2) to perform transaction and (3) for speculation reasons. Expressing $M^S$ and $M^D$ in real terms:\n", "\n", "\\begin{align}\n", " \\frac{M^S}{P} &= \\frac{M^S_0}{P} \\\\\n", " \\frac{M^D}{P} &= c_1 + c_2 Y - c_3 i\n", "\\end{align}\n", "\n", "Where $c_1$, $c_2$, and $c_3$ represent the precautionary, transaction, and speculation reasons to demand money. Note that the amount of money needed for transactions depends on the level of income. The interest rate has a negative relationship with money demand due to Keynes' expectations theory (not covered in this note).\n", "\n", "Since in equilibrium $M^S = M^D$, the LM schedule can be expressed in the following way:\n", "\n", "\\begin{align}\n", " \\frac{M^S_0}{P} &= \\frac{M^D}{P} \\\\\n", " \\frac{M^S_0}{P} &= c_1 + c_2 Y - c_3 i \\\\\n", " i_{LM} &= \\underbrace{\\frac{1}{c_3} \\cdot \\left(c_1 - \\frac{M^S_0}{P} \\right)}_\\text{intercept} + \\underbrace{\\frac{c_2}{c_3}}_\\text{slope} \\cdot Y\n", "\\end{align}\n", "\n", "Note that if the interest rate has no effect on money demand $(c_3 \\to 0)$, then the LM schedule becomes inelastic (vertical).\n", "\n", "We can plot the LM schedule in a similar way we did for the IS schedule." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"1|IMPORT PACKAGES\"\n", "import numpy as np # Package for scientific computing with Python\n", "import matplotlib.pyplot as plt # Matplotlib is a 2D plotting library\n", "\n", "\"2|DEFINE PARAMETERS AND ARRAYS\"\n", "# Parameters\n", "Y_size = 100\n", "c1 = 1000 # Precautionary money demand\n", "c2 = 10 # Transaction money demand\n", "c3 = 10 # Speculation money demand\n", "Ms = 20000 # Nominal money supply\n", "P = 20 # Price level\n", "# Arrays\n", "Y = np.arange(Y_size) # Array values of Y\n", "\n", "\"3|DEFINE AND POPULATE THE LM-SCHEDULE\"\n", "def i_LM(c1, c2, c3, Ms, P, Y):\n", " i_LM = (c1 - Ms/P)/c3 + c2/c3*Y\n", " return i_LM\n", "\n", "i = i_LM(c1, c2, c3, Ms, P, Y)\n", " \n", "\"4|PLOT THE IS-SCHEDULE\"\n", "y_max = np.max(i)\n", "\n", "v = [0, Y_size, 0, y_max] # Set the axes range\n", "fig, ax = plt.subplots(figsize=(10, 8))\n", "ax.set(title=\"LM SCHEDULE\", xlabel=r'Y', ylabel=r'r')\n", "ax.plot(Y, i, \"k-\")\n", "ax.yaxis.set_major_locator(plt.NullLocator()) # Hide ticks\n", "ax.xaxis.set_major_locator(plt.NullLocator()) # Hide ticks\n", "plt.axis(v) # Use 'v' as the axes range\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4. EQUILIBRIUM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that there is no variable that is on both schedules. This means that any shock shifts only one of the schedules. This construction conveniently separates monetary policy as shifts of the LM schedule from fiscal policy as shifts of the IS schedule. As mentioned above, note that this model has an exogenous (treated as constant) price level.\n", "\n", "There is a pair $(Y^*, i^*)$ that produces the \"general\" equilibrium (contingent to parameters defining positive values for $Y^*$ and $i^*$). If IS = LM, then:\n", "\n", "\\begin{align}\n", " i_{LM} &= i_{IS} \\\\\n", " \\frac{1}{c_3} \\left(c_1 - \\frac{M^S_0}{P} \\right) - \\frac{c_2}{c_3} \\cdot Y &= \\frac{(a-\\alpha)-(b-\\beta)T + \\bar{I} + \\bar{G} + X}{d} - \\frac{1-b+\\beta}{d} \\cdot Y \\\\\n", " Y^* &= \\left[ \\frac{(a-\\alpha)-(b-\\beta)T+\\bar{I}+\\bar{G}+X}{d} + \\frac{1}{c_3} \\left(\\frac{M^S_0}{P} - c_1 \\right) \\right] \\cdot \\left[\\frac{1-b+\\beta}{d} - \\frac{c_2}{c_3} \\right]^{-1}\n", "\\end{align}\n", "\n", "And the interest rate of equilibrium would be:\n", "\n", "\\begin{align}\n", " i^* &= \\frac{1}{c_3} \\left(c_1 - \\frac{M^S_0}{P} \\right) + \\frac{c_2}{c_3} \\cdot Y^* \\\\\n", " i^* &= \\frac{1}{c_3} \\left(c_1 - \\frac{M^S_0}{P} \\right) + \\frac{c_2}{c_3} \\cdot \\left(\\frac{1-b+\\beta}{d} - \\frac{c_2}{c_3} \\right)^{-1} \\cdot \\left[\\frac{(a-\\alpha)-(b-\\beta)T + \\bar{I} + \\bar{G} + X}{d} + \\frac{1}{c_3} \\left(c_1-\\frac{M^S_0}{P} \\right) \\right]\n", "\\end{align}\n", "\n", "The next code plots the IS-LM model and locates for arrows showing the dynamics of the model when located out of equilibrium. The IS and LM schedules and dynamics are denoted in blue and red respectively. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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LWHtWteViYSvxx95hMcvuMB1GSLiiEJTBIuJsZN1y5bZeILJk+1Kll69YNcu19WJhJ+mjRvTtFgx12WIiCMKTVEgb17o29eaxW+5Bfr3t+GYY8eq30nkdKzfsIH1ukFbJGopNEWRMmVsu+77723WU7t2kJwM33zjujKR8HDnffdx588/uy5DRBxRaIpC9erBzJnWML5li91vd/PNsHq168pEQlvvbt3oXamS6zJExBGFpijleXDbbXYlS79+8PnnULUqPP44/PWX6+pEQlNjn4/GRYu6LkNEHFFoinJ58thQzOXLoVUreO45qFQJxoyBQ4dcVycSWlavXcvq3btdlyEijig0CQClS9sgzB9/tNB0771w0UXw9deuKxMJHfd07Mg98+e7LkNEHFFokuPUqWMXAU+YADt2wJVXwk03wapVrisTce+pHj14KiHBdRki4ohCk6TjeXDrrbBkCTz7LHz5pfU7desGO3e6rk7EncsbNuTy+HjXZYiIIwpN8o9y54aePWHFCrjzThgyxLbuXnkFDh50XZ1I9lu2YgXLdBO2SNRSaJJTKlkSXnsN5syxFaf774cLL4SpU11XJpK97uvcmfsWLHBdhog4otAkQbvwQpg+HSZOhL//hiZN4Prr7eSdSDTo36cP/atUcV2GiDii0CSnxfOgRQtYvBgGDrQQVb06PPoobN/uujqRrNWgXj0aFC7sugwRcUShSc5IrlzQvbv1O7VtC8OHW7/TqFHqd5LItXDxYhZq+qtI1FJokrNSvDi8+ir89BPUqAEdO0LNmvDFF64rE8l8nbp1o9PCha7LEBFHFJokU9SqBdOmwYcfwr590LQpXHutXdMiEikG9evHoGrVXJchIo4oNEmm8Txo3hwWLYLBg+G77yApCR5+GLZtc12dyNmrc+GF1ClY0HUZIuKIQpNkunPOgS5dYOVKaN8eRo6ECy6AF1+EAwdcVydy5uYtWMA8TXgViVoKTZJlihaFl1+GefPsHruHHrK+p88/d12ZyJnp3KMHnRctcl2GiDii0CRZLinJrmKZPBkOHYJrrrGep8WLXVcmcnqGDxjA8OrVXZchIo4oNEm28Dy47jpYuBCGDYMffrBVp06dYOtW19WJBKdWjRrUKlDAdRki4ohCk2SrnDmhc2eb73T//fB//2f9TsOHw/79rqsTObnZP/3E7B07XJchIo4o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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"1|IMPORT PACKAGES\"\n", "import numpy as np # Package for scientific computing with Python\n", "import matplotlib.pyplot as plt # Matplotlib is a 2D plotting library\n", "\n", "\"2|DEFINE PARAMETERS AND ARRAYS\"\n", "# Model domain\n", "Y_size = 100\n", "Y = np.arange(Y_size) # Array values of Y\n", "# IS Parameters\n", "a = 100 # Autonomous consumption\n", "b = 0.2 # Marginal propensity to consume\n", "alpha = 5 # Autonomous imports\n", "beta = 0.15 # Marginal propensity to import\n", "T = 1 # Taxes\n", "I = 10 # Investment intercept (when i = 0)\n", "G = 20 # Government spending\n", "X = 5 # Exports (given)\n", "d = 2 # Investment slope wrt to i\n", "# LM Parameters\n", "c1 = 2500 # Precautionary money demand\n", "c2 = 0.75 # Transaction money demand\n", "c3 = 5 # Speculation money demand\n", "Ms = 23500 # Nominal money supply\n", "P = 10 # Price level\n", "\n", "\"3|DEFINE AND POPULATE THE IS AND LM SCHEDULES\"\n", "def i_IS(a, alpha, b, beta, T, I, G, X, d, Y):\n", " i_IS = ((a-alpha)-(b-beta)*T + I + G + X - (1-b+beta)*Y)/d\n", " return i_IS\n", "\n", "def i_LM(c1, c2, c3, Ms, P, Y):\n", " i_LM = (c1 - Ms/P)/c3 + c2/c3*Y\n", " return i_LM\n", "\n", "iIS = i_IS(a, alpha, b, beta, T, I, G, X, d, Y)\n", "iLM = i_LM(c1, c2, c3, Ms, P, Y)\n", "\n", "\"4|CALCULATE EQUILIBRUM VALUES\"\n", "Y_star1 = ((a-alpha) - (b-beta)*T + I + G + X)/d\n", "Y_star2 = (1/c3) * (c1 - Ms/P)\n", "Y_star3 = (1 - b + beta)/d + (c2/c3)\n", "Y_star = (Y_star1 - Y_star2)/Y_star3\n", "\n", "i_star1 = (1/c3)*(c1 - Ms/P)\n", "i_star2 = (c2/c3)*Y_star\n", "i_star = i_star1 + i_star2\n", "\n", "\"5|PLOT THE IS-LM model\"\n", "y_max = np.max(iIS)\n", "v = [0, Y_size, 0, y_max] # Set the axes range\n", "fig, ax = plt.subplots(figsize=(10, 8))\n", "ax.set(title=\"IS-LM MODEL\", xlabel=r'Y', ylabel=r'r')\n", "ax.plot(Y, iIS, \"b-\")\n", "ax.plot(Y, iLM, \"r-\")\n", "ax.yaxis.set_major_locator(plt.NullLocator()) # Hide ticks\n", "ax.xaxis.set_major_locator(plt.NullLocator()) # Hide ticks\n", "ax.arrow(10, i_star, 10, 0, head_length=2, head_width=1, color='b', alpha=0.7)\n", "ax.arrow(10, i_star, 0, -3, head_length=2, head_width=1, color='r', alpha=0.7)\n", "ax.arrow(Y_star, 15, 10, 0, head_length=2, head_width=1, color='b', alpha=0.7)\n", "ax.arrow(Y_star, 15, 0, 10, head_length=2, head_width=1, color='r', alpha=0.7)\n", "ax.arrow(90, i_star,-10, 0, head_length=2, head_width=1, color='b', alpha=0.7)\n", "ax.arrow(90, i_star, 0, 2, head_length=2, head_width=1, color='r', alpha=0.7)\n", "ax.arrow(Y_star, 60,-10, 0, head_length=2, head_width=1, color='b', alpha=0.7)\n", "ax.arrow(Y_star, 60, 0,-10, head_length=2, head_width=1, color='r', alpha=0.7)\n", "plt.plot(Y_star, i_star, 'ko') # Equilibrium point\n", "plt.axvline(x=Y_star, ls=':', color='k')\n", "plt.axhline(y=i_star, ls=':', color='k')\n", "plt.text(95, 22, \"IS\", color='b')\n", "plt.text(95, 47, \"LM\", color='r')\n", "plt.axis(v) # Use 'v' as the axes range\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 5. DYNAMICS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The arrows in the above figure shows that the model is stable when out of equilibrium (it converges back to equilibrium from any point). The code below shows the dynamics towards equilbrium starting from four disequilibrium points: A in blue, B in red, C in green, and D in cyan. Ten iterations starting from each point is enough to show the dynamics towards equilibrium.\n", "\n", "Horizontal changes $(Y)$ is calculated with the IS function. Vertical changes $(i)$ is calculated with the LM function (see the arrows in the above figure). Starting from a disequilbrium point, the location of the next point is calculated with these two functions. Adding time period $(t = 0, ..., 10)$, where $Y_{0}$ and $i_{0}$ are arbitrary initial values, then:\n", "\n", "\\begin{align}\n", " Y_{t} &= \\frac{(a-\\alpha) - (b-\\beta)T + \\bar{I} + \\bar{G} + X}{1-b+\\beta} - \\frac{d}{1-b+\\beta} \\cdot i_{t-1} \\\\\n", " i_{t} &= \\frac{1}{c_3} \\left(c_1 - \\frac{M^S_0}{P} \\right) + \\frac{c_2}{c_3} \\cdot Y_{t-1}\n", "\\end{align}\n", "\n", "The code below is similar to the ones above with the addition of the four dynamics for each different starting point." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"1|IMPORT PACKAGES\"\n", "import numpy as np # Package for scientific computing with Python\n", "import matplotlib.pyplot as plt # Matplotlib is a 2D plotting library\n", "\n", "\"2|DEFINE PARAMETERS AND ARRAYS\"\n", "# Model domain\n", "Y_size = 100\n", "Y = np.arange(Y_size) # Array values of Y\n", "# IS Parameters\n", "a = 100 # Autonomous consumption\n", "b = 0.2 # Marginal propensity to consume\n", "alpha = 5 # Autonomous imports\n", "beta = 0.15 # Marginal propensity to import\n", "T = 1 # Taxes\n", "I = 10 # Investment intercept (when i = 0)\n", "G = 20 # Government spending\n", "X = 5 # Exports (given)\n", "d = 2 # Investment slope wrt to i\n", "# LM Parameters\n", "c1 = 2500 # Precautionary money demand\n", "c2 = 0.75 # Transaction money demand\n", "c3 = 5 # Speculation money demand\n", "Ms = 23500 # Nominal money supply\n", "P = 10 # Price level\n", "\n", "\"3|DEFINE AND POPULATE THE IS AND LM SCHEDULES\"\n", "def i_IS(a, alpha, b, beta, T, I, G, X, d, Y):\n", " i_IS = ((a-alpha)-(b-beta)*T + I + G + X - (1-b+beta)*Y)/d\n", " return i_IS\n", "\n", "def i_LM(c1, c2, c3, Ms, P, Y):\n", " i_LM = (c1 - Ms/P)/c3 + c2/c3*Y\n", " return i_LM\n", "\n", "iIS = i_IS(a, alpha, b, beta, T, I, G, X, d, Y)\n", "iLM = i_LM(c1, c2, c3, Ms, P, Y)\n", "\n", "\"4|CALCULATE EQUILIBRUM VALUES\"\n", "Y_star1 = ((a-alpha) - (b-beta)*T + I + G + X)/d\n", "Y_star2 = (1/c3) * (c1 - Ms/P)\n", "Y_star3 = (1 - b + beta)/d + (c2/c3)\n", "Y_star = (Y_star1 - Y_star2)/Y_star3\n", "\n", "i_star1 = (1/c3)*(c1 - Ms/P)\n", "i_star2 = (c2/c3)*Y_star\n", "i_star = i_star1 + i_star2\n", "\n", "\"5|CALCULATE THE DYNAMICS FOR DISEQUILIBRIUM POINTS\"\n", "iterations= 10\n", "def Y_IS(a, alpha, b, beta, T, I, G, X, d, i):\n", " Y_IS = ((a-alpha)-(b-beta)*T+I+G+X)/(1-b+beta) - d/(1-b+beta)*i\n", " return Y_IS\n", "\n", "\" |STARTING POINT A\"\n", "YA, iA = 10, 50 # Initial values\n", "\n", "A_i_LM = np.zeros(iterations)\n", "A_Y_IS = np.zeros(iterations)\n", "\n", "A_Y_IS[0] = YA\n", "A_i_LM[0] = iA\n", "\n", "for j in range(1, iterations):\n", " A_Y_IS[j] = Y_IS(a, alpha, b, beta, T, I, G, X, d, A_i_LM[j-1])\n", " A_i_LM[j] = i_LM(c1, c2, c3, Ms, P, A_Y_IS[j-1])\n", " \n", "\" |STARTING POINT B\"\n", "YB, iB = 80, 55 # Initial values\n", "\n", "B_i_LM = np.zeros(iterations)\n", "B_Y_IS = np.zeros(iterations)\n", "\n", "B_Y_IS[0] = YB\n", "B_i_LM[0] = iB\n", "\n", "for j in range(1, iterations):\n", " B_Y_IS[j] = Y_IS(a, alpha, b, beta, T, I, G, X, d, B_i_LM[j-1])\n", " B_i_LM[j] = i_LM(c1, c2, c3, Ms, P, B_Y_IS[j-1]) \n", " \n", "\" |STARTING POINT C\"\n", "YC, iC = 70, 20 # Initial values\n", "\n", "C_i_LM = np.zeros(iterations)\n", "C_Y_IS = np.zeros(iterations)\n", "\n", "C_Y_IS[0] = YC\n", "C_i_LM[0] = iC\n", "\n", "for j in range(1, iterations):\n", " C_Y_IS[j] = Y_IS(a, alpha, b, beta, T, I, G, X, d, C_i_LM[j-1])\n", " C_i_LM[j] = i_LM(c1, c2, c3, Ms, P, C_Y_IS[j-1]) \n", "\n", "\" |STARTING POINT D\"\n", "YD, iD = 30, 25 # Initial values\n", "\n", "D_i_LM = np.zeros(iterations)\n", "D_Y_IS = np.zeros(iterations)\n", "\n", "D_Y_IS[0] = YD\n", "D_i_LM[0] = iD\n", "\n", "for j in range(1, iterations):\n", " D_Y_IS[j] = Y_IS(a, alpha, b, beta, T, I, G, X, d, D_i_LM[j-1])\n", " D_i_LM[j] = i_LM(c1, c2, c3, Ms, P, D_Y_IS[j-1])\n", "\n", "\"6|PLOT THE IS-LM model\"\n", "y_max = np.max(iIS)\n", "v = [0, Y_size, 0, y_max] # Set the axes range\n", "fig, ax = plt.subplots(figsize=(10, 8))\n", "ax.set(title=\"IS-LM MODEL\", xlabel=r'Y', ylabel=r'r')\n", "ax.plot(Y, iIS, \"k-\")\n", "ax.plot(Y, iLM, \"k-\")\n", "ax.yaxis.set_major_locator(plt.NullLocator()) # Hide ticks\n", "ax.xaxis.set_major_locator(plt.NullLocator()) # Hide ticks\n", "plt.plot(Y_star, i_star, \"ko\") # Equilibrium point\n", "plt.plot(YA, iA, \"bo\") # Starting point A\n", "ax.plot(A_Y_IS, A_i_LM, \"b--\", alpha=0.7)\n", "plt.plot(YB, iB, \"ro\") # Starting point B\n", "ax.plot(B_Y_IS, B_i_LM, \"r--\", alpha=0.7)\n", "plt.plot(YC, iC, \"go\") # Starting point C\n", "ax.plot(C_Y_IS, C_i_LM, \"g--\", alpha=0.7)\n", "plt.plot(YD, iD, \"co\") # Starting point C\n", "ax.plot(D_Y_IS, D_i_LM, \"c--\", alpha=0.7)\n", "plt.axvline(x=Y_star, ls=':', color='k')\n", "plt.axhline(y=i_star, ls=':', color='k')\n", "plt.text(95, 22, \"IS\")\n", "plt.text(95, 47, \"LM\")\n", "plt.text(YA , iA+2, \"A\", color=\"b\")\n", "plt.text(YB+3, iB , \"B\", color=\"r\")\n", "plt.text(YC-3, iC , \"C\", color=\"g\")\n", "plt.text(YD , iD-2, \"D\", color=\"c\")\n", "plt.axis(v) # Use 'v' as the axes range\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }