{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# A Gentle Introduction to HARK" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook provides a simple, hands-on tutorial for first time HARK users -- and potentially first time Python users. It does not go \"into the weeds\" - we have hidden some code cells that do boring things that you don't need to digest on your first experience with HARK. Our aim is to convey a feel for how the toolkit works.\n", "\n", "For readers for whom this is your very first experience with Python, we have put important Python concepts in **boldface**. For those for whom this is the first time they have used a Jupyter notebook, we have put Jupyter instructions in _italics_. Only cursory definitions (if any) are provided here. If you want to learn more, there are many online Python and Jupyter tutorials.\n", "\n", "At the bottom of this notebook, we have included links to the other introductory notebooks for HARK." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "code_folding": [ 0 ], "is_executing": true }, "outputs": [], "source": [ "# This cell has a bit of initial setup. You can click the triangle to the left to expand it.\n", "# Click the \"Run\" button immediately above the notebook in order to execute the contents of any cell\n", "# WARNING: Each cell in the notebook relies upon results generated by previous cells\n", "# The most common problem beginners have is to execute a cell before all its predecessors\n", "# If you do this, you can restart the kernel (see the \"Kernel\" menu above) and start over\n", "\n", "from copy import deepcopy\n", "\n", "mystr = lambda number: f\"{number:.4f}\"\n", "import matplotlib.pyplot as plt\n", "from HARK.utilities import plot_funcs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Your First HARK Model: Perfect Foresight" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start with almost the simplest possible consumption model: A consumer with CRRA utility\n", "\n", "\\begin{align*}\n", "U(C) = \\frac{C^{1-\\rho}}{1-\\rho}\n", "\\end{align*}\n", "\n", "has perfect foresight about everything except the (stochastic) date of death, which may occur in each period, implying a \"survival probability\" each period of $\\newcommand{\\LivPrb}{\\mathsf{S}}\\LivPrb_t \\le 1$, and a complementary death probability of $\\mathsf{D}_t = 1 - \\LivPrb_t$; death ends the consumer's decision problem. Permanent labor income $P_t$ grows from period to period by a factor $\\Gamma_t$. At the beginning of each period $t$, the consumer has some amount of market resources $M_t$ (which includes both market wealth and current income) and must choose how much of those resources to consume $C_t$ and hold the rest in a riskless asset $A_t$ which will earn return factor $R$. The agent's flow of utility $U(C_t)$ from consumption is geometrically discounted by factor $\\beta$.\n", "\n", "The agent's problem can be written in Bellman form as:\n", "\n", "\\begin{align*}\n", "V_t(M_t,P_t) &= \\max_{C_t}U(C_t) + \\beta \\LivPrb_t V_{t+1}(M_{t+1},P_{t+1})\\\\\n", "&\\text{s.t.} \\\\\n", "A_t &= M_t - C_t \\\\\n", "M_{t+1} &= R_{t+1} (M_{t}-C_{t}) + Y_{t+1}, \\\\\n", "P_{t+1} &= \\Gamma_{t+1} P_t, \\\\\n", "\\end{align*}\n", "\n", "A particular perfect foresight agent's problem can be characterized by values of risk aversion $\\rho$, discount factor $\\beta$, and return factor $R$, along with sequences of income growth factors $\\{ \\Gamma_t \\}$ and survival probabilities $\\{\\LivPrb\\}$. To keep things simple, let's forget about \"sequences\" of income growth and mortality, and just think about an *infinite horizon* consumer with constant income growth and survival probability: $\\Gamma_t = \\Gamma$ and $\\LivPrb_t = \\LivPrb$ for all $t$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Representing Agents in HARK" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "HARK represents agents solving this type of problem as $\\textbf{instances}$ of the $\\textbf{class}$ `PerfForesightConsumerType`, a $\\textbf{subclass}$ of `AgentType`. To make agents of this class, we must import the class itself into our workspace. (Run the cell below in order to do this)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from HARK.ConsumptionSaving.ConsIndShockModel import PerfForesightConsumerType" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `PerfForesightConsumerType` class contains within itself the Python code that constructs the solution for the perfect foresight model we are studying here, as specifically articulated in [these lecture notes](https://www.econ2.jhu.edu/people/ccarroll/public/lecturenotes/consumption/PerfForesightCRRA/).\n", "\n", "To create an instance of `PerfForesightConsumerType`, we simply call the class as if it were a function, passing as arguments the specific parameter values we want it to have. In the hidden cell below, we define a **dictionary** named `PF_dictionary` with these parameter values:\n", "\n", "| Param | Description | Code | Value |\n", "| :---: | --- | :---: | :---: |\n", "| $\\rho$ | Relative risk aversion | `CRRA` | 2.5 |\n", "| $\\beta$ | Discount factor | `DiscFac` | 0.96 |\n", "| $R$ | Risk free interest factor | `Rfree` | 1.03 |\n", "| $\\LivPrb$ | Survival probability | `LivPrb` | 0.98 |\n", "| $\\Gamma$ | Income growth factor | `PermGroFac` | 1.01 |\n", "\n", "For now, don't worry about the specifics of dictionaries. All you need to know is that a dictionary lets us pass many arguments wrapped up in one simple data structure." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "code_folding": [ 0 ] }, "outputs": [], "source": [ "# This cell defines a parameter dictionary. You can expand it if you want to see what that looks like.\n", "PF_dictionary = {\n", " \"CRRA\": 2.5,\n", " \"DiscFac\": 0.96,\n", " \"Rfree\": [1.03],\n", " \"LivPrb\": [0.98],\n", " \"PermGroFac\": [1.01],\n", " \"cycles\": 0, # don't worry about this; it just means we want an infinite horizon model\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's make an **object** named `PFexample` which is an **instance** of the `PerfForesightConsumerType` class. The object `PFexample` will bundle together the abstract mathematical description of the solution embodied in `PerfForesightConsumerType` and the specific set of parameter values defined in `PF_dictionary`. Such a bundle is created by passing `PF_dictionary` to the class `PerfForesightConsumerType`:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "PFexample = PerfForesightConsumerType(**PF_dictionary)\n", "# The asterisks ** basically say \"here come some arguments in a dictionary\" to PerfForesightConsumerType." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In `PFexample`, we now have _defined_ the problem of a particular infinite horizon perfect foresight consumer who knows how to solve this problem.\n", "\n", "Note that each `AgentType` subclass has default parameters built right into it-- you *can* make an instance of each class without passing any parameters at all!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solving an Agent's Problem\n", "\n", "To tell the agent actually to solve the problem, we call the agent's `solve` **method**. (A method is essentially a function that an object runs that affects the object's own internal characteristics. In this case, the method adds the consumption function to the contents of `PFexample`.)\n", "\n", "The cell below calls the `solve` method for `PFexample`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "PFexample.solve()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Running the `solve` method creates the **attribute** of `PFexample` named `solution`. In fact, every subclass of `AgentType` works the same way: The class definition contains the abstract algorithm that knows how to solve the model, but to obtain the particular solution for a specific instance (parameterization/configuration), that instance must be instructed to `solve()` its problem.\n", "\n", "The `solution` attribute is always a **list** of solutions to a single period of the problem. In the case of an infinite horizon model like the one here, there is just one element in that list -- the solution to all periods of the infinite horizon problem. The consumption function stored as the first element (index 0) of the solution list can be retrieved by:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PFexample.solution[0].cFunc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the results demonstrated in Chris Carroll's [lecture notes](https://www.econ2.jhu.edu/people/ccarroll/public/lecturenotes/consumption/PerfForesightCRRA/) is that, for the specific problem defined above, there is a solution in which the _ratio_ $c = C/P$ is a linear function of the _ratio_ of market resources to permanent income, $m = M/P$.\n", "\n", "This is why `cFunc` can be represented by a linear interpolation. It can be plotted between an $m$ ratio of 0 and 10 using the command below." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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GUrE6Sbx/onnuXjxogx99f15Eqdv169fL3vRxCw8cWpR9N7cjZixJj73uXPnys9bhBrxvGlpafKx6/O+iFrvVPvNRE+QqOnG05uix0i8LtHzd+NtIgiK97mG+LzFZ0DUEhiIiBpB9KyIbvybe47EAeT555+X4x7E6RlxOupO4yqaQhyU//nPf8pp2eJAI8buiIBWM23+Xn755Rd5cBWnzMSlhvirfM+ePXIBR9H7IKZenzp1Sh5se/XqhQULFtR+7zvvvCNPr4iDsTiIvv766/LAaUmv80bivj/88IO8rzhAi2UC7vU6RTAQAUD0mpSXl8uejYYcoO/2+CJcJCYmynAmelFEOBA1Pf744/X+eRKnoURNYikCsZyAeL579RAJ4lSUCIYiQOXl5cmw+ac//aledQv3qv3mQCTeexHEbrzt5nFa4raa02VCbm6uPEVK1FLsxMjqFns2IiKiehA9UiJwffPNN0qXQirBMURERGRxRI+g6J0Sp6iPHz+udDmkAuwhIiIiItVjDxERERGpHgMRERERqR4DEREREakeAxERERGpHgMRERERqR4DEREREakeAxERERGpHgMRERERqR4DEREREakeAxERERGpHgMRERERqR4DEREREUHt/j8katILQ0Ut0AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mPlotTop = 10\n", "plt.xlabel(r\"Normalized market resources $m_t$\")\n", "plt.ylabel(r\"Normalized consumption $c_t$\")\n", "plot_funcs(PFexample.solution[0].cFunc, 0.0, mPlotTop)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The figure illustrates one of the surprising features of the perfect foresight model: A person with zero money should be spending at a rate more than double their income (that is, `cFunc(0.0)` $\\approx 2.08$ - the intersection on the vertical axis). How can this be?\n", "\n", "The answer is that we have not incorporated any constraint that would prevent the agent from borrowing against the entire PDV of future earnings-- their \"human wealth\". How much is that? What's the minimum value of $m_t$ where the consumption function is defined? We can check by retrieving the `hNrm` **attribute** of the solution, which calculates the value of human wealth normalized by permanent income:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This agent's human wealth is 50.49994992551661 times his current income level.\n", "This agent's consumption function is defined (consumption is positive) down to m_t = -50.49994992551661\n" ] } ], "source": [ "humanWealth = PFexample.solution[0].hNrm\n", "mMinimum = PFexample.solution[0].mNrmMin\n", "print(\n", " \"This agent's human wealth is \"\n", " + str(humanWealth)\n", " + \" times his current income level.\",\n", ")\n", "print(\n", " \"This agent's consumption function is defined (consumption is positive) down to m_t = \"\n", " + str(mMinimum),\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yikes! Let's take a look at the bottom of the consumption function. In the cell below, the bounds of the `plot_funcs` function are set to display down to the lowest defined value of the consumption function." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.xlabel(r\"Normalized market resources $m_t$\")\n", "plt.ylabel(r\"Normalized consumption $c_t$\")\n", "plot_funcs(PFexample.solution[0].cFunc, mMinimum, mPlotTop)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Changing Agent Parameters\n", "\n", "Suppose you wanted to change one (or more) of the parameters of the agent's problem and see what that does. We want to compare consumption functions before and after we change parameters, so let's make a new instance of`PerfForesightConsumerType` by copying `PFexample`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "NewExample = deepcopy(PFexample)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can assign new parameters to an `AgentType` with the `assign_parameters` method. For example, we could make the new agent less patient:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "nbsphinx-thumbnail": {} }, "outputs": [ { "data": { "image/png": "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mRX6RTsgIKDSrxH91bm/mI4T841lt7S0NNkfEtjYZK+DiIiILItZJUTOzs7o3Lkzdu7caegTi6pFOzo6utKvEf3l7y/8+OOPd72/i4uLXHxV/kZERES2zeymzMQC6XHjxqFLly6IjIzE+++/L3eRPf300/LzY8eORVBQkJz6EiZPnoyHH34YixYtwuDBg7F27VokJCTgo48+UvmVEBERkaUwu4RIbKPPysrC66+/LhdGi+3z27ZtMyycTk1NlTvPysTExGDNmjWYOXMmZsyYgebNm8sdZm3btlXxVRAREZElMbs6RJZex4CIiIgs7/3brNYQEREREamBCRERERHZPCZEREREZPOYEBEREZHNY0JERERENo8JEREREdk8JkRERERk85gQERERkc1jQkREREQ2z+yO7qhrZYW6RcVLIiIisgxl79umOnDD5hOi/Px8+f+QkBC1QyEiIqJqunr1qjzCo6Zs/iwznU6Hy5cvw9PTE3Z2djLjFMlRWloazzarAV5H0+B1NA1eR9PgdTQNXkfTEGeYhYaGIicnB97e3jV+PJsfIbK3t0dwcPAd/eKblN+oNcfraBq8jqbB62gavI6mwetouvdxkzyOSR6FiIiIyIIxISIiIiKbx4ToNi4uLnjjjTfk/8l4vI6mwetoGryOpsHraBq8juZ5HW1+UTURERERR4iIiIjI5jEhIiIiIpvHhIiIiIhsHhMiIiIisnlMiMpp0qSJrFZd/rZgwYIK9zly5Ah69OgBV1dXWWn07bffVi1ec1dcXIwOHTrI63j48OEKn+N1vL9hw4bJKqziGjVu3BhjxoyRVdXL43W8twsXLmD8+PFo2rQp3NzcEB4eLnellJSUVLgfr+P9/fOf/0RMTAzc3d3vWhU4NTUVgwcPlvdp1KgRXnvtNWi12jqP1dz9+9//lu834vstKioKv/76q9ohmbW9e/di6NChCAwMlO8nGzZsqPB5sTfs9ddfl78nxc953759cebMmWo/DxOi27z55ptIT0833CZNmlSh3Hq/fv0QFhaGxMREvPPOO5g9ezY++ugjVWM2V3/729/kN/DteB2r5pFHHsFXX32FU6dOYd26dTh37hwef/xxw+d5He/v5MmT8nieFStW4NixY3jvvfewfPlyzJgxw3AfXseqEUnkE088gYkTJ1b6+dLSUpkMifvFxcXh008/xapV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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "NewExample.assign_parameters(DiscFac=0.90)\n", "NewExample.solve()\n", "mPlotBottom = mMinimum\n", "plt.xlabel(r\"Normalized market resources $m_t$\")\n", "plt.ylabel(r\"Normalized consumption $c_t$\")\n", "plot_funcs(\n", " [PFexample.solution[0].cFunc, NewExample.solution[0].cFunc],\n", " mPlotBottom,\n", " mPlotTop,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Note that you can pass a **list** of functions to `plot_funcs` as the first argument rather than just a single function. Lists are written inside of [square brackets].)\n", "\n", "Let's try to deal with the \"problem\" of massive human wealth by making another consumer who has essentially no future income. We can virtually eliminate human wealth by making the permanent income growth factor *very* small.\n", "\n", "In `PFexample`, the agent's income grew by 1 percent per period -- his `PermGroFac` took the value 1.01. What if our new agent had a growth factor of 0.01 -- his income __shrinks__ by 99 percent each period? In the cell below, set `NewExample`'s discount factor back to its original value, then set its `PermGroFac` attribute so that the growth factor is 0.01 each period.\n", "\n", "Important: Recall that the model at the top of this document said that an agent's problem is characterized by a sequence of income growth factors, but we tabled that concept. Because `PerfForesightConsumerType` treats `PermGroFac` as a __time-varying__ attribute, it must be specified as a **list** (with a single element in this case)." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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EPN4humFF16o8HHtjwQAABDSBZNuiusoLy9PDh06JOHh4abVAAUTAACQUC+YdOPd8vodjB07Vm6++ebqjgsAACA4M0zaFEq7f0+ePNmbLwsAABBcoW/tpqk3AAAACfUludmzZzvd1x1WdA+4v/zlL2YDXQAAAAn1gumNN95wuq+b4jZu3NhsmTJp0iRvjA0AACCwCya9Ig4AACAUeJxhunjxomRlZdnv//TTT/Lmm2/KV1995a2xAQAABHbBNGLECPnggw/M16mpqdKvXz957bXXzPE5c+Z4c4wAAACBWTBt27ZNrrzySvP1J598IklJSWaWSYuo0oFwAACAkCyYdDkuISHBfK3LcLfccosJfg8YMMAUTgAAABLqBVP79u1l2bJlcuTIEVmxYoUMGzbMHD916pRpYAkAACChXjDpXnGPP/64tGnTRvr37y8DBw60zzb17NnTm2MEAADwqTo27TjpoRMnTphmld27dzfLceqbb74xM0wdO3aUYKF75NWvX990MGf2DACA0Pv89rgPk9Kgt94c6dVyAAAAwaRaBdOqVavMTXNLhYWFTo+999571R0bAABAYBdMU6dOlRdeeEH69OkjzZo1kzp16nh3ZAAAAIFeMM2dO1fef/99ufvuu707IgAAgGC5Si43N1cGDRrk3dEAAAAEU8F03333yaJFi7w7GgAAgGBaksvOzpZ58+bJypUrpVu3bhIREeH0+Ouvv+6N8QEAAARuwfT9999Ljx49zNe7du1yeowAOAAACCYeF0yrV6/27kgAAACCLcMEAAAQKqrVuDI1NVXeffdd+eGHH8z9Tp06ybhx40wbcgAAAAn1GaZvv/1W2rVrJ2+88YacO3fO3PRrPbZt2zbvjhIAACAQN9+98sorpX379jJ//nwJDy+aqMrPzzftBg4ePCjr1q2TYMHmuwAAhPbnt8cFU0xMjGzfvl06duzodHzPnj1mu5SsrCwJFhRMAACE9ue3x0ty+o1TUlLKHD9y5IgkJCR49Jpz5swxPZ30tfU2cOBA+fLLLyt8zpIlS0zRFh0dLV27dpV//OMfTo9rPThlyhSz350WeUOHDpV9+/Z5ND4AABCaPC6Ybr/9dhPw/vjjj02RpLfFixebJblRo0Z59JotWrSQmTNnytatW01G6tprr5URI0bI7t27yz1/w4YN5nvpOHS2a+TIkebm2Bdq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9NJLbc8884wtJyfH10MLCatXry73M2LMmDH21gKTJ0+2NW3a1Px/ZciQIba9e/dW6XvU0f+pmXoPAAAgOJBhAgAAcIOCCQAAwA0KJgAAADcomAAAANygYAIAAHCDggkAAMANCiYAAAA3KJgAAADcoGACAABwg4IJCFHXXHON2V/J1f3a+J6+5m/jAeC/KJiAaho7dqzUqVNHZs6c6XR82bJl5nig+PTTT2XatGm+HkZAoeACQgcFE+AF0dHR8vLLL8v58+e99pq5ublSm3RX74SEBAkFtf2z9bfvH6hjA3yJggnwgqFDh0pSUpLMmDHD5Tk5OTnyyCOPSJMmTUyBNXjwYNmyZYvTbMVDDz1kZiwaNWokw4cPtx9/+OGHzfHExERp2rSpzJ8/XzIzM+Wee+4xRU779u3lyy+/dPp+y5cvN9/jkksukYYNG8ovf/lLOXDgQKVmSw4fPmxmx0rf9BxVWFho3mvbtm0lJiZGunfvLp988onT6+n4Ro8eLfHx8dKsWTN57bXX3P4cPXmvlXmfrn62pf3973+X+vXry4cffuj2ferM4tq1a+Wtt96y/3z05+bqfZX3/d39HPXrrl27msf0venfM/1ZVObvk2rTpo28+eabTsd69Oghzz//fIVj03HNmjXL/KyjoqKkVatW8uKLL9qfU5nff0VjL836+/a3v/1NrrrqKvOcvn37SkpKivzrX/+SAQMGSGxsrAwZMkRSU1PLfQ2gplEwAV5Qt25deemll+RPf/qTHD16tNxzJk6caD4QFi5cKNu2bTMfRvrhdO7cOfs5+lhkZKT8+9//lrlz5zod1w+zb775xhQU48ePl9tuu00GDRpkXmvYsGFy9913S1ZWlv05+uH02GOPybfffiurVq2SsLAwufnmm82HnTstW7aU48eP22/bt283H3r6Yab0w/KDDz4wY9y9e7f84Q9/kLvuussUEJYnnnjC3P/ss8/kq6++kjVr1pixulPV91rZ9+nqZ2tZtGiRjBo1yhRLd955p9v3qYXSwIED5f7777f/nPTnVtH7Kv39K3p9fT0dz7333is//PCD+fndcsstYrPZKv33qbJKj23SpElmiXny5MmyZ88e87PR4tXi7vfvbuylfffdd+bPOXPmmP8fbdiwQU6ePGleU8fx9ttvy+rVq815CxYsqPL7A7zCBqBaxowZYxsxYoT5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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Revert NewExample's discount factor and make his future income minuscule\n", "# WRITE YOUR CODE HERE!\n", "\n", "# Compare the old and new consumption functions\n", "plt.xlabel(r\"Normalized market resources $m_t$\")\n", "plt.ylabel(r\"Normalized consumption $c_t$\")\n", "plot_funcs([PFexample.solution[0].cFunc, NewExample.solution[0].cFunc], 0.0, 10.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now `NewExample's consumption function has the same slope (MPC) as `PFexample`, but it emanates from (almost) zero-- he has basically no future income to borrow against!\n", "\n", "If you'd like, use the cell above to alter `NewExample`'s other attributes (relative risk aversion `CRRA`, etc) and see how the consumption function changes. However, keep in mind that *no solution exists* for some combinations of parameters. HARK should let you know if this is the case if you try to solve such a model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Your Second HARK Model: Adding Income Shocks\n", "\n", "Linear consumption functions are pretty boring, and you'd be justified in feeling unimpressed if all HARK could do was plot some lines. Let's look at another model that adds two important layers of complexity: income shocks and (artificial) borrowing constraints.\n", "\n", "Specifically, our new type of consumer receives two income shocks at the beginning of each period: a completely transitory shock $\\theta_t$ and a completely permanent shock $\\psi_t$. Moreover, lenders will not let the agent borrow money such that his ratio of end-of-period assets $A_t$ to permanent income $P_t$ is less than $\\underline{a}$. As with the perfect foresight problem, this model can be framed in terms of __normalized__ variables, e.g. $m_t \\equiv M_t/P_t$. (See [here](https://www.econ2.jhu.edu/people/ccarroll/papers/BufferStockTheory/) for all the theory). Accordingly, the normalized utility and continuation value are $u$ and $v_t$.\n", "\n", "\\begin{align*}\n", "v_t(m_t) &= \\max_{c_t} u(c_t) + \\LivPrb_t \\beta \\mathbb{E} [(\\Gamma_{t+1}\\psi_{t+1})^{1-\\rho} v_{t+1}(m_{t+1}) ] ~~ \\text{s.t.} \\\\\n", "a_t &= m_t - c_t, \\\\\n", "a_t &\\geq \\underline{a}, \\\\\n", "m_{t+1} &= R_{t+1}/(\\Gamma_{t+1} \\psi_{t+1}) a_t + \\theta_{t+1},\\\\\n", "(\\psi_{t+1},\\theta_{t+1}) &\\sim F_{t+1}, \\\\\n", "\\mathbb{E}[\\psi_t]&=\\mathbb{E}[\\theta_t] = 1, \\\\\n", "u(c) &= \\frac{c^{1-\\rho}}{1-\\rho}.\n", "\\end{align*}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "HARK represents agents with this kind of problem as instances of the class `IndShockConsumerType`. To create an `IndShockConsumerType`, we must specify the same set of parameters as for a `PerfForesightConsumerType`, as well as an artificial borrowing constraint $\\underline{a}$ and a sequence of income shock distributions. It's easy enough to pick a borrowing constraint -- say, zero -- but how would we specify the distributions of the shocks? Can't the joint distribution of permanent and transitory shocks be just about anything?\n", "\n", "_Yes_, and HARK can handle whatever correlation structure a user might care to specify. However, the default behavior of `IndShockConsumerType` is that the distribution of permanent income shocks is mean one lognormal, and the distribution of transitory shocks is mean one lognormal augmented with a point mass representing unemployment. The distributions are independent of each other by default, and by default are approximated with $N$ point equiprobable distributions.\n", "\n", "Let's make an infinite horizon instance of `IndShockConsumerType` with the same parameters as our original perfect foresight agent, plus the extra parameters to specify the income shock distribution and the artificial borrowing constraint. As before, we'll make a dictionary:\n", "\n", "\n", "| Param | Description | Code | Value |\n", "| :---: | --- | --- | :---: |\n", "| $\\underline{a}$ | Artificial borrowing constraint | `BoroCnstArt` | 0.0 |\n", "| $\\sigma_\\psi$ | Underlying stdev of permanent income shocks | `PermShkStd` | 0.1 |\n", "| $\\sigma_\\theta$ | Underlying stdev of transitory income shocks | `TranShkStd` | 0.1 |\n", "| $N_\\psi$ | Number of discrete permanent income shocks | `PermShkCount` | 7 |\n", "| $N_\\theta$ | Number of discrete transitory income shocks | `TranShkCount` | 7 |\n", "| $\\mho$ | Unemployment probability | `UnempPrb` | 0.05 |\n", "| $\\underset{\\bar{}}{\\theta}$ | Transitory shock when unemployed | `IncUnemp` | 0.3 |" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "code_folding": [ 0 ] }, "outputs": [], "source": [ "# This cell defines a parameter dictionary for making an instance of IndShockConsumerType.\n", "\n", "IndShockDictionary = {\n", " \"cycles\": 0,\n", " \"CRRA\": 2.5, # The dictionary includes our original parameters...\n", " \"Rfree\": [1.03],\n", " \"DiscFac\": 0.96,\n", " \"LivPrb\": [0.98],\n", " \"PermGroFac\": [1.01],\n", " \"PermShkStd\": [0.1],\n", " \"PermShkCount\": 7, # and the new parameters for constructing the income process.\n", " \"TranShkStd\": [0.1],\n", " \"TranShkCount\": 7,\n", " \"UnempPrb\": 0.05,\n", " \"IncUnemp\": 0.3,\n", " \"BoroCnstArt\": 0.0, # This says that the agent can't end the period with negative assets\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we need to import the relevant subclass of `AgentType` into our workspace, then create an instance by passing the dictionary to the class as if the class were a function." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "from HARK.ConsumptionSaving.ConsIndShockModel import IndShockConsumerType\n", "\n", "IndShockExample = IndShockConsumerType(**IndShockDictionary)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can solve our new agent's problem just like before, using the `solve` method." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IndShockExample.solve()\n", "plt.xlabel(r\"Normalized market resources $m_t$\")\n", "plt.ylabel(r\"Normalized consumption $c_t$\")\n", "plot_funcs(IndShockExample.solution[0].cFunc, 0.0, 10.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a classic concave consumption function with risky labor income. We didn't bother labeling axes for this simple example, but the horizontal axis represents normalized market resources $m_t$ (cash-on-hand divided by permanent income) and the vertical axis represents normalized consumption. \n", "\n", "Note that at low levels of $m_t$, the slope of the consumption function is 1. This is where the agent is liquidity constrained: they *want* to consume more than their available $m_t$, but are not permitted to because of the constrained that $a_t \\geq \\underline{a} = 0$. Hence they consume as much as they can, $c_t = m_t \\longrightarrow a_t = 0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Changing Constructed Attributes\n", "\n", "In the parameter dictionary above, we chose values for HARK to use when constructing its numeric representation of $F_t$, the joint distribution of permanent and transitory income shocks. When `IndShockExample` was created, those parameters (`TranShkStd`, etc) were used by `IndShockConsumerType` to construct an attribute called `IncomeDstn`.\n", "\n", "Suppose you were interested in changing (say) the amount of permanent income risk. From the section above, you might think that you could simply change the attribute `TranShkStd`, solve the model again, and it would work.\n", "\n", "That's _almost_ true-- there's one small extra step. `TranShkStd` is a primitive input, but it's not the thing you _actually_ want to change. Changing `TranShkStd` doesn't actually update the income distribution... unless you tell it to. Likewise, just like changing an agent's preferences does not change the consumption function that was stored for the old set of parameters -- until you invoke the `solve` method again). In the cell below, we invoke the method `update` so HARK knows to rebuild its constructed attributes, including `IncomeDstn`." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "OtherExample = deepcopy(\n", " IndShockExample,\n", ") # Make a copy so we can compare consumption functions\n", "OtherExample.assign_parameters(\n", " PermShkStd=[0.2],\n", ") # Double permanent income risk (note that it's a one element list)\n", "OtherExample.update() # Call the method to reconstruct the representation of F_t\n", "OtherExample.solve()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In general, agents in HARK have an `update` method that calls *all* of their various constructors. If you change a parameter that describes a constructed attribute of your agent, invoking the `update` method will re-construct that attribute using the new parameter value.\n", "\n", "You can learn more about constructors and model defaults in [this notebook](./Constructors-Intro.ipynb).\n", "\n", "In the cell below, use your blossoming HARK skills to plot the consumption function for `IndShockExample` and `OtherExample` on the same figure." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# Use the line(s) below to plot the consumptions functions against each other" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Learning More About HARK\n", "\n", "This is the *gentle* introduction, giving you only the most basic information about how to use it... but there is *so* much more to cover!\n", "\n", "Here is a set of links to additional introductory notebooks, organized by topic. We provide them here in our (loosely) suggested reading order, but they can *mostly* be tackled in any order you like." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- [Simulation-Intro](./Simulation-Intro.ipynb): Once you've *solved* a dynamic model, you probably want to see how the agents act out their model over time. This notebook provides an introduction to how simulation works in HARK.\n", "- [Cycles-Intro](./Cycles-Intro.ipynb): Did you notice that we slipped the parameter `cycles=0` into the dictionaries above, but then never discussed it? This notebook explains how HARK's timing works, including both life-cycle and infinite horizon models... and more unusual cases.\n", "- [Constructors-Intro](./Constructors-Intro.ipynb): We mentioned above that each `AgentType` subclass has default parameters, and that some model inputs are *constructed*. This notebook explains where default parameters and constructors live, and how to change constructors.\n", "- [Advanced-Intro](./Advanced-Intro.ipynb): Assorted \"advanced\" concepts in HARK, including our distance metric, some uncommon solver options, utility functions, distribution objects, etc.\n", "- [Methods-Intro](./Methods-Intro.ipynb): This notebook explains some of the economic and numeric methods that we commonly use in HARK. This includes the endogenous grid method, interpolation methods, \"pseudo-inverse\" functions, and a discretization of the lognormal distribution.\n", "- [Model-List](Model-List.ipynb): Enough with all the explanations and details, just tell me about what models are in HARK! Ok, ok, here it is.\n", "- [AgentType-Intro](./AgentType-Intro.ipynb): If you're ready to not just *use* HARK's models, but now *make* a new one on your own, this is the notebook you want to read. If you're confused about something you found in our code and it seems to be a feature of `AgentType`s generally, the answer is (hopefully) here.\n", "- [Market-Intro](./Market-Intro.ipynb): `AgentType` is HARK's superclass for \"microeconomic\" dynamic models, but we also have the `Market` superclass for \"macroeconomic\" models. This notebook explains why we put scare quotes on those terms, and how `Market` works.\n", "- [SSJ-tutorial](../SequenceSpaceJacobians/SSJ-tutorial.ipynb): Most HARK `AgentType`s are now capable of automatically generating **sequence space Jacobians**, which can be used with the `sequence_jacobian` toolkit. This notebook explains how that works (with examples)." ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "collapsed,code_folding", "formats": "ipynb" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.9" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }