{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "How to read this lecture…\n", "\n", "- If using QuantEcon lectures for the first time on a computer, execute ] add InstantiateFromURL inside of a notebook or the REPL \n", "- For some notebooks, enable content with “Trust” on the command tab of Jupyter lab \n", "- Code should execute sequentially if run in a Jupyter notebook \n", "- Please direct feedback to [contact@quantecon.org](mailto:contact@quantecon.org\") or [discourse forum](http://discourse.quantecon.org/) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Job Search I: The McCall Search Model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Contents\n", "\n", "- [Job Search I: The McCall Search Model](#Job-Search-I:-The-McCall-Search-Model) \n", " - [Overview](#Overview) \n", " - [The McCall Model](#The-McCall-Model) \n", " - [Computing the Optimal Policy: Take 1](#Computing-the-Optimal-Policy:-Take-1) \n", " - [Computing the Optimal Policy: Take 2](#Computing-the-Optimal-Policy:-Take-2) \n", " - [Exercises](#Exercises) \n", " - [Solutions](#Solutions) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " “Questioning a McCall worker is like having a conversation with an out-of-work friend:\n", "‘Maybe you are setting your sights too high’, or ‘Why did you quit your old job before you\n", "had a new one lined up?’ This is real social science: an attempt to model, to understand,\n", "human behavior by visualizing the situation people find themselves in, the options they face\n", "and the pros and cons as they themselves see them.” – Robert E. Lucas, Jr." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Overview\n", "\n", "The McCall search model [[McC70]](zreferences.ipynb#mccall1970) helped transform economists’ way of thinking about labor markets\n", "\n", "To clarify vague notions such as “involuntary” unemployment, McCall modeled the decision problem of unemployed agents directly, in terms of factors such as\n", "\n", "- current and likely future wages \n", "- impatience \n", "- unemployment compensation \n", "\n", "\n", "To solve the decision problem he used dynamic programming\n", "\n", "Here we set up McCall’s model and adopt the same solution method\n", "\n", "As we’ll see, McCall’s model is not only interesting in its own right but also an excellent vehicle for learning dynamic programming" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The McCall Model\n", "\n", "\n", "\n", "An unemployed worker receives in each period a job offer at wage $ W_t $\n", "\n", "At time $ t $, our worker has two choices:\n", "\n", "1. Accept the offer and work permanently at constant wage $ W_t $ \n", "1. Reject the offer, receive unemployment compensation $ c $, and reconsider next period \n", "\n", "\n", "The wage sequence $ \\{W_t\\} $ is assumed to be iid with probability mass function $ p_1, \\ldots, p_n $\n", "\n", "Here $ p_i $ is the probability of observing wage offer $ W_t = w_i $ in the set $ w_1, \\ldots, w_n $\n", "\n", "The worker is infinitely lived and aims to maximize the expected discounted sum of earnings\n", "\n", "$$\n", "\\mathbb{E} \\sum_{t=0}^{\\infty} \\beta^t Y_t\n", "$$\n", "\n", "The constant $ \\beta $ lies in $ (0, 1) $ and is called a **discount factor**\n", "\n", "The smaller is $ \\beta $, the more the worker discounts future utility relative to current utility\n", "\n", "The variable $ Y_t $ is income, equal to\n", "\n", "- his wage $ W_t $ when employed \n", "- unemployment compensation $ c $ when unemployed " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A Trade Off\n", "\n", "The worker faces a trade-off:\n", "\n", "- Waiting too long for a good offer is costly, since the future is discounted \n", "- Accepting too early is costly, since better offers might arrive in the future \n", "\n", "\n", "To decide optimally in the face of this trade off, we use dynamic programming\n", "\n", "Dynamic programming can be thought of as a two step procedure that\n", "\n", "1. first assigns values to “states” and \n", "1. then deduces optimal actions given those values \n", "\n", "\n", "We’ll go through these steps in turn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Value Function\n", "\n", "In order to optimally trade off current and future rewards, we need to think about two things:\n", "\n", "1. the current payoffs we get from different choices \n", "1. the different states that those choices will lead to next period (in this case, either employment or unemployment) \n", "\n", "\n", "To weigh these two aspects of the decision problem, we need to assign *values* to states\n", "\n", "To this end, let $ V(w) $ be the total lifetime *value* accruing to an unemployed worker who enters the current period unemployed but with wage offer $ w $ in hand\n", "\n", "More precisely, $ V(w) $ denotes the value of the objective function [(1)](mccall_model_with_separation.ipynb#equation-objective) when an agent in this situation makes *optimal* decisions now and at all future points in time\n", "\n", "Of course $ V(w) $ is not trivial to calculate because we don’t yet know what decisions are optimal and what aren’t!\n", "\n", "But think of $ V $ as a function that assigns to each possible wage $ w $ the maximal lifetime value that can be obtained with that offer in hand\n", "\n", "A crucial observation is that this function $ V $ must satisfy the recursion\n", "\n", "\n", "\n", "\n", "\n", "
\n", "$$\n", "V(w)\n", "= \\max \\left\\{\n", " \\frac{w}{1 - \\beta}, \\, c + \\beta \\sum_{i=1}^n V(w_i) p_i\n", " \\right\\}\\quad\\quad\\quad\n", "$$\n", "\n", "(1)\n", "
\n", "\n", "for every possible $ w_i $ in $ w_1, \\ldots, w_n $\n", "\n", "This important equation is a version of the **Bellman equation**, which is\n", "ubiquitous in economic dynamics and other fields involving planning over time\n", "\n", "The intuition behind it is as follows:\n", "\n", "- the first term inside the max operation is the lifetime payoff from accepting current offer $ w $, since \n", "\n", "\n", "$$\n", "w + \\beta w + \\beta^2 w + \\cdots = \\frac{w}{1 - \\beta}\n", "$$\n", "\n", "- the second term inside the max operation is the **continuation value**, which is the lifetime payoff from rejecting the current offer and then behaving optimally in all subsequent periods \n", "\n", "\n", "If we optimize and pick the best of these two options, we obtain maximal lifetime value from today, given current offer $ w $\n", "\n", "But this is precisely $ V(w) $, which is the l.h.s. of [(1)](#equation-odu-pv)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Optimal Policy\n", "\n", "Suppose for now that we are able to solve [(1)](#equation-odu-pv) for the unknown\n", "function $ V $\n", "\n", "Once we have this function in hand we can behave optimally (i.e., make the\n", "right choice between accept and reject)\n", "\n", "All we have to do is select the maximal choice on the r.h.s. of [(1)](#equation-odu-pv)\n", "\n", "The optimal action is best thought of as a **policy**, which is, in general, a map from\n", "states to actions\n", "\n", "In our case, the state is the current wage offer $ w $\n", "\n", "Given *any* $ w $, we can read off the corresponding best choice (accept or\n", "reject) by picking the max on the r.h.s. of [(1)](#equation-odu-pv)\n", "\n", "Thus, we have a map from $ \\RR $ to $ \\{0, 1\\} $, with 1 meaning accept and zero meaning reject\n", "\n", "We can write the policy as follows\n", "\n", "$$\n", "\\sigma(w) := \\mathbf{1}\n", " \\left\\{\n", " \\frac{w}{1 - \\beta} \\geq c + \\beta \\sum_{i=1}^n V(w_i) p_i\n", " \\right\\}\n", "$$\n", "\n", "Here $ \\mathbf{1}\\{ P \\} = 1 $ if statement $ P $ is true and equals zero otherwise\n", "\n", "We can also write this as\n", "\n", "$$\n", "\\sigma(w) := \\mathbf{1} \\{ w \\geq \\bar w \\}\n", "$$\n", "\n", "where\n", "\n", "\n", "\n", "\n", "\n", "
\n", "$$\n", "\\bar w := (1 - \\beta) \\left\\{ c + \\beta \\sum_{i=1}^n V(w_i) p_i \\right\\}\\quad\\quad\\quad\n", "$$\n", "\n", "(2)\n", "
\n", "\n", "Here $ \\bar w $ is a constant depending on $ \\beta, c $ and the wage distribution, called the *reservation wage*\n", "\n", "The agent should accept if and only if the current wage offer exceeds the reservation wage\n", "\n", "Clearly, we can compute this reservation wage if we can compute the value function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing the Optimal Policy: Take 1\n", "\n", "To put the above ideas into action, we need to compute the value function at\n", "points $ w_1, \\ldots, w_n $\n", "\n", "In doing so, we can identify these values with the vector $ v = (v_i) $ where $ v_i := V(w_i) $\n", "\n", "In view of [(1)](#equation-odu-pv), this vector satisfies the nonlinear system of equations\n", "\n", "\n", "\n", "\n", "\n", "
\n", "$$\n", "v_i\n", "= \\max \\left\\{\n", " \\frac{w_i}{1 - \\beta}, \\, c + \\beta \\sum_{i=1}^n v_i p_i\n", " \\right\\}\n", "\\quad\n", "\\text{for } i = 1, \\ldots, n\n", "$$\n", "\n", "(3)\n", "
\n", "\n", "It turns out that there is exactly one vector $ v := (v_i)_{i=1}^n $ in\n", "$ \\mathbb R^n $ that satisfies this equation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Algorithm\n", "\n", "To compute this vector, we proceed as follows:\n", "\n", "Step 1: pick an arbitrary initial guess $ v \\in \\mathbb R^n $\n", "\n", "Step 2: compute a new vector $ v' \\in \\mathbb R^n $ via\n", "\n", "\n", "\n", "\n", "\n", "
\n", "$$\n", "v'_i\n", "= \\max \\left\\{\n", " \\frac{w_i}{1 - \\beta}, \\, c + \\beta \\sum_{i=1}^n v_i p_i\n", " \\right\\}\n", "\\quad\n", "\\text{for } i = 1, \\ldots, n\n", "$$\n", "\n", "(4)\n", "
\n", "\n", "Step 3: calculate a measure of the deviation between $ v $ and $ v' $, such as $ \\max_i |v_i - v_i'| $\n", "\n", "Step 4: if the deviation is larger than some fixed tolerance, set $ v = v' $ and go to step 2, else continue\n", "\n", "Step 5: return $ v $\n", "\n", "This algorithm returns an arbitrarily good approximation to the true solution\n", "to [(3)](#equation-odu-pv2), which represents the value function\n", "\n", "(Arbitrarily good means here that the approximation converges to the true\n", "solution as the tolerance goes to zero)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Fixed Point Theory\n", "\n", "What’s the math behind these ideas?\n", "\n", "First, one defines a mapping $ T $ from $ \\mathbb R^n $ to\n", "itself via\n", "\n", "\n", "\n", "\n", "\n", "
\n", "$$\n", "Tv_i\n", "= \\max \\left\\{\n", " \\frac{w_i}{1 - \\beta}, \\, c + \\beta \\sum_{i=1}^n v_i p_i\n", " \\right\\}\n", "\\quad\n", "\\text{for } i = 1, \\ldots, n\n", "$$\n", "\n", "(5)\n", "
\n", "\n", "(A new vector $ Tv $ is obtained from given vector $ v $ by evaluating\n", "the r.h.s. at each $ i $)\n", "\n", "One can show that the conditions of the Banach contraction mapping theorem are\n", "satisfied by $ T $ as a self-mapping on $ \\RR^n $\n", "\n", "One implication is that $ T $ has a unique fixed point in $ \\mathbb R^n $\n", "\n", "Moreover, it’s immediate from the definition of $ T $ that this fixed\n", "point is precisely the value function\n", "\n", "The iterative algorithm presented above corresponds to iterating with\n", "$ T $ from some initial guess $ v $\n", "\n", "The Banach contraction mapping theorem tells us that this iterative process\n", "generates a sequence that converges to the fixed point" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Implementation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setup" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "using InstantiateFromURL\n", "activate_github(\"QuantEcon/QuantEconLecturePackages\", tag = \"v0.9.0\") # activate the QuantEcon environment\n", "\n", "using LinearAlgebra, Statistics, Compat # load common packages" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "┌ Info: Precompiling StatPlots [60ddc479-9b66-56df-82fc-76a74619b69c]\n", "└ @ Base loading.jl:1186\n" ] } ], "source": [ "using Distributions, Expectations, NLsolve, Roots, Random, StatPlots, Parameters\n", "gr(fmt = :png);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here’s the distribution of wage offers we’ll work with" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "support(dist) = 0:50\n" ] }, { "data": { "image/png": "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" }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 50\n", "dist = BetaBinomial(n, 200, 100) # probability distribution\n", "@show support(dist)\n", "w = range(10.0, 60.0, length = n+1) # linearly space wages\n", "plt = plot(w, dist, xlabel = \"wages\", ylabel = \"probabilities\", legend = false)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can explore taking expectations over this distribution" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(E_w, E_w_2) = (43.333333333335695, 12.919896640724573)\n", "E * w = 43.3333333333357\n", "dot(pdf.(dist, support(dist)), w) = 43.3333333333357\n" ] } ], "source": [ "E = expectation(dist) # expectation operator\n", "\n", "# exploring the properties of the operator\n", "wage(i) = w[i+1] # +1 to map from support of 0\n", "E_w = E(wage)\n", "E_w_2 = E(i -> wage(i)^2) - E_w^2 # variance\n", "@show E_w, E_w_2\n", "\n", "# use operator with left-multiply\n", "@show E * w # the `w` are values assigned for the discrete states\n", "@show dot(pdf.(dist, support(dist)), w); # identical calculation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To implement our algorithm, let’s have a look at the sequence of approximate value functions that\n", "this fixed point algorithm generates\n", "\n", "Default parameter values are embedded in the function\n", "\n", "Our initial guess $ v $ is the value of accepting at every given wage" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# parameters and constant objects\n", "\n", "c = 25\n", "β = 0.99\n", "num_plots = 6\n", "\n", "# Operator\n", "T(v) = max.(w/(1 - β), c + β * E*v) # (5) broadcasts over the w, fixes the v\n", "# alternatively, T(v) = [max(wval/(1 - β), c + β * E*v) for wval in w]\n", "\n", "# fill in matrix of vs\n", "vs = zeros(n + 1, 6) # data to fill\n", "vs[:, 1] .= w / (1-β) # initial guess of \"accept all\"\n", "\n", "# manually applying operator\n", "for col in 2:num_plots\n", " v_last = vs[:, col - 1]\n", " vs[:, col] .= T(v_last) # apply operator\n", "end\n", "plot(vs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One approach to solving the model is to directly implement this sort of iteration, and continues until measured deviation\n", "between successive iterates is below tol" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "compute_reservation_wage_direct (generic function with 1 method)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function compute_reservation_wage_direct(params; v_iv = collect(w ./(1-β)), max_iter = 500, tol = 1e-6)\n", " @unpack c, β, w = params\n", "\n", " # create a closure for the T operator\n", " T(v) = max.(w/(1 - β), c + β * E*v) # (5) fixing the parameter values\n", "\n", " v = copy(v_iv) # start at initial value. copy to prevent v_iv modification\n", " v_next = similar(v)\n", " i = 0\n", " error = Inf\n", " while i < max_iter && error > tol\n", " v_next .= T(v) # (4)\n", " error = norm(v_next - v)\n", " i += 1\n", " v .= v_next # copy contents into v. Also could have used v[:] = v_next\n", " end\n", " # now compute the reservation wage\n", " return (1 - β) * (c + β * E*v) # (2)\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above, we use v = copy(v_iv) rather than just v_iv = v\n", "\n", "\n", "
\n", "
To understand why, first recall that v_iv is a function argument– either defaulting to the given value, or passed into the function
\n", "
\n", "- If we had gone v = v_iv instead, then it would have simply created a new name v which binds to whatever is located at v_iv \n", "- Since we later use v .= v_next later in the algorithm, the values in it would be modified \n", "- Hence, we would be modifying the v_iv vector we were passed in, which may not be what the caller of the function wanted \n", "- The big issue this creates are “side-effects” where you can call a function and strange things can happen outside of the function that you didn’t expect \n", "- If you intended for the modification to potentially occur, then the Julia style guide says that we should call the function compute_reservation_wage_direct! to make the possible side-effects clear \n", "\n", "\n", "
\n", "\n", "
\n", "\n", "As usual, we are better off using a package, which may give a better algorithm and is likely to less error prone\n", "\n", "In this case, we can use the fixedpoint algorithm discussed in [our Julia by Example lecture](julia_by_example.ipynb#) to find the fixed point of the $ T $ operator" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "compute_reservation_wage (generic function with 1 method)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function compute_reservation_wage(params; v_iv = collect(w ./(1-β)), iterations = 500, ftol = 1e-6, m = 6)\n", " @unpack c, β, w = params\n", " T(v) = max.(w/(1 - β), c + β * E*v) # (5) fixing the parameter values\n", "\n", " v_star = fixedpoint(T, v_iv, iterations = iterations, ftol = ftol, m = 6).zero # (5)\n", " return (1 - β) * (c + β * E*v_star) # (3)\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let’s compute the reservation wage at the default parameters" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "47.316499766546215" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mcm = @with_kw (c=25.0, β=0.99, w=w) # named tuples\n", "\n", "compute_reservation_wage(mcm()) # call with default parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Comparative Statics\n", "\n", "Now we know how to compute the reservation wage, let’s see how it varies with\n", "parameters\n", "\n", "In particular, let’s look at what happens when we change $ \\beta $ and\n", "$ c $" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "grid_size = 25\n", "R = rand(Float64, grid_size, grid_size)\n", "\n", "c_vals = range(10.0, 30.0, length = grid_size)\n", "β_vals = range(0.9, 0.99, length = grid_size)\n", "\n", "for (i, c) in enumerate(c_vals)\n", " for (j, β) in enumerate(β_vals)\n", " R[i, j] = compute_reservation_wage(mcm(c=c, β=β)) # change from defaults\n", " end\n", "end" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOy9e7QU1bE/Xj3g4S0vAQWPqETB+EAMajTEgHIlISKRYF74OJIYo1+Cz+AxD3XFo4LEqDHeJBoRY6K50UhI9AZDEAiSePXG39KAAfMSBVE0cnkqB87s3x8907N7P2vv6e6ZPlOfNWvBdO9de0/PnK6uqk9VBYwxIBAIBAKhUVGo9QYIBAKBQKglSBESCAQCoaFBipCQEQIVunXrduSRR1544YWvvPJKrTeYJPbs2fP+++/zR0aNGhUEQdrr/uhHPwqC4LTTThOOP/vss+EF/8tf/iKcOumkk4IguP/++9PeG4FQt+ha6w0QGgg9e/b86Ec/Gr1ljG3fvn39+vU/+clPFi1a9MILL3zgAx+o4fYSxOjRo9evX599AP70008HgOeee27Pnj3dunWLji9ZsiT8z29/+9tjjz02Or5r164XXnghmkggNCbIIiRkh+bm5iUcnnrqqT/96U9vvPHGl770pR07dtx666213mCK+POf/7xjx460V/nABz7Q3Ny8Z8+e//3f/+WPL1myZL/99gOA3/72t/zx5557rqOj47DDDjvssMPS3huBULcgRUioMbp37/7tb38bAF566aVa7yVF9OrVq3fv3mmvEgTBGWecAQDPPPNMdPDf//73888/P2HChNGjRz/zzDPbt2+PTq1evRoAwikEQsOCFCGh9igWiwDQq1cv/uBjjz02adKkwYMHDxgwYNy4cQ888EA4LMKqVas+/elPH3bYYd27d29ubv7kJz+5fPlyQbJZSBS3u+mmm/r169fa2nrRRRcFQfDwww/zQvbu3XvAAQf06tUrUiFr166dMWPGcccd17t37wEDBowZM2bevHnt7e3h2SAI1q9fD+WwqLBWBMbYwoULTz/99IEDBx588MGf+MQnnnrqKX5AOKVYLM6fP//www/v3r37yJEjb7755mghJWRF+Pvf/75YLE6aNOkTn/jEvn37li1bFp0KFSHvFzV/tAg///nPJ06c2K9fv6FDh7a2tu7ZsycIglGjRuEvPoFQR2AEQiYAgJEjR8rHt2zZcu655wLAvffeGx386le/CgDDhg2bNm3aWWed1b9/fwA499xzOzo6wgGPPPIIAOy3334TJ04877zzJkyYUCgUCoXCkiVL8EJGjhwJAPfddx8A9OvXb968eb/73e8A4JxzzuF3+MQTTwDAhRdeGL59+OGHC4UCABxzzDFf+MIXzj777D59+gDAl7/85XDA3XffPXjwYAC4++677777bn4tXuwFF1wAAH379v3kJz95xhln9OjRAwDa2tqiAeGUOXPmDBky5MILLzz//PPDMVdeeaXhOm/atAkA+vfvH33Miy66CADWrFnzhz/8AQAuvvji8HhHR0ffvn0BYPPmzciPFuLqq68GgP3333/y5MkTJ07s0aPH1KlThe/XevEJhPoBKUJCRgj11kgORx555NChQwuFQpcuXW688cZisRiODA27Sy+9dM+ePeGRbdu2nXPOObyyPOqoo/bbb7+//vWvkfxQXZ199tl4IaGm6d+//9KlS8PV9+7dO2TIkO7du+/YsSOSPGPGDABYuXJl+Da0e2bOnBlt+PXXX+/WrVu/fv2iKbLaE46EsbrRo0e/8cYb4ZE1a9YcdNBB++2339/+9jd+yrHHHrtly5bwyHPPPQcAgwcPNl/qo446CgD+8pe/MMaKxeLQoUOHDRtWLBb37t3bt2/f8P+MsdAXffTRR0cTMR/tT3/6U7irTZs2hUdefvnloUOH8ooQc/EJhPoBKUJCRjB7Ji6++OK9e/eGI88+++zu3bu///77/PS3334bAD72sY+Fb/fff/++ffv++9//jgZ0dHT86U9/evHFF/FCQk3zn//5n/yY2bNnA8DPf/7z8O2uXbt69+49YsSISDcsWLDgvvvue/XVV/lZhx56KK/nrIpw8uTJALBixQp+zD333AMA11xzDT/lV7/6FT+mubnZ6siZNWtW9LlCbTdz5szw1PTp0wHgpZdeYoz94Ac/AICvfvWr0UTMR/v0pz8NAE8//TQ/JhQVKULMxScQ6geUPkHIDiNHjly3bh1/ZPfu3S+88MIll1xy3333HXXUUVdeeSUAvPzyy/v27Rs9erQwPQiCNWvWhP//whe+8MMf/vDwww+fPn36mWeeedJJJx166KEf/vCHo8EYISGEzIEvfOEL3/ve9x577LHPfvazAPDEE0/s3LnzuuuuiyJ8oacRALZv37527doXXnhh6dKlr776qtOlWL9+fbdu3fhkEgA488wzAUBIqTzllFP4tz179rQKP+OMM77//e8/88wzl156aZg4MWnSpPDU5MmTH3vssTCJQmbKYD7a2rVru3Xr9rGPfYw/+B//8R/8W/zFJxDqArXWxIRGAWhihIyxp59+GgDOPPPM8G337t11P9empqZwzN69e++9994Pf/jDYUwrFP69731v3759eCGhydXe3s5vplgsHn744T179ty1axdjbOrUqYVCYePGjdGAXbt2XXHFFaGd1KVLl2OPPfaiiy4aOHAguFiE3bt3Hz58uHAddu/eDQDHH388PyWyRHWSZWzdurVQKBxyyCGMsTPOOKNQKESm8xtvvAEA48ePZ4wddthhhULh3Xffdfpohp1H3y/m4hMI9QNShISMYFCEIRtzzJgx4dswdogU++677/72t7+95pprBg0aBADf/va38UJ0SuVb3/oWADz66KNbt25tamqaPHkyf7alpQUAPvnJT/7yl7+MQomCKKsiHDFiRLdu3QTmyD/+8Y9QsmF7GEXIGDvxxBMB4OWXX25qajr55JP5U8cff3zXrl1D03zs2LGuH02583/961/89+v0DRIINQelTxBqj5CaGCUnHHXUUZs3b96wYQM/5l//+tdXvvKVqBLYtdde+8ADDwBA//79P/7xj8+fPz8kaPzmN7/BC9Hh85//PAA89thjjz/+eHt7+8yZM/mzjz322IABAxYvXjxt2rQwNZAxtm3bNqePPHLkyD179vBJDgCwdOlSABCSEPwQOjxvuumm9vb2yC8aYvLkyfv27QtzN4UMQsxHGzVq1J49e1atWsUf5FMyoLqLTyDUALXWxIRGAegtQsZY165dhwwZEv4/VGmnnnrq22+/HR7Zvn37+PHjgeOwHHfccQMHDnzllVciCU8++SQAfPazn8ULMVhXY8aM6dWr17hx4wYOHBhRH0MMGzasR48eEZOzvb39m9/8ZvjXFPF9QsnvvfdeNEtY67//+78B4Pjjj3/zzTfDIyFrtGvXrmFtNt32kBZhqFPDuObq1av5U6EOC0899dRTrh8tDDryfNf169cffPDBILFGzRefQKgfkCIkZASzImxubm5qaorccV/5ylcAoG/fvpMmTZo2bdqAAQMAYMaMGZFH7qGHHgKALl26nHbaaTNmzDj99NMLhUKPHj2ef/75SKZViEGpzJ8/P1QAV1xxhXDq61//OgAcfPDBl1566UUXXTRixIgjjjgiNOM+//nPr127ljH2oQ99CADOOuus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" }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "contour(c_vals, β_vals, R',\n", " title = \"Reservation Wage\",\n", " xlabel = \"c\",\n", " ylabel = \"beta\",\n", " fill = true)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As expected, the reservation wage increases both with patience and with\n", "unemployment compensation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing the Optimal Policy: Take 2\n", "\n", "The approach to dynamic programming just described is very standard and\n", "broadly applicable\n", "\n", "For this particular problem, there’s also an easier way, which circumvents the\n", "need to compute the value function\n", "\n", "Let $ \\psi $ denote the value of not accepting a job in this period but\n", "then behaving optimally in all subsequent periods\n", "\n", "That is,\n", "\n", "\n", "\n", "\n", "\n", "
\n", "$$\n", "\\psi\n", "= c + \\beta\n", " \\sum_{i=1}^n V(w_i) p_i\\quad\\quad\\quad\n", "$$\n", "\n", "(6)\n", "
\n", "\n", "where $ V $ is the value function\n", "\n", "By the Bellman equation, we then have\n", "\n", "$$\n", "V(w_i)\n", "= \\max \\left\\{ \\frac{w_i}{1 - \\beta}, \\, \\psi \\right\\}\n", "$$\n", "\n", "Substituting this last equation into [(6)](#equation-j1) gives\n", "\n", "\n", "\n", "\n", "\n", "
\n", "$$\n", "\\psi\n", "= c + \\beta\n", " \\sum_{i=1}^n\n", " \\max \\left\\{\n", " \\frac{w_i}{1 - \\beta}, \\psi\n", " \\right\\} p_i\\quad\\quad\\quad\n", "$$\n", "\n", "(7)\n", "
\n", "\n", "Which we could also write as $ \\psi = T_{\\psi}(\\psi) $ for the appropriate operator\n", "\n", "This is a nonlinear equation that we can solve for $ \\psi $\n", "\n", "One solution method for this kind of nonlinear equation is iterative\n", "\n", "That is,\n", "\n", "Step 1: pick an initial guess $ \\psi $\n", "\n", "Step 2: compute the update $ \\psi' $ via\n", "\n", "\n", "\n", "\n", "\n", "
\n", "$$\n", "\\psi'\n", "= c + \\beta\n", " \\sum_{i=1}^n\n", " \\max \\left\\{\n", " \\frac{w_i}{1 - \\beta}, \\psi\n", " \\right\\} p_i\\quad\\quad\\quad\n", "$$\n", "\n", "(8)\n", "
\n", "\n", "Step 3: calculate the deviation $ |\\psi - \\psi'| $\n", "\n", "Step 4: if the deviation is larger than some fixed tolerance, set $ \\psi = \\psi' $ and go to step 2, else continue\n", "\n", "Step 5: return $ \\psi $\n", "\n", "Once again, one can use the Banach contraction mapping theorem to show that this process always converges\n", "\n", "The big difference here, however, is that we’re iterating on a single number, rather than an $ n $-vector\n", "\n", "Here’s an implementation:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "47.093334768880766" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function compute_reservation_wage_ψ(c, β; ψ_iv = E * w ./ (1 - β), max_iter = 500, tol = 1e-5)\n", " T_ψ(ψ) = [c + β * E*max.((w ./ (1 - β)), ψ[1])] # (7), using vectors since fixedpoint doesn't support scalar\n", " ψ_star = fixedpoint(T_ψ, [ψ_iv]).zero[1]\n", " return (1 - β) * (c + β * ψ_star) # (2)\n", "end\n", "compute_reservation_wage_ψ(c, β)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can use this code to solve the exercise below\n", "\n", "Another option is to solve for the root of the $ T_{\\psi}(\\psi) - \\psi $ equation" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "47.0933347688807" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function compute_reservation_wage_ψ2(c, β; ψ_iv = E * w ./ (1 - β), max_iter = 500, tol = 1e-5)\n", " root_ψ(ψ) = c + β * E*max.((w ./ (1 - β)), ψ) - ψ # (7)\n", " ψ_star = find_zero(root_ψ, ψ_iv)\n", " return (1 - β) * (c + β * ψ_star) # (2)\n", "end\n", "compute_reservation_wage_ψ2(c, β)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 1\n", "\n", "Compute the average duration of unemployment when $ \\beta=0.99 $ and\n", "$ c $ takes the following values\n", "\n", "\n", " c_vals = range(10, 40, length = 25)\n", "\n", "That is, start the agent off as unemployed, computed their reservation wage\n", "given the parameters, and then simulate to see how long it takes to accept\n", "\n", "Repeat a large number of times and take the average\n", "\n", "Plot mean unemployment duration as a function of $ c $ in c_vals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solutions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 1\n", "\n", "Here’s one solution" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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CxcuzM/P1zTt888/919pSwq45CZcaMODfqBXVVUFbI7Xxeu/8h3Vik3QNO2BBx6wWCxjxoxZvHjxiRMnfMt4PJ5PP/10xYoVv/jFL7ynw1w8CC+5dRfah0AATpaBQhwOR0DL+R+1XomJiZ988klCQkLQZwOG0M4fUTuf2Wx2u90tWUzTNO/jiRMnzpo1a8+ePevXrx8wYED37t0vq4CLb8KFNjwob+VRUVGXVX8L6zz/HXw7qhWbYDabV61atXDhwvXr1+/atWvevHm//OUvS0tLhRD33Xffl19+edddd91xxx3z5s3Lysq6ZDHnv7n/1l3WPkQk42QZyOfLv88++6yFL+nZs+epU6cKCwsLCwuvu+66l156afXq1Ze73i1btvgev/vuu7169QpYIDMzMz09/U9/+pOvZevWrb7FOnfuPHDgwDfeeGPdunVTp0693LW3ySZ4ZWdnp6ambt++3fujx+O58cYbFyxYcPH6W+5CO6oVm2C32x966KG0tLRp06atX79+/fr1L7/8shCiqqrqj3/8465du+bOnXvrrbfqP5x0cxFttXUAPUJIVlBQ8NRTT82cOdNms7322mstfNWMGTN++tOfzp07t3Pnzhs3blyzZo3/h3ULzZw5s7KyskePHtu3b1++fLn3nE9/JpPpN7/5zSOPPOJdbPfu3UuWLHn33Xd9C9xzzz2PP/54fHz8XXfddblrb90mREVF/fnPf3Y4HH379vWvc+bMmQ899JDNZuvateu6deu+/vrr//7v/75k/S10oR3Vik1ISkravHlzQ0PD3Xff3djYuGrVqn79+gkhLBZLYmLivHnz7rnnnoqKitLS0qioqM8//7xLly6xsbEX2uo22TqAMUJItn379sLCQovFcvPNN3/77bfix2OE/uM6AT++9tprhYWFiYmJ/fr1e/vtt4MuFjDoGDD09cUXXwwaNMhisVx//fW+M00C3kHTtBdeeMF7hUDv3r03bNjgX7zNZjObzffff79/Y0sKaPkmBPz4xBNPdOjQITU1NWA3apq2aNGirl27JiYm9u/f/89//vMl67/yHdW6Tfjss88GDhzo3Yrx48f7hgk3btx4zTXXWCyW4cOH79u375e//KXFYvnuu+8CtrqFR+fi/3kAfya9BV9BAGHm6NGj3bt3v/L//N99912XLl12795dXFzcJoWppq12FKAyvhoFWsPtdjudznnz5hUWFg4ePFh2OQBa7/8DYyvGf2Zr6jgAAAAASUVORK5CYII=" }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function compute_stopping_time(w_bar; seed=1234)\n", " Random.seed!(seed)\n", " stopping_time = 0\n", " t = 1\n", " @assert length(w) - 1 ∈ support(dist) && w_bar <= w[end] # make sure the constraint is sometimes binding\n", " while true\n", " # Generate a wage draw\n", " w_val = w[rand(dist)] # the wage dist set up earlier\n", " if w_val ≥ w_bar\n", " stopping_time = t\n", " break\n", " else\n", " t += 1\n", " end\n", " end\n", " return stopping_time\n", "end\n", "\n", "compute_mean_stopping_time(w_bar, num_reps=10000) = mean(i -> compute_stopping_time(w_bar, seed = i), 1:num_reps)\n", "c_vals = range(10, 40, length = 25)\n", "stop_times = similar(c_vals)\n", "\n", "beta = 0.99\n", "for (i, c) in enumerate(c_vals)\n", " w_bar = compute_reservation_wage_ψ(c, beta)\n", " stop_times[i] = compute_mean_stopping_time(w_bar)\n", "end\n", "\n", "plot(c_vals, stop_times, label = \"mean unemployment duration\",\n", " xlabel = \"unemployment compensation\", ylabel = \"months\")" ] } ], "metadata": { "kernelspec": { "display_name": "Julia 1.0", "language": "julia", "name": "julia-1.0" } }, "nbformat": 4, "nbformat_minor": 2 }