{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Perfect Foresight CRRA Model - Approximation\n", "\n", "[![badge](https://img.shields.io/badge/Launch%20using%20-Econ--ARK-blue)](https://econ-ark.org/materials/perfforesightcrra-approximation#launch)\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Initial notebook set up\n", "from HARK.ConsumptionSaving.ConsIndShockModel import (\n", " PerfForesightConsumerType,\n", " init_perfect_foresight,\n", ") # Import the consumer type\n", "import matplotlib.pyplot as plt\n", "\n", "import numpy as np\n", "from copy import deepcopy\n", "\n", "\n", "def mystr(number):\n", " return \"{:.4f}\".format(number)\n", "\n", "\n", "# These last two will make our charts look nice\n", "plt.style.use(\"seaborn-v0_8-darkgrid\")\n", "palette = plt.get_cmap(\"Dark2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[PerfectForesightCRRA](http://www.econ2.jhu.edu/people/ccarroll/public/lecturenotes/Consumption/PerfForesightCRRA) derives a number of results as approximations; for instance, the exact formula for the consumption function is derived as $$c_t = \\left(\\frac{R - (R\\beta)^{1/\\rho}}{R}\\right)o_t$$\n", "and approximated by $$c_t \\approx (r-\\rho^{-1}(r-\\theta))o_t$$.\n", "\n", "Your task is to make a series of plots that show how the quality of the approximation deteriorates as you change various model parameters. The notebook aims to make this easier by showing that under the baseline parameter values, the percentage amount of the error is pretty much constant across different values of market resources, so you can assume that is generically true.\n", "\n", "To get you started, we show how to conduct the exercise under particularly simple parameterization (the Deaton/Friedman model where $R = \\frac{1}{\\beta}$, in which the only relevant parameter is the interest rate).\n", "\n", "Your specific assignment is:\n", "\n", "1. Starting with the default parameterization of the model, show how the approximation quality changes with values of other parameters\n", "1. Explain, mathematically, why you get the patterns you do for how the solutions deteriorate as you change the parameter values\n", "\n", "Hints:\n", "\n", "1. [MathFactsList](http://www.econ2.jhu.edu/people/ccarroll/public/lecturenotes/MathFacts/MathFactsList.pdf) describes the conditions under which the approximations will be good; you want to find conditions under which the approximations get bad\n", "2. An interesting question is the extent to which the size of approximation errors is related to the degree of impatience according to alternative metrics" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Set up a HARK Perfect Foresight Consumer called PFagent\n", "\n", "\n", "# Now we need to give our consumer parameter values that allow us to solve the consumer's problem\n", "\n", "# Invoke it to create a dictionary called Paramod (Params that we will modify)\n", "# deepcopy prevents later overwriting\n", "Paramod = deepcopy(init_perfect_foresight)\n", "\n", "# Extract the parameters from the dictionary to make them easy to reference\n", "CRRA = Paramod[\"CRRA\"] # Coefficient of relative risk aversion\n", "Rfree = Paramod[\"Rfree\"] # Interest factor on assets\n", "DiscFac = Paramod[\"DiscFac\"] # Intertemporal discount factor\n", "PermGroFac = Paramod[\"PermGroFac\"] # Permanent income growth factor\n", "LivPrb = Paramod[\"LivPrb\"] = [1.0] # Survival probability of 100 percent\n", "# This says that it is an infinite horizon model\n", "cycles = Paramod[\"cycles\"] = 0" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Now let's pass our dictionary to our consumer class to create an instance\n", "PFagent = PerfForesightConsumerType(\n", " **Paramod\n", ") # Any parameters we did not modify get their default values\n", "\n", "# Solve the agent's problem\n", "PFagent.solve()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvcAAAIHCAYAAAAb7XOiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZzUlEQVR4nO3dd3hUVf7H8c+kk5BAegKiKFVFFzCAP8UCSIeILMJawbWtKAprQQSVIiqKoKCICogoVgSlF8sq7ioIWFFYcUWQ9EkhhYQkc39/xJlkUmAGMplw5/16nnmcuXPn3nPnAH5y8r3nWAzDMAQAAADglOfn7QYAAAAAqB+EewAAAMAkCPcAAACASRDuAQAAAJMg3AMAAAAmQbgHAAAATIJwDwAAAJgE4R4AAAAwCcI9AAAAYBIB3jjpnj17NGvWLO3evVuBgYG6+OKL9eCDDyoqKqrGvrfccou2bdumgIDKpj733HO69NJLG7LJAAAAQKNnMQzDaMgTFhcX64orrtDIkSP1j3/8Q4WFhZo4caL8/Py0cOHCGvtfeOGFmjdvnrp3796QzQQAAABOOQ1elpOSkqKOHTvqzjvvVFBQkCIjIzVq1Ch9/fXXNfY9ePCg8vLydM455zR0MwEAAIBTToOX5Zx11llatGiR07ZNmzbp3HPPrbHvDz/8oLCwME2YMEE//PCDYmJiNGbMGI0YMaLO42dm5stiqfdmuywyMkw5OYXeawC8hr73XfS9b6LffRd977u83fcxMeHH3ccrNfd2hmHo2Wef1aeffqo33nijxvtHjx5V586dNWHCBLVr107btm3TuHHjFBYWpoEDB9Z6zKioMPn7e/c+YVe+eJgTfe+76HvfRL/7LvredzX2vm/wmnu7goICTZo0Sbt379aLL76oDh06uPS5adOmyWq1at68ebW+782Re4tFio4Ol9WaL+98q/AW+t530fe+iX73XfS972oMfd9oR+4PHDigW2+9VS1atNCKFStqnSVHklasWFFjlP7o0aMKDg4+5vG9/ZfNMLzfBngHfe+76HvfRL/7LvredzX2vm/w+pW8vDyNHj1aXbt21eLFi+sM9lLF6P6MGTP0008/yWaz6V//+pfWrl2rUaNGNWCLAQAAgFNDg4/cr1y5UikpKdqwYYM2btzo9N4333yjLl26aNq0aUpOTtbo0aNVVFSku+66S1arVa1atdKsWbOUlJTU0M0GAAAAGj2v1dx7SmZmvtfObbFU1EJlZVGH52voe99F3/sm+t130fe+qzH0fWzs8WvuvTutDAAAAIB6Q7gHAAAATIJwDwAAAJgE4R4AAAAwCcI9AAAAYBKEewAAgFocPHjA203wOF+4Rl9DuAcAAC47cOB3PfbYo7rqqkHq2/dSjRx5pV58cb6Kioq83bR69f777+qpp2Y6Xl9//Uht3ryh3s+Tmpqinj2TdMUVPdW37yVOj6VLF9X7+ar64ovP9c9/jnO8vvfeu7Vs2RKPnOvdd9/UgAG9NGBAL/3yy389co667Nq1Qz171r5G0l133abFi1+qsf3WW29U794XyWrNqvHexRcnqXfvix39dMUVPTVgQC/dd9/dSkk55NivZ88k7dq1w+mz69atVu/eF2nVqhUneVV1a/BFrAAAwKnphx++04QJd+qaa27QkiXLFRkZqQMHftdTT83UhAl3asGCRfL39/d2M+tFbm6Oqi4F9MYb73r0fK+//q4SE1t49BzVHT6cJ8OwOV4/88w8j51r5cr3NGbMzfrb36732Dnqy+7dPyojI109elykFSve0e2331ljn9mzn1PXrpU/MKSmpujRRx/SY489qgULav+h7PXXl2rZssWaMWOWLr74Eo+1n5F7AAAaAcOQCgsb9uHuQjxPPTVTAwYM0c03367IyEhJ0umnn6Hp059QVFSUY9QyLS1VjzwySUOG9FVycn9NmzZFWVkVI6C7du3QiBFD9dprizVs2EANHNhbkyffr8LCAklSVlam7r33bg0c2FtXXTVIDz10v+OzM2dO1cyZU53aVHV0dMSIoXr77Tc0evQ16tPnYt1xx83au3eP7rvvbvXte4muv/5q/fTTj5Kk9evX6Lbbxuipp2aqX7/LdOWV/bV06SIZhqENG9bq9ddf1ffff6sBAy53HHv9+jWSpOLiYr3wwnMaPnywBgzopbvuuk0//7zbqU0rVryta64Zrr59L9Udd/xdv/66z70vu45rtLd9xIihLn2fkvTuu29p1Khh6tv3Uv3979dr586vtWvXDs2e/YTS09PUt+8lysrKdBrFttlsev31pRo58kr173+Zbr31Rm3b9qXjmCNGDNXrr7+qm266Vn37XqKbbrq2xii1XXJyfx069IdefnmB7r77H9q1a4eGDx+sqVMna8CAy/XG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BwAAAEyCcA8AAACYBOEeAAAAMAmvh/vs7Gz17dtX27Ztq3OfW265Reedd566dOnieHz++ecN2EoAAACg8Qvw5sl37typBx98UAcOHDjmfj/++KMWL16s7t27N1DLAAAAgFOP10buV61apfvuu08TJkw45n4HDx5UXl6ezjnnnAZqGQAAAHBq8lq479mzp7Zs2aJBgwYdc78ffvhBYWFhmjBhgi688EINGTJEK1asaKBWAgAAAKcOt8tyfv31V8XHx6tp06b69ttvFR4erjZt2rh94tjYWJf2O3r0qDp37qwJEyaoXbt22rZtm8aNG6ewsDANHDiw1s9YLG43p17Yz+ut88N76HvfRd/7Jvrdd9H3vutU6XuLYRiGqztv2LBBDzzwgN566y116tRJr776qubPn6+5c+fqsssuO+FGdOjQQcuWLVOPHj1c2n/atGmyWq2aN29ejffKy23y9/f6fcIAAABAg3Nr5P7555/XggUL1KlTJ0nSTTfdpLZt2+rpp58+qXB/LCtWrKgxSn/06FEFBwfXun92dqFXR+6jo8NltebL9R+ZYAb0ve+i730T/e676Hvf1Rj6PiYm/Lj7uBXuU1NTdckllzht69mz53Fvij0ZBQUFmjNnjs444wx17NhRn3/+udauXavFixfX+Rlv/2UzDO+3Ad5B3/su+t430e++i773XY29790K9y1bttTWrVudAv6XX36pFi1a1GujunTpomnTpik5OVmjR49WUVGR7rrrLlmtVrVq1UqzZs1SUlJSvZ4TAAAAONW5Fe5vu+023XnnnerXr59atmyplJQUbdmyRbNmzTqpRuzdu9fp9TfffON4brFYNHbsWI0dO/akzgEAAACYnVvhfujQoYqLi9MHH3yg3bt3KzExUUuWLFHXrl091T4AAAAALnJ7KswePXq4PKsNAAAAgIbDnJEAAACASRDuAQAAAJMg3AMAAAAmQbgHAAAATMKtG2p/+eUXPfXUU9q/f79sNpvTex9//HG9NgwAAACAe9wK94888oiaNGmi2267TQEBbk+0AwAAAMCD3Eroe/fu1eeff66mTZt6qj0AAAAATpBbNfdxcXE6evSop9oCAAAA4CS4NXJ//fXX684779SNN96omJgYp/e6detWrw0DAAAA4B63wv1jjz0mSfrmm2+ctlssFv3888/11yoAAAAAbnMr3O/Zs8dT7QAAAABwktye8iYtLU1r1qzRoUOHFBcXpyFDhuj000/3RNsAAAAAuMGtG2p/+OEHDR48WJs3b1ZeXp4+/vhjJScna+fOnZ5qHwAAAAAXuTVy//TTT+uee+7RjTfe6Nj22muvafbs2XrrrbfqvXEAAAAAXOfWyP3evXt17bXXOm279tpr9d///rdeGwUAAADAfW6F+yZNmig1NdVpW2pqqpo1a1avjQIAAADgPrfC/aBBgzRu3Dht3bpVv/32mz777DPdfffdGjRokKfaBwAAAMBFbtXc33PPPcrOztbYsWNVWlqq4OBg/fWvf9Vdd93lqfYBAAAAcJFb4T44OFhPPvmkpk+frry8PMXExMhisXiqbQAAAADc4FK4X7t2rYYMGaIPPvigzn2GDRtWT00CAAAAcCJcCvcLFy7UkCFDNG/evFrft1gshHsAAADAy1weuZekTz75pNb38/Pz669FAAAAAE6IW7PldO/evdbtvXr1qpfGAAAAADhxxx25//333/XII4/IMAwVFBQ4rU4rSQUFBYqIiPBYAwEAAAC45rjh/owzzlC/fv2Uk5OjXbt21Ri9DwoKUu/evT3WQAAAAACucanm/rrrrpMknXbaadw4CwAAADRSbs1zP2zYML3//vv68MMPlZmZqRYtWujqq6/WgAEDPNU+AAAAAC5yK9y/+OKLeu211zRq1CglJibq4MGDevTRR5Wbm6u//e1vnmojAAAAABe4Fe7ffPNNLVq0SJ06dXJs69+/v/75z38S7gEAAAAvc2sqzKKiIrVv395p2znnnKOCgoJ6bRQAAAAA97kV7gcPHqy5c+eqvLzcsW3JkiXq169fvTcMAAAAgHvcKsvZu3evvvvuO33wwQdq2bKlMjIylJGRobi4OPXp08ex38cff1zvDQUAAABwbG6F+7/97W/U1gMAAACNlFvh/qqrrvJUOwAAAACcJLfC/Q8//KBnnnlGhw4dks1mc3qPUhwAAADAu9wK95MmTVK7du00dOhQ+fm5dS8uAAAAAA9zK9wfOnRIq1atUmBgoKfaAwAAAOAEuTX83q1bN/3888+eagsAAACAk+DWyP348eN14403qkePHoqIiHB674knnqjXhgEAAABwj1sj9zNnzlR0dLTCwsI81R4AAAAAJ8itkfvdu3fr3//+N+EeAAAAaITcGrk/44wzVFhY6Km2AAAAADgJbi9i9fe//11//etf1bx5c1ksFsd7w4YNq++2AQAAAHCDW+F+2bJlkqTXX3/dabvFYiHcAwAAAF7mVrj/5JNPPNUOAAAAACfJrXD/9ddf1/let27dTroxAAAAAE6cW+H+hhtuqLHNz89PiYmJ+vjjj+utUQAAAADc51a437Nnj9Pr7OxsvfDCC2rZsmW9NgoAAACA+9yaCrO6qKgo3X///Xrttdfqqz0AAAAATtBJhXtJysvLU0lJSX20BQAAAMBJcKssZ9KkSU6vS0tLtXPnTl100UX12igAAAAA7nMr3FcXHBysG264QaNGjaqv9gAAAAA4QW6F+yeeeMJT7QAAAABwktyquc/KytLjjz8uSdqxY4cuuugiDRkyRPv27fNI4wAAAAC4zq1wP23aNP36668yDEMzZ87UoEGD1KtXL82YMcNT7QMAAADgIrfKcn744QetX79emZmZ2rNnj5YsWaLw8HD16NHDU+0DAAAA4CK3Ru6PHDmikJAQffnll2rfvr0iIyNVXFysgICTui8XAAAAQD1wK5Wff/75mjp1qnbu3KmBAwcqKytL06dPV/fu3T3VPgAAAAAucmvkfubMmTp69KiSkpJ0++2369ChQzp69KgeffRRT7UPAAAAgIsshmEY3m5EfcrMzPfauS0WKSYmXFlZ+TLXt4rjoe99F33vm+h330Xf+67G0PexseHH3cetspzCwkK9+eab2r9/v2w2m9N7zIEPAAAAeJdbZTmTJk3SsmXLVFJS4qn2AAAAADhBbo3cb9u2TStWrFCrVq081R4AAAAAJ8itkfvg4GDFx8d7qi0AAAAAToJb4f7aa6/Vk08+qezsbE+1BwAAAMAJcqss591331VKSoreeuutGu/9/PPP9dYoAAAAAO5zK9w/+eSTnmoHAAAAgJPkVrjv3r27bDabfvzxR/3xxx+Ki4tT165d5efnVnUPAAAAAA9wK9xnZmbqH//4h/bs2aPmzZsrJydHrVu31pIlS5SQkOCpNgIAAABwgVtD7rNmzVLr1q21fft2/fvf/9a2bdt09tlns4AVAAAA0Ai4NXL/1VdfaePGjQoLC5MkhYeHa+rUqerTp49HGgcAAADAdW6N3NtsNlksFqdtFotFgYGB9dooAAAAAO5zK9z36NFDU6dOVVFRkSSpsLBQU6dOVffu3T3SOAAAAACuc6ss5/7779dNN92k7t27q3nz5srNzVXbtm310ksveap9AAAAAFzkVrhv0aKF1q1bpx07dshqtaply5Y677zz5O/v76n2AQAAAHCRy2U5hmHowIEDCggI0IUXXqjBgwcrJSXFk20DAAAA4AaXwn1RUZGuueYaPfXUU45tVqtVDz74oG644QZHDT4AAAAA73Ep3L/44osKDAzUtGnTHNuio6P16aefqqysjJp7AAAAoBFwKdxv2rRJjz32mKKjo522R0dHa9q0adq4caNHGgcAAADAdS6Fe6vVqjPOOKPW984++2xlZmbWa6MAAAAAuM+lcN+0aVPl5OTU+l5ubq6aNGlywg3Izs5W3759tW3btjr3+eyzzzR06FB17txZAwcO1KeffnrC5wMAAADMyqVw/3//939avnx5re+9+eab6ty58wmdfOfOnRo1apQOHDhQ5z779+/XuHHjdM8992jHjh0aN26cxo8fr/T09BM6JwAAAGBWLoX722+/XYsXL9aMGTO0c+dOHThwQDt27NCMGTP08ssv64477nD7xKtWrdJ9992nCRMmHHe/pKQkXXHFFQoICNCgQYPUrVs3vfPOO26fEwAAADAzlxaxOvPMM7V48WI9+uijWr58uSwWiwzDUPv27fXKK6+oU6dObp+4Z8+eGjp0qAICAo4Z8Pft26f27ds7bWvbtq327Nnj9jkBAAAAM3N5hdquXbtqzZo1OnjwoLKzsxUbG6sWLVqc8IljY2Nd2q+wsLBGTX9ISMgx59a3WE64WSfFfl5vnR/eQ9/7LvreN9Hvvou+912nSt+7HO7tWrVqpVatWnmiLbVq0qSJiouLnbYVFxcrLCys1v2josLk7+/ywrseER0d7tXzw3voe99F3/sm+t130fe+q7H3vdvhvqG1b99eu3fvdtq2b9++OkuBsrMLvTpyHx0dLqs1X4bhnTbAO+h730Xf+yb63XfR976rMfR9TMzxf7Bo9OE+OTlZr776qtavX69+/fpp8+bN2r59uyZPnlznZ7z9l80wvN8GeAd977voe99Ev/su+t53Nfa+9279Sh26dOmi1atXS5LatGmjF154QS+99JK6deumBQsWaP78+TrzzDO93EoAAACgcWkUI/d79+51ev3NN984vb7kkkt0ySWXNGSTAAAAgFNOoxy5BwAAAOA+wj0AAABgEoR7AAAAwCQI9wAA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AAAAkyDcAwAAACbhtXBvtVo1duxYJSUlqUePHpo5c6bKyspq3fezzz7T0KFD1blzZw0cOFCffvppA7cWAAAAaPy8Fu7Hjx+v0NBQbd26VStWrNCXX36ppUuX1thv//79GjdunO655x7t2LFD48aN0/jx45Went7wjQYAAAAaMa+E+99//13bt2/X/fffryZNmqhVq1YaO3asli9fXmPfVatWKSkpSVdccYUCAgI0aNAgdevWTe+8844XWg4AAAA0Xl4J97/88ouaN2+u+Ph4x7Y2bdooJSVFhw8fdtp33759at++vdO2tm3bas+ePQ3SVgAAAOBUEeCNkxYWFqpJkyZO2+yvi4qKFBERccx9Q0JCVFRUVOfxLZZ6bKwb7Of11vnhPfS976LvfRP97rvoe991qvS9V8J9aGiojhw54rTN/josLMxpe5MmTVRcXOy0rbi4uMZ+drGx4fXY0hMTHe39NsA76HvfRd/7Jvrdd9H3vqux971XynLatWun3NxcZWVlObb9+uuvSkhIUHi48xfWvn17/fLLL07b9u3bp3bt2jVIWwEAAIBThVfCfevWrXXBBRfo8ccfV0FBgQ4ePKgFCxZoxIgRNfZNTk7W9u3btX79epWVlWn9+vXavn27rrzySi+0HAAAAGi8LIZhGN44cVZWlqZPn65t27bJz89Pw4YN03333Sd/f3916dJF06ZNU3JysiRp69atmj17tg4cOKCWLVvq/vvv12WXXeaNZgMAAACNltfCvdlYrVY9/PDD2r59u/z9/ZWcnKyJEycqIMArtzWggezZs0ezZs3S7t27FRgYqIsvvlgPPvigoqKivN00NJDy8nKNGTNGLVu21JNPPunt5qAB5Obm6vHHH9dnn30mm82mbt26aerUqYqLi/N20+Bhu3fv1uOPP669e/cqJCREAwYM0AMPPKCgoCBvNw0ekp2drVGjRumxxx5Tjx49JEnfffedHnvsMe3bt0+RkZG64447dPXVV3u5pZW8toiV2bi6KBfMo7i4WLfccou6dOmiL774QmvXrlVubq4eeughbzcNDej555/Xjh07vN0MNKBx48apqKhIW7Zs0aeffip/f389/PDD3m4WPMxms+n2229X//79tX37dq1YsUJffPGFXnnlFW83DR6yc+dOjRo1SgcOHHBsy8vL02233aZhw4bp66+/1syZM/XEE0/o+++/92JLnRHu64E7i3LBPFJSUtSxY0fdeeedCgoKUmRkpEaNGqWvv/7a201DA/nyyy+1efNm9evXz9tNQQP58ccf9d133+nJJ59URESEmjZtqhkzZui+++7zdtPgYXl5ecrMzJTNZpO96MHPz6/GdN0wh1WrVum+++7ThAkTnLZv3rxZzZs313XXXaeAgAD93//9n4YOHdqoMh/hvh64sygXzOOss87SokWL5O/v79i2adMmnXvuuV5sFRqK1WrV5MmT9cwzz/A/dx/y/fffq23btnr33XfVt29f9ezZU7NmzVJsbKy3mwYPi4yM1JgxYzRr1iydd955uuyyy9S6dWuNGTPG202DB/Ts2VNbtmzRoEGDnLb/8ssvjX5xVcJ9PTjeolwwP8MwNHfuXH366aeaPHmyt5sDD7PZbLr//vt10003qWPHjt5uDhpQXl6e9u7dq/3792vVqlX64IMPlJ6erokTJ3q7afAwm82mkJAQPfzww/r222+1du1a/frrr5o3b563mwYPiI2NrfW+yRNZXLWhEe7rgTuLcsF8CgoKdPfdd2vNmjV644031KFDB283CR720ksvKSgoSDfccIO3m4IGZr9xcvLkyWratKliYmI0fvx4ffbZZyosLPRy6+BJW7Zs0aZNm3TttdcqKChI7dq105133qm33nrL201DA3J3cVVvYCqXelB1Ua6YmBhJdS/KBXM5cOCAbr31VrVo0UIrVqxglhwf8eGHHyojI0NJSUmS5PiH/qOPPuLmWpNr27atbDabSktLFRwcLKliRFeSmHzO3FJTU3X06FGnbQEBAQoMDPRSi+AN7du317///W+nbY1tcVVG7uuBO4tywTzy8vI0evRode3aVYsXLybY+5CNGzdq165d2rFjh3bs2KEhQ4ZoyJAhBHsfcNFFF6lVq1Z66KGHVFhYqOzsbM2dO1dXXHGFmjZt6u3mwYN69uypzMxMLVy4UOXl5Tp48KBefPFFDR061NtNQwPq27evsrKytHTpUpWWluqrr77SmjVr9Ne//tXbTXMg3NeTefPmqaysTH369NHIkSN1ySWXaOzYsd5uFjxo5cqVSklJ0YYNG3TBBReoS5cujgcAcwoMDNTrr78uf39/9e/fX/3791dCQoIef/xxbzcNHta2bVu99NJL+uSTT9SjRw/deOON6t27d43ZVGBukZGRWrJkiTZu3KgePXpoypQpmjJlii688EJvN82BRawAAAAAk2DkHgAAADAJwj0AAABgEoR7AAAAwCQI9wAAAIBJEO4BAAAAkyDcAwAAACZBuAcAAABMgnAPAD5i//793m4CAMDDCPcAUI86dOigDh066H//+1+N91599VV16NBB8+fPP6Fjb9u2TR06dDihz37yySe6+eabT+izAIBTB+EeAOpZZGSkVq1aVWP7ypUr1bRpUy+0SMrNzRULkgOA+RHuAaCeDR06VB9++KFsNptj2/fff6+jR4/qnHPOcWwrKCjQlClT1K9fP3Xu3FmXXHKJFi5c6Hi/d+/eeuSRR3TxxRdr2LBhTsczDEOTJ0/W4MGDlZ6eLkn6z3/+oxEjRigpKUmDBw/W6tWrJVWM+D/66KNKSUlRly5dHPtXVdu5du/erRtuuEHdunVTv379tHTpUscPCOnp6brlllvUvXt3XXrppbrrrruUkZEhSbLZbHr55Zd1xRVX6IILLtCIESO0detWp3OtXLnS8brqbyT++OMPdejQQU8++aS6deumadOmSZJee+019e3bV126dNHw4cP15ZdfOr6HZcuWqX///kpKStK1116rH3/80XHsTZs2afDgwbrgggs0cOBALViwoNY+s5/3gw8+UK9evdS5c2dNmjRJO3bsUHJysrp06aLRo0crOzu77o4HgMbAAADUm/bt2xtffPGFceGFFxpbt251bH/44YeNl19+2bj++uuNefPmGYZhGI8++qgxevRoIy8vz7DZbMbGjRuN9u3bG/v37zcMwzB69eplXHnllUZeXp6Rl5dnfPXVV0b79u2N8vJy48EHHzSuuuoqw2q1GoZhGD///LNx/vnnG5s2bTLKysqMnTt3Gj169DA+//xzwzAM4/333zd69epVZ7urnystLc244IILjDfeeMM4evSo8csvvxh9+/Y13nrrLcMwDOOBBx4wJk+ebBw9etTIz883brrpJmPGjBmGYRjGvHnzjEsvvdT48ccfjdLSUmPdunVGp06djO+++85xrvfff99xbvt1GYZhHDx40Gjfvr0xZcoUo6SkxMjLyzPef/99o3v37sauXbuM8vJy49133zX+8pe/GDk5OcYbb7xhXH755cbPP/9sHD161HjvvfeMpKQkIzMz0zhy5Ihx3nnnGV999ZVhGIaxe/duo3Pnzo52VGU/7/jx442ioiJj7969xtlnn20kJycbaWlphtVqNfr27WvMnz//BP5UAEDDYeQeAOpZQECAhg4d6ijNKS4u1qZNmzRs2DCn/caNG6dnn31WTZs2VVpamoKDgyXJMQIuSf3791dERIQiIiIc2yZOnKitW7dq2bJlioqKkiS9/fbb6tOnj/r16yd/f3917dpVI0eO1PLly11ud9VzrV69Wm3atNF1112nwMBAtW3bVjfffLPjeMHBwdq5c6fWrVunwsJCLVq0SFOmTJEkvf/++7rtttt07rnnKiAgQIMGDVLv3r21YsUKl9sybNgwBQUFKSIiQqtWrdKoUaPUpUsX+fn56eqrr9aSJUsUEhKi5cuX6/bbb1fHjh0VGBioESNGqE2bNo7fWoSEhGjFihX68ssv1aZNG+3cuVPnn39+nef9+9//riZNmqh9+/aKjY3VVVddpfj4eEVFRalz5846dOiQy9cAAN4Q4O0GAIAZDR8+XKNGjVJBQYE++ugjde3aVbGxsU77WK1WzZw5Uz/99JNOO+00derUSZKcym/i4uJqHDstLU2FhYX6/PPPNWjQIEnSoUOH9NVXXykpKcmxX3l5uU4//XSX21z1XIcOHdLu3budjmez2eTv7y9JmjJlil566SUtXrxYDz74oDp27KgpU6YoKSlJWVlZatWqldOxTzvtNO3Zs+eE2pKZmakWLVo4vd+1a1dHO2fNmqXZs2c73isrK1OnTp0UEhKit956SwsWLNC9996rgoIC9e/fX1OmTFGzZs1qPW/z5s0dz/39/Z1+qPLz8+O+BQCNHuEeADygY8eOOuuss7RhwwatWbNGo0ePrrHPPffco969e2vx4sUKCAhQTk6O3n33Xad9LBZLjc8tXrxY7777rqZNm6akpCTFxcUpISFBV111laZPn+7YLyMjw60wWvVcCQkJ6tGjhxYvXuzYlpOTo8LCQknSTz/9pFGjRmncuHHKzs7WCy+8oLvuuktfffWVWrZsqYMHDzod++DBg47A7ufnp9LSUqfjHqstiYmJSk1NdXp/7ty5Sk5OVkJCgu6++24NHjzY8d6BAwfUvHlzFRQUKCMjQ88884wk6eeff9Y///lPLVy4UBMnTjzudwAApyLKcgDAQ4YPH66lS5fqt99+02WXXVbj/fz8fIWEhMjf31/Z2dl67LHHJMkp+NYmKChI1113ndq3b6/JkydLkkaMGKG1a9fqiy++kM1m0/79+3X99ddryZIlkirKaI4cOaKysjKX2j506FB9++23Wr16tcrKypSRkaF//OMfevLJJyVJCxcu1IwZM1RQUKCIiAg1adJEkZGRkqSrr75aL7/8snbv3q3y8nJt2LBBn3zyia666ipJUps2bfTxxx+ruLhYmZmZWrZs2XG/x3feeUfff/+9bDab3n//fS1fvlyRkZEaOXKkXnzxRf3666+SpK1bt2rw4MH6+uuvVVhYqFtvvVVr1qyRYRiKi4uTn5+fo50AYEaEewDwkCFDhuj3339XcnKyAgJq/qL0iSee0Pr169W1a1cNHz5c8fHxOuecc/Tf//73uMe2WCx6/PHHtWPHDr399tv6y1/+ojlz5mjOnDnq1q2brr/+evXu3Vv33nuvJKlbt26Kjo5Wt27dtHfv3uMev2XLllq0aJHeeecdXXTRRbryyit11llnOcL99OnTZbPZ1KdPH3Xr1k3fffednnvuOUnSTTfdpOuuu04TJkxQUlKSXnrpJc2ZM0fdu3eXJN13330qLCzUxRdfrBtvvFHJycnHbMvQoUM1btw43X///UpKStI777yjV155RVFRURozZoyGDRumsWPHqkuXLpo5c6YeeeQR9enTR/Hx8Zo3b55eeeUVde3aVUOGDNGFF16oMWPGHPf6AeBUZTEoIAQAAABMgZF7AAAAwCQI9wAAAIBJEO4BAAAAkyDcAwAAACZBuAcAAABMgnAPAAAAmAThHgAAADAJwj0AAABgEoR7AAAAwCQI9wAAAIBJEO4BAAAAkyDcAwAAACbx/wfNdEuE/s4eAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the consumption function approximation versus the \"true\" consumption function\n", "\n", "# Set out some range of market resources that we want to plot consumption for\n", "mMin = 0\n", "mMax = 10\n", "numPoints = 100\n", "m_range = np.linspace(\n", " mMin, mMax, numPoints\n", ") # This creates an array of points in the given range\n", "\n", "wealthHmn = PFagent.solution[\n", " 0\n", "].hNrm # normalized human wealth is constructed when we .solve()\n", "wealthMkt = m_range # bank balances plus current income\n", "wealthTot = wealthHmn + wealthMkt # Total wealth is the sum of human and market\n", "\n", "# Feed our range of market resources into our consumption function in order to get consumption at each point\n", "# (Remember, after doing .solve(), the consumption function is stored as PFagent.solution[0].cFunc)\n", "cHARK = PFagent.solution[0].cFunc(\n", " m_range\n", ") # Because the input m_range is an array, the output cHARK is too\n", "cMax = (\n", " cHARK[-1] * 1.2\n", ") # The last point will be the largest; add 20 percent for visual appeal\n", "\n", "# Use matplotlib package (imported in first cell) to plot the consumption function\n", "plt.figure(figsize=(9, 6)) # set the figure size\n", "plt.plot(\n", " m_range, cHARK, \"b\", label=\"Consumption Function from HARK\"\n", ") # m on the x axis vs c on the y axis\n", "# 'b' is for blue\n", "plt.xlabel(\"Market resources m\") # x axis label\n", "plt.ylabel(\"Consumption c\") # y axis label\n", "plt.ylim(0, cMax)\n", "\n", "# The plot is named plt and it hangs around like a variable\n", "# but is not displayed until you do a plt.show()\n", "\n", "# Construct the approximate consumption function\n", "# Also, recall that in the \"true\" consumption function what matters is total wealth,\n", "# not just market resources so we need to add in human wealth\n", "\n", "# Use the values of R, beta, and rho that we used above to construct rates\n", "rfree = Rfree - 1\n", "discRte = (\n", " 1 / DiscFac\n", ") - 1 # See handout for why this is approximately the time preference rate\n", "cApprox = wealthTot * (rfree - (1 / CRRA) * (rfree - discRte))\n", "plt.plot(\n", " m_range, cApprox, \"k\", label=\"c function approximated\"\n", ") # Add true consumption function line\n", "plt.legend() # show the legend\n", "\n", "plt.show() # show the plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The size of the error looks pretty stable, which we can show by calculating it in percentage terms" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvQAAAIRCAYAAAAlVSknAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWg0lEQVR4nO3dd3xT9f7H8XeabtpCC2UUcTFVHECRIcgFBFRAAUGuF1kiiiwXQwTFAYoiU5Yg6gW5DBFkiYCAilxAEAXkh6goG0ppsbSlI03O74+2kdjSNtyG9JDX8/HIo+1Z30/ONyd555uTU4thGIYAAAAAmJKftwsAAAAAcPkI9AAAAICJEegBAAAAEyPQAwAAACZGoAcAAABMjEAPAAAAmBiBHgAAADAxAj0AAABgYgR6AAAAwMSuukCfmJioVq1aaceOHcW+7XXr1qlly5Yu0zIyMjR27Fjdfffdqlevnrp06aLt27cXeZsnTpxQv379VL9+fcXGxqp///46duxYgcv3799fsbGxatCggYYPH67U1FTn/IULF6pNmzaqU6eO2rRpowULFjjnZWZmavz48br77rtVv359DRgwQKdOncrTRlpamrp27aply5a5TP/xxx/1z3/+U3Xr1lWbNm20ePFil/kFtZ2enq6XX35Zd911l+rXr6+ePXvq559/ds6/cOGCRowYoQYNGqhevXoaNmyYy/2aPXu2brnlFtWpU8d5mzRpUhH2MAAAwNXtqgr033//vbp27aqjR48W63ZtNpvmzJmj5557ToZhuMx75513tHv3bi1evFjfffedunTpon79+unkyZNF2vagQYNUvnx5bdmyRVu2bFGpUqU0YsSIfJfNzMzUY489pooVK2rLli1au3atjhw5ogkTJkiSvvzyS02cOFFvvfWWdu/erXHjxmny5Mlat26dJGnChAlav3695s6dq61bt+q6665T7969lZmZ6Wzj119/Vbdu3fTjjz+6tH369Gn16dNHd911l7Zv3653331X06dP1/Lly4vU9rvvvqvDhw9rzZo12rp1q2rVqqWBAwc6t//666/r1KlTWrdundavX69Tp07pnXfecc7/6aef9NRTT+mHH35w3p599tki7WMAAICr2VUT6JcvX64hQ4bkG/L++9//qnPnzoqNjVXbtm21cuVKt7b92GOPaceOHerbt2+eeRkZGRo8eLAqVaokq9Wqhx9+WIGBgdq/f3+Rtr1w4UK99NJLCg4OVkpKilJTUxUVFZXvsps3b1ZmZqZGjhypkJAQRUVFaerUqerRo4ckKS4uTn379tUdd9whi8WiOnXqqEGDBtq5c6ckafXq1RowYICqV6+uwMBAPf/884qLi9O2bdskSdu2bVPPnj3VsWNHxcTE5Gk7MjJSgwYNUmBgoGrUqKFHH31U//nPf4rU9qFDh2QYhvMNkZ+fn0JCQiRlfyKwatUqDR48WGXKlFHZsmU1ZMgQLVu2TGlpaZKkffv2qXbt2kXapwAAAL7E39sFFJcmTZqoffv28vf3dwn1P//8s5566imNHz9eLVu21J49e9S/f39FRkaqadOmiouLU3p6ep7tBQYGqlKlSpKk8ePHq2LFinlOQZGk1157zeXvbdu2KTk5WbVq1VJWVpZOnDiRb71RUVEKDw9XUFCQJOn555/XmjVrFB0drY8++ijfdfbu3atatWppypQpzjclbdq0cd7fbt26uSyfkJCgnTt3Okf87Xa7M0RLksVikST98ccfatasmWrVqqXNmzcrKChIH374ocu2HA6Hy7pSdij//fffi9T2Y489pkGDBqlhw4ayWq2KjIzUvHnzJElHjhyRzWZTjRo1nOtXrVpV6enpOnz4sMqXL6+TJ09qyZIlGjVqlAIDA3Xvvffq6aefdu4/AAAAX3XVjNBHR0fL3z/v+5NFixapZcuWat26taxWq+rWrauHH37YeX73kCFD1Lp16zy3fv36ObdRsWLFItXw448/6plnntHAgQNVpUoVnT59Ot9tt27dWp9++qnLumPHjtXu3bt13333qUePHkpOTs6z/aSkJH3zzTcKCgrSunXrNH/+fO3YsUNvv/12nmXj4+PVt29f1a5dW+3atZMktW7dWrNmzdLRo0eVkZGhKVOmKCMjw/mGJjIy8pIB+e6779bRo0f18ccfKzMzU7/88osWLVqkjIyMIrVtt9vVpk0bffPNN/ruu+/UsmVL9e/fXxkZGUpJSZEkhYaGOreR++YhNTVV8fHxio2NVadOnbRp0ybNmTNHW7Zs0bhx4wrtEwAAgKvdVRPoL+XEiRPasGGDYmNjnbf58+c7vww6f/58HTx4MM9txYoVbrXzySefqHfv3urXr58GDBggSbrmmmvy3fbBgwfVq1cvl/WDg4MVGhqq4cOH68KFC/l+sTYwMFDlypXTgAEDFBQUpCpVqujJJ5/U2rVrXZb78ccf1blzZ91www2aOXOm843OCy+8oDp16qhbt2669957nafOREREFHr/qlSpolmzZumzzz5TkyZNNGbMGHXu3DnPuvm1bbPZ9PTTT6tTp06qUKGCwsLC9NJLLykuLk5bt251Bvnc02su/j0sLEy1atXSggULdM899ygwMFBVq1ZV//799fnnnxdaNwAAwNXuqg/0FStWVMeOHbVr1y7nbd26dZo9e3axbN9ut+vll1/WhAkTNH36dPXu3bvI66anp6tNmzbau3evy/YcDodKly6dZ/mqVavKZrPJ4XA4pzkcDpcv6i5dulS9evVSz549NWHCBAUGBjrnxcXF6amnntKWLVu0efNmPfroo/r999+LdG56amqqIiIitHTpUn333XeaN2+ekpOTXda9VNsXLlxQUlKSy5dvrVarLBaLAgICdMMNNyggIEC//fabc/6hQ4cUEBCg66+/Xt99953ee+89l3oyMzMVHBxcaN0AAABXu6s+0Hfu3FmrV6/Wt99+K4fDocOHD+vRRx/VBx98UCzbf/PNN/XNN9/o008/VePGjd1aNzg4WNWqVdP48eOVmJio1NRUvfbaa7r++ut1xx135Fn+vvvuk91u1xtvvKHMzEwdP35cs2bN0oMPPigp+7Kar7zyit5991099thjedb/6KOP9MILLyg1NVVJSUl69dVXdcstt+i2224rtNbk5GR17dpVW7dulcPh0H//+18tXrzY+YXcgtouXbq06tWrp3feeUcJCQnKyMjQ+PHjFRkZqXr16ikkJET33Xef3nnnHSUmJioxMVHvvPOO2rVrp+DgYIWEhOjdd9/VqlWr5HA49Ouvv2rGjBnq2rWrW/sbAADgamQx/n4dxqtAzZo1NW/ePDVo0ECS9NVXX2nq1Kk6cuSIQkJC1K5dOz333HMuo9dFsWzZMk2bNk2bNm2SlH3N+7vuuktWq1UBAQEuy7766qt64IEHCt3m+fPnNW7cOG3evFkWi0WNGjXS8OHDVb58eUnS448/rpiYGOeXb3///Xe9+eab2rdvnyTpgQce0JAhQxQYGKj27dvrt99+yzNy3b59e7322mtKSUnR6NGj9e2330rK/iLxqFGjFBkZmaeuFi1aaODAgerUqZNz2vr16zVp0iSdPn1alStX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nCTDGeq3bPlKqampztF2iyXvYzZ3msUixcfH65tvNmvChKm69trrnMts3/5fTZ06UY8/3k8REREu6/j7W3X//e2UmZmhsWNfUZkykWrQoKFz282bt1T58tkj0qNHj9WQIYNVo0YNtW37QJ77cMcddfTll1sKvZ9xcadd7sfChR+rdu1bFR8fL5stUwsWfCI/v79OPHn//VlatGiBmjdvKYtFSklJUUZGuoKDsz9JOH36pCpUqOjc5tmzZ1y2f+rUSTVpcneefSZJlSpV0smTx12WP3nyuMqWLeec9u67k1SlynVKTU3RnDkz1L//X29aPMErgX7Pnj3q0aNHvvOmT5+ue+65x/n3woUL9cEHH2jmzJmX3F5UVClZrd47e6hs2XCvtQ3vou99F33vu+h731XS+r59+3s1ffpkLV26QH369NHp06f17ruT9OSTT6pcuexaS5cOdf6eKzQ0SAEB/ipXLlwLFnygatWq6d57W7osU63atZo9e4bWr1+lfv36KSDAX6GhQS7bevzxXtq/f4/Gjh2tVatWqWzZsnmWa9u2lf74Y4DeeWec7rijtm6//Xa37+cjjzys3r176+ef96hx48baunWrPvhgtpYsWaL335+pBx54QLVr13BZ5/HHH1PHjh119OivKl06VHa7Xe+/P10jRozQiRMntGjRx+ratavKlQtXcHCANm5cr19+2ac777xTn332mX7//ZCmTp3i3N7F+7Fbt0fUrVs37dz5rVq3bq2DBw9q4cL5evjhh1WuXLi+/PJLrV+/VsuXL1dKSor++c9/6p57mqtx48Zu3/ei8kqgb9CggQ4ePFjgMpmZmXrzzTf1+eef67333lPDhg0vuWxiYqrXRujLlg1XQkJyiXrHDs+j730Xfe+76HvfVXL73qJ33pmqd9+dpLlzP1BISIg6deqili3v19mz2ZeRTEq64Pw914ULGbLZsnT69DktXrxY3br1zLOMJN17bzvNmzdPDz74sGy2LF24kJFnucGDh6pnz39qyJBhGj9+cr7Lde3aQ7t27dZTT/XX3LnzFR0d/femCnTddTU0atSreuONN3Xq1ClVrFhRr7wyVgkJydq1a5cGDHg2T13ly1dRrVo3a+bM2erSJfvLsQEBwWrevLkkqUOHh9ShQ1edPZus9HSbbrvtDk2fPlMDBgxUlSpVNH78ZIWGlnFu7+L9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xRe1ceNGLV68WC+++KKn6gMAAABQALdG6MPCwjR69GhJ2f9QinPnAQAAAO8qUqCfPXu2nnjiCU2bNu2SywwcOLDYigIAAABQNEUK9Dt37tQTTzyhHTt25Ds/97r0AAAAAK6sIgX6OXPmSJI++OADBQQEeLQgAAAAAEXn1pdimzRpojfeeEO//PKLp+oBAAAA4Aa3Av3bb7+t+Ph4denSRV26dNHixYuVmprqqdoAAAAAFMKtQN+sWTNNmjRJW7ZsUceOHbV8+XI1bdpUI0aM8FR9AAAAAArg1mUrc0VEROjuu+/W+fPndebMGW3fvr246wIAAABQBG6N0KekpOiTTz5Rt27ddN999+mnn37S6NGjtXHjxmItKiMjQ2PGjNFdd92levXqqWfPnjp06FCxtgEAAABcDdwaob/rrrtUsWJFPfTQQ5oyZYrKlSvnkaJeeeUVHT58WMuXL1eZMmU0btw4Pf3001q9erVH2gMAAADMyq1A/95776lhw4aeqkWSlJCQoBUrVujzzz9X+fLlJUlDhgzRH3/8IcMwuOY9AAAAcBG3An3Dhg116NAhLVy4UKdPn9brr7+uNWvW6NFHH3Wr0fT0dMXFxeU7748//lB4eLh+/PFHDRgwQImJiapXr55efPHFAsO8N3J+bpu8x/A99L3vou99F33vu+h732Smfncr0G/dulWDBg1S8+bN9d///lfp6emaPn26Lly4oCeeeKLI29mzZ4969OiR77zx48crOTlZ69ev1/z58xUQEKDXXntN/fr10/Lly2W1WvOsExVVSlarW18HKFZly4Z7rW14F33vu+h730Xf+y763jeZod8thmEYRV34oYce0uDBg9WsWTPVr19fO3fu1L59+/TMM88U2xdjv/jiCz399NNav369rrvuOklSYmKiGjVqpDVr1qhatWp51omPT/baCH3ZsuFKSEhW0fcirgb0ve+i730Xfe+76HvfVBL6vVy5or2ZcGuE/siRI7r77rslyXn6y6233qqkpCQ3y7u03MCemZnpnGa32yVJBb338OYBZhjebR/eQ9/7Lvred9H3vou+901m6He3zlOJiYnR7t27Xabt27dPlSpVKraCqlWrpvr16+vll19WYmKiUlNTNW7cON1yyy2qXr16sbUDAAAAXA3cCvRPPvmknnrqKU2aNEk2m01z5szRgAED1KdPn2It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0XfffaelS5fq22+/1Zw5c7xdGjzk+++/V9euXXX06FHntKSkJD3xxBPq0KGDdu7cqbFjx+rNN9/U3r17vVhpXgT6y3DkyBF99913Gjp0qEJCQlSlShX1799fCxYs8HZp8LCTJ0+qVq1aGjBggAIDAxUZGamuXbtq586d3i4NV8C2bdu0fv16tW7d2tul4Ar56aeftGfPHo0bN04REREKCwvT66+/riFDhni7NHhYUlKS4uPj5XA4lHuFbz8/P4WEhHi5MnjC8uXLNWTIED377LMu09evX68yZcqoW7du8vf3V6NGjdS+ffsSl/kI9Jfh119/VZkyZVShQgXntKpVq+rkyZM6f/68FyuDp9144416//33ZbVandPWrVunW265xYtV4UpISEjQyJEjNWHCBF7QfcjevXtVrVo1LVmyRK1atVKTJk301ltvKTo62tulwcMiIyPVq1cvvfXWW7r11lvVrFkzXX/99erVq5e3S4MHNGnSRBs2bND999/vMv3XX39VjRo1XKZVq1ZNP//885Usr1AE+suQmpqa5wU99+8LFy54oyR4gWEYmjRpkjZv3qyRI0d6uxx4kMPh0NChQ9W7d2/VqlXL2+XgCkpKStLBgwd1+PBhLV++XJ999pni4uI0fPhwb5cGD3M4HAoODtZLL72kH3/8UatXr9ahQ4c0depUb5cGD4iOjpa/v3+e6fllvuDg4BKX9wj0lyE0NFRpaWku03L/LlWqlDdKwhWWkpKiwYMHa9WqVfr4449Vs2ZNb5cED3rvvfcUGBio7t27e7sUXGGBgYGSpJEjRyosLEzlypXTM888o6+//lqpqalerg6etGHDBq1bt07/+te/FBgYqOrVq2vAgAFauHCht0vDFRQSEqL09HSXaenp6SUu7+V9K4JCVa9eXX/++afOnj2rcuXKSZIOHTqkihUrKjw83MvVwdOOHj2qvn37KiYmRkuXLlVUVJS3S4KHrVixQmfOnFFsbKwkOZ/cv/zyS74ge5WrVq2aHA6HbDabgoKCJGWP3EpynleNq9OpU6fyXNHG399fAQEBXqoI3lCjRg1t3brVZdpvv/2m6tWre6mi/DFCfxmuv/561atXT2+88YZSUlJ07NgxzZgxQ507d/Z2afCwpKQk9ezZU3Xr1tXcuXMJ8z7iiy++0O7du7Vr1y7t2rVL7dq1U7t27QjzPqBx48aqUqWKXnzxRaWmpioxMVGTJk3SPffco7CwMG+XBw9q0qSJ4uPjNWvWLNntdh07dkwzZ85U+/btvV0arqBWrVrp7Nmz+uijj2Sz2bR9+3atWrVKDz30kLdLc0Ggv0xTp05VVlaWWrZsqYcfflhNmzZV//79vV0WPGzZsmU6efKk1q5dq3r16qlOnTrOG4CrT0BAgObPny+r1ao2bdqoTZs2qlixot544w1vlwYPq1atmt577z1t2rRJDRo0UI8ePdSiRYs8V0HB1S0yMlIffPCBvvjiCzVo0ECjRo3SqFGj1LBhQ2+X5sJi8JkhAAAAYFqM0AMAAAAmRqAHAAAATIxADwAAAJgYgR4AAAAwMQI9AAAAYGIEegAAAMDECPQAAACAiRHoAcBHHT582NslAACKAYEeADyoZs2aqlmzpn7//fc88z788EPVrFlT77777mVte8eOHapZs+Zlrbtp0yb16dPnstYFAJQsBHoA8LDIyEgtX748z/Rly5YpLCzMCxVJf/75p/hH4QBwdSDQA4CHtW/fXitWrJDD4XBO27t3rzIzM3XzzTc7p6WkpGjUqFFq3bq17rjjDjVt2lSzZs1yzm/RooVefvll3XXXXerQoYPL9gzD0MiRI9W2bVvFxcVJkv773/+qc+fOio2NVdu2bbVy5UpJ2SP7o0eP1smTJ1WnTh3n8hfLr639+/ere/fuql+/vlq3bq2PPvrI+aYgLi5Ojz/+uO68807dfffdGjhwoM6cOSNJcjgcmj17tu655x7Vq1dPnTt31pYtW1zaWrZsmfPviz95OH78uGrWrKlx48apfv36evXVVyVJ//73v9WqVSvVqVNHnTp10rZt25z7Yd68eWrTpo1iY2P1r3/9Sz/99JNz2+vWrVPbtm1Vr1493XfffZoxY4ZbfQkAJZIBAPCYGjVqGN9++63RsGFDY8uWLc7pL730kjF79mzj0UcfNaZOnWoYhmGMHj3a6Nmzp5GUlGQ4HA7jiy++MGrUqGEcPnzYMAzDaN68ufHggw8aSUlJRlJSkrF9+3ajRo0aht1uN1544QWjY8eORkJCgmEYhnHgwAHjtttuM9atW2dkZWUZ33//vdGgQQPjm2++MQzDMD799FOjefPml6z7722dPn3aqFevnvHxxx8bmZmZxq+//mq0atXKWLhwoWEYhjFs2DBj5MiRRmZmppGcnGz07t3beP311w3DMIypU6cad999t/HTTz8ZNpvNWLNmjVG7dm1jz549zrY+/fRTZ9u598swDOPYsWNGjRo1jFGjRhkZGRlGUlKS8emnnxp33nmnsXv3bsNutxtLliwxbr/9duPcuXPGxx9/bPzjH/8wDhw4YGRmZhqffPKJERsba8THxxtpaWnGrbfeamzfvt0wDMPYv3+/cccddzjrAACzYoQeADzM399f7du3d552k56ernXr1qlDhw4uyw0aNEiTJ09WWFiYTp8+raCgIElyjnRLUps2bRQREaGIiAjntOHDh2vLli2aN2+eoqKiJEmLFi1Sy5Yt1bp1a1mtVtWtW1cPP/ywFixYUOS6L25r5cqVqlq1qrp166aAgABVq1ZNffr0cW4vKChI33//vdasWaPU1FS9//77GjVqlCTp008/1RNPPKFbbrlF/v7+uv/++9WiRQstXbq0yLV06NBBgYGBioiI0PLly9W1a1fVqVNHfn5+6tKliz744AMFBwdrwYIFevLJJ1WrVi0FBASoc+fOqlq1qvPTieDgYC1dulTbtm1T1apV9f333+u2224rch0AUBL5e7sAAPAFnTp1UteuXZWSkqIvv/xSdevWVXR0tMsyCQkJGjt2rP7v//5P11xzjWrXri1JLqfWlC9fPs+2T58+rdTUVH3zzTe6//77JUknTpzQ9u3bFRsb61zObrfr2muvLXLNF7d14sQJ7d+/32V7DodDVqtVkjRq1Ci99957mjt3rl544QXVqlVLo0aNUmxsrM6ePasqVaq4bPuaa67Rzz//fFm1xMfHKyYmxmV+3bp1nXW+9dZbeuedd5zzsrKyVLt2bQUHB2vhwoWaMWOGnn/+eaWkpKhNmzYaNWqUSpcuXeRaAKCkIdADwBVQq1Yt3XjjjVq7dq1WrVqlnj175lnm6aefVosWLTR37lz5+/vr3LlzWrJkicsyFoslz3pz587VkiVL9Oqrryo2Nlbly5dXxYoV1bFjR7322mvO5c6cOePWF2EvbqtixYpq0KCB5s6d65x27tw5paamSpL+7//+T127dtWgQYOUmJio6dOna+DAgdq+fbsqV66sY8eOuWz72LFjzpDu5+cnm83mst2CaqlUqZJOnTrlMn/SpEl64IEHVLFiRQ0ePFht27Z1zjt69KjKlCmjlJQUnTlzRhMmTJAkHThwQM8995xmzZql4cOHF3m/AEBJwyk3AHCFdOrUSR999JH++OMPNWvWLM/85ORkBQcHy2q1KjExUWPGjJEkl7Cbn8DAQHXr1k01atTQyJEjJUmdO3fW6tWr9e2338rhcOjw4cN69NFH9cEHH0jKPkUmLS1NWVlZRaq9ffv2+vHHH7Vy5UplZWXpzJkz6tevn8aNGydJmjVrll5//XWlpKQoIiJCISEhioyMlCR16dJFs2fP1v79+2W327V27Vpt2rRJHTt2lCRVrVpVGzduVHp6uuLj4zVv3rxC9+PixYu1d+9eORwOffrpp1qwYIEiIyP18MMPa+bMmTp06JAkacuWLWrbtq127typ1NRU9e3bV6tWrZJhGCpfvrz8/PycdQKAWRHoAeAKadeunY4cOaIHHnhA/v55PyB988039fnnn6tu3brq1KmTKlSooJtvvlm//PJLodu2WCx64403tGvXLi1atEi33367Jk6cqIkTJ6p+/fp69NFH1aJFCz3//POSpPr166ts2bKqX7++Dh48WOj2K1eurPfff1+LFy9W48aN9eCDD+rGG290BvrXXntNDodDLVu2VP369bVnzx5NmTJFktS7d29169ZNzz77rGJjY/Xee+9p4sSJuvPOOyVJQ4YMUWpqqu666y716NFDDzzwQIG1tG/fXoMGDdLQoUMVGxurxYsXa86cOYqKilKvXr3UoUMH9e/fX3Xq1NHYsWP18ssvq2XLlqpQoYKmTp2qOXPmqG7dumrXrp0aNmyoXr16FXr/AaAksxjufP4KAAAAoERhhB4AAAAwMQI9AAAAYGIEegAAAMDECPQAAACAiRHoAQAAABMj0AMAAAAmRqAHAAAATIxADwAAAJgYgR4AAAAwMQI9AAAAYGIEegAAAMDE/h+Y3k+fgJ/0pgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the deviations\n", "approximationError = 100 * (cHARK - cApprox) / cHARK\n", "plt.figure(figsize=(9, 6)) # set the figure size\n", "plt.plot(m_range, approximationError, label=\"cHARK - cApprox\")\n", "plt.xlabel(\"Market resources\") # x axis label\n", "plt.ylabel(\"Percent deviation of approximation\") # y axis label\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we want to calculate how the approximation quality depends on the interest factor. We proceed as follows:\n", "1. Create arrays of R values, such that the return patience factor is increasing as you descend through the array\n", "2. Set up a for loop in which we will:\n", " 1. Input the new value of $R$\n", " 0. Solve the HARK model for the consumption function\n", " 0. Calculate the approximate consumption function\n", " 0. Save the average deviation between the two functions\n", "3. Then we can plot average deviation against the $R$ factor" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Create array of Rfree values, and calculate the patience factor\n", "howMany = 30\n", "Rfree_min = Rfree\n", "Rfree_max = Rfree**20\n", "Rfree_array = np.linspace(Rfree_min, Rfree_max, howMany)\n", "\n", "Pat_array = (Rfree_array * DiscFac) ** (1 / CRRA)\n", "PatR_array = Pat_array / Rfree_array" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Set the time preference factor to match the interest factor so that $(R \\beta) = 1$\n", "\n", "Paramod[\"DiscFac\"] = 1 / Rfree" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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AADAPMJ9A9S2+qRawj0AAABqj3DfAFWdVBvPijkAAAAwgXDfAFWN3MdnMnIPAACA2qvVajlV1q9fr9mzZysuLk4Oh6PGvl27djm1sKYsJpS17gEAAGCeqXA/d+5c9erVSw8//LBsNlNPhQltjk3LySosVVZBqUL8vNxcEQAAABoDUwk9Li5O77//vry9vV1VDyT5elkVFeitI7nFis8sUIhfsLtLAgAAQCNgas5927ZtdfToUVfVguOwYg4AAADMMjVyf+mll+qWW27RhAkTFBkZWWPf+PHjnVlXkxcT5qt18ZnMuwcAAECtmQr377//viRp8eLFNbYbhkG4d7LqFXMYuQcAAEAtmQr333zzjavqwP+IqVrrPpORewAAANSO6SVvfv75Z3388cdKSkpSZGSkrrzySvXr188VtTVpVSP3SVmFKimrkN3GJQkAAABweqYS4w8//KDrrrtOWVlZOuecc5SXl6c///nPWrVqlavqa7Ii/O3yt1tV7pAOZTN6DwAAgDMzNXK/YMECzZs3T5deemn1ti+//FILFy7URRdd5PTimjLDMBQT5qdfj+QqLqNQ7cP93V0SAAAAGjhTI/cHDx7UqFGjamwbNWqU4uLinFkTjmlbNe+ek2oBAABQC6bCfUhIiPbs2VNj22+//XbCsphwjphQVswBAABA7ZmalnP11Vfrzjvv1O23365WrVopISFBr7/+uq677jpX1dekVY3cs9Y9AAAAasNUuL/11ltVXFysV199VWlpaYqOjtaf/vQn/fnPf3ZVfU1azHFXqXU4HDIMw80VAQAAoCEzFe4Nw9Ddd9+tu+++21X14DitQ3xlMaT8knKl55coIsDb3SUBAACgAatVuH/ttdd022236cUXXzzlY6ZOneq0olDJbrMoOthHiVlFissoJNwDAADgtGoV7jdu3KjbbrtN69evP+l+pou4TkyYnxKzihSfWaB+bULcXQ4AAAAasFqF+9dff12S9Oyzz550ZZy9e/c6typUiwn10w/K4KRaAAAAnJGppTD/d417SSovL9fEiROdVhBqql4xJ53lMAEAAHB6Zxy5j4+P18033yyHw6HCwkKNHDmyxv6ioiJFR0e7rMCmrlOzAEnSzsM5KiuvkM1q6ngMAAAATcgZw31MTIxmzZqlzMxMPfbYYyecOOvt7a3+/fu7rMCmrmvzAIX6eimz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e/dZ/wxbtmzRDTfcoMGDB+vcc8/VlVdeqW3btlXv//HHHzVhwgTFxsZqxIgRevfdd1VeXq6xY8dKksaOHavly5dLkj766CNddtll6tOnjy6//PLqS8VX/VwPPfSQhg8frmHDhlX3BAA8HeEeABqJw4cP691339W5556rsLAwVVRUaMqUKbJYLFqxYoWWLVumo0eP6tFHH5UkrVixQpL0+uuv69Zbb63Ve6xZs0bPP/+8/vvf/6pNmzaSpC+++ELvvvuuVq9eLV9fX/39738/q/qLiop05513atSoUVq9erXWr1+vNm3aVL/ewYMHdccdd+jaa6/Vxo0btWDBAj377LP66aef9Pnnn0uq/FRgzJgx+s9//qO5c+fq4Ycf1saNG/XXv/5Vs2fP1sqVK6vf76efftL777+vpUuXKiAg4KxqBoDGhmk5ANBAzZ49W0899ZTKyspUWlqqqKgoXXzxxbr99tslST///LN++eUXvfnmm/L395ckPfjggxo9erQeeeQRhYaGmn7P3r17q3PnzjW2XX/99YqMjJQkXXrppXr11VdP+xpXXHFFjSlDXbt21TvvvCMvLy998MEHiomJUXFxsZKSkhQSEqKdO3dKqjyI6N69uyZMmCBJ6tGjh9577z01a9bshCk5n3zyiSZOnKiBAwdKkgYOHKiJEyfq/fff18UXXyxJuvDCC9W8eXPTPQCAxoxwDwAN1N/+9jddeeWVKikp0aJFi/TKK69o6NCh1aH90KFDKi8v19ChQ2s8z263KzEx8azCfbNmzU7YFhERUf29zWaTw+E47WssXbr0pHPurVar1q9fr1tvvVUFBQXq2LFjjdc7evSoWrZsWeM5Xbp0kaQTwn1aWppat25dY1urVq30zTffnPZnAQBPR7gHgAbObrfrlltuUXZ2tqZMmaLFixerS5cuioqKko+Pj9avXy+r1SpJKikpUWJiomJiYk54HYvFopKSkhrb/veE2/9d5caZtm/frjlz5uj9999Xjx49JEn/+te/dPDgQUlSixYt9P3339d4zieffKLw8HB17NixxvZWrVopISGhxrbExMTqTxgk1/4sANBQMeceABqJe++9V+ecc47uu+8+FRUVqWfPnoqJidHcuXOVn5+voqIiPfXUU5o8ebLKy8slVR4Y5ObmSpI6dOigtLQ0rVu3Tg6HQ5999pn2799fb/Xn5ubKYrHIx8dHkrRt2zYtWrSo+oDjsssu06+//qolS5aovLxcP//8s+bOnSubzSZvb29Jqj4xdsKECfrggw+0du1alZeXa926dfrggw901VVX1dvPAwANESP3ANBIWK1WzZ8/X+PHj9e8efP0t7/9Ta+++qrmzZunSy65RMXFxerZs6fefPPN6jA8ceJE3X///Zo8ebKmT5+uO++8Uw899JDy8/N10UUXVa+oUx8uuOACXXfddZo0aZIqKirUqlUrXX/99XrmmWeUlpamNm3a6LXXXtMzzzyjOXPmKDw8XA899JAGDx4sh8Ohiy++WBMnTtRDDz2kP/7xj8rLy9MTTzyh5ORkNW/eXH/5y180fvz4evt5AKAhMhxnmjwJAAAAoFFgWg4AAADgIQj3AAAAgIcg3AMAAAAegnAPAAAAeAjCPQAAAOAhCPcAAACAhyDcAwAAAB6CcA8AAAB4CMI9AAAA4CEI9wAAAICHINwDAAAAHoJwDwAAAHiI/wdiDbEduy4ZMQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot average deviation from true consumption function\n", "PFagent = PerfForesightConsumerType(\n", " **Paramod\n", ") # construct a consumer with our previous parameters\n", "\n", "plt.figure(figsize=(9, 6)) # set the figure size\n", "mean_dev = np.zeros(30)\n", "\n", "for i in range(len(Rfree_array)):\n", " PFagent.Rfree = Rfree_array[i]\n", "\n", " # Now we just copy the lines of code from above that we want\n", " PFagent.solve()\n", " cHARK = PFagent.solution[0].cFunc(m_range)\n", " wealthHmn = PFagent.solution[0].hNrm\n", " wealthTot = wealthHmn + m_range\n", " rfree = Rfree - 1\n", " discRte = (1 / DiscFac) - 1\n", " cApprox = wealthTot * (rfree - (1 / CRRA) * (rfree - discRte))\n", " deviation = np.mean(np.abs(cApprox / cHARK))\n", " mean_dev[i] = deviation\n", "\n", "plt.plot(Rfree_array, mean_dev)\n", "plt.xlabel(\"Return Factor\") # x axis label\n", "plt.ylabel(\" Average deviation along consumption function\") # y axis label\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, when the return factor gets to roughly 1.4, the error in the approximation is almost 80 percent. It looks like the value for $R$ where the approximation almost exactly matches the truth is about 1.035." ] } ], "metadata": { "jupytext": { "cell_metadata_json": true, "formats": "py:percent,ipynb", "notebook_metadata_filter": "all" }, "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.10.13" } }, "nbformat": 4, "nbformat_minor": 4 }