Skip to content

Instantly share code, notes, and snippets.

@mk1564
Created December 7, 2020 00:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mk1564/006337122e3408374840a949124da6eb to your computer and use it in GitHub Desktop.
Save mk1564/006337122e3408374840a949124da6eb to your computer and use it in GitHub Desktop.
The Income Fluctuation Problem II: Stochastic Returns on Assets
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Julia Version of [The Income Fluctuation Problem II: Stochastic Returns on Assets](https://python.quantecon.org/ifp_advanced.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Min Kim (min.kim@rutgers.edu)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2020-12-06"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using Dates\n",
"Dates.today()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"v\"1.5.3\""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"VERSION"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Contents\n",
"\n",
"- [The Income Fluctuation Problem II: Stochastic Returns on Assets](#The-Income-Fluctuation-Problem-II:-Stochastic-Returns-on-Assets) \n",
" - [Overview](#Overview) \n",
" - [The Savings Problem](#The-Savings-Problem) \n",
" - [Solution Algorithm](#Solution-Algorithm) \n",
" - [Implementation](#Implementation) \n",
" - [Exercises](#Exercises) \n",
" - [Solutions](#Solutions) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Overview\n",
"\n",
"In this lecture, we continue our study of the [income fluctuation problem](https://python-programming.quantecon.org/ifp.html).\n",
"\n",
"While the interest rate was previously taken to be fixed, we now allow\n",
"returns on assets to be state-dependent.\n",
"\n",
"This matches the fact that most households with a positive level of assets\n",
"face some capital income risk.\n",
"\n",
"It has been argued that modeling capital income risk is essential for\n",
"understanding the joint distribution of income and wealth (see, e.g.,\n",
"[[BBZ15]](https://python-programming.quantecon.org/zreferences.html#benhabib2015) or [[ST19b]](https://python-programming.quantecon.org/zreferences.html#stachurski2019impossibility)).\n",
"\n",
"Theoretical properties of the household savings model presented here are\n",
"analyzed in detail in [[MST20]](https://python-programming.quantecon.org/zreferences.html#ma2020income).\n",
"\n",
"In terms of computation, we use a combination of time iteration and the\n",
"endogenous grid method to solve the model quickly and accurately.\n",
"\n",
"We require the following imports:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"hide-output": false
},
"outputs": [],
"source": [
"using LinearAlgebra, Statistics\n",
"using BenchmarkTools, Optim, Parameters, Plots, QuantEcon, Random\n",
"using StatsPlots\n",
"gr(fmt = :png);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Savings Problem\n",
"\n",
"In this section we review the household problem and optimality results."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Set Up\n",
"\n",
"A household chooses a consumption-asset path $ \\{(c_t, a_t)\\} $ to\n",
"maximize\n",
"\n",
"\n",
"<a id='equation-trans-at'></a>\n",
"$$\n",
"\\mathbb E \\left\\{ \\sum_{t=0}^\\infty \\beta^t u(c_t) \\right\\} \\tag{1}\n",
"$$\n",
"\n",
"subject to\n",
"\n",
"\n",
"<a id='equation-trans-at2'></a>\n",
"$$\n",
"a_{t+1} = R_{t+1} (a_t - c_t) + Y_{t+1}\n",
"\\; \\text{ and } \\;\n",
"0 \\leq c_t \\leq a_t, \\tag{2}\n",
"$$\n",
"\n",
"with initial condition $ (a_0, Z_0)=(a,z) $ treated as given.\n",
"\n",
"Note that $ \\{R_t\\}_{t \\geq 1} $, the gross rate of return on wealth, is allowed to be stochastic.\n",
"\n",
"The sequence $ \\{Y_t \\}_{t \\geq 1} $ is non-financial income.\n",
"\n",
"The stochastic components of the problem obey\n",
"\n",
"\n",
"<a id='equation-eq-ry-func'></a>\n",
"$$\n",
"R_t = R(Z_t, \\zeta_t)\n",
" \\quad \\text{and} \\quad\n",
"Y_t = Y(Z_t, \\eta_t), \\tag{3}\n",
"$$\n",
"\n",
"where\n",
"\n",
"- the maps $ R $ and $ Y $ are time-invariant nonnegative functions, \n",
"- the innovation processes $ \\{\\zeta_t\\} $ and\n",
" $ \\{\\eta_t\\} $ are IID and independent of each other, and \n",
"- $ \\{Z_t\\}_{t \\geq 0} $ is an irreducible time-homogeneous Markov chain on a finite set $ \\mathsf Z $ \n",
"\n",
"\n",
"Let $ P $ represent the Markov matrix for the chain $ \\{Z_t\\}_{t \\geq 0} $.\n",
"\n",
"Our assumptions on preferences are the same as our [previous lecture](https://python-programming.quantecon.org/ifp.html) on the income fluctuation problem.\n",
"\n",
"As before, $ \\mathbb E_z \\hat X $ means expectation of next period value\n",
"$ \\hat X $ given current value $ Z = z $."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Assumptions\n",
"\n",
"We need restrictions to ensure that the objective [(1)](#equation-trans-at) is finite and\n",
"the solution methods described below converge.\n",
"\n",
"We also need to ensure that the present discounted value of wealth\n",
"does not grow too quickly.\n",
"\n",
"When $ \\{R_t\\} $ was constant we required that $ \\beta R < 1 $.\n",
"\n",
"Now it is stochastic, we require that\n",
"\n",
"\n",
"<a id='equation-fpbc2'></a>\n",
"$$\n",
"\\beta G_R < 1,\n",
"\\quad \\text{where} \\quad\n",
"G_R := \\lim_{n \\to \\infty}\n",
"\\left(\\mathbb E \\prod_{t=1}^n R_t \\right)^{1/n} \\tag{4}\n",
"$$\n",
"\n",
"Notice that, when $ \\{R_t\\} $ takes some constant value $ R $, this\n",
"reduces to the previous restriction $ \\beta R < 1 $\n",
"\n",
"The value $ G_R $ can be thought of as the long run (geometric) average\n",
"gross rate of return.\n",
"\n",
"More intuition behind [(4)](#equation-fpbc2) is provided in [[MST20]](https://python-programming.quantecon.org/zreferences.html#ma2020income).\n",
"\n",
"Discussion on how to check it is given below.\n",
"\n",
"Finally, we impose some routine technical restrictions on non-financial income.\n",
"\n",
"$$\n",
"\\mathbb E \\, Y_t < \\infty \\text{ and } \\mathbb E \\, u'(Y_t) < \\infty\n",
"\\label{a:y0}\n",
"$$\n",
"\n",
"One relatively simple setting where all these restrictions are satisfied is\n",
"the IID and CRRA environment of [[BBZ15]](https://python-programming.quantecon.org/zreferences.html#benhabib2015)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Optimality\n",
"\n",
"Let the class of candidate consumption policies $ \\mathscr C $ be defined\n",
"[as before](https://python-programming.quantecon.org/ifp.html).\n",
"\n",
"In [[MST20]](https://python-programming.quantecon.org/zreferences.html#ma2020income) it is shown that, under the stated assumptions,\n",
"\n",
"- any $ \\sigma \\in \\mathscr C $ satisfying the Euler equation is an\n",
" optimal policy and \n",
"- exactly one such policy exists in $ \\mathscr C $. \n",
"\n",
"\n",
"In the present setting, the Euler equation takes the form\n",
"\n",
"\n",
"<a id='equation-ifpa-euler'></a>\n",
"$$\n",
"(u' \\circ \\sigma) (a, z) =\n",
"\\max \\left\\{\n",
" \\beta \\, \\mathbb E_z \\,\\hat{R} \\,\n",
" (u' \\circ \\sigma)[\\hat{R}(a - \\sigma(a, z)) + \\hat{Y}, \\, \\hat{Z}],\n",
" \\, u'(a)\n",
" \\right\\} \\tag{5}\n",
"$$\n",
"\n",
"(Intuition and derivation are similar to our [earlier lecture](https://python-programming.quantecon.org/ifp.html) on\n",
"the income fluctuation problem.)\n",
"\n",
"We again solve the Euler equation using time iteration, iterating with a\n",
"Coleman–Reffett operator $ K $ defined to match the Euler equation\n",
"[(5)](#equation-ifpa-euler)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Solution Algorithm\n",
"\n",
"\n",
"<a id='index-1'></a>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### A Time Iteration Operator\n",
"\n",
"Our definition of the candidate class $ \\sigma \\in \\mathscr C $ of consumption\n",
"policies is the same as in our [earlier lecture](https://python-programming.quantecon.org/ifp.html) on the income\n",
"fluctuation problem.\n",
"\n",
"For fixed $ \\sigma \\in \\mathscr C $ and $ (a,z) \\in \\mathbf S $, the value\n",
"$ K\\sigma(a,z) $ of the function $ K\\sigma $ at $ (a,z) $ is defined as the\n",
"$ \\xi \\in (0,a] $ that solves\n",
"\n",
"\n",
"<a id='equation-k-opr'></a>\n",
"$$\n",
"u'(\\xi) =\n",
"\\max \\left\\{\n",
" \\beta \\, \\mathbb E_z \\, \\hat{R} \\,\n",
" (u' \\circ \\sigma)[\\hat{R}(a - \\xi) + \\hat{Y}, \\, \\hat{Z}],\n",
" \\, u'(a)\n",
" \\right\\} \\tag{6}\n",
"$$\n",
"\n",
"The idea behind $ K $ is that, as can be seen from the definitions,\n",
"$ \\sigma \\in \\mathscr C $ satisfies the Euler equation\n",
"if and only if $ K\\sigma(a, z) = \\sigma(a, z) $ for all $ (a, z) \\in\n",
"\\mathbf S $.\n",
"\n",
"This means that fixed points of $ K $ in $ \\mathscr C $ and optimal\n",
"consumption policies exactly coincide (see [[MST20]](https://python-programming.quantecon.org/zreferences.html#ma2020income) for more details)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Convergence Properties\n",
"\n",
"As before, we pair $ \\mathscr C $ with the distance\n",
"\n",
"$$\n",
"\\rho(c,d)\n",
":= \\sup_{(a,z) \\in \\mathbf S}\n",
" \\left|\n",
" \\left(u' \\circ c \\right)(a,z) -\n",
" \\left(u' \\circ d \\right)(a,z)\n",
" \\right|,\n",
"$$\n",
"\n",
"It can be shown that\n",
"\n",
"1. $ (\\mathscr C, \\rho) $ is a complete metric space, \n",
"1. there exists an integer $ n $ such that $ K^n $ is a contraction\n",
" mapping on $ (\\mathscr C, \\rho) $, and \n",
"1. The unique fixed point of $ K $ in $ \\mathscr C $ is\n",
" the unique optimal policy in $ \\mathscr C $. \n",
"\n",
"\n",
"We now have a clear path to successfully approximating the optimal policy:\n",
"choose some $ \\sigma \\in \\mathscr C $ and then iterate with $ K $ until\n",
"convergence (as measured by the distance $ \\rho $)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Using an Endogenous Grid\n",
"\n",
"In the study of that model we found that it was possible to further\n",
"accelerate time iteration via the [endogenous grid method](https://python-programming.quantecon.org/egm_policy_iter.html).\n",
"\n",
"We will use the same method here.\n",
"\n",
"The methodology is the same as it was for the optimal growth model, with the\n",
"minor exception that we need to remember that consumption is not always\n",
"interior.\n",
"\n",
"In particular, optimal consumption can be equal to assets when the level of\n",
"assets is low."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Finding Optimal Consumption\n",
"\n",
"The endogenous grid method (EGM) calls for us to take a grid of *savings*\n",
"values $ s_i $, where each such $ s $ is interpreted as $ s = a -\n",
"c $.\n",
"\n",
"For the lowest grid point we take $ s_0 = 0 $.\n",
"\n",
"For the corresponding $ a_0, c_0 $ pair we have $ a_0 = c_0 $.\n",
"\n",
"This happens close to the origin, where assets are low and the household\n",
"consumes all that it can.\n",
"\n",
"Although there are many solutions, the one we take is $ a_0 = c_0 = 0 $,\n",
"which pins down the policy at the origin, aiding interpolation.\n",
"\n",
"For $ s > 0 $, we have, by definition, $ c < a $, and hence\n",
"consumption is interior.\n",
"\n",
"Hence the max component of [(5)](#equation-ifpa-euler) drops out, and we solve for\n",
"\n",
"\n",
"<a id='equation-eqsifc2'></a>\n",
"$$\n",
"c_i =\n",
"(u')^{-1}\n",
"\\left\\{\n",
" \\beta \\, \\mathbb E_z\n",
" \\hat R\n",
" (u' \\circ \\sigma) \\, [\\hat R s_i + \\hat Y, \\, \\hat Z]\n",
"\\right\\} \\tag{7}\n",
"$$\n",
"\n",
"at each $ s_i $."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Iterating\n",
"\n",
"Once we have the pairs $ \\{s_i, c_i\\} $, the endogenous asset grid is\n",
"obtained by $ a_i = c_i + s_i $.\n",
"\n",
"Also, we held $ z \\in \\mathsf Z $ in the discussion above so we can pair\n",
"it with $ a_i $.\n",
"\n",
"An approximation of the policy $ (a, z) \\mapsto \\sigma(a, z) $ can be\n",
"obtained by interpolating $ \\{a_i, c_i\\} $ at each $ z $.\n",
"\n",
"In what follows, we use linear interpolation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Testing the Assumptions\n",
"\n",
"Convergence of time iteration is dependent on the condition $ \\beta G_R < 1 $ being satisfied.\n",
"\n",
"One can check this using the fact that $ G_R $ is equal to the spectral\n",
"radius of the matrix $ L $ defined by\n",
"\n",
"$$\n",
"L(z, \\hat z) := P(z, \\hat z) \\int R(\\hat z, x) \\phi(x) dx\n",
"$$\n",
"\n",
"This indentity is proved in [[MST20]](https://python-programming.quantecon.org/zreferences.html#ma2020income), where $ \\phi $ is the\n",
"density of the innovation $ \\zeta_t $ to returns on assets.\n",
"\n",
"(Remember that $ \\mathsf Z $ is a finite set, so this expression defines a matrix.)\n",
"\n",
"Checking the condition is even easier when $ \\{R_t\\} $ is IID.\n",
"\n",
"In that case, it is clear from the definition of $ G_R $ that $ G_R $\n",
"is just $ \\mathbb E R_t $.\n",
"\n",
"We test the condition $ \\beta \\mathbb E R_t < 1 $ in the code below."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Implementation\n",
"\n",
"We will assume that $ R_t = \\exp(a_r \\zeta_t + b_r) $ where $ a_r, b_r $\n",
"are constants and $ \\{ \\zeta_t\\} $ is IID standard normal.\n",
"\n",
"We allow labor income to be correlated, with\n",
"\n",
"$$\n",
"Y_t = \\exp(a_y \\eta_t + Z_t b_y)\n",
"$$\n",
"\n",
"where $ \\{ \\eta_t\\} $ is also IID standard normal\n",
"and $ \\{ Z_t\\} $ is a Markov chain taking values in $ \\{0, 1\\} $."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ConsumerProblem (generic function with 1 method)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function ConsumerProblem(;γ = 1.5, # utility parameter\n",
" β = 0.96, # discount factor\n",
" P = [0.9 0.1; 0.1 0.9], # transition probs for z_t\n",
" a_r = 0.1, # scale parameter for R_t\n",
" a_y=0.2, # additive parameter for R_t\n",
" b_r=0.0,# scale parameter for Y_t\n",
" b_y=0.5, # additive parameter for Y_t\n",
" z_vals = [0.0, 1.0],\n",
" shock_draw_size=50,\n",
" grid_max=10,\n",
" grid_size=100,\n",
" seed=1234)\n",
" \n",
" Random.seed!(seed) # for reproducibility\n",
"\n",
" η_draws = randn(shock_draw_size)\n",
" ζ_draws = randn(shock_draw_size)\n",
" s_grid = range(0, grid_max, length = grid_size)\n",
"\n",
" u_prime = c -> c^(-γ)\n",
" \n",
" # Inverse of marginal utility\n",
" u_prime_inv = c -> c^(-1/γ)\n",
" \n",
" R = ζ -> exp.(a_r*ζ .+ b_r)\n",
" Y = (z, η) -> exp.(a_y * η .+ (z * b_y))\n",
" return (β = β, P = P, z_vals = z_vals, η_draws = η_draws, ζ_draws= ζ_draws, s_grid = s_grid, u_prime = u_prime, \n",
" u_prime_inv = u_prime_inv, R = R, Y = Y)\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here’s the Coleman-Reffett operator based on EGM:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"K! (generic function with 1 method)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function K!(cp, a_in, σ_in)\n",
" # simplify names, set up arrays\n",
" @unpack R, Y, P, z_vals, β, s_grid, η_draws, ζ_draws, u_prime, u_prime_inv, R, Y= cp\n",
" n = size(P,1)\n",
"\n",
" # Create consumption function by linear interpolation\n",
" σ_il = z -> interp(a_in[:,z], σ_in[:,z])\n",
" σ = (a, z) -> σ_il(z)(a)\n",
" σ_out = similar(σ_in)\n",
"\n",
" for (i,s) in enumerate(s_grid)# for each grid s\n",
" # for z = 1:n # given current z\n",
" for (j, z) in enumerate(z_vals)\n",
" Ez = 0.0 \n",
" # for z_hat = 1:n # for each z_hat\n",
" for (k, z_hat) in enumerate(z_vals)\n",
" for η in η_draws\n",
" for ζ in ζ_draws\n",
" R_hat = R(ζ)\n",
" Y_hat = Y(z_hat, η)\n",
" U = u_prime(σ(R_hat * s + Y_hat, k))\n",
" Ez = Ez + R_hat * U * P[j, k]\n",
" end\n",
" end\n",
" end\n",
" Ez = Ez / (length(η_draws) * length(ζ_draws))\n",
" σ_out[i, j] = u_prime_inv(β * Ez)\n",
" end\n",
" end\n",
" # Calculate endogenous asset grid\n",
" a_out = similar(σ_out)\n",
" for z = 1:n\n",
" a_out[:, z] = collect(s_grid) + σ_out[:, z] # endogenous grids: a = s + σ\n",
" end\n",
" σ_out[1, :] .= 0\n",
" a_out[1, :] .= 0\n",
"\n",
" return a_out, σ_out\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The next function solves for an approximation of the optimal consumption policy via time iteration."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"hide-output": false
},
"outputs": [
{
"data": {
"text/plain": [
"solve_model_time_iter (generic function with 5 methods)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function solve_model_time_iter(cp,a_vec,σ_vec, \n",
" tol=1e-4,\n",
" max_iter=1000,\n",
" verbose=true,\n",
" print_skip=5)\n",
"\n",
"# aa = []\n",
"# σσ = []\n",
" \n",
" # Set up loop\n",
" i = 1\n",
" error = tol + 1\n",
"\n",
" while i < max_iter && error > tol\n",
" a_new, σ_new = K!(cp,a_vec, σ_vec)\n",
" error = maximum(maximum(abs.(σ_vec .- σ_new),dims=1))\n",
"# error = maximum(abs.(σ_vec .- σ_new))\n",
" if verbose && i % print_skip == 0\n",
" println(\"Error at iteration $i is $error.\")\n",
" end\n",
" a_vec, σ_vec = a_new, σ_new\n",
" i += 1\n",
"# push!(aa,a_vec)\n",
"# push!(σσ,σ_vec)\n",
" end\n",
" if i == max_iter\n",
" println(\"Failed to converge!\")\n",
" end\n",
" if verbose && i < max_iter\n",
" println(\"Converged in $i iterations with error $error.\")\n",
" end\n",
"\n",
" return (a_vec, σ_vec)\n",
"# return (a_vec, σ_vec, aa, σσ)\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we are ready to create an instance at the default parameters."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we set up an initial condition, which corresponds to consuming all\n",
"assets."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"initialize (generic function with 1 method)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function initialize(cp)\n",
" # Initial guess of σ = consume all assets\n",
" k = length(cp.s_grid)\n",
" n = size(cp.P,1)\n",
" σ_init = Array{Float64}(undef,k, n)\n",
" for z in 1:n\n",
" σ_init[:, z] = cp.s_grid\n",
" end\n",
" a_init = σ_init\n",
" return a_init, σ_init\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let’s generate an approximation solution."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"p = ConsumerProblem()\n",
"a_vec,σ_vec = initialize(p);"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"hide-output": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error at iteration 5 is 0.5016890082910708.\n",
"Error at iteration 10 is 0.09907361019007466.\n",
"Error at iteration 15 is 0.03006442861405345.\n",
"Error at iteration 20 is 0.009065999160259075.\n",
"Error at iteration 25 is 0.0025509678374557865.\n",
"Error at iteration 30 is 0.0006841859345576573.\n",
"Error at iteration 35 is 0.00017786082600945718.\n",
"Converged in 39 iterations with error 7.850878094872726e-5.\n"
]
},
{
"data": {
"text/plain": [
"([0.0 0.0; 1.091002293374052 1.4800235848350776; … ; 12.14630699222755 12.3140567810111; 12.25356307713006 12.420203665013624], [0.0 0.0; 0.989992192363951 1.3790134838249766; … ; 2.247317093237652 2.415066882021201; 2.2535630771300608 2.420203665013623])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a_star, σ_star = solve_model_time_iter(p,a_vec,σ_vec)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here’s a plot of the resulting consumption policy."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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VVUZX0pLSystLX3ssccIIcad5b1RaMKDbleeP51gF7nGo7tTeAAAX3Qcqe6gfbY5GwljL/vdM5TSefPmhYeHp6amisXilJSU2traGTNmfPXVVzNnzvzss8/uu+++vLy8mpqazZs379u377PPPtuwYcNzzz336KOPHjt2LC0tzcbGJisry8LCoqampvOYrtVqL126RAhJTU09ePDg6dOni4uLx44dGxcXt2vXLqlUOnr06BkzZtTV1X300UfffPPNF198sXXr1tmzZ2dkZCxevJhhmNdee00ikVRWVqakpCiVymnTpr3++uurVq368ccfp02bVlhYWF9fv2XLlt27d7///vubN2/+y1/+cu7cuc798vLy2rNnz9KlS0+cOFFdXX3gwIHp06cfPXrUzs7OuMC+ffuOHDnS0dERExMzbdo0pVK5cePG/fv3+/v7v/322ytXrvz111/z8vIyMjK+//57BweHGTNmbNu27YknnujcxL59+yilhJCPPvro4MGD9vb2Xd/YtWvXdr4bnWbNmlVSUjJw4EDjPx0dHR0dHUtKSjw9PQkhxcXFvr6+Mtm139DAgQOLi4vv8Td+j0w4CBtSE1Uh94vQLwrQ7xVepdN/7bvLItaEsK8M+113V05OTmZm5vHjx43H33Hjxn322WdRUVHGOQ2efPLJjz/+OCEhgRAyc+bM2NhYQsjKlSvnzJkjkUhaWloSExMnT54cFhZ2i42+9NJLdnZ2w4cPDwkJWbhwoY+PDyFk8uTJly5dEovFUVFRCxYsIISsXbv2gw8+SE1NlcvlDMN0zZXjx487Ojoam0pLliz55JNPfv75Z0JIdHT0/PnzCSGrV69+7bXXuk7bNHny5GeeecZgMBw/fvyVV1756KOPjOuZPXu2cYGXX37Z2dmZEDJ16tS0tLTjx4+vXLlSIpFUVFQ8+OCDb7/9trFb8q9//WtAQAAhZOHChcZo72TM1F9++eWrr75KTExUKBRdX128ePEf55709fU9c+aMk9P/pkm3srLqvGrm6tWrXedf7PoSX0w1CLn2q7b1hUOXRPJdCADc3mA7puwBPo82lZWVHh4ena0QQkhtbe2AAQM6/+nt7W3s9HNxcTE+Y2Fh0dHRMWXKlKeffvr1119fsmTJggULtmzZcrNNGPOGEKJQKDozQKFQdHR02NjYGBtDhBCGYby8vGpqav64hutK8vHxqa6utrOz6yxJoVBoNBqDwSAWizvLdnR0TE1NPXny5Jtvvvn5558XFRXFx8dv2rTpuqqMu1NRUfH9998fP37c+OT48eNbW1uvK76jo+O6wlJTU9esWXP48OGu5RlpNBq1Wn3dk3q93tnZuaWlpfOZlpaWzr1wdnY2brTzpdBQnq/8N9UgrLh4NtF62PIBcr4LAQAT4OvrW1lZ2d7e3jldsJeXV3x8vPExpbS4uHjAgAGlpaXX/SDDMGvXrl27dm1FRcXixYu3bdtmZWXV2Qb6Y6/gzXSumeO40tJSLy+vlJSU624e8PLy6tpJWFRUdN9997W1td16zXFxcV999ZWVlZWzs3NcXNwHH3zg6Ojo6+t7w4V9fHymTJny5JNPdrNsQkhVVdW8efM+++yzG04weejQoT+eNZw+ffqQIUOMzVNCSHFxcUdHR1DQtfG/QkNDS0pKWlpa7O3tKaUpKSl/+ctful9PbzDVIKy9mHQ1aLzYhK/1AYC+ExISMnbs2D/96U9vvvmmRCJJS0ubP3/+888/v23bthkzZnz++edSqXTChAmnT5++7gdPnz6tUqlGjBjBcZxOp3N0dPT393/zzTdTUlIsLS3feOONbhaQkZHxxRdfzJs3b+vWrfb29iNHjszMzNy+ffu5c+ccHByMy8TFxanV6vfee2/lypX79u0rLi6eM2fO//3f/916zXFxccuXLzdm2+TJk+fMmfPwww/fbOGnnnpq6dKlQUFBUVFR9fX18fHxtw4hrVY7ffr0RYsWhYWFGUPa29u7sz1KCOlsel6no6Pj2Wef3bJly4wZM5555pklS5bY29vv379///7927dvj42NfeaZZ1555ZVdu3bJ5fLJkyffeh97m0kGIdWoHGoyB897lu9CAMBk/PDDD2+88cbChQsppQsWLJg1a1Z8fLzxvFp4ePixY8ckEkloaGhnx6CVldXs2bPFYvGWLVuKioqsra0XL168dOlShmFeeOGFNWvWODg4PP/888YevwULFsjl1zqoYmNj3d3djY+HDRtmZ2dXWVk5b968goKCSZMmhYSEHDp0iGXZ5cuXV1dXf/jhh2FhYatXr542bZpcLj958uSGDRt2794dHByckJBgY2MTGBio1WqNaxOLxYsWLeo8Qdi5ublz5y5atIgQMm7cuLlz5z7wwAPGl+bOndvZAh42bJi9vX1sbOzXX3+9adOm4uJiZ2dn48WlXQsODAzU6/WdK9doNAMHDiwvL++86HTLli2dnZy3YGFhceTIkQ0bNnz66acTJkx4//33CSEymczW1pYQsnPnzmeeeWbmzJnBwcGHDh0SiXi+F5wxXg7UN9avX+/k5LR+/fpuLt/W1mZtbf3H5yuTT50+fGzBa29KzbdFeLN9N3s6nY7juK7ncoRDqVRaWlped5gzRREREdu3b79hT5owbd68OSUlZefOnXwXYsLmzZu3YsUK48VNPc4kk6TyfFJLwBgzTkEAAOgzptc1SvU6+4rUwGk8n1wFAOimVatWPfjgg3xXATdlekFY7H0kdgAAE11JREFUm5mSK/ebEWR/+0UBAPoB44kx6LdMr3uxJDmxzg/9ogAA0DNMLU84zq7kvO+oaL7rAADoMRqNJjs7u8dXe+nSpc4rTuEWTCwIa7MzysSuEwa68V0IAMA9OXz4sHGMbEJISUmJcVy3njVhwoRujpHd49ra2l544YUpU6ZERkbW19df9+qPP/4YHBxsb2+/cOHCrgPQ8MXEgvDy2TNVvtFyzD8IACbu1KlTnUPb+Pv7//FefpNmnMLioYceSklJ0el0XV+qrq5esWLFv/71r6qqKrFY/Oyz/N8RblJBSKlNcbLXyBi+6wAA06NWq//+97/HxsZOmDDhww8/JIQUFhYuX748Jibmscceq62tJYR8//33X3755auvvjp69OgVK1YYZyky3hI+evToZcuWNTQ0/Pjjj19++aVxnU1NTStXriSELFu27Pjx4zNnzhw3btyPP/5YVVW1fPnyMWPGfPzxx4SQQ4cObd68+fXXXx89evTKlStra2vPnz9/4MCBAwcOLF68+M0332xsbPzggw8IIVVVVWvWrImJiVmxYoVxhsKjR49u2rTpn//8Z3R09OLFi6+btnDLli3GZmVra+vixYsTExMJIRUVFX/+85+NC2RnZ8+ZM2f8+PFbt241PpOQkLBw4cKYmJgXXnjBOHrASy+9dOjQoRUrVkRHR7/66qtdb6gnhDz88MOLu/hj8+6GXFxc3n333Rve9rdr167x48dPmTLFwsLi1Vdf/eabb/44umkfM6WrRusL85oZywlDvPkuBABMz5IlS0Qi0SeffCISiTIyMlpbW2NiYl566aU33njj888/j4uLS09Pz87O/vjjjzdt2rRjx46NGzc+88wzjzzyyMcff/zDDz8Yx7amlObm5nYOMdrR0fHjjz/u2LFj7969LS0tb7/9dklJyfLly+Pi4p577jmxWDxnzpyRI0cWFhZu2LBh48aN33777WeffTZjxoyEhIQJEyYwDLN+/XqFQtHa2nrgwIEtW7ZMnDjxgQceePHFF/fu3RsTE1NQUHD58uVXX31148aN27dv37p165o1azqHzCaEsCy7a9eu6dOnx8fH//bbbx4eHjExMUeOHGlsbDQusGnTpvfee6+9vX3+/PkjRozQarXLly//z3/+ExAQ8N57761Zs+brr78+ceKEcet2dnbLli0LCAgwprvR3/72N2M0fvfddz/88MN1s0+8/fbbf4zG8ePHG6fLuKH8/PyhQ4caHw8aNEiv15eXl3fO2cQLUwrCvKQzJd4xE02pZAAghBBdVVHdP564/XI9xGrCPLt5f+r6TGFh4bFjx2pra40DNg0cOHDbtm3BwcF/+9vfCCHvvPPOt99+a5yGKS4ubtWqVYSQp556avHixYsWLZJIJCzLenh4eHh43GKjb7zxRkREREREhL+/v7FpSAiZPn16cnIywzAhISFPP/00IeStt97asWNHbm6unZ0dwzD+/v6EEONsDMaE+/vf/24MyO+///7AgQOEkPDw8HXr1hFC1q9fHxQU1HUapri4uDfeeINSevz48eeff944Se/x48fj4uKMC7z22msjRowghMyYMSM5Odk4hNuUKVMIIZs3b7azszPOHbF27dqJEycSQlasWHH27NmuQWgMrQsXLuzatevo0aPXjXjl5+d33QyFhBBXV9dbvFHNzc2BgYHGxwzDWFtbNzU13WL5PmBKqWJRcNZt7ot8VwEAd0ziGeD10a88FlBcXOzt7d31IF5eXh4cHGx8LBKJAgMDy8vLCSFeXl7GJ21sbNra2mbNmnXmzJm4uDgrK6ulS5e+8sorN9tE5w9aW1t3fdzW1mYcMrRzW/7+/mVlZX9cQ3l5eVBQUGfIhYSElJeX29radl1bR0dH12mYQkJCpFJpdnb2iRMnDh8+vGPHjpqamlOnTnWOBt45cZKNjc3Vq1eLioo2bdrU2bU7ZMgQY9uxczFjwdcVVlJSMm/evJ07d/5xRsawsLA/TsN06yB0cHDo3ASltK2trevMhbwwmSBsKCnm9Prxw4P4LgQATI+Hh0dtba1O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"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plt = plot()\n",
"for (i,z) in enumerate(p.z_vals)\n",
" plot!(plt, a_star[:,i],σ_star[:,i], label =\"consumption when z =$z\")\n",
"end\n",
"plot!(plt,legend = :bottomright)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that we consume all assets in the lower range of the asset space.\n",
"\n",
"This is because we anticipate income $ Y_{t+1} $ tomorrow, which makes the need to save less urgent.\n",
"\n",
"Can you explain why consuming all assets ends earlier (for lower values of\n",
"assets) when $ z=0 $?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Law of Motion\n",
"\n",
"Let’s try to get some idea of what will happen to assets over the long run\n",
"under this consumption policy.\n",
"\n",
"As with our [earlier lecture](https://python-programming.quantecon.org/ifp.html) on the income fluctuation problem, we\n",
"begin by producing a 45 degree diagram showing the law of motion for assets"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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"
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = a_star\n",
"Y_mean = [mean(p.Y(z, p.η_draws)) for z in p.z_vals]\n",
"R_mean = mean(p.R(p.ζ_draws))\n",
"\n",
"# generate savings plot\n",
"plt2 = plot(xlabel = \"current assets\", ylabel = \"next period assets\")\n",
"for (z, lb) in zip(1:2,[\"bad state\", \"good state\"])\n",
" plot!(plt2,a[:,z],R_mean * (a[:, z] .- σ_star[:, z]) .+ Y_mean[z], label = lb)\n",
"end\n",
"plot!(plt2,a[:,1], a[:,1], linestyle = :dash, color = \"black\", label = \"\")\n",
"plot!(plt2,legend = :topleft)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The unbroken lines represent, for each $ z $, an average update function\n",
"for assets, given by\n",
"\n",
"$$\n",
"a \\mapsto \\bar R (a - \\sigma^*(a, z)) + \\bar Y(z)\n",
"$$\n",
"\n",
"Here\n",
"\n",
"- $ \\bar R = \\mathbb E R_t $, which is mean returns and \n",
"- $ \\bar Y(z) = \\mathbb E_z Y(z, \\eta_t) $, which is mean labor income in state $ z $. \n",
"\n",
"\n",
"The dashed line is the 45 degree line.\n",
"\n",
"We can see from the figure that the dynamics will be stable — assets do not\n",
"diverge even in the highest state."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercises"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise 1\n",
"\n",
"Let’s repeat our [earlier exercise](https://python-programming.quantecon.org/ifp.html#ifp-lrex) on the long-run\n",
"cross sectional distribution of assets.\n",
"\n",
"In that exercise, we used a relatively simple income fluctuation model.\n",
"\n",
"In the solution, we found the shape of the asset distribution to be unrealistic.\n",
"\n",
"In particular, we failed to match the long right tail of the wealth distribution.\n",
"\n",
"Your task is to try again, repeating the exercise, but now with our more sophisticated model.\n",
"\n",
"Use the default parameters."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Solutions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise 1\n",
"\n",
"First we write a function to compute a long asset series.\n",
"\n",
"Because we want to JIT-compile the function, we code the solution in a way\n",
"that breaks some rules on good programming style.\n",
"\n",
"For example, we will pass in the solutions `a_star, σ_star` along with\n",
"`ifp`, even though it would be more natural to just pass in `ifp` and then\n",
"solve inside the function.\n",
"\n",
"The reason we do this is because `solve_model_time_iter` is not\n",
"JIT-compiled."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we call the function, generate the series and then histogram it, using the\n",
"solutions computed above."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Compute_asset_series (generic function with 2 methods)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function Compute_asset_series(p, a_star, σ_star, z_seq, T=500000)\n",
" Random.seed!(1234) # for reproducibility\n",
"\n",
" # Create consumption function by linear interpolation\n",
" σ = (a, z) -> interp(a_star[:, z], σ_star[:, z])(a)\n",
"\n",
" # Simulate the asset path\n",
" a = zeros(T + 1)\n",
"# z_seq = simulate(MarkovChain(p.P), T)\n",
" for t in 1:T\n",
" i_z = z_seq[t]\n",
" η, ζ = randn(), randn()\n",
" R, Y = p.R(ζ), p.Y(p.z_vals[i_z], η)\n",
" a[t+1] = R * (a[t] - σ(a[t],i_z)) + Y\n",
" end\n",
" return a\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"hide-output": false
},
"outputs": [],
"source": [
"T = 1000000\n",
"Random.seed!(1234) # for reproducibility\n",
"z_seq = simulate(MarkovChain(p.P), T)\n",
"a = Compute_asset_series(p, a_star, σ_star, z_seq, T);"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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duzgwYPObgRwP2wRAg5iMBhKSkp+O19V1eLi4urq6l/Nr6+vLy4urq+v/219SUmJlRd1rK2tLS4ubmxsvLaeARkQhIDdrV27tnv37n5+fpGRkTqdbvjw4eZL6dbV1Y0bNy4gICAqKiooKCg6Onrt2rVCiPz8/L59+/r7+0dFRfn5+XXr1q3p3t9Lly69/vrrIyMjw8PDk02w8tUAAARkSURBVJOTv/76ayHE0KFDP/744yNHjoSHh4eHh/fu3VsIsWPHju7du5tX7ufn17Nnz99mKgDhspdYAzxJUVHRX//619TU1NDQ0H379k2fPn3MmDFbtmyZN2/eBx988M4779x88801NTUHDhzw8fERQowaNSowMHD79u3XX399UVHRZ599ZjKZhBDz5s2bP3/+s88+m5mZWV9fP3/+/LvuuuvQoUMzZ86sqKgoKChYsWKFEEKn09XU1Nx7771paWlvvfVWWFhYYWFhbm4ux0GAK1MBOFZOTo4QoqSkZMCAAUOGDPnVUvM9yLKzs381v7S01M/Pb9q0aU1z9Hp9dHT0lClTVFUdNWpUcnJy0yLzvay3b99utx8C8BxsEQKOcPDgwY0bNxYVFRkMhosXLwohTp48edNNN73yyiuPP/74yJEje/XqZd4c9Pf3v/HGG+fOnVtaWjps2LAbb7zRvIYdO3bU1dVFR0dv27atabXx8fFXvPFNQkJCaGjo+PHjH3300czMTK46DbSAY4SA3U2ePPmWW275/PPPjUZjWFhYSEiIEKKysnL27NkTJ0788MMP//jHP7Zt2/bhhx82Hzv89NNPU1JS5s+f37lz54SEhBdffNFkMhUXFwsh5s6dO7KZY8eOXfEGv8HBwf/5z38iIiImT54cHx/fpUsX82YogCtw9iYp4OFKS0sVRVm4cGHTHPOtrzZt2mR+aDQaDx48OG/evICAgPT09KYyvV6/ZcuWMWPGCCHeeOMNc5Lt3r37is/yq12jTcrLyzds2DBgwAAhxOeff27TnwzwEGwRAvZ15swZVVVTUlKa5mzcuLF5gUajSU5Onjlz5tixY3fv3t00PyAgYMCAATk5OTExMbt377799tu1Wu26deuu+Cw6na62tva380NDQzMzM9evXy+E2LNnj21+JMCzEISAfSUlJQUEBLz88stFRUUVFRXLli177733zIumTp366aefFhUVGY3GQ4cObdu2LSUlpaCgYOLEiXv37q2qqqqrq/vXv/5VXFyckpISHx//2GOPLV26dP78+WfPnq2trf3xxx+XLFny/vvvCyG6dOly4sSJd999d9++ffn5+d98883MmTO/++672traqqqq119/XQhx8803O3MgAJfl7E1SwPOtWbMmODjY/Irr3LnzmjVrhBCbNm0aNWqUt7d304uxX79+BQUFhYWFnTp1aprp6+s7adIko9GoqmpDQ8OMGTN0Ol3T0vbt23/yySeqqlZVVY0ePbpt27ZCiK5du+7du7ddu3ZNZSEhIYsWLXL2MAAuikusAY5QXV19/Phxf3//Tp06Nb9nul6vP3v2bE1NTbt27SIjI5vml5aWnj9/3svLKyEhISgoqPmqDAbDDz/8YDAYYmNjY2JiWnjSCxcuFBYWBgYGtm/f3s/Pz+Y/FOAZCEIAgNQ4RggAkBpBCACQGkEIAJAaQQgAkBpBCACQGkEIAJAaQQgAkBpBCACQGkEIAJDa/wENSNOnzwkcZgAAAABJRU5ErkJggg=="
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"histogram(a, nbins = 40, leg = false, bins = :scott, fillalpha = 0.5, normed = true, xlabel = \"assets\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we have managed to successfully replicate the long right tail of the\n",
"wealth distribution.\n",
"\n",
"Here’s another view of this using a horizontal violin plot."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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"
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot(ylabel = \"assets\")\n",
"StatsPlots.violin(a, fillalpha = 0.5, label=\"\")"
]
}
],
"metadata": {
"date": 1603941885.4181259,
"filename": "ifp_advanced.rst",
"kernelspec": {
"display_name": "Julia 1.5.3",
"language": "julia",
"name": "julia-1.5"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.5.3"
},
"next_doc": {
"link": "index_information",
"title": "Information"
},
"prev_doc": {
"link": "ifp",
"title": "The Income Fluctuation Problem I: Basic Model"
},
"title": "The Income Fluctuation Problem II: Stochastic Returns on Assets"
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment