diff --git a/ProblemSet1_Yu.pdf b/ProblemSet1_Yu.pdf new file mode 100644 index 0000000..db5b720 Binary files /dev/null and b/ProblemSet1_Yu.pdf differ diff --git a/ProblemSet2_Yu.ipynb b/ProblemSet2_Yu.ipynb new file mode 100644 index 0000000..3b57266 --- /dev/null +++ b/ProblemSet2_Yu.ipynb @@ -0,0 +1,692 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ProblemSet2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ACME_StandardLibary" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem1\n", + "Write a function that accepts a list L and returns the minimum, maximum, and average of the entries of L (in that order). Can you implement this function in a single line?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def max_min_avg(L):\n", + " '''\n", + " Arg:\n", + " L(list): a list of number\n", + " \n", + " Returns\n", + " a, b, c: a tuple that contains maximun, minimum, and average of the list\n", + " '''\n", + " a = max(L)\n", + " b = min(L)\n", + " c = sum(L)/len(L)\n", + " return a, b, c" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "L = range(1,10)\n", + "res1 = max_min_avg(L)\n", + "res1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Determine which of Python’s object types are mutable and which are immutable by repeating the following experiment for an int, str, list, tuple, and set.\n", + " 1. Create an object of the given type and assign a name to it.\n", + " 2. Assign a new name to the first name.\n", + " 3. Alter the object via only one of the names (for tuples, use my_tuple += (1,)).\n", + " 4. Check to see if the two names are equal. If they are, then since changing one name changed the other, the names refer to the same object and the object type is mutable. Otherwise, the names refer to different objects—meaning a copy was made in step 2—and therefore the object type is immutable.\n", + " \n", + "For example, the following experiment shows that dict is a mutable type.\n", + "[![hccSVf.png](https://z3.ax1x.com/2021/09/04/hccSVf.png)](https://imgtu.com/i/hccSVf)\n", + "\n", + "Print a statement of your conclusions that clearly indicates which object types are mutable and which are immutable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "Step 1: Create an int, str, list, tuple, and set\n", + "'''\n", + "int_1 = 9766 # create an int\n", + "str_1 = \"Lucia\" # create a str\n", + "list_1 = [1,2,3,4,5,6,7,7,6] # create a list\n", + "tuple_1 = ('a','b',1,3) # create a tuple \n", + "set_1 = {1,2,3,4,5} # create a set \n", + "\n", + "'''\n", + "Step 2: Assign it a new name\n", + "'''\n", + "int_2 = int_1\n", + "str_2 = str_1\n", + "list_2 = list_1\n", + "tuple_2 = tuple_1\n", + "set_2 = set_1\n", + "\n", + "'''\n", + "Step 3: Change the 'new' one\n", + "'''\n", + "int_2 = 6799\n", + "str_2 = \"Lucy\"\n", + "list_2[1] = 8\n", + "tuple_2 += (1,)\n", + "set_2 ^= {6,7}\n", + "\n", + "'''\n", + "Step 4: Check to see if the two names are equal, and decide whether the object is mutable\n", + "'''\n", + "if int_1 == int_2: # check the int\n", + " print('int is mutable')\n", + "else:\n", + " print('int is immutable')\n", + "\n", + "if str_1 == str_2: # check the str\n", + " print('str is mutable')\n", + "else:\n", + " print('str is immutable')\n", + " \n", + "if list_1 == list_2: # check the list\n", + " print('list is mutable')\n", + "else:\n", + " print('list is immutable')\n", + "\n", + "if tuple_1 == tuple_2: # check the tuple\n", + " print('tuple is mutable')\n", + "else:\n", + " print('tuple is immutable')\n", + "\n", + "if set_1 == set_2: # check the set\n", + " print('set is mutable')\n", + "else:\n", + " print('set is immutable')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a module called calculator.py. Write a function that returns the sum of two arguments and a function that returns the product of two arguments. Also use import to add the sqrt() function from the math module to the namespace. When this file is either run or imported, nothing should be executed.\\\n", + "In your solutions file, import your new custom module. Write a function that accepts two numbers representing the lengths of the sides of a right triangle. Using only the functions from calculator.py, calculate and return the length of the hypotenuse of the triangle." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "c = \\sqrt{a^2+b^2}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```Python\n", + "from math import sqrt\n", + "\n", + "def sum_two(a,b):\n", + " '''\n", + " Arg:\n", + " a,b: two int\n", + " \n", + " Returns:\n", + " c: int that equals to the sum of two arguments\n", + " '''\n", + " c = a + b\n", + " return c\n", + "\n", + "def pdt_two(e,f):\n", + " '''\n", + " Arg:\n", + " e,f: two int\n", + " \n", + " Returns:\n", + " g: int that equals to the sum of two arguments\n", + " '''\n", + " g = e * f\n", + " return g\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "import calculator as cal\n", + "\n", + "def hypotenuse_length(side1, side2): # calculate the hypotenuse length of a right triangle\n", + " '''\n", + " Arg:\n", + " side1(int), side2(int): represent the lengths of the sides of a right triangle\n", + " \n", + " Returns:\n", + " hypotenuse(int): hypotenuse length\n", + " '''\n", + " side1_2 = cal.pdt_two(side1,side1)\n", + " side2_2 = cal.pdt_two(side2,side2)\n", + " hypotenuse_2 = cal.sum_two(side1_2,side2_2)\n", + " hypotenuse = cal.sqrt(hypotenuse_2)\n", + " \n", + " return hypotenuse" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ACME_NumpyIntro" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are two main ways to perform matrix multiplication in NumPy: with NumPy’s dot() function (np.dot(A, B)), or with the @ operator (A @ B). Write a function that defines the following matrices as NumPy arrays.\n", + "[![ItSEUG.md.png](https://s3.jpg.cm/2021/09/04/ItSEUG.md.png)](https://imagelol.com/image/ItSEUG)\n", + "Return the matrix product AB." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 37, 14, -32, -10],\n", + " [-54, -7, 58, 65]])" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "def functionAB():\n", + " '''\n", + " Step 1: define matrix A and B\n", + " '''\n", + " A = np.array([[3, -1, 4], \n", + " [1, 5, -9]])\n", + " B = np.array([[2, 6, -5, 3], \n", + " [5, -8, 9, 7], \n", + " [9, -3, -2, -3]])\n", + " \n", + " '''\n", + " Step2: get the matrix product of A and B, and name it AB\n", + " '''\n", + " AB = np.dot(A,B)\n", + " \n", + " '''\n", + " Step3: return AB\n", + " '''\n", + " return AB\n", + "\n", + "functionAB() # call the function I defined" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write a function that defines the following matrix as a NumPy array.\n", + "[![ItSFw4.png](https://s3.jpg.cm/2021/09/04/ItSFw4.png)](https://imagelol.com/image/ItSFw4)\n", + "Return the matrix $-A^3 + 9A^2 - 15A$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0, 0, 0],\n", + " [0, 0, 0],\n", + " [0, 0, 0]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def fun_A():\n", + " '''\n", + " Step1: define matrix A\n", + " '''\n", + " A = np.array([[3, 1, 4],\n", + " [1, 5, 9],\n", + " [-5, 3, 1]])\n", + " '''\n", + " Step2: put matrix A into the operation, and get the result res\n", + " '''\n", + " A_2 = np.dot(A,A)\n", + " A_3 = np.dot(A_2, A)\n", + " \n", + " res = -A_3 + 9*A_2 - 15*A\n", + " \n", + " return res\n", + "\n", + "fun_A() # call the function I defined" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write a function that defines the following matrices as NumPy arrays.\n", + "[![ItSkxX.md.png](https://s3.jpg.cm/2021/09/04/ItSkxX.md.png)](https://imagelol.com/image/ItSkxX)\n", + "Use NumPy’s stacking functions to create and return the block matrix:\n", + "[![ItSplD.png](https://s3.jpg.cm/2021/09/04/ItSplD.png)](https://imagelol.com/image/ItSplD)\n", + "where I is the 3 × 3 identity matrix and each 0 is a matrix of all zeros of appropriate size.\n", + "A block matrix of this form is used in the Interior Point method for linear optimization." + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 0., 0., 0., 0., 1., 1., 0., 0.],\n", + " [ 0., 0., 0., 2., 3., 0., 1., 0.],\n", + " [ 0., 0., 0., 4., 5., 0., 0., 1.],\n", + " [ 0., 2., 4., 0., 0., 0., 0., 0.],\n", + " [ 1., 3., 5., 0., 0., 0., 0., 0.],\n", + " [ 3., 0., 0., 0., 0., -2., -0., -0.],\n", + " [ 3., 3., 0., 0., 0., -0., -2., -0.],\n", + " [ 3., 3., 3., 0., 0., -0., -0., -2.]])" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def funcBlock():\n", + " '''\n", + " Step1: define the matrix A, B, C and I\n", + " '''\n", + " A = np.array([[0, 2, 4],\n", + " [1, 3, 5]])\n", + " B = np.array([[3, 0, 0],\n", + " [3, 3, 0],\n", + " [3, 3, 3]])\n", + " C = -2*np.eye(3,3)\n", + " I = np.eye(3,3)\n", + " \n", + " '''\n", + " Step2: put the zero matrix of suitable shape into each row\n", + " '''\n", + " row_1 = np.hstack((np.zeros((3,3)), A.T, I))\n", + " row_2 = np.hstack((A, np.zeros((2,2)), np.zeros((2,3))))\n", + " row_3 = np.hstack((B, np.zeros((3,2)), C))\n", + "\n", + " '''\n", + " Srep3: get the final block matrix\n", + " '''\n", + " res5 = np.vstack((row_1, row_2, row_3))\n", + "\n", + " res5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ACME_ObjectOriented" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Expand the Backpack class to match the following specifications.\n", + " 1. Modify the constructor so that it accepts three total arguments: name, color, and max_size (in that order). Make max_size a keyword argument that defaults to 5. Store each input as an attribute.\n", + " 2. Modify the put() method to check that the backpack does not go over capacity. If there are already max_size items or more, print “No Room!” and do not add the item to the contents list.\n", + " 3. Write a new method called dump() that resets the contents of the backpack to an empty list. This method should not receive any arguments (except self).\n", + " 4. Documentation is especially important in classes so that the user knows what an ob- ject’s attributes represent and how to use methods appropriately. Update (or write) the docstrings for the __init__(), put(), and dump() methods, as well as the actual class docstring (under class but before __init__()) to reflect the changes from parts 1-3 of this problem.\n", + " \n", + "To ensure that your class works properly, write a test function outside outside of the\n", + "Backpack class that instantiates and analyzes a Backpack object." + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "class Backpack:\n", + " \"\"\"A Backpack object class. Has a name and a list of contents.\n", + " Attributes:\n", + " name (str): the name of the backpack's owner.\n", + " color (str): the color of the backpack\n", + " max_size (int): the max size of the backpack\n", + " contents (list): the contents of the backpack.\n", + " Methods:\n", + " put (str): add 'item' to the backpack's list of contents until achieve max size\n", + " take (str): remove 'item' from the backpack's list of contents\n", + " dump (): resets the contents of the backpack to an empty list\n", + " \"\"\"\n", + " def __init__(self, name, color, max_size = 5): # This function is the constructor.\n", + " \"\"\"Set the name and initialize an empty list of contents.\n", + " Parameters:\n", + " name (str): the name of the backpack's owner.\n", + " color (str): the color of the backpack\n", + " max_size (int): the max size of the backpack, and its default number is 5\n", + " \"\"\"\n", + " \n", + " # Initialize some attributes.\n", + " self.name = name\n", + " self.color = color\n", + " self.max_size = max_size\n", + " self.contents = []\n", + " # ...\n", + " \n", + " def put(self, item):\n", + " \"\"\"Add 'item' to the backpack's list of contents.\"\"\"\n", + " if len(self.contents) < self.max_size:\n", + " self.contents.append(item) # Use 'self.contents', not just 'contents'.\n", + " else: # If there are already max_size items or more\n", + " print('No Room!')\n", + " \n", + " def take(self, item):\n", + " \"\"\"Remove 'item' from the backpack's list of contents.\"\"\"\n", + " self.contents.remove(item)\n", + " \n", + " def dump(self):\n", + " '''resets the contents of the backpack to an empty list'''\n", + " self.contents = []" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "def test_backpack():\n", + " testpack = Backpack(\"Barry\", \"black\") # Instantiate the object.\n", + " if testpack.name != \"Barry\": # Test an attribute.\n", + " print(\"Backpack.name assigned incorrectly\")\n", + " for item in [\"pencil\", \"pen\", \"paper\", \"computer\"]:\n", + " testpack.put(item) # Test a method.\n", + " print(\"Contents:\", testpack.contents)\n", + " testpack.put('book')\n", + " print('Contents Update', testpack.contents)\n", + " testpack.put('bottle')\n", + " testpack.take('pen')\n", + " print('Contents Update', testpack.contents)\n", + " testpack.dump()\n", + " print('Contents Update', testpack.contents)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Contents: ['pencil', 'pen', 'paper', 'computer']\n", + "Contents Update ['pencil', 'pen', 'paper', 'computer', 'book']\n", + "No Room!\n", + "Contents Update ['pencil', 'paper', 'computer', 'book']\n", + "Contents Update []\n" + ] + } + ], + "source": [ + "test_backpack()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write a Jetpack class that inherits from the Backpack class.\n", + " 1. Override the constructor so that in addition to a name, color, and maximum size, it also accepts an amount of fuel. Change the default value of max_size to 2, and set the default value of fuel to 10. Store the fuel as an attribute.\n", + " 2. Add a fly() method that accepts an amount of fuel to be burned and decrements the fuel attribute by that amount. If the user tries to burn more fuel than remains, print “Not enough fuel!” and do not decrement the fuel.\n", + " 3. Override the dump() method so that both the contents and the fuel tank are emptied.\n", + " 4. Write clear, detailed docstrings for the class and each of its methods." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [], + "source": [ + "class Jetpack(Backpack):\n", + " \"\"\"\n", + " A jetpack object class. Inherits from the Backpack class.\n", + " A jetpack is smaller than a backpack and can accepts an amount of fuel.\n", + " Attributes:\n", + " name (str): the name of the jetpack's owner.\n", + " color (str): the color of the jetpack.\n", + " max_size (int): the maximum number of items that can fit inside.\n", + " contents (list): the contents of the jetpack.\n", + " fuel (float): the fuel amount of jetpack \n", + " Methods:\n", + " fly (float): decrement the amount until the fuel tank is empty\n", + " dump (): resets the contents of the jetpack to an empty list and set fuel to 0\n", + " \"\"\"\n", + " def __init__(self, name, color, max_size=2, fuel = 10):\n", + " \"\"\"\n", + " Use the Backpack constructor to initialize the name, color,\n", + " and max_size attributes. A jetpack only holds 3 item by default.\n", + " Parameters:\n", + " name (str): the name of the jetpack's owner.\n", + " color (str): the color of the jetpack.\n", + " max_size (int): the maximum number of items that can fit inside.\n", + " \"\"\"\n", + " Backpack.__init__(self, name, color, max_size)\n", + " self.fuel = fuel\n", + " \n", + " def fly(self, burned_fuel):\n", + " '''\n", + " accepts an amount of fuel to be burned \n", + " '''\n", + " if burned_fuel > self.fuel: # If the user tries to burn more fuel than remains\n", + " print('Not enough fuel!')\n", + " else: # decrements the fuel attribute by the amount of burned fuel\n", + " self.fuel -= burned_fuel\n", + " \n", + " def dump(self):\n", + " '''\n", + " empty both the contents and the fuel tank\n", + " '''\n", + " self.contents = []\n", + " self.fuel = 0\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "def test_backpack():\n", + " testpack = Jetpack(\"Barry\", \"black\") # Instantiate the object.\n", + " if testpack.name != \"Barry\": # Test an attribute.\n", + " print(\"Backpack.name assigned incorrectly\")\n", + " for item in [\"pencil\", \"pen\"]:\n", + " testpack.put(item) # Test a method.\n", + " print(\"Contents:\", testpack.contents)\n", + " \n", + " print(' \\nPut a book into the jetpack')\n", + " testpack.put('book')\n", + " \n", + " print(' \\nTake out a pen from the jetpack')\n", + " testpack.take('pen')\n", + " print('Contents Update:', testpack.contents)\n", + "\n", + " print(' \\nBurn 7 amount of fuel to fly')\n", + " testpack.fly(7)\n", + " print('Fuel Tank Update:',testpack.fuel)\n", + " print('Burn 4 amount of fuel to fly')\n", + " testpack.fly(4)\n", + " \n", + " print(' \\nReset the jetpack')\n", + " testpack.dump()\n", + " print('Contents Update:', testpack.contents)\n", + " print('Fuel Tank Update:',testpack.fuel)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Contents: ['pencil', 'pen']\n", + " \n", + "Put a book into the jetpack\n", + "No Room!\n", + " \n", + "Take out a pen from the jetpack\n", + "Contents Update: ['pencil']\n", + " \n", + "Burn 7 amount of fuel to fly\n", + "Fuel Tank Update: 3\n", + "Burn 4 amount of fuel to fly\n", + "Not enough fuel!\n", + " \n", + "Reset the jetpack\n", + "Contents Update: []\n", + "Fuel Tank Update: 0\n" + ] + } + ], + "source": [ + "test_backpack()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ProblemSet3/Distribution_of_CL.png b/ProblemSet3/Distribution_of_CL.png new file mode 100644 index 0000000..5ca4160 Binary files /dev/null and b/ProblemSet3/Distribution_of_CL.png differ diff --git a/ProblemSet3/Distribution_of_CreditLine_Gender.png b/ProblemSet3/Distribution_of_CreditLine_Gender.png new file mode 100644 index 0000000..1ffed06 Binary files /dev/null and b/ProblemSet3/Distribution_of_CreditLine_Gender.png differ diff --git a/ProblemSet3/ProblemSet3_Yu.pdf b/ProblemSet3/ProblemSet3_Yu.pdf new file mode 100644 index 0000000..423465a Binary files /dev/null and b/ProblemSet3/ProblemSet3_Yu.pdf differ diff --git a/ProblemSet3/ProblemSet3_Yu.py b/ProblemSet3/ProblemSet3_Yu.py new file mode 100644 index 0000000..3a768b8 --- /dev/null +++ b/ProblemSet3/ProblemSet3_Yu.py @@ -0,0 +1,35 @@ +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +import plotly.express as ex + +# Read in data from csv file +df = pd.read_csv('BankChurners.csv',sep=',') + +data_CA = df['Credit_Limit'] + +# hist distribution of Credit line +plt.hist(data_CA, bins = 20, edgecolor = 'black') + +plt.ylabel('Number of customer in this credit line interval') +plt.xlabel('Credit line') +plt.title('Distribution of credit line') + +plt.savefig('Distribution_of_CL') + +# show the distribution of gender +import plotly.io as pio +fig1 = ex.pie(df,names='Gender',title='Distribution of gender') +pio.write_image(file='gender.png',fig = fig1) + +# show the distribution of credit line for male and female customers +data_CA_M = df[df['Gender']=='M']['Credit_Limit'] +data_CA_F = df[df['Gender']=='F']['Credit_Limit'] + +kwargs = dict(histtype='stepfilled', alpha = 0.3, bins=20) +plt.hist(data_CA_M, **kwargs, color='g') +plt.hist(data_CA_F, **kwargs, color='r') +plt.legend(['male','female']) +plt.title('Distribution of credit line for male and female') +plt.savefig('Distribution_of_CreditLine_Gender') + diff --git a/ProblemSet3/gender.png b/ProblemSet3/gender.png new file mode 100644 index 0000000..e3f04ac Binary files /dev/null and b/ProblemSet3/gender.png differ diff --git a/ProblemSet4/ProblemSet4_Yu.ipynb b/ProblemSet4/ProblemSet4_Yu.ipynb new file mode 100644 index 0000000..42b1caf --- /dev/null +++ b/ProblemSet4/ProblemSet4_Yu.ipynb @@ -0,0 +1,1514 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem Set 4" + ] + }, + { + "cell_type": "code", + "execution_count": 297, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import scipy.optimize as opt\n", + "from scipy.special import factorial\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
id68yearintidrelhhhannhrswannhrshlabincwlabincnochildwrace...redpregovinchsexwsexagewagehpersnowpersnohyrsedwyrsedpce
0119671Head1200.02000.0NaNNaN0NaN...5614.01.02.052.046.01.02.08.08.00.0
1219672Head0.00.0NaNNaN0NaN...0.01.02.056.057.01.02.03.03.00.0
2319673Head0.00.0NaNNaN0NaN...0.01.02.077.064.01.02.0NaN3.00.0
3419674Head1560.00.0NaNNaN61.0...3280.01.02.045.044.01.02.08.05.00.0
4519675Head2500.02000.0NaNNaN31.0...7900.01.02.024.022.01.02.010.09.00.0
\n", + "

5 rows × 52 columns

\n", + "
" + ], + "text/plain": [ + " id68 year intid relhh hannhrs wannhrs hlabinc wlabinc nochild \\\n", + "0 1 1967 1 Head 1200.0 2000.0 NaN NaN 0 \n", + "1 2 1967 2 Head 0.0 0.0 NaN NaN 0 \n", + "2 3 1967 3 Head 0.0 0.0 NaN NaN 0 \n", + "3 4 1967 4 Head 1560.0 0.0 NaN NaN 6 \n", + "4 5 1967 5 Head 2500.0 2000.0 NaN NaN 3 \n", + "\n", + " wrace ... redpregovinc hsex wsex age wage hpersno wpersno hyrsed \\\n", + "0 NaN ... 5614.0 1.0 2.0 52.0 46.0 1.0 2.0 8.0 \n", + "1 NaN ... 0.0 1.0 2.0 56.0 57.0 1.0 2.0 3.0 \n", + "2 NaN ... 0.0 1.0 2.0 77.0 64.0 1.0 2.0 NaN \n", + "3 1.0 ... 3280.0 1.0 2.0 45.0 44.0 1.0 2.0 8.0 \n", + "4 1.0 ... 7900.0 1.0 2.0 24.0 22.0 1.0 2.0 10.0 \n", + "\n", + " wyrsed pce \n", + "0 8.0 0.0 \n", + "1 3.0 0.0 \n", + "2 3.0 0.0 \n", + "3 5.0 0.0 \n", + "4 9.0 0.0 \n", + "\n", + "[5 rows x 52 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Read in the data\n", + "df = pd.read_stata('PS4_data.dta')\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Select only \n", + "1. male heads of household \n", + "2. who are between 25 and 60 years of age \n", + "3. and earn wages > \\$7/hr." + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "df_model = df[(df['hsex']==1) & (df['age']>=25) & (df['age']<=60)\n", + " & (df['hlabinc']/df['hannhrs']>7) & (df['hannhrs'] != 0)]\n", + "# to avoid problems, I exclude the head working for 0 hour" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "count 57477.0\n", + "mean 1.0\n", + "std 0.0\n", + "min 1.0\n", + "25% 1.0\n", + "50% 1.0\n", + "75% 1.0\n", + "max 1.0\n", + "Name: hsex, dtype: float64" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# check the data is selected correctly\n", + "df_model['hsex'].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "count 57477.000000\n", + "mean 39.224247\n", + "std 9.578915\n", + "min 25.000000\n", + "25% 31.000000\n", + "50% 38.000000\n", + "75% 47.000000\n", + "max 60.000000\n", + "Name: age, dtype: float64" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_model['age'].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
id68yearintidrelhhhannhrswannhrshlabincwlabincnochildwrace...redpregovinchsexwsexagewagehpersnowpersnohyrsedwyrsedpce
\n", + "

0 rows × 52 columns

\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [id68, year, intid, relhh, hannhrs, wannhrs, hlabinc, wlabinc, nochild, wrace, hrace, hafdc, hssi, hothwelf, hvetpen, hunempinc, hworkcomp, wafdc, wssi, wothwelf, wunempinc, wworkcomp, noadult, oafdc, ossi, oothwelf, hsocsec, wsocsec, osocsec, ounempinc, oworkcomp, wvetpen, ovetpen, foodstamps, foodexp, foodcon, state, redlabinc, redlabincall, redlabplus, redfinass, redtotass, redpregovinc, hsex, wsex, age, wage, hpersno, wpersno, hyrsed, wyrsed, pce]\n", + "Index: []\n", + "\n", + "[0 rows x 52 columns]" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_model[df_model['hannhrs']==0].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " \n" + ] + }, + { + "data": { + "text/plain": [ + "count 57477.000000\n", + "mean 24.306021\n", + "std 25.154232\n", + "min 7.000252\n", + "25% 13.947624\n", + "50% 19.905161\n", + "75% 27.787226\n", + "max 1717.330322\n", + "Name: hlhrinc, dtype: float64" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# add a new coloumn 'hlhrinc' for hourly labour income of the head\n", + "df_model['hlhrinc'] = df['hlabinc']/df['hannhrs']\n", + "df_model['hlhrinc'].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "# build a new dataframe to check hourly income\n", + "df_checkinc = pd.DataFrame(df_model, columns=['hannhrs','hlhrinc','hlabinc'])" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hannhrshlhrinchlabinc
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [hannhrs, hlhrinc, hlabinc]\n", + "Index: []" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_checkinc[df_checkinc['hlhrinc']<7]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It seems that I have filtered out all the heads with income less than 7 dollars per hour" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hannhrshlhrinchlabinc
3494732.01717.33032254954.570312
\n", + "
" + ], + "text/plain": [ + " hannhrs hlhrinc hlabinc\n", + "34947 32.0 1717.330322 54954.570312" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_checkinc[df_checkinc['hlhrinc']==df_checkinc['hlhrinc'].max()]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model is:\n", + "$$ln(w_{i,t}) = \\alpha + \\beta_1 Educ_{i,t} + \\beta_2 Age_{i,t} + \\beta_3 Age_{i,t}^2 + \\beta_4 Black_{i,t} + \\beta_5 Hispanic_{i,t} + \\beta_6 OtherRace_{i,t} + \\varepsilon_{i,t}$$\n", + "\n", + "The variables names are as follows:\n", + "* `w` = wage of individual i in survey year t\n", + "* `Educ` = education in years\n", + "* `Age` = age in years\n", + "* `Black, Hispanic, OtherRace` = dummy variables for race = Black, Hispanic, Not ∈ {White, Black, Hispanic}" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " \"\"\"Entry point for launching an IPython kernel.\n" + ] + } + ], + "source": [ + "df_model['lnw'] = np.log(df_model['hlabinc'])" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:17: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + "/opt/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:18: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n" + ] + } + ], + "source": [ + "'''\n", + "create a new column 'race', \n", + "in which race of the head is black will be assigned as 'Black',\n", + "race of the head is hispanic will be assigned as 'Hispanic',\n", + "people rather than white, black or hispanic will be assigned as 'Other race'\n", + "'''\n", + "def race(x):\n", + " if x == 2:\n", + " return 'Black'\n", + " elif x == 5:\n", + " return 'Hispanic'\n", + " elif x == 1:\n", + " return 'White'\n", + " else:\n", + " return 'Other race'\n", + " \n", + "df_model['race']= df_model['hrace']\n", + "df_model['race'] = df_model['hrace'].apply(lambda x: race(x))" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "11196 Black\n", + "11417 Black\n", + "11436 Black\n", + "11548 Black\n", + "11640 Black\n", + "Name: race, dtype: object" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# check the value is assigned correctly\n", + "df_model[df_model['hrace']==2]['race'].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "11161 White\n", + "11164 White\n", + "11166 White\n", + "11173 White\n", + "11175 White\n", + "Name: race, dtype: object" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_model[df_model['hrace']==1]['race'].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "11268 Other race\n", + "11277 Other race\n", + "11350 Other race\n", + "11937 Other race\n", + "12006 Other race\n", + "Name: race, dtype: object" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_model[df_model['hrace']==3]['race'].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Series([], Name: race, dtype: object)" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_model[df_model['hrace']==5]['race'].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
id68yearintidrelhhhannhrswannhrshlabincwlabincnochildwrace...redpregovinchsexwsexagewagehpersnowpersnohyrsedwyrsedpce
\n", + "

0 rows × 52 columns

\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [id68, year, intid, relhh, hannhrs, wannhrs, hlabinc, wlabinc, nochild, wrace, hrace, hafdc, hssi, hothwelf, hvetpen, hunempinc, hworkcomp, wafdc, wssi, wothwelf, wunempinc, wworkcomp, noadult, oafdc, ossi, oothwelf, hsocsec, wsocsec, osocsec, ounempinc, oworkcomp, wvetpen, ovetpen, foodstamps, foodexp, foodcon, state, redlabinc, redlabincall, redlabplus, redfinass, redtotass, redpregovinc, hsex, wsex, age, wage, hpersno, wpersno, hyrsed, wyrsed, pce]\n", + "Index: []\n", + "\n", + "[0 rows x 52 columns]" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# check what's the situation in the raw data\n", + "df[df['hrace']==5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is no Hispanic people in the raw data, so there is no error here." + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [], + "source": [ + "df_dummies = pd.get_dummies(df_model['race'])" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
BlackOther raceWhite
11161001
11164001
11166001
11173001
11175001
\n", + "
" + ], + "text/plain": [ + " Black Other race White\n", + "11161 0 0 1\n", + "11164 0 0 1\n", + "11166 0 0 1\n", + "11173 0 0 1\n", + "11175 0 0 1" + ] + }, + "execution_count": 115, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_dummies.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "11161 White\n", + "11164 White\n", + "11166 White\n", + "11173 White\n", + "11175 White\n", + "Name: race, dtype: object" + ] + }, + "execution_count": 116, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_model['race'].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " \"\"\"Entry point for launching an IPython kernel.\n" + ] + } + ], + "source": [ + "df_model['age2'] = np.square(df_model['age'])" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ageage2
1116151.02601.0
1116455.03025.0
1116625.0625.0
1117339.01521.0
1117536.01296.0
\n", + "
" + ], + "text/plain": [ + " age age2\n", + "11161 51.0 2601.0\n", + "11164 55.0 3025.0\n", + "11166 25.0 625.0\n", + "11173 39.0 1521.0\n", + "11175 36.0 1296.0" + ] + }, + "execution_count": 120, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_model[['age','age2']].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [], + "source": [ + "# make a new dataframe that only keeps the variable needed in the model\n", + "df_variables1 = pd.DataFrame(df_model, columns=['id68','year','lnw','hyrsed','age','age2','hrace'])\n", + "df_variables = pd.concat([df_variables1,df_dummies], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
id68yearlnwhyrsedageage2hraceBlackOther raceWhite
11161402197111.04975812.051.02601.01.0001
11164461197110.0283995.055.03025.01.0001
111661126197110.28663416.025.0625.01.0001
11173284197111.25007216.039.01521.01.0001
1117550197110.37249612.036.01296.01.0001
\n", + "
" + ], + "text/plain": [ + " id68 year lnw hyrsed age age2 hrace Black Other race \\\n", + "11161 402 1971 11.049758 12.0 51.0 2601.0 1.0 0 0 \n", + "11164 461 1971 10.028399 5.0 55.0 3025.0 1.0 0 0 \n", + "11166 1126 1971 10.286634 16.0 25.0 625.0 1.0 0 0 \n", + "11173 284 1971 11.250072 16.0 39.0 1521.0 1.0 0 0 \n", + "11175 50 1971 10.372496 12.0 36.0 1296.0 1.0 0 0 \n", + "\n", + " White \n", + "11161 1 \n", + "11164 1 \n", + "11166 1 \n", + "11173 1 \n", + "11175 1 " + ] + }, + "execution_count": 126, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_variables.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "Since there is no hispanic in original database, \n", + "but Hispanic is a dummy variable,\n", + "I will add a column named 'Hispanic' and assign all the value to 0\n", + "''' \n", + "df_variables['Hispanic'] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
id68yearlnwhyrsedageage2hraceBlackOther raceWhiteHispanic
11161402197111.04975812.051.02601.01.00010
11164461197110.0283995.055.03025.01.00010
111661126197110.28663416.025.0625.01.00010
11173284197111.25007216.039.01521.01.00010
1117550197110.37249612.036.01296.01.00010
\n", + "
" + ], + "text/plain": [ + " id68 year lnw hyrsed age age2 hrace Black Other race \\\n", + "11161 402 1971 11.049758 12.0 51.0 2601.0 1.0 0 0 \n", + "11164 461 1971 10.028399 5.0 55.0 3025.0 1.0 0 0 \n", + "11166 1126 1971 10.286634 16.0 25.0 625.0 1.0 0 0 \n", + "11173 284 1971 11.250072 16.0 39.0 1521.0 1.0 0 0 \n", + "11175 50 1971 10.372496 12.0 36.0 1296.0 1.0 0 0 \n", + "\n", + " White Hispanic \n", + "11161 1 0 \n", + "11164 1 0 \n", + "11166 1 0 \n", + "11173 1 0 \n", + "11175 1 0 " + ] + }, + "execution_count": 128, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_variables.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [], + "source": [ + "def setup(year, dataset):\n", + " df_t = dataset[dataset['year']==year]\n", + " y = df_t['lnw']\n", + " X = pd.DataFrame(df_t, columns=['hyrsed','age','age2','Black','Hispanic','Other race'])\n", + " \n", + " return y, X\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I choose poisson distribution to be the probability distribution that generates the data. Therefore, the function is:\n", + "$$\n", + "f(x) = \\frac{u^y}{y!} e^{-u}\n", + "$$\n", + "In the regression model, \n", + "$$\n", + "u_i = \\beta_0 + \\beta_1 x_i1 + \\beta_2 x_i2 + …… + \\beta_n x_in\n", + "$$\n", + "\n", + "The joint pmf is:\n", + "$$\n", + "f(y_1, y_2, ...., y_n| x_1, x_2, .... , x_n; \\beta) = \\prod^n_{i=1} \\frac{u_i^{y_i}}{y_i!} e^{-u_i}\n", + "$$\n", + "\n", + "The likelihood function is the same as the joint pmf, but treats the parametes $\\beta$ as a random variable and takes the observations $(y_i,x_i)$ as given\n", + "$$\\mathcal{L}(\\beta|y_1, y_2, ……, y_n; x_1, x_2, .... , x_n) = \\prod^n_{i=1} \\frac{u_i^{y_i}}{y_i!} e^{-u_i} \\\\\n", + "= f(y_1, y_2, ...., y_n| x_1, x_2, .... , x_n; \\beta) $$\n", + "\n", + "
\n", + " \n", + "$$\n", + "\\hat \\beta = \\mathop{max}\\limits_{\\beta} \\mathcal{L}(\\beta) \\\\\n", + "\\hat \\beta = \\mathop{max}\\limits_{\\beta}log\\mathcal{L}(\\beta) \\\\\n", + "= \\mathop{max}\\limits_{\\beta}(\\sum^n_{i=1} y_i log u_i - \\sum^n_{i=1} u_i - \\sum^n_{i=1} log y!)\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 300, + "metadata": {}, + "outputs": [], + "source": [ + "def reg(year, dataset, beta0):\n", + " \n", + " y, X = setup(year, dataset)\n", + " \n", + " def costFunction(beta, y, X):\n", + " \n", + " \n", + " n, k = X.shape\n", + " y = np.array(y)\n", + " y = y.reshape(n,1)\n", + " beta = beta.reshape(k,1)\n", + " u = X@beta\n", + " \n", + " # return the function that we want to minimize\n", + " return -np.sum(y * np.log(u) - u - np.log(factorial(y)))\n", + " \n", + " res = opt.minimize(costFunction, beta0, args=(y,X), method ='L-BFGS-B',\n", + " tol=1e-15, options={'maxiter': 5000}) \n", + " return res" + ] + }, + { + "cell_type": "code", + "execution_count": 303, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:15: RuntimeWarning: overflow encountered in log\n", + " from ipykernel import kernelapp as app\n", + "/opt/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:15: RuntimeWarning: invalid value encountered in log\n", + " from ipykernel import kernelapp as app\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The estimate for year 1971 is: \n", + " [ 0.45597721 0.0051746 -0.16198892 0.24718822 0.00896086 0.94945311]\n", + "If the years of eduction increase by 1, the annual income of the head will increase by 45.59772050736522%\n", + "\n", + "The estimate for year 1980 is: \n", + " [ 0.45466351 0.00416802 -0.1619548 0.2471872 0.00896086 0.94945461]\n", + "If the years of eduction increase by 1, the annual income of the head will increase by 45.466350553183226%\n", + "\n", + "The estimate for year 1990 is: \n", + " [ 0.45436018 0.00408386 -0.16195017 0.24719266 0.00896086 0.9494593 ]\n", + "If the years of eduction increase by 1, the annual income of the head will increase by 45.43601835759395%\n", + "\n", + "The estimate for year 2000 is: \n", + " [ 0.45527557 0.00545288 -0.16199017 0.24719753 0.00896086 0.94944712]\n", + "If the years of eduction increase by 1, the annual income of the head will increase by 45.52755731073274%\n", + "\n" + ] + } + ], + "source": [ + "t = [1971, 1980, 1990, 2000]\n", + "# randomly choose the initial guess\n", + "beta_initial = np.random.rand(6)\n", + "\n", + "beta1 = []\n", + "\n", + "for year in t:\n", + " res = reg(year, df_variables,beta_initial)\n", + " print('The estimate for year {} is: \\n {}'.format(year, res.x))\n", + " \n", + " coef1 = res.x[0]*100\n", + " \n", + " # interpret the coefficient beta1\n", + " print('If the years of eduction increase by 1, the annual income of the head will increase by {}%\\n'.format(coef1))\n", + " \n", + " beta1.append(coef1)" + ] + }, + { + "cell_type": "code", + "execution_count": 304, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(t, beta1)\n", + "plt.title('The change of coefficient beta1 over time')\n", + "plt.xlabel('year')\n", + "plt.ylabel('beta1(%)')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Interpretation of the coefficient $\\beta_1$\n", + "The effect of eduction on annual income was strongest in year 1971, then it decreased gradually until it reached the lowest level in 1990. After this, the effect becomes stronger in 2000. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ProblemSet5/ProblemSet5_Yu.pdf b/ProblemSet5/ProblemSet5_Yu.pdf new file mode 100644 index 0000000..949c320 Binary files /dev/null and b/ProblemSet5/ProblemSet5_Yu.pdf differ diff --git a/ProblemSet5/ProblemSet5_Yu.py b/ProblemSet5/ProblemSet5_Yu.py new file mode 100644 index 0000000..2040292 --- /dev/null +++ b/ProblemSet5/ProblemSet5_Yu.py @@ -0,0 +1,291 @@ +# mport the packages +import pandas as pd +import numpy as np + +import scipy.optimize as opt +import scipy.stats as stats + +from geopy.distance import geodesic + +''' +Part1 Data Process +''' +# read in data +df = pd.read_csv('radio_merger_data.csv') + +# combine latitude and longitude into a tuple for distance calculation +buyer_loc = df[['buyer_lat','buyer_long']] +df['buyer_loc'] = buyer_loc.apply(tuple,axis=1) + +target_loc = df[['target_lat','target_long']] +df['target_loc'] = target_loc.apply(tuple,axis=1) + +# rescale the population: put population into logs of thousands of people +df['population_target'] = np.log(df['population_target']/1000) + +''' +Model 1 + +Part2 Create a new dataset in which every buyer and target in each market can match with each other. +Also, I only keep the data needed for the model +''' + +# create empty lists to hold all the corresponding values +x_1bim = [] +y_1tim = [] +x_2bim = [] +distance_iim = [] + +x_1bjm = [] +y_1tjm = [] +x_2bjm = [] +distance_jjm = [] + +distance_ijm = [] +distance_jim = [] + +# seperate the market for different years +mkt = df['year'].unique() +no_mkt = len(mkt) + +# first loop for different year/market +for m in range(no_mkt): + data = df[df['year'].isin([mkt[m]])] # this dataframe only holds data for corresponding market/year + + n,_ = data.shape # get the number of buyers/targets in this market + + for i in range(n-1): + for j in range(i,n-1): + j += 1 # this netted loop allows me to get all the observed and counterfactual matches + + # put all the corresponding valurs into the lists + x_1bim.append(data.loc[(data.buyer_id==i+1),'num_stations_buyer'].values[0]) + y_1tim.append(data.loc[(data.target_id==i+1),'population_target'].values[0]) + x_2bim.append(data.loc[(data.buyer_id==i+1),'corp_owner_buyer'].values[0]) + + bi_loc = data.loc[(data.buyer_id==i+1),'buyer_loc'].values[0] + ti_loc = data.loc[(data.target_id==i+1),'target_loc'].values[0] + distance_iim.append(geodesic(bi_loc, ti_loc).miles) # calculate the distance btw the buyer and target + + x_1bjm.append(data.loc[(data.buyer_id==j+1),'num_stations_buyer'].values[0]) + y_1tjm.append(data.loc[(data.target_id==j+1),'population_target'].values[0]) + x_2bjm.append(data.loc[(data.buyer_id==j+1),'corp_owner_buyer'].values[0]) + + bj_loc = data.loc[(data.buyer_id==j+1),'buyer_loc'].values[0] + tj_loc = data.loc[(data.target_id==j+1),'target_loc'].values[0] + + distance_jjm.append(geodesic(bj_loc, tj_loc).miles) + + distance_ijm.append(geodesic(bi_loc, tj_loc).miles) + distance_jim.append(geodesic(bj_loc, ti_loc).miles) + +# give these lists a suitable names +# I use the variable names in the model +data_match = {'x_1bim':x_1bim, + 'y_1tim':y_1tim, + 'x_2bim':x_2bim, + 'distance_iim':distance_iim, + 'x_1bjm': x_1bjm, + 'y_1tjm': y_1tjm, + 'x_2bjm': x_2bjm, + 'distance_jjm': distance_jjm, + 'distance_ijm': distance_ijm, + 'distance_jim':distance_jim} + + +# put all the lists into a dataframe called df_match +df_match = pd.DataFrame(data_match) + +''' +Part3 Define Model1 +''' + +def Q(paras,df): + ''' + The maximum socre objective function. + + Args: + params (tuple): model parameters + data (Pandas DataFrame): data, contains covariates in model + + Returns: + scalar: the negative value of the score function + We'll use a negative value so we can use a minimizer to max the sum + ''' + + # unpack tuple of parameters + alpha, beta = paras + + # find value for each variable to calculate payoff for buyer i and target i + x_1bim = df['x_1bim'] + y_1tim = df['y_1tim'] + x_2bim = df['x_2bim'] + distance_iim = df['distance_iim'] + + # calculate payoff for buyer i and target i + df['f_ii'] = x_1bim*y_1tim + alpha*x_2bim*y_1tim + beta*distance_iim + + # find value for each variable to calculate payoff for buyer j and target j + x_1bjm = df['x_1bjm'] + y_1tjm = df['y_1tjm'] + x_2bjm = df['x_2bjm'] + distance_jjm = df['distance_jjm'] + + # calculate payoff for buyer j and target j + df['f_jj'] = x_1bjm*y_1tjm + alpha*x_2bjm*y_1tjm + beta*distance_jjm + + distance_ijm = df['distance_ijm'] + + # calculate payoff for buyer i and target j + df['f_ij'] = x_1bim*y_1tjm + alpha*x_2bim*y_1tjm + beta*distance_ijm + + distance_jim = df['distance_jim'] + + # calculate payoff for buyer j and target i + df['f_ji'] = x_1bjm*y_1tim + alpha*x_2bjm*y_1tim + beta*distance_jim + + df['observed'] = df['f_ii'] + df['f_jj'] # calculate payoff for the observed matches + df['counterfactual'] = df['f_ij'] + df['f_ji'] # calculate payoff for the counterfactual matches + + # create a list where payoff of observed matches is larger than that of counterfactual matches + correct = (df['observed']>df['counterfactual']) + + return -sum(correct) # return the negative number that satisfy that condition + + +''' +Part4 Estimate Model1 +''' +# set initial guessess +paras = (0.1, 0.1) + +# minimize the maximum socre objective function +res = opt.minimize(Q, paras, args = (df_match,), + method = 'Nelder-Mead') + +# get the result of the estimated parameters +est_paras = res.x +# get the result of the estimated alpha +est_alpha = est_paras[0] +est_beta = est_paras[1] + +# use the estimated parameters to calculate the maximum score +MS1 = Q(est_paras, df_match) + +# Print the resukt +print('For the model1:') +print('The estimate of alpha is', est_alpha) +print('The estimate of beta is', est_beta) +print('The maximum socre estimator is', MS1) + +''' +Model 2 +Part5 Add a new varibale HHI for model2 and put all the data into new dataset df_match2 +''' + +HHI_im = [] +HHI_jm = [] + +for m in range(no_mkt): + data = df[df['year'].isin([mkt[m]])] + + n, _ = data.shape + for i in range(n-1): + for j in range(i,n-1): + j += 1 + HHI_im.append(data.loc[(data.target_id==i+1),'hhi_target'].values[0]) + HHI_jm.append(data.loc[(data.target_id==j+1),'hhi_target'].values[0]) +df_match2 = df_match +df_match2['HHI_im'] = HHI_im +df_match2['HHI_jm'] = HHI_jm + + +''' +Part6 Define Model2 +''' + +def Q2(paras,df): + ''' + The maximum socre objective function. + + Args: + params (tuple): model parameters + data (Pandas DataFrame): data, contains covariates in model + + Returns: + scalar: the negative value of the score function + We'll use a negative value so we can use a minimizer to max the sum + ''' + + delta, alpha, gamma, beta, = paras + + x_1bim = df['x_1bim'] + y_1tim = df['y_1tim'] + x_2bim = df['x_2bim'] + HHI_im = df['HHI_im'] + distance_iim = df['distance_iim'] + + + df['f_ii'] = delta*x_1bim*y_1tim + alpha*x_2bim*y_1tim + gamma*HHI_im + beta*distance_iim + + # calculate f_(j,j) + x_1bjm = df['x_1bjm'] + y_1tjm = df['y_1tjm'] + x_2bjm = df['x_2bjm'] + HHI_jm = df['HHI_jm'] + distance_jjm = df['distance_jjm'] + + df['f_jj'] = delta*x_1bjm*y_1tjm + alpha*x_2bjm*y_1tjm + gamma*HHI_jm + beta*distance_jjm + + # calculate f_(i,j) + + distance_ijm = df['distance_ijm'] + + df['f_ij'] = delta*x_1bim*y_1tjm + alpha*x_2bim*y_1tjm + gamma*HHI_jm + beta*distance_ijm + + # calculate f_(j,i) + + distance_jim = df['distance_jim'] + + df['f_ji'] = delta*x_1bjm*y_1tim + alpha*x_2bjm*y_1tim + gamma*HHI_im + beta*distance_jim + + df['observed'] = df['f_ii'] + df['f_jj'] + df['counterfactual'] = df['f_ij'] + df['f_ji'] + + correct = (df['observed']>df['counterfactual']) + + return -sum(correct) + + +''' +Part7 Estimate Model2 +''' +# initial guesses +paras = (0.1, 0.1, 0.1, -0.1) + +# minimize the maximum socre objective function +res1 = opt.minimize(Q2, paras, args = (df_match2,), + method = 'Nelder-Mead') + +# use improved parameters to estimate +res2 = opt.minimize(Q2, res1.x, args = (df_match2,), + method = 'Nelder-Mead') + +# get the result of the estimated parameters +est_paras2 = res2.x +# get the result of the estimated alpha +est_delta2 = est_paras2[0] +est_alpha2 = est_paras2[1] +est_gamma2 = est_paras2[2] +est_beta2 = est_paras2[3] + +# use the estimated parameters to calculate the maximum score +MS2 = Q2(est_paras2, df_match2) + +# Print the resukt +print('For the model2:') +print('The estimate of delta is', est_delta2) +print('The estimate of alpha is', est_alpha2) +print('The estimate of gamma is', est_gamma2) +print('The estimate of beta is', est_beta2) +print('The maximum socre estimator is', MS2) diff --git a/ProblemSet6/ProblemSet6_Yu.ipynb b/ProblemSet6/ProblemSet6_Yu.ipynb new file mode 100644 index 0000000..1efbc80 --- /dev/null +++ b/ProblemSet6/ProblemSet6_Yu.ipynb @@ -0,0 +1,599 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0c9b6e7e", + "metadata": {}, + "source": [ + "# Problem Set \\#6\n", + "## ECON 833, Computational Methods for Economists\n" + ] + }, + { + "cell_type": "markdown", + "id": "2a46c21f", + "metadata": {}, + "source": [ + "## 1. Setup" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "8383874d", + "metadata": {}, + "outputs": [], + "source": [ + "# imports\n", + "from sklearn import tree\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.tree import export_text\n", + "from sklearn.model_selection import RandomizedSearchCV\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from scipy.stats import randint as sp_randint\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8375f64b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
bidenfemaleageeducdemrep
0900191210
1701511410
2600271400
3501431410
4601381401
\n", + "
" + ], + "text/plain": [ + " biden female age educ dem rep\n", + "0 90 0 19 12 1 0\n", + "1 70 1 51 14 1 0\n", + "2 60 0 27 14 0 0\n", + "3 50 1 43 14 1 0\n", + "4 60 1 38 14 0 1" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# read in data\n", + "df_biden=pd.read_csv('biden.csv',sep=',')\n", + "df_biden.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "14822314", + "metadata": {}, + "outputs": [], + "source": [ + "# create y and X for reference later\n", + "y = df_biden['biden'].values\n", + "X_var_names = ['female', 'age', 'educ', 'dem', 'rep']\n", + "X = df_biden[X_var_names].values" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8c0468f2", + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X, y, test_size=0.3, random_state=25)" + ] + }, + { + "cell_type": "markdown", + "id": "b9036edf", + "metadata": {}, + "source": [ + "## 2. Basic Decision Tree" + ] + }, + { + "cell_type": "markdown", + "id": "33e16f00", + "metadata": {}, + "source": [ + "### 2.1 Fit a decision tree on the train data" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "74e28230", + "metadata": {}, + "outputs": [], + "source": [ + "dtr = tree.DecisionTreeRegressor(max_depth=3, min_samples_leaf=5)\n", + "biden_tree = dtr.fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "id": "d3d089b0", + "metadata": {}, + "source": [ + "### 2.2 Plot the tree" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "1d7b48a7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "|--- dem <= 0.50\n", + "| |--- rep <= 0.50\n", + "| | |--- female <= 0.50\n", + "| | | |--- value: [56.49]\n", + "| | |--- female > 0.50\n", + "| | | |--- value: [61.27]\n", + "| |--- rep > 0.50\n", + "| | |--- female <= 0.50\n", + "| | | |--- value: [38.33]\n", + "| | |--- female > 0.50\n", + "| | | |--- value: [44.89]\n", + "|--- dem > 0.50\n", + "| |--- age <= 54.50\n", + "| | |--- educ <= 15.50\n", + "| | | |--- value: [71.11]\n", + "| | |--- educ > 15.50\n", + "| | | |--- value: [76.59]\n", + "| |--- age > 54.50\n", + "| | |--- female <= 0.50\n", + "| | | |--- value: [75.19]\n", + "| | |--- female > 0.50\n", + "| | | |--- value: [80.29]\n", + "\n" + ] + } + ], + "source": [ + "r = export_text(biden_tree, feature_names=X_var_names)\n", + "print(r)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "2fe229f9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(465.0, 792.75, 'dem <= 0.5\\nmse = 556.262\\nsamples = 1264\\nvalue = 62.165'),\n", + " Text(232.5, 566.25, 'rep <= 0.5\\nmse = 507.397\\nsamples = 724\\nvalue = 52.811'),\n", + " Text(116.25, 339.75, 'female <= 0.5\\nmse = 444.551\\nsamples = 468\\nvalue = 58.868'),\n", + " Text(58.125, 113.25, 'mse = 470.335\\nsamples = 235\\nvalue = 56.489'),\n", + " Text(174.375, 113.25, 'mse = 407.088\\nsamples = 233\\nvalue = 61.266'),\n", + " Text(348.75, 339.75, 'female <= 0.5\\nmse = 432.623\\nsamples = 256\\nvalue = 41.738'),\n", + " Text(290.625, 113.25, 'mse = 456.775\\nsamples = 123\\nvalue = 38.333'),\n", + " Text(406.875, 113.25, 'mse = 389.649\\nsamples = 133\\nvalue = 44.887'),\n", + " Text(697.5, 566.25, 'age <= 54.5\\nmse = 347.197\\nsamples = 540\\nvalue = 74.706'),\n", + " Text(581.25, 339.75, 'educ <= 15.5\\nmse = 345.027\\nsamples = 340\\nvalue = 72.606'),\n", + " Text(523.125, 113.25, 'mse = 369.301\\nsamples = 247\\nvalue = 71.105'),\n", + " Text(639.375, 113.25, 'mse = 258.693\\nsamples = 93\\nvalue = 76.591'),\n", + " Text(813.75, 339.75, 'female <= 0.5\\nmse = 330.649\\nsamples = 200\\nvalue = 78.275'),\n", + " Text(755.625, 113.25, 'mse = 399.015\\nsamples = 79\\nvalue = 75.19'),\n", + " Text(871.875, 113.25, 'mse = 275.743\\nsamples = 121\\nvalue = 80.289')]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(nrows = 1,ncols = 1,figsize = (4,4), dpi=300)\n", + "tree.plot_tree(biden_tree, \n", + " feature_names=X_var_names, ax=axes, \n", + " filled = True)\n" + ] + }, + { + "cell_type": "markdown", + "id": "8bdcbd51", + "metadata": {}, + "source": [ + "### 2.3 Interpret the tree\n", + "- **Group1**: there are 235 male respondents who are neither Democrat nor Republican in this group. The mean value of feelings of warmth towards Biden is 56.489\n", + "- **Group2**: there are 233 female respondents who are neither Democrat nor Republican in this group. The mean value of feelings of warmth towards Biden is 61.266\n", + "- **Group3**: there are 123 male respondents who are not Democrat but Republican in this group. The mean value of feelings of warmth towards Biden is 38.333. The value is lowest in this group. i.e. Respondents in this group feel extremely cold for Biden\n", + "- **Group4**: there are 133 female respondents who are not Democrat but Republican in this group. The mean value of feelings of warmth towards Biden is 44.887\n", + "- **Group5**: there are 247 people in this group. They are Democrat, younger than 54.5 years old, and receive less than 15.5 years of formal education. The mean value of feelings of warmth towards Biden is 71.105\n", + "- **Group6**: there are 93 people in this group. They are Democrat, younger than 54.5 years old, and receive more than 15.5 years of formal education. The mean value of feelings of warmth towards Biden is 76.591\n", + "- **Group7**: there are 79 people in this group. They are male, Democrat, older than 54.5 years old. The mean value of feelings of warmth towards Biden is 75.19\n", + "- **Group8**: there are 121 people in this group. They are female, Democrat, older than 54.5 years old. The mean value of feelings of warmth towards Biden is 80.289. Therefore, in this sample, people with those characteristics support Biden the most.\n" + ] + }, + { + "cell_type": "markdown", + "id": "7d695dad", + "metadata": {}, + "source": [ + "### 2.4 MSE" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "fe769fb8", + "metadata": {}, + "outputs": [], + "source": [ + "# use test data to calculate the predicted y\n", + "y_predict = biden_tree.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "63a70ebd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The SSE of a tree of depth 3 and 8 leaves = 396.1937146321307\n" + ] + } + ], + "source": [ + "MSE = mean_squared_error(y_test, y_predict)\n", + "print('The SSE of a tree of depth ', biden_tree.get_depth(), ' and ',\n", + " biden_tree.get_n_leaves(), ' leaves = ', MSE)" + ] + }, + { + "cell_type": "markdown", + "id": "20d49474", + "metadata": {}, + "source": [ + "## 3. Optimal Tuning Parametes" + ] + }, + { + "cell_type": "markdown", + "id": "e09f91d6", + "metadata": {}, + "source": [ + "### 3.1 Set parameter distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "ca15d21f", + "metadata": {}, + "outputs": [], + "source": [ + "param_dist = {\"max_depth\": [3, 10], \n", + " \"min_samples_split\": sp_randint(2, 20),\n", + " \"min_samples_leaf\": sp_randint(2, 20)}\n" + ] + }, + { + "cell_type": "markdown", + "id": "83d54b6b", + "metadata": {}, + "source": [ + "### 3.2 Fit the model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9df2987d", + "metadata": {}, + "outputs": [], + "source": [ + "clf = RandomizedSearchCV(estimator=dtr, \n", + " param_distributions=param_dist, \n", + " n_iter=100, n_jobs=-1, cv=5, #k = 5 k-fold cross validation\n", + " random_state=25, \n", + " scoring='neg_mean_squared_error')\n", + "search = clf.fit(X,y)" + ] + }, + { + "cell_type": "markdown", + "id": "15502a7c", + "metadata": {}, + "source": [ + "### 3.3 Find the optimal parameters and MSE for the optimal result" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "ecfca008", + "metadata": {}, + "outputs": [], + "source": [ + "optimal_tuning_params = search.best_params_\n", + "MSE_optimalRes = -search.best_score_\n" + ] + }, + { + "cell_type": "markdown", + "id": "90e229b4", + "metadata": {}, + "source": [ + "### 3.4 Report the result" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "dda41a20", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The optimal maximum depth for this model is 3\n", + "The optimal mininum samples split for this model is 14\n", + "The optimal mininum samples leaf for this model is 17\n", + "The MSE of the optimal results is 401.713307249986\n" + ] + } + ], + "source": [ + "# Report the optimal tuning parameter values\n", + "print(\"The optimal maximum depth for this model is %s\" % optimal_tuning_params.get('max_depth'))\n", + "print(\"The optimal mininum samples split for this model is %s\" % optimal_tuning_params.get('min_samples_split'))\n", + "print(\"The optimal mininum samples leaf for this model is %s\" % optimal_tuning_params.get('min_samples_leaf'))\n", + "\n", + "# Report the MSE of the optimal results \n", + "print(\"The MSE of the optimal results is %s\" % MSE_optimalRes)" + ] + }, + { + "cell_type": "markdown", + "id": "7e765795", + "metadata": {}, + "source": [ + "## 4. Random Forest" + ] + }, + { + "cell_type": "markdown", + "id": "88b55b87", + "metadata": {}, + "source": [ + "### 4.1 Set parameter distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "60d375ec", + "metadata": {}, + "outputs": [], + "source": [ + "param_dist_rf = {\"n_estimators\": [10, 200], \n", + " \"max_depth\": [3, 10],\n", + " \"min_samples_split\": sp_randint(2, 20), \n", + " \"min_samples_leaf\": sp_randint(2, 20),\n", + " \"max_features\": sp_randint(1, 5)}" + ] + }, + { + "cell_type": "markdown", + "id": "31a14a6b", + "metadata": {}, + "source": [ + "### 4.2 Fit the model" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "790b6a71", + "metadata": {}, + "outputs": [], + "source": [ + "rf = RandomForestRegressor()\n", + "clf_randamForest = RandomizedSearchCV(estimator=rf, \n", + " param_distributions=param_dist_rf, \n", + " n_iter=100, n_jobs=-1, cv=5, #k = 5 k-fold cross validation\n", + " random_state=25, \n", + " scoring='neg_mean_squared_error')\n", + "search_rf = clf_randamForest.fit(X,y)" + ] + }, + { + "cell_type": "markdown", + "id": "d934f129", + "metadata": {}, + "source": [ + "### 3.3 Find the optimal parameters and MSE for the optimal result" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "40acbce7", + "metadata": {}, + "outputs": [], + "source": [ + "optimal_tuning_params_rf = search_rf.best_params_\n", + "MSE_optimalRes_rf = -search_rf.best_score_" + ] + }, + { + "cell_type": "markdown", + "id": "88da2513", + "metadata": {}, + "source": [ + "### 3.4 Report the result" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "5ee86c61", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The optimal number of estimators for this model is 200\n", + "The optimal maximum depth for this model is 3\n", + "The optimal mininum samples split for this model is 4\n", + "The optimal mininum samples leaf for this model is 19\n", + "The optimal maximum features for this model is 3\n", + "The MSE of the optimal results is 397.05747445504363\n" + ] + } + ], + "source": [ + "# Report the optimal tuning parameter values\n", + "print(\"The optimal number of estimators for this model is %s\" % optimal_tuning_params_rf.get('n_estimators'))\n", + "print(\"The optimal maximum depth for this model is %s\" % optimal_tuning_params_rf.get('max_depth'))\n", + "print(\"The optimal mininum samples split for this model is %s\" % optimal_tuning_params_rf.get('min_samples_split'))\n", + "print(\"The optimal mininum samples leaf for this model is %s\" % optimal_tuning_params_rf.get('min_samples_leaf'))\n", + "print(\"The optimal maximum features for this model is %s\" % optimal_tuning_params_rf.get('max_features'))\n", + "\n", + "# Report the MSE of the optimal results \n", + "print(\"The MSE of the optimal results is %s\" % MSE_optimalRes_rf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8907fc4b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ProblemSet8/ProblemSet8_Yu.pdf b/ProblemSet8/ProblemSet8_Yu.pdf new file mode 100644 index 0000000..a3e65c5 Binary files /dev/null and b/ProblemSet8/ProblemSet8_Yu.pdf differ diff --git a/ProblemSet8/execute.py b/ProblemSet8/execute.py new file mode 100644 index 0000000..50f38a5 --- /dev/null +++ b/ProblemSet8/execute.py @@ -0,0 +1,124 @@ +import numpy as np + +from functions import bellman_operator +from functions import profit +import matplotlib.pyplot as plt + +# set the parameter +beta = 0.6 +inv = 0.15 +R = 0.1 + +''' +------------------------------------------------------------------------ +Create Grid for State Space +------------------------------------------------------------------------ +lb_w = scalar, lower bound of cake grid +ub_w = scalar, upper bound of cake grid +size_w = integer, number of grid points in cake state space +w_grid = vector, size_w x 1 vector of cake grid points +------------------------------------------------------------------------ +''' +lb_w = 2 +ub_w = 100 +size_w = 200 # Number of grid points +w_grid = np.linspace(lb_w, ub_w, size_w) + + +''' +------------------------------------------------------------------------ +Value Function Iteration +------------------------------------------------------------------------ +VFtol = scalar, tolerance required for value function to converge +VFdist = scalar, distance between last two value functions +VFmaxiter = integer, maximum number of iterations for value function +V = vector, the value functions at each iteration +Vmat = matrix, the value for each possible combination of w and w' +Vstore = matrix, stores V at each iteration +VFiter = integer, current iteration number +V_params = tuple, contains parameters to pass into Belman operator: beta, sigma +TV = vector, the value function after applying the Bellman operator +PF = vector, indicies of choices of w' for all w +VF = vector, the "true" value function +------------------------------------------------------------------------ +''' + +VFtol = 1e-5 +VFdist = 7.0 +VFmaxiter = 5000 +V = np.zeros(size_w) #true_VF # initial guess at value function +Vstore = np.zeros((size_w, VFmaxiter)) #initialize Vstore array +VFiter = 1 +V_params = (beta, inv, R) + +while VFdist > VFtol and VFiter < VFmaxiter: + Vstore[:, VFiter] = V + TV, optW = bellman_operator(V, w_grid, V_params) + VFdist = (np.absolute(V - TV)).max() # check distance + + V = TV + VFiter += 1 + +VF = V + +# Plot value function +plt.figure() +plt.plot(w_grid[1:], VF[1:]) +plt.xlabel('Amount of Oil') +plt.ylabel('Value Function') +plt.title('Value Function - deterministic oil sales') +plt.show() + +# Plot value function at several iterations +plt.figure() +fig, ax = plt.subplots() +ax.plot(w_grid, Vstore[:,0], label='1st iter') +ax.plot(w_grid, Vstore[:,2], label='2nd iter') +ax.plot(w_grid, Vstore[:,3], label='3rd iter') +ax.plot(w_grid, Vstore[:,5], label='5th iter') +ax.plot(w_grid, Vstore[:,10], label='10th iter') +ax.plot(w_grid, Vstore[:,VFiter-1], 'k', label='Last iter') +# Now add the legend with some customizations. +legend = ax.legend(loc='lower right', shadow=False) +# Set the fontsize +for label in legend.get_texts(): + label.set_fontsize('large') +for label in legend.get_lines(): + label.set_linewidth(1.5) # the legend line width +plt.xlabel('Amount of Oil') +plt.ylabel('Value Function') +plt.title('Value Function - deterministic oil sales') +plt.show() + +#Plot optimal consumption rule as a function of cake size +plt.figure() +fig, ax = plt.subplots() +ax.plot(w_grid[1:], optS[1:], label='Sales') +# Now add the legend with some customizations. +legend = ax.legend(loc='upper left', shadow=False) +# Set the fontsize +for label in legend.get_texts(): + label.set_fontsize('large') +for label in legend.get_lines(): + label.set_linewidth(1.5) # the legend line width +plt.xlabel('Amount of Oil') +plt.ylabel('Optimal Sales') +plt.title('Policy Function, sales - deterministic oil sales') +plt.show() + +#Plot cake to leave rule as a function of cake size +plt.figure() +fig, ax = plt.subplots() +ax.plot(w_grid[1:], optW[1:], label='Storage') +ax.plot(w_grid[1:], w_grid[1:], '--', label='45 degree line') +# Now add the legend with some customizations. +legend = ax.legend(loc='upper left', shadow=False) +# Set the fontsize +for label in legend.get_texts(): + label.set_fontsize('large') +for label in legend.get_lines(): + label.set_linewidth(1.5) # the legend line width +plt.xlabel('Amount of Oil') +plt.ylabel('Optimal Storage') +plt.title('Policy Function, storage - deterministic oil sales') +plt.show() \ No newline at end of file diff --git a/ProblemSet8/functions.py b/ProblemSet8/functions.py new file mode 100644 index 0000000..cfe10ad --- /dev/null +++ b/ProblemSet8/functions.py @@ -0,0 +1,42 @@ +# Import packages +import numpy as np + +from scipy import interpolate +from scipy.optimize import fminbound + +def profit(w, wprime, inv, R): + + ''' + w: amount of oil in current period + wprime: amount of oil saved for next period + price: price of oil + i: return rate + q: amount of newly produced oil + ''' + + S = w - wprime/(R+1) + price = 100/np.exp(S) + Pi = S * price + inv * wprime + + return Pi + + + +def bellman_operator(V, w_grid, params): + beta, inv, R = params + + # Apply cubic interpolation to V + V_func = interpolate.interp1d(w_grid, V, kind='cubic', fill_value='extrapolate') + + # Initialize array for operator and policy function + TV = np.empty_like(V) + optW = np.empty_like(TV) + + for i, w in enumerate(w_grid): + + def objective(wprime): + return - profit(w, wprime, inv, R) - beta * V_func(wprime) + wprime_star = fminbound(objective, 1e-6, w - 1e-6) + optW[i] = wprime_star + TV[i] = - objective(wprime_star) + return TV, optW diff --git a/ProblemSet9/ProblemSet9_Yu.pdf b/ProblemSet9/ProblemSet9_Yu.pdf new file mode 100644 index 0000000..675c4db Binary files /dev/null and b/ProblemSet9/ProblemSet9_Yu.pdf differ diff --git a/ProblemSet9/SS.py b/ProblemSet9/SS.py new file mode 100644 index 0000000..08f6f60 --- /dev/null +++ b/ProblemSet9/SS.py @@ -0,0 +1,40 @@ +import necessary_equations as ne +import scipy.optimize as opt + + +def SS_solver(r_guess, bn_guess, alpha, delta, A, sigma, chi, l, v, b, beta): + ''' + Solves for the SS of the economy + ''' + xi = 0.2 + tol = 1e-8 + max_iter = 500 + dist = 7 + iter = 0 + r = r_guess + bn = bn_guess + + while (dist > tol) & (iter < max_iter): + w = ne.get_w(r, (alpha, delta, A)) + + sol = opt.root( + ne.euler_equation, bn, + args=(r, w, (sigma, chi, l, v, b, beta))) + + bn = sol.x + euler_errors = sol.fun + + b_s = bn[:S_set-1] + n_s = bn[-S_set:] + + K = ne.get_K(b_s) + L = ne.get_L(n_s) + r_prime = ne.get_r(K, L, (alpha, delta, A)) + dist = (r - r_prime) ** 2 + iter += 1 + r = xi * r_prime + (1 - xi) * r + + + success = iter < max_iter + + return r, bn, success, euler_errors diff --git a/ProblemSet9/execute.py b/ProblemSet9/execute.py new file mode 100644 index 0000000..189a71d --- /dev/null +++ b/ProblemSet9/execute.py @@ -0,0 +1,51 @@ +import matplotlib.pyplot as plt +from matplotlib import style +style.use('ggplot') + +# Set parameters +alpha = 0.3 +delta = 0.1 +A = 1.0 +sigma = 1.5 +beta = 0.8 +b = 0.501 +v = 1.554 +l = 1 +# assume that this person will live for 50 years +S_set = 50 +chi = np.ones(S_set) + +# Make initial guesses +r_guess = 0.1 +b_guess = [0.01]*(S_set-1) +n_guess = [0.2]*S_set +bn_guess = b_guess + n_guess + +r, bn, success, euler_errors = SS.SS_solver(r_guess, bn_guess,alpha, delta, A, + sigma, chi, l, v, b, beta) + +C_s = (1 + r) *np.array(b_s) + w * np.array(bn_guess[-S_set:]) - np.array(b_sp1) + +# plot savings +plt.figure() +plt.plot(range(S_set+1), B_s) +plt.xlabel('Age s') +plt.ylabel('Savings b') +plt.title('Steady-state distribution of saving b') +plt.show() + +# plot labor supply +plt.figure() +plt.plot(range(S_set+1), N_s) +plt.xlabel('Age s') +plt.ylabel('Labor Supply') +plt.title('Steady-state distribution of labor supply n') +plt.show() + +# plot consumption +plt. figure() +plt.plot(range(S_set), C_s) +plt.xlabel('Age s') +plt.ylabel('Unit of Comsumption') +plt.title('Steady-state distribution of consumption c') +plt.show() diff --git a/ProblemSet9/necessary_equations.py b/ProblemSet9/necessary_equations.py new file mode 100644 index 0000000..40212bd --- /dev/null +++ b/ProblemSet9/necessary_equations.py @@ -0,0 +1,66 @@ +import numpy as np + +def get_L(n): + ''' + Function to compute aggregate + labor supplied + ''' + L = n.sum() + return L + + +def get_K(b): + ''' + Function to compute aggregate + capital supplied + ''' + K = b.sum() + return K + +def get_r(K, L, params): + ''' + Compute the interest rate from + the firm's FOC + ''' + alpha, delta, A = params + + r = alpha * A * (L / K) ** (1 - alpha) - delta + return r + + +def get_w(r, params): + ''' + Solve for the w that is consistent + with r from the firm's FOC + ''' + alpha, delta, A = params + w = (1 - alpha) * A * ((alpha * A) / (r + delta)) ** (alpha / (1 - alpha)) + return w + + +def euler_equation(bn_guess, w, r, params): + sigma, chi, l, v, b, beta = params + + length = len(bn_guess) + S_set = int((length + 1)/2) + + # assume the individuals are born with no savings and save no income in the last period + b_s = [0] + list(bn_guess[:S_set-1]) + [0] + + # assume the labor supply of final period is 0 + n_s = list(bn_guess[-S_set:]) + [0] + + euler_error = np.zeros(2*S_set-1) + + for i in range(S_set): + c = (1 + r) * b_s[i] + w * n_s[i] - b_s[i+1] + g_n = 1-(n_s[i])**v + euler_error[i] = w*(c**-sigma) - chi[i] * (b/l) * (n_s[i]/l)**(v-1) * g_n**((1-v)/v) + + for j in range(S_set-1): + c_s = (1 + r) * b_s[j] + w * n_s[j] - b_s[j+1] + c_sp1 = (1 + r) * b_s[j+1] + w * n_s[j+1] - b_s[j+2] + + euler_error[S_set+j] = c_s**-sigma - beta * (1+r) * c_sp1**-sigma + + return euler_error diff --git a/calculator.py b/calculator.py new file mode 100644 index 0000000..0071957 --- /dev/null +++ b/calculator.py @@ -0,0 +1,23 @@ +from math import sqrt + +def sum_two(a,b): + ''' + Arg: + a,b: two int + + Returns: + c: int that equals to the sum of two arguments + ''' + c = a + b + return c + +def pdt_two(e,f): + ''' + Arg: + e,f: two int + + Returns: + g: int that equals to the sum of two arguments + ''' + g = e * f + return g \ No newline at end of file