Skip to content

Instantly share code, notes, and snippets.

@ValterNobrega
Created May 31, 2022 11:54
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 ValterNobrega/262277d9ab9b2fe16749734c127b38f6 to your computer and use it in GitHub Desktop.
Save ValterNobrega/262277d9ab9b2fe16749734c127b38f6 to your computer and use it in GitHub Desktop.
DDP with Borrowing Constraints
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# Import Libraries\n",
"import numpy as np\n",
"from numba import njit, jit\n",
"from scipy.interpolate import interp1d\n",
"from quantecon.markov import DiscreteDP\n",
"from scipy.sparse import csr_matrix\n",
"import matplotlib.pyplot as plt\n",
"from time import time\n",
"from matplotlib import rc\n",
"plt.style.use({'figure.facecolor':'white'})\n",
"rc('text', usetex=True)\n",
"%config InlineBackend.figure_format = 'retina'\n",
"import quantecon as qe\n",
"import scipy.optimize as opt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"#Grid Construction\n",
"N = 200 #10 pontos\n",
"a_vals = np.linspace(-2.0,18, N) #grid of assets. Start at negative values.\n",
"phi = -1.0 #Borrowing Constraint\n",
"z_v = [0.1,1.0]\n",
"z_vals = np.asarray(z_v)\n",
"PI = np.array([[0.9, 0.1], [0.1, 0.9]])\n",
"gamma=2.0\n",
"rk = 0.05\n",
"w = 0.956\n",
"A = 1.0\n",
"Z = 1.0\n",
"L = 1.0\n",
"delta = 0.05\n",
"alpha = 0.33\n",
"beta = 0.96\n",
"a_size = len(a_vals)\n",
"z_size = len(z_vals)\n",
"n = a_size * z_size"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# Define state-wise maximization\n",
"\n",
"def s_wise_max(vals, n, out=None, out_argmax=None):\n",
" \"\"\"\n",
" Return the vector max_a vals(s, a), where vals is represented\n",
" by a 2-dimensional ndarray of shape (n, m). Stored in out,\n",
" which must be of length self.num_states.\n",
" out and out_argmax must be of length self.num_states; dtype of\n",
" out_argmax must be int.\n",
"\n",
" \"\"\"\n",
" if out is None:\n",
" out = np.empty(n)\n",
" if out_argmax is None:\n",
" vals.max(axis=1, out=out)\n",
" else:\n",
" vals.argmax(axis=1, out=out_argmax)\n",
" out[:] = vals[np.arange(n), out_argmax]\n",
" return out, out_argmax\n",
"\n",
"@njit\n",
"def populate_R(R, a_size, z_size, a_vals, z_vals, r, w, gamma, phi):\n",
" n = a_size * z_size\n",
" for s_i in range(n):\n",
" a_i = s_i // z_size\n",
" z_i = s_i % z_size\n",
" a = a_vals[a_i]\n",
" z = z_vals[z_i]\n",
" for new_a_i in range(a_size):\n",
" a_new = max(a_vals[new_a_i], phi) #Borrowing Constraint a>=phi\n",
" c = w * z + (1 + r) * a - a_new\n",
" if c > 0:\n",
" R[s_i, new_a_i] = c**(1-gamma)/(1-gamma) # Utility\n",
" else:\n",
" R[s_i, new_a_i] = -10**6\n",
" return R\n",
"\n",
"@njit\n",
"def populate_Q(Q, a_size, z_size, PI):\n",
" n = a_size * z_size\n",
" for s_i in range(n):\n",
" z_i = s_i % z_size\n",
" for a_i in range(a_size):\n",
" for next_z_i in range(z_size):\n",
" Q[s_i, a_i, a_i * z_size + next_z_i] = PI[z_i, next_z_i]\n",
" return Q\n",
"\n",
"\n",
"def r_to_w(rk):\n",
" \"\"\"\n",
" Equilibrium wages associated with a given interest rate r.\n",
" \"\"\"\n",
" return A * (1 - alpha) * (A * alpha / (rk + delta))**(alpha / (1 - alpha))\n",
"\n",
"def rd(K):\n",
" \"\"\"\n",
" Inverse demand curve for capital. The interest rate associated with a\n",
" given demand for capital K.\n",
" \"\"\"\n",
" return A * alpha * (Z / K)**(1 - alpha) - delta\n",
"\n",
"def inv_rd(rk):\n",
" \"\"\"\n",
" demand curve for capital.\n",
" \"\"\"\n",
" sol = opt.bisect(lambda K: rk - rd(K), 2,17)\n",
" return sol\n",
"\n",
"@jit(nopython=True)\n",
"def asset_marginal(s_probs, a_size, z_size):\n",
" a_probs = np.zeros(a_size)\n",
" for a_i in range(a_size):\n",
" for z_i in range(z_size):\n",
" a_probs[a_i] += s_probs[a_i * z_size + z_i] # este é o s, temos que fazer para o v\n",
" return a_probs\n",
"\n",
"def vals_func(R,beta,Q,V):\n",
" vals = R + beta * np.dot(Q,V) #Bellman Operator\n",
" return vals\n",
"\n",
"#Create the Matrices\n",
"Q = np.empty((n,a_size,n))\n",
"R = np.empty((n, a_size))\n",
"Qa = np.empty((n,a_size,n))\n",
"Ra = np.empty((n, a_size))\n",
"Qa = populate_Q(Q, a_size, z_size, PI)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def value_function (rk):\n",
" \"\"\"\n",
" It depends on rk since we want, at the end, to get \n",
" the General Equilibrium\n",
" \"\"\"\n",
" w = r_to_w(rk) # wages from the GE\n",
" V = np.zeros((n))\n",
" v_1 = np.empty_like(V)\n",
" sigma = np.zeros((n),dtype=int)\n",
" Ra = populate_R(R, a_size, z_size, a_vals, z_vals, rk, w, gamma, phi) #Reward Function\n",
" metric = 1 # start the metric off at a distance of 1\n",
" its = 0 # initialise the iteration counter\n",
" tol = 10**-4\n",
" \n",
" while metric>tol:\n",
" vals = vals_func(Ra, beta,Qa,V)\n",
" v_1, sigma = s_wise_max(vals, n, out=v_1, out_argmax=sigma)\n",
" metric = np.amax([abs(v_1-V)])\n",
" V = v_1.copy()\n",
" \n",
" return sigma, V"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def get_policies (sigma):\n",
" aprime = np.empty((z_size, a_size))\n",
" for s_i in range(n):\n",
" a_i = s_i // z_size\n",
" z_i = s_i % z_size\n",
" aprime[z_i, a_i] = a_vals[sigma[s_i]]\n",
" return aprime"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x16936b51a48>]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAHvCAYAAADdDICXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd3hVVdr+8W8SIKGHjqAiiTISqgkDoqLSxAYW2qtjJSTHgNIhAgLSSWhSQxLCD0VGERhw1LHFrjjSOzLIAREpAuEA0iHn98cyOWcDgRMSSNn357q4Jnn2Xjtnv+8Mufdi7Wf5ud1uNyIiIiIiUmD45/UHEBERERGR7FGIFxEREREpYBTiRUREREQKGIV4EREREZECRiFeRERERKSAUYgXERERESlgFOJFRERERAoYhXgRERERkQJGIV5EREREpIBRiBcRERERKWAU4kVEREREChiFeBERERGRAqZIXn+A/OaWW27h6NGj1KxZM68/ioiIiIgUYjt27KBMmTLs3Lkz22MV4i9w9OhRTp06ldcfQ0REREQKuZxkToX4C2TMwK9atSqPP4mIiIiIFGYRERFXPVZr4kVEREREChiFeBERERGRAkYhXkRERESkgFGIFxEREREpYBTiRUREREQKGIV4EREREZECRiFeRERERKSAUYgXERERESlgFOJFRERERAoYhXgRERERkQJGIV5EREREpIBRiBcRERERKWAU4kVEREREChiFeBERERGRAkYhXkRERESkgFGIFxEREREpYIrk9QeQvwwZAsuXX9+fWaUKDBwItWtf358rIiIich2dPw8pKfDBB3DmjKfudrs5fPhrypW7Hz8/Pz76CIoUkHRcQD6mDaxeDZ99dv1/bloafPjh9f+5IiIiItfBli3QtSssW3bhkd+AGOAj4F2gM2739f50V0/Laexu5868/gQiIiIiue7sWRg9Gho2vDDApwOJQB1MgAd4BTh4nT9hzmgmPr8YMQJ69Lg+P2vXLoiONl+np1+fnykiIiJynaxaBV26wPr1nlqRIhAdvY3vvotiw4ZvLOe3bduJF18MJCDgOn/QHFCIzy8iIq7fz/r5Z8/XCvEiIiJSgP35J8THw3ffgdtt1r//+KP5zwyNGp3j3nvfYObMIZw6dSqzXqtWLWbPnk2zZs3y4JPnzDVdTrNo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b11iIyIiFqdPm91Vx4wxM/EZGjY0fd/Dw32/1qeffkp0dDS7du0iKCiImJgYc2D5coiMpOzGjZ6TixWDoUPNDHzRorlzMyJS4Cm12ZnWxYuI+OS//zUhfcQIT4APDDSBfvly3wN8Wloazz//PA8++CC7du0CYMCAAezfsQP69jVT/N4BvmlTWLsWBg9WgBcRC83E21lAAJw9a75WiBcRucjx4/DaazBlinXV4V13mdn322/37Tput5vFixfTvXt3/vjjj8x6hQoVmOJwULllS9ixwzOgRAnzZmz37ubvahGRCyjE25lm4kVEsvTFF6bzjHe2LlnSdHTs1s33FYh79+6le/fuLFmyxFL/v/btmVK8OJXHjLEOaNUKkpKgZs0c3oGIFGYK8XamEC8ichGXC/r1MzPt3tq0MX3fa9Tw7Tput5u5c+fSp08fXC5XZr1atWokvPgi7f7f/4M9ezwDgoPNrlAvvOD7tq4iYlvXNMQvWrSIxMREPv/880sed7lcxMbGEhoayqFDh3C5XMTFxREcHOzT9XM63vYU4kVELN5/3+yftHevp1auHEyebHZezU62nj59Oj169LDUop59lvHHj1N29GjryU88ATNmwA035ODTi4id5HqIdzqdxP21o1xqauplz42IiGDhwoWE//VGUGpqKi1btmTVqlU+/aycjrc9hXgREQD274cePeC996z1Dh1g2jSoWjX713zhhReYMGECu3btIiQkhOTOnWmRlASHDnlOqlzZhPf27TX7LiLZkuvdaUJCQkhMTCQxMZFWrVpleV58fDwhISGZARygVatWuFwukpKSrvhzcjpeUIgXEdtzu2HePAgLswb4KlVg8WJYuND3AO++YL+N0qVLk5iYSJ+oKDbUqkWLsWOtAf7552HLFvOkoAAvItmUZy0mFyxYYAngGcLDw1m4cOE1Hy8oxIuIre3aBY88YpbJpKV56i++aLL1k0/6dp2zZ88yatQounTpYj2Qns6DO3cy8d13KfHJJ576zTfDJ5/A3LlQvnyO70NE7CnPQvzq1asvWQ8JCbniMpzcGC8oxIuILaWnw8yZUKcOfPyxp16jBnz6KcyZY9bB+2LVqlU0atSIIUOGMHfuXD744ANzYNs2aNHCLLA/dswz4OWXTR/4Nm1y74ZExJbyJMQ7nU7A9MfNiveb/Lk9Xv6iEC8iNvO//8H9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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"image/png": {
"height": 247,
"width": 376
}
},
"output_type": "display_data"
}
],
"source": [
"sigma, V = value_function(rk)\n",
"aprime = get_policies (sigma)\n",
" \n",
"plt.plot(a_vals, aprime[0,:], color = 'red', label =r'$g_b$')\n",
"plt.plot(a_vals, aprime[1,:], color = 'blue', label =r'$g_g$')\n",
"plt.plot(a_vals, a_vals, color = 'black', linestyle = '--')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.6"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment