{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "
\n", " \n", " \"QuantEcon\"\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The Aiyagari Model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Contents\n", "\n", "- [The Aiyagari Model](#The-Aiyagari-Model) \n", " - [Overview](#Overview) \n", " - [The Economy](#The-Economy) \n", " - [Firms](#Firms) \n", " - [Code](#Code) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Overview\n", "\n", "In this lecture we describe the structure of a class of models that build on work by Truman Bewley [[Bew77]](../zreferences.html#bewley1977).\n", "\n", "We begin by discussing an example of a Bewley model due to Rao Aiyagari.\n", "\n", "The model features\n", "\n", "- Heterogeneous agents. \n", "- A single exogenous vehicle for borrowing and lending. \n", "- Limits on amounts individual agents may borrow. \n", "\n", "\n", "The Aiyagari model has been used to investigate many topics, including\n", "\n", "- precautionary savings and the effect of liquidity constraints [[Aiy94]](../zreferences.html#aiyagari1994) \n", "- risk sharing and asset pricing [[HL96]](../zreferences.html#heaton1996) \n", "- the shape of the wealth distribution [[BBZ15]](../zreferences.html#benhabib2015) \n", "- etc., etc., etc. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### References\n", "\n", "The primary reference for this lecture is [[Aiy94]](../zreferences.html#aiyagari1994).\n", "\n", "A textbook treatment is available in chapter 18 of [[LS18]](../zreferences.html#ljungqvist2012).\n", "\n", "A continuous time version of the model by SeHyoun Ahn and Benjamin Moll can be found [here](http://nbviewer.jupyter.org/github/QuantEcon/QuantEcon.notebooks/blob/master/aiyagari_continuous_time.ipynb)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Economy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Households\n", "\n", "Infinitely lived households / consumers face idiosyncratic income shocks.\n", "\n", "A unit interval of *ex ante* identical households face a common borrowing constraint.\n", "\n", "The savings problem faced by a typical household is\n", "\n", "$$\n", "\\max \\mathbb E \\sum_{t=0}^{\\infty} \\beta^t u(c_t)\n", "$$\n", "\n", "subject to\n", "\n", "$$\n", "a_{t+1} + c_t \\leq w z_t + (1 + r) a_t\n", "\\quad\n", "c_t \\geq 0,\n", "\\quad \\text{and} \\quad\n", "a_t \\geq -B\n", "$$\n", "\n", "where\n", "\n", "- $ c_t $ is current consumption \n", "- $ a_t $ is assets \n", "- $ z_t $ is an exogenous component of labor income capturing stochastic unemployment risk, etc. \n", "- $ w $ is a wage rate \n", "- $ r $ is a net interest rate \n", "- $ B $ is the maximum amount that the agent is allowed to borrow \n", "\n", "\n", "The exogenous process $ \\{z_t\\} $ follows a finite state Markov chain with given stochastic matrix $ P $.\n", "\n", "The wage and interest rate are fixed over time.\n", "\n", "In this simple version of the model, households supply labor inelastically because they do not value leisure." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Firms\n", "\n", "Firms produce output by hiring capital and labor.\n", "\n", "Firms act competitively and face constant returns to scale.\n", "\n", "Since returns to scale are constant the number of firms does not matter.\n", "\n", "Hence we can consider a single (but nonetheless competitive) representative firm.\n", "\n", "The firm’s output is\n", "\n", "$$\n", "Y_t = A K_t^{\\alpha} N^{1 - \\alpha}\n", "$$\n", "\n", "where\n", "\n", "- $ A $ and $ \\alpha $ are parameters with $ A > 0 $ and $ \\alpha \\in (0, 1) $ \n", "- $ K_t $ is aggregate capital \n", "- $ N $ is total labor supply (which is constant in this simple version of the model) \n", "\n", "\n", "The firm’s problem is\n", "\n", "$$\n", "max_{K, N} \\left\\{ A K_t^{\\alpha} N^{1 - \\alpha} - (r + \\delta) K - w N \\right\\}\n", "$$\n", "\n", "The parameter $ \\delta $ is the depreciation rate.\n", "\n", "From the first-order condition with respect to capital, the firm’s inverse demand for capital is\n", "\n", "\n", "\n", "$$\n", "r = A \\alpha \\left( \\frac{N}{K} \\right)^{1 - \\alpha} - \\delta \\tag{1}\n", "$$\n", "\n", "Using this expression and the firm’s first-order condition for labor, we can pin down\n", "the equilibrium wage rate as a function of $ r $ as\n", "\n", "\n", "\n", "$$\n", "w(r) = A (1 - \\alpha) (A \\alpha / (r + \\delta))^{\\alpha / (1 - \\alpha)} \\tag{2}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Equilibrium\n", "\n", "We construct a *stationary rational expectations equilibrium* (SREE).\n", "\n", "In such an equilibrium\n", "\n", "- prices induce behavior that generates aggregate quantities consistent with the prices \n", "- aggregate quantities and prices are constant over time \n", "\n", "\n", "In more detail, an SREE lists a set of prices, savings and production policies such that\n", "\n", "- households want to choose the specified savings policies taking the prices as given \n", "- firms maximize profits taking the same prices as given \n", "- the resulting aggregate quantities are consistent with the prices; in particular, the demand for capital equals the supply \n", "- aggregate quantities (defined as cross-sectional averages) are constant \n", "\n", "\n", "In practice, once parameter values are set, we can check for an SREE by the following steps\n", "\n", "1. pick a proposed quantity $ K $ for aggregate capital \n", "1. determine corresponding prices, with interest rate $ r $ determined by [(1)](#equation-aiy-rgk) and a wage rate $ w(r) $ as given in [(2)](#equation-aiy-wgr) \n", "1. determine the common optimal savings policy of the households given these prices \n", "1. compute aggregate capital as the mean of steady state capital given this savings policy \n", "\n", "\n", "If this final quantity agrees with $ K $ then we have a SREE." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Code\n", "\n", "Let’s look at how we might compute such an equilibrium in practice.\n", "\n", "To solve the household’s dynamic programming problem we’ll use the [DiscreteDP](https://github.com/QuantEcon/QuantEcon.jl/blob/master/src/markov/ddp.jl) type from [QuantEcon.jl](http://quantecon.org/quantecon-jl).\n", "\n", "Our first task is the least exciting one: write code that maps parameters for a household problem into the `R` and `Q` matrices needed to generate an instance of `DiscreteDP`.\n", "\n", "Below is a piece of boilerplate code that does just this.\n", "\n", "In reading the code, the following information will be helpful\n", "\n", "- `R` needs to be a matrix where `R[s, a]` is the reward at state `s` under action `a`. \n", "- `Q` needs to be a three dimensional array where `Q[s, a, s']` is the probability of transitioning to state `s'` when the current state is `s` and the current action is `a`. \n", "\n", "\n", "(For a detailed discussion of `DiscreteDP` see [this lecture](../dynamic_programming/discrete_dp.html))\n", "\n", "Here we take the state to be $ s_t := (a_t, z_t) $, where $ a_t $ is assets and $ z_t $ is the shock.\n", "\n", "The action is the choice of next period asset level $ a_{t+1} $.\n", "\n", "The object also includes a default set of parameters that we’ll adopt unless otherwise specified." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setup" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "hide-output": true }, "outputs": [], "source": [ "using InstantiateFromURL\n", "github_project(\"QuantEcon/quantecon-notebooks-julia\", version = \"0.5.0\")\n", "# github_project(\"QuantEcon/quantecon-notebooks-julia\", version = \"0.5.0\", instantiate = true) # uncomment to force package installation" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hide-output": false }, "outputs": [], "source": [ "using LinearAlgebra, Statistics" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "hide-output": false }, "outputs": [], "source": [ "using Parameters, Plots, QuantEcon\n", "gr(fmt = :png);" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "hide-output": false }, "outputs": [ { "data": { "text/plain": [ "setup_R! (generic function with 1 method)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Household = @with_kw (r = 0.01,\n", " w = 1.0,\n", " σ = 1.0,\n", " β = 0.96,\n", " z_chain = MarkovChain([0.9 0.1; 0.1 0.9], [0.1; 1.0]),\n", " a_min = 1e-10,\n", " a_max = 18.0,\n", " a_size = 200,\n", " a_vals = range(a_min, a_max, length = a_size),\n", " z_size = length(z_chain.state_values),\n", " n = a_size * z_size,\n", " s_vals = gridmake(a_vals, z_chain.state_values),\n", " s_i_vals = gridmake(1:a_size, 1:z_size),\n", " u = σ == 1 ? x -> log(x) : x -> (x^(1 - σ) - 1) / (1 - σ),\n", " R = setup_R!(fill(-Inf, n, a_size), a_vals, s_vals, r, w, u),\n", " # -Inf is the utility of dying (0 consumption)\n", " Q = setup_Q!(zeros(n, a_size, n), s_i_vals, z_chain))\n", "\n", "function setup_Q!(Q, s_i_vals, z_chain)\n", " for next_s_i in 1:size(Q, 3)\n", " for a_i in 1:size(Q, 2)\n", " for s_i in 1:size(Q, 1)\n", " z_i = s_i_vals[s_i, 2]\n", " next_z_i = s_i_vals[next_s_i, 2]\n", " next_a_i = s_i_vals[next_s_i, 1]\n", " if next_a_i == a_i\n", " Q[s_i, a_i, next_s_i] = z_chain.p[z_i, next_z_i]\n", " end\n", " end\n", " end\n", " end\n", " return Q\n", "end\n", "\n", "function setup_R!(R, a_vals, s_vals, r, w, u)\n", " for new_a_i in 1:size(R, 2)\n", " a_new = a_vals[new_a_i]\n", " for s_i in 1:size(R, 1)\n", " a = s_vals[s_i, 1]\n", " z = s_vals[s_i, 2]\n", " c = w * z + (1 + r) * a - a_new\n", " if c > 0\n", " R[s_i, new_a_i] = u(c)\n", " end\n", " end\n", " end\n", " return R\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a first example of what we can do, let’s compute and plot an optimal accumulation policy at fixed prices" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "hide-output": false }, "outputs": [ { "data": { "image/png": "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" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create an instance of Household\n", "am = Household(a_max = 20.0, r = 0.03, w = 0.956)\n", "\n", "# Use the instance to build a discrete dynamic program\n", "am_ddp = DiscreteDP(am.R, am.Q, am.β)\n", "\n", "# Solve using policy function iteration\n", "results = solve(am_ddp, PFI)\n", "\n", "# Simplify names\n", "@unpack z_size, a_size, n, a_vals = am\n", "z_vals = am.z_chain.state_values\n", "\n", "# Get all optimal actions across the set of\n", "# a indices with z fixed in each column\n", "a_star = reshape([a_vals[results.sigma[s_i]] for s_i in 1:n], a_size, z_size)\n", "\n", "labels = [\"z = z_vals[1]\", \"z = z_vals[2]\"]\n", "plot(a_vals, a_star, label = labels, lw = 2, alpha = 0.6)\n", "plot!(a_vals, a_vals, label = \"\", color = :black, linestyle = :dash)\n", "plot!(xlabel = \"current assets\", ylabel = \"next period assets\", grid = false)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot shows asset accumulation policies at different values of the exogenous state.\n", "\n", "Now we want to calculate the equilibrium.\n", "\n", "Let’s do this visually as a first pass.\n", "\n", "The following code draws aggregate supply and demand curves.\n", "\n", "The intersection gives equilibrium interest rates and capital" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "hide-output": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeXgUVb4//s+p6i17J52ks5JAwr4vyqK4oJEZN0QWBcQZhEFFHe8ooneuy09n7lXUkXEZFQWVy6gT5ovOHZgZYxAdiSyyJixhSwghZO10J+nudNLdVef3R0eMSQgNpLt6eb8eH588J5WuTwrod59Tp85hnHMCAAAIV4LSBQAAACgJQQgAAGENQQgAAGENQQgAAGENQQgAAGENQQgAAGENQQgAAGHNf0FotVqffvrpmTNnPvPMM1ar1dMoSdKiRYt6PwYAAMB3/BeE+fn5RqMxPz8/OTl5w4YNRPTZZ589+uijVVVVvRwDAADgU/4LwqKiohkzZmg0mhkzZmzbto2IBgwYcM899/R+DAAAgE+p/HamxsZGo9FIREaj0Ww2E9GYMWMueEyPPvjgg88++0wQuqb4HXfcsXDhwj6uO4C5XC61Wq10FcrDdfDAdSAizrkkSSqV/97ZAhOug4csy2q1untYdOG/y8Q5Z4x5vpBl+ZKPIaJnn312xYoVqampXdpzcnIkSeq7kgNdQ0NDcnKy54qFs/r6+pSUFKWrUJgsyyaTKTk5WelCFOZ2u5uamhITE5UuRGFOp9NmsyUkJChdiMLa2tqISKvV9n6Y/4LQYDDU19dnZGSYTKbz/TX15hgiUqlUN998c25urs+KDQ5arVan0yEIPddB6SoUJssyrgMRud1uXAciEgTB5XLhOhDRBbuD5M97hJMmTSooKOCcFxQUTJkyhYiKi4sveAwAAIBP+S8IFy5cWF5ePm/evIqKigULFhDR8uXLL3gMAACAT7Fg3I8wOzt7y5YtGBqtra01Go0YGq2pqel+wzjcyLLc0NDgmWsWztxut8ViSUpKUroQhTmdTqvVajAYlC5EYW1tbaIoXnASGVaWAQCAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsIYgBACAsKZSugAAgL6xbdu2Rx55RJZlURSVrkVhnHPOuSCEVFfn+uuvf+2113zxyghCAAgRzc3NsbGxr7/+utKFQN/75ptv/v3vf/voxRGEABA6YmNjx44dq3QV0PdOnz7tuyAMqY4zAADAxUIQAgBAWEMQAgBAWEMQAgBAWEMQAgBAWEMQAgBAWEMQKq/OoXQFAABhDEGoJLdMr5TIL+yTLO1c6VoAAMIUglBJKoH0GnJz+vIsghAg9OXl5Sl1og8//HDOnDn+POPFHqAgBKHCbu0nMKJttbwJnUIA8JlNmzatWbPGd69/1113eb5YsWKF787iIwhChaVG0hgDc8lUiE4hAPiM1WqNi4vz3esvWbLE88X+/ft9dxYfwVqjyrulHztg5t/W8p9lUoxa6WoAQkudgztlP50rJYKpf9q5aGlp+dOf/rR79+7o6OiZM2d6Gs1m81tvvVVSUhIRETFixIglS5YYDIa8vLy77767oKDgtttu45xv3brVYrHcdddd8+fP3759+7p16+rq6jQazezZs+fOnZuXl/fb3/72008/NZlMCxYsmDVrVo8nOufZZ58lovnz548ePXrv3r2MsXHjxj344IOxsbF5eXlPPfXU22+/vXHjRs/Bzc3Nf/zjH0tKSmJiYhYvXjx16tQeC1iyZMlf//rXzMzMJ598MiUlJS8vr7Cw0HOi+++//xe/+EWXH/H1xb8cCELlZUaxUQmsuJEXnpXvzEYfHaAvrT3GT9v8NNzy2zFiVvRPWt5++20iWr9+vSAIb775pqfxtddeu/HGG5988kmXy/XZZ5+tWrXq97//PRH1799/5cqVS5cufeCBB95///2SkpJnnnlm/vz5H3300Y033jhr1qxTp0498sgjnlCpr69fvXr1gQMHnn766VmzZvV4onNeeOGFvLy80aNHq1Sq9evXE9Gf/vSn1atXP/HEE0R0+PDhV1999dzB77zzTmpq6tNPP33kyJHnnntu4sSJPRbgcDjy8/M/+uijd9555/nnn+98otWrVy9durT7jwQsBGFAuDWTlZj5NzWUl85j1EzpcgBChzGCJH/ddtB0+xz7/fffr1mzJioqioiWLFlSWFhIRMXFxbt27Tp3zLkRy6lTp6pUKiK64447RFEcN26cy+UionfffffYsWOFhYXFxcVut9tz8G233cYYGzt2rNPpPN+Juti1a9fatWu1Wi0RLVq0aOnSpZ72e++9V6/Xd675o48+EkVx5MiRni96LGD69OmiKM6ePXvRokXdz9XjjwQsBGFA6BfNhuvpkIVvrWYzspSuBiCELB6s5CgLY6z719HR0e+9915qaioRORwOq9XqaVerO26NeDYWPnf87373O7Vaff311y9evHjLli2exsjIyAueqPd6JEnyfNE5BYlIluVzh1ksFrVa/fLLL3cv4NwLynIPQ8891hywMBAXKG7tJxDR1mrZHugfngDAW1deeeXq1atbW1sdDsfatWs9jVdfffWnn37a1tZmsViee+65Tz/9tPcX2bdv3/z58ydNmrRnzx7qFGAXPFH3Yz788EOn09ne3v7hhx9OnDixx8PGjRu3YcMGSZJKS0sffvhht9vdYwFffPGFJEkbN24cOXJkl1c4348ELARhoOgfw4bpWZtEW6sxfRQgRDz44IOc83vuuWfp0qWjRo3yNC5atEiW5YULFy5ZssRoNJ4bojyf++677/HHH//Vr37V0tIyYcKEl19+2csTdbFs2bL29vYFCxYsXLjQ5XI9+OCDPR728MMPnzp1as6cOf/zP/+zfPnymJiYHguQJGnOnDkHDhxYtmxZ5x+/8sor7733Xm9qDhyM8+B7283Ozt6yZUtubq7ShfSxky38lRI5QkX/PUGM8mLQura21mg09jIMEiZqamo8o0zhTJblhoYGo9GodCFK2rx587vvvrt582alCwl9njmi/jzj3/72t48++uhvf/vbRf1UW1ubKIrnxpzPBz3CAJIby4bHM4ebCqr8Nd0bACDsIQgDy4wsxhhtreZNTqVLAQA4j9/+9rdKl9CXEISBJSuajUlgLpm+OINOIQAEqOuvv17pEvoSgjDg3J7FBEbb6ripLfhu3wIABB0EYcBJi2RXJDK3TP88gyAEAPA5BGEgmpEtqATaUc9rsWcvQNi7tA2M+mTfpaDeXMl7CMJAZNDS5GQmc9pciTuFAHAp+mTfpaDeXMl7CMIAdWsmUwu0x8TP2DFACgAXrU/2XQrqzZW8hyAMUHotuzZV4Jw2VSIIAS4ddzu5s80//xHvOoTzxRdfzJ0798477/z888/ppwOJnq/z8vLy8/Nnz579m9/8pra2tscWIlq1atW5bZJWrVqVn59/7nVaWlpWrlw5d+7cu+66a+XKlS0tLfTDvkv333//ucOam5uff/75WbNm/fKXv9y2bRsRbd++/f7777/jjjvmzp27YcOG8xXT+dW6/0howKLbgevnGayoloobeXkLHxAb7svHAFwa29efuc11/jlXbN48MSG5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" }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Firms' parameters\n", "const A = 1\n", "const N = 1\n", "const α = 0.33\n", "const β = 0.96\n", "const δ = 0.05\n", "\n", "function r_to_w(r)\n", " return A * (1 - α) * (A * α / (r + δ)) ^ (α / (1 - α))\n", "end\n", "\n", "function rd(K)\n", " return A * α * (N / K) ^ (1 - α) - δ\n", "end\n", "\n", "function prices_to_capital_stock(am, r)\n", "\n", " # Set up problem\n", " w = r_to_w(r)\n", " @unpack a_vals, s_vals, u = am\n", " setup_R!(am.R, a_vals, s_vals, r, w, u)\n", "\n", " aiyagari_ddp = DiscreteDP(am.R, am.Q, am.β)\n", "\n", " # Compute the optimal policy\n", " results = solve(aiyagari_ddp, PFI)\n", "\n", " # Compute the stationary distribution\n", " stationary_probs = stationary_distributions(results.mc)[:, 1][1]\n", "\n", " # Return K\n", " return dot(am.s_vals[:, 1], stationary_probs)\n", "end\n", "\n", "# Create an instance of Household\n", "am = Household(β = β, a_max = 20.0)\n", "\n", "# Create a grid of r values at which to compute demand and supply of capital\n", "r_vals = range(0.005, 0.04, length = 20)\n", "\n", "# Compute supply of capital\n", "k_vals = prices_to_capital_stock.(Ref(am), r_vals)\n", "\n", "# Plot against demand for capital by firms\n", "demand = rd.(k_vals)\n", "labels = [\"demand for capital\" \"supply of capital\"]\n", "plot(k_vals, [demand r_vals], label = labels, lw = 2, alpha = 0.6)\n", "plot!(xlabel = \"capital\", ylabel = \"interest rate\", xlim = (2, 14), ylim = (0.0, 0.1))" ] } ], "metadata": { "date": 1580349906.179987, "download_nb": 1, "download_nb_path": "https://julia.quantecon.org/", "filename": "aiyagari.rst", "filename_with_path": "multi_agent_models/aiyagari", "kernelspec": { "display_name": "Julia 1.3.0", "language": "julia", "name": "julia-1.3" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.3.0" }, "title": "The Aiyagari Model" }, "nbformat": 4, "nbformat_minor": 2 }