{ "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": [ "# ENDOGENOUS GROWTH WITH A R&D SECTOR\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This note illustrates how to code a R&D growth model in Python. The purpose of the note is to walk through Python applications, not to offer a detailed discussion of the Solow Model or to show best coding practices. The note also assumes familiarity with growth theory 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. [Endogenous growth models](#1.-ENDOGENOUS-GROWTH-MODELS)\n", "2. [The R&D growth model](#2.-THE-R&D-GROWTH-MODEL)\n", "3. [Solving the model](#3.-SOLVING-THE-MODEL)\n", "4. [The steady-state](#4.-THE-STEADY-STATE)\n", "5. [The Python code](#5.-THE-PYTHON-CODE)\n", "6. [Model stability](#6.-MODEL-STABILITY)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. ENDOGENOUS GROWTH MODELS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A well-known result of the Solow Model is that growth is *exogenous*, that is, it goes unexplained by the model. Growth (in the long-run) does not depend on the savings rate, but on the growth rate of *technology* ($A$). The growth rate of $A$ is an assumption *given to* the model. Yet, Solow Model provides a number of important insights.\n", "\n", "Endogenous growth models do not rely on \"exogenous assumptions\" to explain growth. One way to endogeneize growth is by adding a \"production function of technology\" to the model. In this sense, the R&D growth model can be intepreted as an extension of Solow model.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. THE R&D GROWTH MODEL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The model assumes two sectors: (1) production of goods and (2) production of new ideas (technology). Factors of production, capital $(K)$ and labor $(L)$, are split between these two sectors. The model is built in continuous time. Labor grows at constnat rate $n$.\n", "\n", "### 2.1 THE PRODUCTION OF GOODS\n", "\n", "Assume a Cobb-Douglas function with constant returns to scale and labor-augmenting technology.\n", "\n", "\n", "\\begin{equation}\n", "Y(t) = \\left[(1-a_K)K \\right]^{\\alpha} \\left[A(t) (1-a_L) L(t) \\right]^{1-\\alpha}; \\; \\alpha \\in (0, 1)\n", "\\end{equation}\n", "\n", "where $a_K$ and $a_L$ represent the share of capital and labor allocated to the production of new ideas. Therefore, $(1-a_K)$ and $(1-a_L)$ represent the share of capital and labor allocated to the production of new goods." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2. THE ACCUMULATION OF NEW CAPITAL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similar to Solow model, the accumulation of new capital is an exogenous fixed savings rate $(s)$ of output. For simplicity, assume there is no depreciation.\n", "\n", "\\begin{equation}\n", " \\dot{K(t)} = s\\cdot Y(t)\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.3 THE PRODUCTION OF NEW IDEAS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The production of new ideas follows a Cobb-Douglas function that may or may not have constant returns to scale. Whether the returns to scale in the production of new ideas is decreasing, constant, or increasing depends on the assumption of how factors of production interact in the R&D industry. Because this industry prodices **ideas**, the argument of \"replication\" (if you double inputs you double output) does not hold.\n", "\n", "\\begin{equation}\n", " \\dot{A(t)} = B \\left[a_K K(t) \\right]^{\\beta} \\left[a_l L(t) \\right]^{\\gamma} \\cdot A(t)^{\\theta}; \\; B>0, \\beta\\geq 0, \\gamma\\geq 0\n", "\\end{equation}\n", "\n", "The *dot* on top of $A$ denotes (instantaneous) change of technology and $B$ is a *shift parameters*. The exponent $\\theta$ captures how the accumulated knowledge affects the discovery of **new** ideas. \n", "\n", "If the more knowledge already discovered makes it more difficulty to discover new ideas, then $\\theta$ is negative. If the accumulated knowledge makes it easier to discover new ideas, then $\\theta$ is larger than one. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. SOLVING THE MODEL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solving the model implies finding how the growth rates look in the *steady-state*. Are growth rates constant? Or do they change with time?\n", "\n", "Let $g_K(t)$ and $g_A(t)$ denote the **growth rates** of capital and technology. Then, we want to study the conditions in which $\\dot{g_K(t)}=\\dot{g_A(t)}=0$. To do this, we need to calculate the growth rates, and then set them constant (set the change in the growth rate equal to zero)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.1 THE STEADY-STATE OF CAPITAL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can procede in three steps to find the *steady-state* of capital. First, input the production function (of goods) into the motion function of capital. Second, calculate the growth rate of capital. Third, set the change in the growth equal to zero and \"solve for\" growth of capital in terms of growth of technology. The last step will be useful to plot thedynamics of the model.\n", "\n", "The growth rates of capital and technology are $g_K(t) \\equiv \\frac{\\dot{K(t)}}{K(t)}$ and $g_A(t) \\equiv \\frac{\\dot{A(t)}}{A(t)}$.\n", "\n", "\\begin{align}\n", " \\dot{K(t)} &= s (1-a_K)^{\\alpha} (1-a_L)^{1-\\alpha} \\cdot K(t)^{\\alpha} A(t)^{1-\\alpha} L(t)^{1-\\alpha} \\\\[5 pt]\n", " g_K(t) &= s (1-a_K)^{\\alpha} (1-a_L)^{1-\\alpha} \\left[\\frac{A(t)L(t)}{K(t)} \\right] \\\\[5 pt]\n", " \\frac{\\dot{g_K(t)}}{g_K(t)} &= (1-\\alpha) \\left[g_A(t) + n - g_K(t) \\right]\n", "\\end{align}\n", "\n", "$K$ will grow if $\\left[g_A(t) + n - g_K(t) \\right] > 0$. Now set $g_K(t) = 0$ and \"solve for\" $g_K(t)$ in terms of $g_A(t)$.\n", "\n", "\\begin{equation}\n", " g_K(t) = n + g_A(t)\n", "\\end{equation}\n", "\n", "The last line is a simple linear quation with intercept $n$ and slope 1. Also, note that $g_K(t)$ **does not** depend on the savings rate or the other parameters of the production function (of final goods). Similar to Solow model, the growth rate of $K$ equals (in the steady state) the growth rate of population plus the growth rate of technology." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.2 THE STEADY-STATE OF TECHNOLOGY" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can procede in a similar way than we did with capital to find the *steady-state* of technology. First, find the **growth rate** of technology. Then, set the **change** in the growth rate of technology equal to zero and solve for $g_K(t)$ in terms of $g_A(t)$.\n", "\n", "\\begin{align}\n", " \\dot{A(t)} &= B \\left[a_K K(t) \\right]^{\\beta} \\left[a_l L(t) \\right]^{\\gamma} \\cdot A(t)^{\\theta} \\\\[5 pt]\n", " g_A(t) &= B \\left[a_K K(t) \\right]^{\\beta} \\left[a_L L(t) \\right]^{\\gamma} \\cdot A(t)^{\\theta - 1} \\\\[5pt]\n", " \\frac{\\dot{g_A(t)}}{g_A(t)} &= \\beta g_K(t) + \\gamma n + (\\theta - 1) g_A(t)\n", "\\end{align}\n", "\n", "$A$ will grow if $\\left[\\beta g_K(t) + \\gamma n + (\\theta - 1) g_A(t) \\right] > 0$. Now, assuming $g_A(t) = 0$:\n", "\n", "\\begin{equation}\n", " g_K(t) = -\\frac{\\gamma n}{\\beta} + \\frac{(1-\\theta)}{\\beta} g_A(t)\n", "\\end{equation}\n", "\n", "The last line also is a simple linear quation, with intercent $-\\frac{\\gamma n}{\\beta}$ and slope $\\frac{(1-\\theta)}{\\beta}$. Slope is positive *if* $1-\\theta>0$, and the model has en equilibrium if $\\frac{(1-\\theta)}{\\beta}>1$ (see the figure below)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. THE STEADY-STATE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Section 3 produces two equations with two unknowns.\n", "\n", "\\begin{align}\n", " g_K(t) &= n + g_A(t) \\\\[5pt]\n", " g_K(t) &= -\\frac{\\gamma n}{\\beta} + \\frac{(1-\\theta)}{\\beta} g_A(t)\n", "\\end{align}\n", "\n", "Sovling this system of equation yields the (constant) growth rates in the *steady-state*.\n", "\n", "\\begin{align}\n", " g_K(t)^* &= n \\cdot \\frac{\\beta + \\gamma}{1-(\\theta + \\gamma)} + n \\\\[5 pt]\n", " g_A(t)^* &= n \\cdot \\frac{\\beta + \\gamma}{1-(\\theta + \\gamma)}\n", "\\end{align}\n", "\n", "Consider the following:\n", "* Note that $g_K(t)^* > g_A(t)^*$\n", "* If $n = 0$, then $g_K(t)^* = g_A(t)^* = 0$\n", "* Savings rate $(s)$ does not affect long-run growth rates\n", "* Neither $a_L$ or $a_K$ affect long-run growth rates\n", "\n", "To be more precise, this model can be considered a *semi-endogenous* growth model. Long-run growth rates depends on endogenous variables of the model, but also on the exogenous growth rate of population." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. THE PYTHON CODE\n", "\n", "We can now plot both saddle-paths $(\\dot{g_A(t)}=0, \\dot{g_K(t)}=0)$ using Python. These are two linear equations. " ] }, { "cell_type": "code", "execution_count": 5, "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", "\n", "\"2|DEFINE PARAMETERS AND ARRAYS\"\n", "# Parameters\n", "n = 0.02 # Growth rate of population\n", "beta = 0.50 # Exponent of capital in the production of ideas\n", "gamma = 1-beta # Exponent of labor in the priduction of ideas\n", "theta = 0.25 # Exponent of technology in the production of ideas\n", "\n", "# Arrays\n", "gA = np.arange(0, 1, 0.01) # Build an array between 0 and 1 with step size=0.01\n", "gK = n + gA\n", "\n", "\"3|DEFINE AND POPULATE THE SADDLE-PATH FUNCTIONS\" \n", "ss_K = n + gA # Saddle path for K\n", "ss_A = -(gamma * n)/beta + (1-theta)/beta * gA # Saddle path for A\n", "\n", "ss_int = -(gamma * n)/beta # Intercept of K saddle-path\n", "\n", "\n", "\"4|EQUILIBRIUM VALUES\"\n", "A_star = n * (beta + gamma)/(1 - (theta + gamma))\n", "K_star = n + A_star\n", "\n", "\n", "\"5|PLOT THE SADDLE-PATH\"\n", "v = [0, gA.max()*0.2, -0.05, gK.max()*0.2] # Axis range\n", "\n", "# Build figure\n", "plt.figure(figsize=(10, 7))\n", "plt.title(\"DYNAMICS OF GROWTH RATES OF CAPITAL AND TECHNOLOGY\")\n", "plt.text(-0.01 , v[3]-0.01, r'$g_K(t)$') # Manually add x-axis label\n", "plt.text(v[1]-0.01, -0.01 , r'$g_A(t)$') # Manually add y-axis label\n", "plt.axis(v)\n", "plt.box(False)\n", "plt.xticks([], []) # Hide x-axis ticks\n", "plt.yticks([], []) # Hide y-axis ticks\n", "plt.axvline(0, color=\"k\") # Add vertical axis\n", "plt.axhline(0, color=\"k\") # Add horizontal axis\n", "# Add both lines\n", "plt.plot(gA, ss_A, \"k-\", label=r'$g_A(t)$')\n", "plt.plot(gA, ss_K, \"k-\", label=r'$g_K(t)$')\n", "# Add equilibrium mark\n", "plt.axvline(A_star, -v[2]/(0.25), (0.05+K_star)/0.25, color=\"k\", ls=\":\")\n", "plt.axhline(K_star, 0.0 , A_star/v[1] , color=\"k\", ls=\":\")\n", "# Add reference values\n", "plt.text(A_star, -0.01 , r'$g_A(t)^*$', horizontalalignment=\"center\")\n", "plt.text(-0.001, K_star, r'$g_K(t)^*$', horizontalalignment=\"right\")\n", "plt.text(-0.001, n , r'$n$' , horizontalalignment=\"right\")\n", "plt.text(-0.001, ss_int, r'$-\\frac{\\gamma n}{\\beta}$',\n", " horizontalalignment=\"right\")\n", "# Add function labels\n", "plt.text(v[1]-0.03, v[3]-0.02, r'$\\dot{g_A(t)^*}=0$')\n", "plt.text(v[1]-0.09, v[3]-0.02, r'$\\dot{g_K(t)^*}=0$')\n", "# Build plot\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. MODEL STABILITY\n", "\n", "This is a stable model. Any starting point outside the *steady-state* will return to equilibrium = $\\left(g_A(t)^*. g_K(t)^* \\right)$. Form sections 3.1 and 3.2, we can follow the model dynamics for $A$ and $K$ the following way:\n", "\n", "\\begin{align}\n", " g_A(t+1) &= g_K(t) + \\dot{g_K(t)} \\\\[5pt]\n", " g_K(t+1) &= g_A(t) + \\dot{g_A(t)}\\\\[15pt]\n", " g_A(t+1) &= g_K(t) + (1-\\alpha) \\left[g_A(t) + n - g_K(t) \\right] \\\\[5pt]\n", " g_K(t+1) &= g_A(t) + \\beta g_K(t) + \\gamma n + (\\theta - 1)g_A(t)\n", "\\end{align}\n", "\n", "Now set four arbitrary starting points: A (blue), B (green), C (red), D (cyan). These strating points will be located in the four quadrants of the model dynamics plot. From these four stating points, the code performs 75 iterations. The plot shows that the dynamics of strating points A and C remain between the two saddle paths, while starting poitns B and D cross over a saddle path to then approach the *steady-state*." ] }, { "cell_type": "code", "execution_count": 7, "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", "\n", "\"2|DEFINE PARAMETERS AND ARRAYS\"\n", "# Parameters\n", "n = 0.02 # Growth rate of population\n", "alpha = 0.60 # Exponent of capital in the production of goods\n", "beta = 0.50 # Exponent of capital in the production of ideas\n", "gamma = 1-beta # Exponent of labor in the priduction of ideas\n", "theta = 0.25 # Exponent of technology in the production of ideas\n", "\n", "# Arrays\n", "gA = np.arange(0, 1, 0.01) # Build an array between 0 and 1 with step size=0.01\n", "gK = n + gA\n", "\n", "size = np.size(gA)\n", "\n", "\n", "\"3|DEFINE AND POPULATE THE SADDLE-PATH FUNCTIONS\" \n", "ss_K = n + gA # Saddle path for K\n", "ss_A = -(gamma * n)/beta + (1-theta)/beta * gA # Saddle path for A\n", "\n", "\n", "\"4|EQUILIBRIUM VALUES\"\n", "A_star = n * (beta + gamma)/(1 - (theta + gamma))\n", "K_star = n + A_star\n", "\n", "\n", "\"5|STABILITY DYNAMICS\"\n", "iterations = 75\n", "\n", "\" | Starting Poin A (blue)\"\n", "# Create arrays to store model dynamics\n", "A_gA = np.zeros(iterations)\n", "A_gK = np.zeros(iterations)\n", "# Set arbitrary initial values\n", "A_gA[0] = 0.015 \n", "A_gK[0] = 0.020 \n", "\n", "for j in range(1, iterations):\n", " A_gA[j] = A_gA[j-1] + beta*A_gK[j-1] + gamma*n + (theta-1)*A_gA[j-1]\n", " A_gK[j] = A_gK[j-1] + (1-alpha)*(A_gA[j-1] + n - A_gK[j-1])\n", "\n", "\" | Starting Poin B (green)\"\n", "# Create arrays to store model dynamics\n", "B_gA = np.zeros(iterations)\n", "B_gK = np.zeros(iterations)\n", "# Set arbitrary initial values\n", "B_gA[0] = 0.015\n", "B_gK[0] = 0.180\n", "\n", "for j in range(1, iterations):\n", " B_gA[j] = B_gA[j-1] + beta*B_gK[j-1] + gamma*n + (theta-1)*B_gA[j-1]\n", " B_gK[j] = B_gK[j-1] + (1-alpha)*(B_gA[j-1] + n - B_gK[j-1])\n", "\n", "\" | Starting Poin C (red)\"\n", "# Create arrays to store model dynamics\n", "C_gA = np.zeros(iterations)\n", "C_gK = np.zeros(iterations)\n", "# Set arbitrary initial values\n", "C_gA[0] = 0.150\n", "C_gK[0] = 0.180\n", "\n", "for j in range(1, iterations):\n", " C_gA[j] = C_gA[j-1] + beta*C_gK[j-1] + gamma*n + (theta-1)*C_gA[j-1]\n", " C_gK[j] = C_gK[j-1] + (1-alpha)*(C_gA[j-1] + n - C_gK[j-1])\n", "\n", "\" | Starting Poin D (cyan)\"\n", "# Create arrays to store model dynamics\n", "D_gA = np.zeros(iterations)\n", "D_gK = np.zeros(iterations)\n", "# Set arbitrary initial values\n", "D_gA[0] = 0.150\n", "D_gK[0] = 0.020\n", "\n", "for j in range(1, iterations):\n", " D_gA[j] = D_gA[j-1] + beta*D_gK[j-1] + gamma*n + (theta-1)*D_gA[j-1]\n", " D_gK[j] = D_gK[j-1] + (1-alpha)*(D_gA[j-1] + n - D_gK[j-1])\n", "\n", "\n", "\"5|PLOT THE SADDLE-PATH\"\n", "v = [0, gA.max()*0.2, -0.05, gK.max()*0.2] # Axis range\n", "\n", "# Build figure\n", "plt.figure(figsize=(10, 7))\n", "plt.title(\"MODEL STABILITY\")\n", "plt.text(-0.01 , v[3]-0.01, r'$g_K(t)$') # Manually add x-axis label\n", "plt.text(v[1]-0.01, -0.01 , r'$g_A(t)$') # Manually add y-axis label\n", "plt.axis(v)\n", "plt.box(False)\n", "plt.xticks([], []) # Hide x-axis ticks\n", "plt.yticks([], []) # Hide y-axis ticks\n", "plt.axvline(0, color=\"k\") # Add vertical axis\n", "plt.axhline(0, color=\"k\") # Add horizontal axis\n", "# Add both lines\n", "plt.plot(gA, ss_A, \"k-\", label=r'$g_A(t)$')\n", "plt.plot(gA, ss_K, \"k-\", label=r'$g_K(t)$')\n", "# Add equilibrium mark\n", "plt.axvline(A_star, -v[2]/(0.25), (0.05+K_star)/0.25, color=\"k\", ls=\":\")\n", "plt.axhline(K_star, 0.0 , A_star/v[1] , color=\"k\", ls=\":\")\n", "# Add reference values\n", "plt.text(A_star, -0.01 , r'$g_A(t)^*$', horizontalalignment=\"center\")\n", "plt.text(-0.001, K_star, r'$g_K(t)^*$', horizontalalignment=\"right\")\n", "# Add function labels\n", "plt.text(v[1]-0.03, v[3]-0.02, r'$\\dot{g_A(t)^*}=0$')\n", "plt.text(v[1]-0.09, v[3]-0.02, r'$\\dot{g_K(t)^*}=0$')\n", "# Model dynamics\n", "plt.plot(A_gA[0], A_gK[0], \"bo\")\n", "plt.plot(A_gA , A_gK , \"b:\")\n", "plt.plot(B_gA[0], B_gK[0], \"go\")\n", "plt.plot(B_gA , B_gK , \"g:\")\n", "plt.plot(C_gA[0], C_gK[0], \"ro\")\n", "plt.plot(C_gA , C_gK , \"r:\")\n", "plt.plot(D_gA[0], D_gK[0], \"co\")\n", "plt.plot(D_gA , D_gK , \"c:\")\n", "plt.text(A_gA[0]-0.005, A_gK[0] , \"A\", color=\"b\")\n", "plt.text(B_gA[0]-0.005, B_gK[0] , \"B\", color=\"g\")\n", "plt.text(C_gA[0] , C_gK[0]+0.005, \"C\", color=\"r\")\n", "plt.text(D_gA[0]+0.005, D_gK[0] , \"D\", color=\"c\")\n", "# Arrows\n", "plt.arrow(A_gA[0], A_gK[0], 0.005, 0 , color=\"b\")\n", "plt.arrow(A_gA[0], A_gK[0], 0 , 0.005, color=\"b\")\n", "plt.arrow(B_gA[0], B_gK[0], 0.005, 0 , color=\"g\")\n", "plt.arrow(B_gA[0], B_gK[0], 0 ,-0.005, color=\"g\")\n", "plt.arrow(C_gA[0], C_gK[0], -0.005, 0 , color=\"r\")\n", "plt.arrow(C_gA[0], C_gK[0], 0 ,-0.005, color=\"r\")\n", "plt.arrow(D_gA[0], D_gK[0], -0.005, 0 , color=\"c\")\n", "plt.arrow(D_gA[0], D_gK[0], 0 , 0.005, color=\"c\")\n", "# Build plot\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.8.8" } }, "nbformat": 4, "nbformat_minor": 4 }