From 70f4b6da48a9c630db4102a546bed8724ceeb3cd Mon Sep 17 00:00:00 2001 From: alanlujan91 Date: Mon, 19 Feb 2024 17:19:12 -0500 Subject: [PATCH] rename to EstimatingMicroDSOPs --- README.md | 12 +- code/README.md | 2 +- code/do_all.py | 6 +- code/estimark/agents.py | 2 +- .../calibration/estimation_parameters.py | 4 +- code/estimark/calibration/setup_scf_data.py | 2 +- code/estimark/estimation.py | 2 +- code/stata/doAll.do | 2 +- content/paper/math.ipynb | 532 +++++++++--------- environment.yml | 2 +- myst.yml | 2 +- reproduce.sh | 4 +- 12 files changed, 286 insertions(+), 286 deletions(-) diff --git a/README.md b/README.md index 68de437..10a265e 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -# SolvingMicroDSOPs +# EstimatingMicroDSOPs -[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/econ-ark/SolvingMicroDSOPs/HEAD) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/econ-ark/EstimatingMicroDSOPs/HEAD) To reproduces all the results in the repository first clone this repository locally: ``` # Clone this repository -$ git clone https://github.com/econ-ark/SolvingMicroDSOPs +$ git clone https://github.com/econ-ark/EstimatingMicroDSOPs -# Change working directory to SolvingMicroDSOPs -$ cd SolvingMicroDSOPs +# Change working directory to EstimatingMicroDSOPs +$ cd EstimatingMicroDSOPs ``` Then you can either use a local virtual env(conda) or [nbreproduce](https://github.com/econ-ark/nbreproduce) to @@ -19,7 +19,7 @@ reproduce to the results. ``` $ conda env create -f environment.yml -$ conda activate solvingmicrodsops +$ conda activate estimatingmicrodsops # execute the script, select the appropriate option and use it to reproduce the data and figures. $ python do_all.py ``` diff --git a/code/README.md b/code/README.md index ab10c9e..2fca85e 100644 --- a/code/README.md +++ b/code/README.md @@ -1,7 +1,7 @@ # Description 1. The "Stata" directory is a clone of the corresponding directory in the original online version - of the `SolvingMicoDSOPs` project, available at http://econ.jhu.edu/people/ccarroll/Topics/SolvingMicroDSOPs.zip + of the `SolvingMicoDSOPs` project, available at http://econ.jhu.edu/people/ccarroll/Topics/EstimatingMicroDSOPs.zip * That directory is being added here to clarify the origin of the SCFdata.txt file 1. Original Matlab and Mathematica code to solve the model here is also available in that zip archive diff --git a/code/do_all.py b/code/do_all.py index b46e999..af2afb1 100644 --- a/code/do_all.py +++ b/code/do_all.py @@ -1,5 +1,5 @@ """ -Run all of the plots and tables in SolvingMicroDSOPs. +Run all of the plots and tables in EstimatingMicroDSOPs. To execute, do the following on the Python command line: @@ -13,14 +13,14 @@ ------------ This example script allows the user to create all of the figures and tables -modules for SolvingMicroDSOPs.StructuralEstimation. +modules for EstimatingMicroDSOPs.StructuralEstimation. This is example is kept as simple and minimal as possible to illustrate the format of a "replication archive." The file structure is as follows: -./SolvingMicroDSOPs/ +./EstimatingMicroDSOPs/ calibration/ # Directory that contain the necessary code and data to parameterize the model code/ # The main estimation code, in this case StructuralEstimation.py figures/ # Any figures created by the main code diff --git a/code/estimark/agents.py b/code/estimark/agents.py index 184791b..884d1c1 100644 --- a/code/estimark/agents.py +++ b/code/estimark/agents.py @@ -1,6 +1,6 @@ """ Demonstrates an example estimation of microeconomic dynamic stochastic optimization -problem, as described in Section 9 of Chris Carroll's SolvingMicroDSOPs.pdf notes. +problem, as described in Section 9 of Chris Carroll's EstimatingMicroDSOPs.pdf notes. The estimation attempts to match the age-conditional wealth profile of simulated consumers to the median wealth holdings of seven age groups in the 2004 SCF by varying only two parameters: the coefficient of relative risk aversion and a scaling diff --git a/code/estimark/calibration/estimation_parameters.py b/code/estimark/calibration/estimation_parameters.py index a7c3976..1054485 100644 --- a/code/estimark/calibration/estimation_parameters.py +++ b/code/estimark/calibration/estimation_parameters.py @@ -1,5 +1,5 @@ """ -Specifies the full set of calibrated values required to estimate the SolvingMicroDSOPs +Specifies the full set of calibrated values required to estimate the EstimatingMicroDSOPs model. The empirical data is stored in a separate csv file and is loaded in setup_scf_data. """ @@ -26,7 +26,7 @@ # line below fixes it properly ('feature not a bug') and remove all this text. # --------------------------------------------------------------------------------- -# - Define all of the model parameters for SolvingMicroDSOPs and ConsumerExamples - +# - Define all of the model parameters for EstimatingMicroDSOPs and ConsumerExamples - # --------------------------------------------------------------------------------- exp_nest = 1 # Number of times to "exponentially nest" when constructing a_grid diff --git a/code/estimark/calibration/setup_scf_data.py b/code/estimark/calibration/setup_scf_data.py index d0f7f54..9cab37c 100644 --- a/code/estimark/calibration/setup_scf_data.py +++ b/code/estimark/calibration/setup_scf_data.py @@ -1,5 +1,5 @@ """ -Sets up the SCF data for use in the SolvingMicroDSOPs estimation. +Sets up the SCF data for use in the EstimatingMicroDSOPs estimation. """ from estimark.calibration.estimation_parameters import ( diff --git a/code/estimark/estimation.py b/code/estimark/estimation.py index b48ff76..2eac971 100644 --- a/code/estimark/estimation.py +++ b/code/estimark/estimation.py @@ -1,6 +1,6 @@ """ Demonstrates an example estimation of microeconomic dynamic stochastic optimization -problem, as described in Section 9 of Chris Carroll's SolvingMicroDSOPs.pdf notes. +problem, as described in Section 9 of Chris Carroll's EstimatingMicroDSOPs.pdf notes. The estimation attempts to match the age-conditional wealth profile of simulated consumers to the median wealth holdings of seven age groups in the 2004 SCF by varying only two parameters: the coefficient of relative risk aversion and a scaling diff --git a/code/stata/doAll.do b/code/stata/doAll.do index c597100..9d363a7 100644 --- a/code/stata/doAll.do +++ b/code/stata/doAll.do @@ -3,7 +3,7 @@ set linesize 200 * make paths -global basePath "/Volumes/Data/Notes/NumericalMethods/SolvingMicroDSOPs/Latest" +global basePath "/Volumes/Data/Notes/NumericalMethods/EstimatingMicroDSOPs/Latest" global stataPath "Code/Stata" global logPath "Code/Stata" diff --git a/content/paper/math.ipynb b/content/paper/math.ipynb index ff2eb48..680151b 100644 --- a/content/paper/math.ipynb +++ b/content/paper/math.ipynb @@ -1,268 +1,268 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 421, - "metadata": {}, - "outputs": [], - "source": [ - "from sympy import *\n", - "from sympy.plotting import plot" - ] - }, - { - "cell_type": "code", - "execution_count": 422, - "metadata": {}, - "outputs": [], - "source": [ - "c, a, x = symbols(\"c a x\")\n", - "rho, delta = symbols(\"rho delta\")" - ] - }, - { - "cell_type": "code", - "execution_count": 423, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho}}{1 - \\rho}$" - ], - "text/plain": [ - "(a**delta*c**(1 - delta))**(1 - rho)/(1 - rho)" - ] - }, - "execution_count": 423, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "u = (c ** (1 - delta) * a**delta) ** (1 - rho) / (1 - rho)\n", - "u" - ] - }, - { - "cell_type": "code", - "execution_count": 424, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho} \\left(1 - \\delta\\right)}{c}$" - ], - "text/plain": [ - "(a**delta*c**(1 - delta))**(1 - rho)*(1 - delta)/c" - ] - }, - "execution_count": 424, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "uc = simplify(u.diff(c))\n", - "uc" - ] - }, - { - "cell_type": "code", - "execution_count": 425, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\delta \\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho}}{a}$" - ], - "text/plain": [ - "delta*(a**delta*c**(1 - delta))**(1 - rho)/a" - ] - }, - "execution_count": 425, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ua = simplify(u.diff(a))\n", - "ua" - ] - }, - { - "cell_type": "code", - "execution_count": 426, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho} \\left(1 - \\delta\\right)}{c} - \\frac{\\delta \\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho}}{a}$" - ], - "text/plain": [ - "(a**delta*c**(1 - delta))**(1 - rho)*(1 - delta)/c - delta*(a**delta*c**(1 - delta))**(1 - rho)/a" - ] - }, - "execution_count": 426, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "f = simplify(uc) - simplify(ua)\n", - "f" - ] - }, - { - "cell_type": "code", - "execution_count": 427, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left(a^{- \\delta} \\left(\\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho}\\right)^{- \\frac{1}{\\rho - 1}}\\right)^{- \\frac{1}{\\delta - 1}}$" - ], - "text/plain": [ - "(1/(a**delta*((a**delta*c**(1 - delta))**(1 - rho))**(1/(rho - 1))))**(-1/(delta - 1))" - ] - }, - "execution_count": 427, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g = ((f * c * a / (-a * delta + a - c * delta)) ** (1 / (1 - rho)) / a**delta) ** (\n", - " 1 / (1 - delta)\n", - ")\n", - "simplify(g)" - ] - }, - { - "cell_type": "code", - "execution_count": 428, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0.00025 \\left(\\frac{c^{1.0} - 0.001 c^{2.0}}{0.0158113883008419 c^{0.5} - 1.58113883008419 \\cdot 10^{-5} c^{1.5}}\\right)^{2.0}$" - ], - "text/plain": [ - "0.00025*((c**1.0 - 0.001*c**2.0)/(0.0158113883008419*c**0.5 - 1.58113883008419e-5*c**1.5))**2.0" - ] - }, - "execution_count": 428, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g_1 = g.subs({a: 1000, delta: 0.5, rho: 2})\n", - "simplify(g_1)" - ] - }, - { - "cell_type": "code", - "execution_count": 429, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":1: RuntimeWarning: invalid value encountered in scalar power\n" - ] + "cells": [ + { + "cell_type": "code", + "execution_count": 421, + "metadata": {}, + "outputs": [], + "source": [ + "from sympy import *\n", + "from sympy.plotting import plot" + ] + }, + { + "cell_type": "code", + "execution_count": 422, + "metadata": {}, + "outputs": [], + "source": [ + "c, a, x = symbols(\"c a x\")\n", + "rho, delta = symbols(\"rho delta\")" + ] + }, + { + "cell_type": "code", + "execution_count": 423, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho}}{1 - \\rho}$" + ], + "text/plain": [ + "(a**delta*c**(1 - delta))**(1 - rho)/(1 - rho)" + ] + }, + "execution_count": 423, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "u = (c ** (1 - delta) * a**delta) ** (1 - rho) / (1 - rho)\n", + "u" + ] + }, + { + "cell_type": "code", + "execution_count": 424, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho} \\left(1 - \\delta\\right)}{c}$" + ], + "text/plain": [ + "(a**delta*c**(1 - delta))**(1 - rho)*(1 - delta)/c" + ] + }, + "execution_count": 424, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "uc = simplify(u.diff(c))\n", + "uc" + ] + }, + { + "cell_type": "code", + "execution_count": 425, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\delta \\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho}}{a}$" + ], + "text/plain": [ + "delta*(a**delta*c**(1 - delta))**(1 - rho)/a" + ] + }, + "execution_count": 425, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ua = simplify(u.diff(a))\n", + "ua" + ] + }, + { + "cell_type": "code", + "execution_count": 426, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho} \\left(1 - \\delta\\right)}{c} - \\frac{\\delta \\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho}}{a}$" + ], + "text/plain": [ + "(a**delta*c**(1 - delta))**(1 - rho)*(1 - delta)/c - delta*(a**delta*c**(1 - delta))**(1 - rho)/a" + ] + }, + "execution_count": 426, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "f = simplify(uc) - simplify(ua)\n", + "f" + ] + }, + { + "cell_type": "code", + "execution_count": 427, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left(a^{- \\delta} \\left(\\left(a^{\\delta} c^{1 - \\delta}\\right)^{1 - \\rho}\\right)^{- \\frac{1}{\\rho - 1}}\\right)^{- \\frac{1}{\\delta - 1}}$" + ], + "text/plain": [ + "(1/(a**delta*((a**delta*c**(1 - delta))**(1 - rho))**(1/(rho - 1))))**(-1/(delta - 1))" + ] + }, + "execution_count": 427, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g = ((f * c * a / (-a * delta + a - c * delta)) ** (1 / (1 - rho)) / a**delta) ** (\n", + " 1 / (1 - delta)\n", + ")\n", + "simplify(g)" + ] + }, + { + "cell_type": "code", + "execution_count": 428, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 0.00025 \\left(\\frac{c^{1.0} - 0.001 c^{2.0}}{0.0158113883008419 c^{0.5} - 1.58113883008419 \\cdot 10^{-5} c^{1.5}}\\right)^{2.0}$" + ], + "text/plain": [ + "0.00025*((c**1.0 - 0.001*c**2.0)/(0.0158113883008419*c**0.5 - 1.58113883008419e-5*c**1.5))**2.0" + ] + }, + "execution_count": 428, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g_1 = g.subs({a: 1000, delta: 0.5, rho: 2})\n", + "simplify(g_1)" + ] + }, + { + "cell_type": "code", + "execution_count": 429, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + ":1: RuntimeWarning: invalid value encountered in scalar power\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 429, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(g_1)" + ] + }, + { + "cell_type": "code", + "execution_count": 430, + "metadata": {}, + "outputs": [], + "source": [ + "util = x ** (1 - rho) / (1 - rho)" + ] + }, + { + "cell_type": "code", + "execution_count": 431, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left(x^{- \\rho}\\right)^{- \\frac{1}{\\rho}}$" + ], + "text/plain": [ + "(x**(-rho))**(-1/rho)" + ] + }, + "execution_count": 431, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "simplify(simplify(util.diff(x) ** (-1 / rho)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "estimatingmicrodsops", + "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.9.16" + }, + "orig_nbformat": 4 }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 429, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "plot(g_1)" - ] - }, - { - "cell_type": "code", - "execution_count": 430, - "metadata": {}, - "outputs": [], - "source": [ - "util = x ** (1 - rho) / (1 - rho)" - ] - }, - { - "cell_type": "code", - "execution_count": 431, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left(x^{- \\rho}\\right)^{- \\frac{1}{\\rho}}$" - ], - "text/plain": [ - "(x**(-rho))**(-1/rho)" - ] - }, - "execution_count": 431, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "simplify(simplify(util.diff(x) ** (-1 / rho)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "solvingmicrodsops", - "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.9.16" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/environment.yml b/environment.yml index 2bfbef5..2853a08 100644 --- a/environment.yml +++ b/environment.yml @@ -1,4 +1,4 @@ -name: solvingmicrodsops +name: estimatingmicrodsops channels: - conda-forge dependencies: diff --git a/myst.yml b/myst.yml index 1310dc6..bcaf280 100644 --- a/myst.yml +++ b/myst.yml @@ -20,7 +20,7 @@ project: - Johns Hopkins University - Econ-ARK email: alanlujan91@gmail.com - github: https://github.com/econ-ark/SolvingMicroDSOPs-LifeCycle + github: https://github.com/econ-ark/EstimatingMicroDSOPs bibliography: content/paper/main.bib math: '\CARA': '\alpha' diff --git a/reproduce.sh b/reproduce.sh index 4f19c54..9caa383 100644 --- a/reproduce.sh +++ b/reproduce.sh @@ -1,10 +1,10 @@ # Check if the environment exists before creating it -if ! conda env list | grep -q 'solvingmicrodsops'; then +if ! conda env list | grep -q 'estimatingmicrodsops'; then mamba env create -qq -f environment.yml fi # Activate the environment -conda activate solvingmicrodsops +conda activate estimatingmicrodsops # Execute script to reproduce figures python code/do_all.py