{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# A Gentle Introduction to HARK\n", "\n", "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." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2024-07-11T15:31:45.257682Z", "iopub.status.busy": "2024-07-11T15:31:45.257280Z", "iopub.status.idle": "2024-07-11T15:31:45.780971Z", "shell.execute_reply": "2024-07-11T15:31:45.780431Z" }, "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", "from HARK.utilities import plot_funcs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Your First HARK Model: Perfect Foresight\n", "\n", "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}{\\aleph}\\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 \\aleph_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 (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 $\\{\\aleph_t\\}$. 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$.\n", "\n", "## Representing Agents in HARK\n", "\n", "HARK represents agents solving this type of problem as $\\textbf{instances}$ of the $\\textbf{class}$ $\\texttt{PerfForesightConsumerType}$, a $\\textbf{subclass}$ of $\\texttt{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": { "execution": { "iopub.execute_input": "2024-07-11T15:31:45.783058Z", "iopub.status.busy": "2024-07-11T15:31:45.782716Z", "iopub.status.idle": "2024-07-11T15:31:45.985852Z", "shell.execute_reply": "2024-07-11T15:31:45.985315Z" } }, "outputs": [], "source": [ "from HARK.ConsumptionSaving.ConsIndShockModel import PerfForesightConsumerType" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The $\\texttt{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 $\\texttt{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 $\\textbf{dictionary}$ named `PF_dictionary` with these parameter values:\n", "\n", "| Param | Description | Code | Value |\n", "| :---: | --- | :---: | :---: |\n", "| $\\rho$ | Relative risk aversion | $\\texttt{CRRA}$ | 2.5 |\n", "| $\\beta$ | Discount factor | $\\texttt{DiscFac}$ | 0.96 |\n", "| $R$ | Risk free interest factor | $\\texttt{Rfree}$ | 1.03 |\n", "| $\\aleph$ | Survival probability | $\\texttt{LivPrb}$ | 0.98 |\n", "| $\\Gamma$ | Income growth factor | $\\texttt{PermGroFac}$ | 1.01 |\n", "\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 ], "execution": { "iopub.execute_input": "2024-07-11T15:31:45.987897Z", "iopub.status.busy": "2024-07-11T15:31:45.987607Z", "iopub.status.idle": "2024-07-11T15:31:45.990971Z", "shell.execute_reply": "2024-07-11T15:31:45.990272Z" } }, "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", " \"T_cycle\": 1,\n", " \"cycles\": 0,\n", " \"AgentCount\": 10000,\n", "}\n", "\n", "# To those curious enough to open this hidden cell, you might notice that we defined\n", "# a few extra parameters in that dictionary: T_cycle, cycles, and AgentCount. Don't\n", "# worry about these for now." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's make an **object** named $\\texttt{PFexample}$ which is an **instance** of the $\\texttt{PerfForesightConsumerType}$ class. The object $\\texttt{PFexample}$ will bundle together the abstract mathematical description of the solution embodied in $\\texttt{PerfForesightConsumerType}$ and the specific set of parameter values defined in `PF_dictionary`. Such a bundle is created passing `PF_dictionary` to the class $\\texttt{PerfForesightConsumerType}$:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2024-07-11T15:31:45.992416Z", "iopub.status.busy": "2024-07-11T15:31:45.992233Z", "iopub.status.idle": "2024-07-11T15:31:45.994954Z", "shell.execute_reply": "2024-07-11T15:31:45.994488Z" } }, "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 $\\texttt{PFexample}$, we now have _defined_ the problem of a particular infinite horizon perfect foresight consumer who knows how to solve this problem.\n", "\n", "## Solving an Agent's Problem\n", "\n", "To tell the agent actually to solve the problem, we call the agent's $\\texttt{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 $\\texttt{PFexample}$.)\n", "\n", "The cell below calls the $\\texttt{solve}$ method for $\\texttt{PFexample}$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2024-07-11T15:31:45.996709Z", "iopub.status.busy": "2024-07-11T15:31:45.996229Z", "iopub.status.idle": "2024-07-11T15:31:46.061447Z", "shell.execute_reply": "2024-07-11T15:31:46.060973Z" } }, "outputs": [], "source": [ "PFexample.solve()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Running the $\\texttt{solve}$ method creates the **attribute** of $\\texttt{PFexample}$ named $\\texttt{solution}$. In fact, every subclass of $\\texttt{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 $\\texttt{solve()}$ its problem.\n", "\n", "The $\\texttt{solution}$ attribute is always a $\\textit{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": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.063061Z", "iopub.status.busy": "2024-07-11T15:31:46.062815Z", "iopub.status.idle": "2024-07-11T15:31:46.067287Z", "shell.execute_reply": "2024-07-11T15:31:46.066822Z" } }, "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 proven in the associated [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 $\\texttt{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": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.068767Z", "iopub.status.busy": "2024-07-11T15:31:46.068518Z", "iopub.status.idle": "2024-07-11T15:31:46.340520Z", "shell.execute_reply": "2024-07-11T15:31:46.339983Z" } }, "outputs": [ { "data": { "image/png": "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s9nweDwmLRKAxMREYmJivnZf7nQ6+eSTTzp9X+7VDwktWrSI733ve9xxxx2MGzeOl156iUuXLvH973/f7Gk+Jzs7m02bNlFYWEhoaOjVxx4dDgdBQUEmr/MdoaGhf/G8oeDgYG6//XY9n8gECxcuZMKECaxevZqsrCwOHjzIL3/5S375y1+aPc3nzJw5k1WrVpGQkMDIkSP59NNPWb9+PfPmzTN7Wp/X1NREVVXV1berq6s5dOgQERERJCQksGDBAv7t3/6NoUOHkpiYyNKlS4mNjWXWrFmd+0A99JNMN83PfvYzIyEhwQgICDDGjRtnfPzxx2ZP8knANf+88cYbZk/zefqxZnMVFRUZqampht1uN4YPH2788pe/NHuST3I6ncaPfvQjIyEhwQgMDDSSkpKMJUuWGC6Xy+xpfd6uXbuuef/wve99zzCMKz/avHTpUiM6Otqw2+3Gd77zHaOysrLTH8diGPo1gCIiIuLdvPY5LCIiIiJ/omARERERr6dgEREREa+nYBERERGvp2ARERERr6dgEREREa+nYBERERGvp2ARERERr6dgEREREa+nYBERERGvp2ARERERr6dgEREREa/3/wOBOabCH8MH+AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mPlotTop = 10\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, $\\texttt{cFunc}(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 $\\texttt{hNrm}$ **attribute** of the solution, which calculates the value of human wealth normalized by permanent income:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.342305Z", "iopub.status.busy": "2024-07-11T15:31:46.341956Z", "iopub.status.idle": "2024-07-11T15:31:46.345683Z", "shell.execute_reply": "2024-07-11T15:31:46.345190Z" } }, "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": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.347444Z", "iopub.status.busy": "2024-07-11T15:31:46.347004Z", "iopub.status.idle": "2024-07-11T15:31:46.432264Z", "shell.execute_reply": "2024-07-11T15:31:46.431740Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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 $\\texttt{PerfForesightConsumerType}$ by copying $\\texttt{PFexample}$." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.434124Z", "iopub.status.busy": "2024-07-11T15:31:46.433762Z", "iopub.status.idle": "2024-07-11T15:31:46.436789Z", "shell.execute_reply": "2024-07-11T15:31:46.436258Z" } }, "outputs": [], "source": [ "NewExample = deepcopy(PFexample)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can assign new parameters to an `AgentType` with the `assign_parameter` method. For example, we could make the new agent less patient:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.438488Z", "iopub.status.busy": "2024-07-11T15:31:46.438193Z", "iopub.status.idle": "2024-07-11T15:31:46.572178Z", "shell.execute_reply": "2024-07-11T15:31:46.571694Z" }, "nbsphinx-thumbnail": {} }, "outputs": [ { "data": { "image/png": "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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", "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 $\\textit{very}$ small.\n", "\n", "In $\\texttt{PFexample}$, the agent's income grew by 1 percent per period -- his $\\texttt{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 $\\texttt{NewExample}$'s discount factor back to its original value, then set its $\\texttt{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 $\\texttt{PerfForesightConsumerType}$ treats $\\texttt{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": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.573931Z", "iopub.status.busy": "2024-07-11T15:31:46.573666Z", "iopub.status.idle": "2024-07-11T15:31:46.637587Z", "shell.execute_reply": "2024-07-11T15:31:46.637115Z" } }, "outputs": [ { "data": { "image/png": "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oENNnz5+euKJJ/Thhx/qk08+uexA43A4tGbNGj322GOXHDt69Gilp6fr4MGDPf7cYrEoOTnZ7wYAAMJbUEVhwzD05JNPau3ataqsrFRBQcFlX/v+++/L6XTqu9/97iXHHj9+XA0NDcrOzg5megAAIIwFtVJTWlqq//iP/1BFRYWSkpJUW1ur2tpaXbhwwTOmpKRECxYs6HbtO++8o+LiYqWlpfk93tTUpJ/97Gfatm2bjhw5ok2bNmn27NkaM2aMioqK+viyAABAuAlqpaa8vFxS54Z6vlatWqU5c+ZIkmpqahQZ6Z+VDhw4oC1btugvf/lLt+eMiorSF198odWrV6uxsVE5OTmaMWOGli5dyl41AADgsvW5KDyYDHTRCAAAXHmDoigMAAAw2BBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKRBqAACAKQQVasrKyjR58mQlJSUpIyNDxcXFOnDgQK/XvPvuu4qIiPC7xcbG+o0xDEOLFy9Wdna24uLiNH36dH311VfBvxoAABC2ggo1mzdvVmlpqbZt26aNGzeqra1NM2bMkMPh6PW65ORknTp1ynM7evSo389XrFih119/XStXrtT27duVkJCgoqIitbS0BP+KAABAWIoOZvD69ev97r/77rvKyMjQrl27dNdddwW8LiIiQllZWT3+zDAMvfrqq3rmmWc0e/ZsSdJ7772nzMxMrVu3Tg899FAwUwQAAGGqX50am80mSUpNTe11XFNTk0aOHKm8vDzNnj1b+/fv9/ysurpatbW1mj59uucxq9WqKVOmqKqqqj/TAwAAYSSolRpfHR0dmjdvnu644w7ddNNNAcddd911+u1vf6vx48fLZrPp5Zdf1rRp07R//37l5uaqtrZWkpSZmel3XWZmpudnF3M6nXI6nZ77dru9ry8DAABcBQ5nu6rrHX63A8dOD+jv6HOoKS0t1b59+7Rly5ZexxUWFqqwsNBzf9q0abrh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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", "plot_funcs([PFexample.solution[0].cFunc, NewExample.solution[0].cFunc], 0.0, 10.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now $\\texttt{NewExample}$'s consumption function has the same slope (MPC) as $\\texttt{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 $\\texttt{NewExample}$'s other attributes (relative risk aversion, 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.\n", "\n", "\n", "## 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) + \\aleph\\beta \\mathbb{E} [(\\Gamma\\psi_{t+1})^{1-\\rho} v_{t+1}(m_{t+1}) ] \\\\\n", "a_t &= m_t - c_t \\\\\n", "a_t &\\geq \\underline{a} \\\\\n", "m_{t+1} &= R/(\\Gamma \\psi_{t+1}) a_t + \\theta_{t+1} \\\\\n", "\\mathbb{E}[\\psi_t]&=\\mathbb{E}[\\theta_t] = 1 \\\\\n", "u(c) &= \\frac{c^{1-\\rho}}{1-\\rho}\n", "\\end{align*}\n", "\n", "HARK represents agents with this kind of problem as instances of the class $\\texttt{IndShockConsumerType}$. To create an $\\texttt{IndShockConsumerType}$, we must specify the same set of parameters as for a $\\texttt{PerfForesightConsumerType}$, as well as an artificial borrowing constraint $\\underline{a}$ and a sequence of income shocks. 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 $\\texttt{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 $\\texttt{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 | $\\texttt{BoroCnstArt}$ | 0.0 |\n", "| $\\sigma_\\psi$ | Underlying stdev of permanent income shocks | $\\texttt{PermShkStd}$ | 0.1 |\n", "| $\\sigma_\\theta$ | Underlying stdev of transitory income shocks | $\\texttt{TranShkStd}$ | 0.1 |\n", "| $N_\\psi$ | Number of discrete permanent income shocks | $\\texttt{PermShkCount}$ | 7 |\n", "| $N_\\theta$ | Number of discrete transitory income shocks | $\\texttt{TranShkCount}$ | 7 |\n", "| $\\mho$ | Unemployment probability | $\\texttt{UnempPrb}$ | 0.05 |\n", "| $\\underset{\\bar{}}{\\theta}$ | Transitory shock when unemployed | $\\texttt{IncUnemp}$ | 0.3 |" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2024-07-11T15:31:46.639473Z", "iopub.status.busy": "2024-07-11T15:31:46.639044Z", "iopub.status.idle": "2024-07-11T15:31:46.642688Z", "shell.execute_reply": "2024-07-11T15:31:46.642205Z" } }, "outputs": [], "source": [ "# This cell defines a parameter dictionary for making an instance of IndShockConsumerType.\n", "\n", "IndShockDictionary = {\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,\n", " \"aXtraMin\": 0.001, # aXtra parameters specify how to construct the grid of assets.\n", " \"aXtraMax\": 50.0, # Don't worry about these for now\n", " \"aXtraNestFac\": 3,\n", " \"aXtraCount\": 48,\n", " \"aXtraExtra\": None,\n", " \"vFuncBool\": False, # These booleans indicate whether the value function should be calculated\n", " \"CubicBool\": False, # and whether to use cubic spline interpolation. You can ignore them.\n", " \"aNrmInitMean\": -10.0,\n", " \"aNrmInitStd\": 0.0, # These parameters specify the (log) distribution of normalized assets\n", " \"pLvlInitMean\": 0.0, # and permanent income for agents at \"birth\". They are only relevant in\n", " \"pLvlInitStd\": 0.0, # simulation and you don't need to worry about them.\n", " \"PermGroFacAgg\": 1.0,\n", " \"T_retire\": 0, # What's this about retirement? ConsIndShock is set up to be able to\n", " \"UnempPrbRet\": 0.0, # handle lifecycle models as well as infinite horizon problems. Swapping\n", " \"IncUnempRet\": 0.0, # out the structure of the income process is easy, but ignore for now.\n", " \"T_age\": None,\n", " \"T_cycle\": 1,\n", " \"cycles\": 0,\n", " \"AgentCount\": 10000,\n", " \"tax_rate\": 0.0,\n", "}\n", "\n", "# Hey, there's a lot of parameters we didn't tell you about! Yes, but you don't need to\n", "# think about them for now." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we need to import the relevant subclass of $\\texttt{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": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.644360Z", "iopub.status.busy": "2024-07-11T15:31:46.643926Z", "iopub.status.idle": "2024-07-11T15:31:46.650150Z", "shell.execute_reply": "2024-07-11T15:31:46.649677Z" } }, "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 $\\texttt{solve}$ method." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.651514Z", "iopub.status.busy": "2024-07-11T15:31:46.651346Z", "iopub.status.idle": "2024-07-11T15:31:46.806881Z", "shell.execute_reply": "2024-07-11T15:31:46.806357Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IndShockExample.solve()\n", "plot_funcs(IndShockExample.solution[0].cFunc, 0.0, 10.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 $\\texttt{IndShockExample}$ was created, those parameters ($\\texttt{TranShkStd}$, etc) were used by the **constructor** or **initialization** method of $\\texttt{IndShockConsumerType}$ to construct an attribute called $\\texttt{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 $\\texttt{TranShkStd}$, solve the model again, and it would work.\n", "\n", "That's _almost_ true-- there's one small extra step. $\\texttt{TranShkStd}$ is a primitive input, but it's not the thing you _actually_ want to change. Changing $\\texttt{TranShkStd}$ doesn't actually update the income distribution... unless you tell it to (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 $\\texttt{solve}$ method again). In the cell below, we invoke the method `update_income_process` so HARK knows to reconstruct the attribute $\\texttt{IncomeDstn}$." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.808638Z", "iopub.status.busy": "2024-07-11T15:31:46.808386Z", "iopub.status.idle": "2024-07-11T15:31:46.993334Z", "shell.execute_reply": "2024-07-11T15:31:46.992798Z" } }, "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_income_process() # 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 $\\texttt{update}$ method that calls *all* of their various internal $\\texttt{update_X}$ methods (e.g. $\\texttt{update\\_income\\_process}$). If you change a parameter that describes a constructed attribute of your agent, invoking the $\\texttt{update}$ method will re-construct that attribute using the new parameter value.\n", "\n", "In the cell below, use your blossoming HARK skills to plot the consumption function for $\\texttt{IndShockExample}$ and $\\texttt{OtherExample}$ on the same figure." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2024-07-11T15:31:46.995261Z", "iopub.status.busy": "2024-07-11T15:31:46.995009Z", "iopub.status.idle": "2024-07-11T15:31:46.997418Z", "shell.execute_reply": "2024-07-11T15:31:46.996964Z" } }, "outputs": [], "source": [ "# Use the line(s) below to plot the consumptions functions against each other" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.11.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 }