{ "cells": [ { "cell_type": "code", "execution_count": 62, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "path_data = '../../data/'\n", "\n", "import numpy as np\n", "import pandas as pd\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Applying a Function to a Column\n", "\n", "We have seen many examples of creating new columns of tables by applying functions to existing columns or to other arrays. All of those functions took arrays as their arguments. But frequently we will want to convert the entries in a column by a function that doesn't take an array as its argument. For example, it might take just one number as its argument, as in the function `cut_off_at_100` defined below." ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "def cut_off_at_100(x):\n", " \"\"\"The smaller of x and 100\"\"\"\n", " return min(x, 100)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "17" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cut_off_at_100(17)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "100" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cut_off_at_100(117)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "100" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cut_off_at_100(100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `cut_off_at_100` simply returns its argument if the argument is less than or equal to 100. But if the argument is greater than 100, it returns 100.\n", "\n", "In our earlier examples using Census data, we saw that the variable `AGE` had a value 100 that meant \"100 years old or older\". Cutting off ages at 100 in this manner is exactly what `cut_off_at_100` does.\n", "\n", "To use this function on many ages at once, we will have to be able to *refer* to the function itself, without actually calling it. Analogously, we might show a cake recipe to a chef and ask her to use it to bake 6 cakes. In that scenario, we are not using the recipe to bake any cakes ourselves; our role is merely to refer the chef to the recipe. Similarly, we can ask a table to call `cut_off_at_100` on 6 different numbers in a column." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we create the table `ages` with a column for people and one for their ages. For example, person `C` is 52 years old." ] }, { "cell_type": "code", "execution_count": 67, "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", "
Age
Person
A17
B117
C52
D100
E6
F101
\n", "
" ], "text/plain": [ " Age\n", "Person \n", "A 17\n", "B 117\n", "C 52\n", "D 100\n", "E 6\n", "F 101" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ages = pd.DataFrame(\n", " {'Person':np.array(['A', 'B', 'C', 'D', 'E', 'F']),\n", " 'Age':np.array([17, 117, 52, 100, 6, 101])}\n", ")\n", "ages = ages.set_index('Person')\n", "ages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `map` \n", "\n", "To cut off each of the ages at 100, we will use the a new table method. The [`map`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html) method calls a function on each element of a column, forming a new array of return values. To indicate which function to call, just name it (without quotation marks or parentheses). \n", "\n", "Pandas [map](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html)" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Person\n", "A 17\n", "B 100\n", "C 52\n", "D 100\n", "E 6\n", "F 100\n", "Name: Age, dtype: int64" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ages['Age'].map(cut_off_at_100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What we have done here is `map` the function `cut_off_at_100` to each value in the `Age` column of the table `ages`. The output is the array of corresponding return values of the function. For example, 17 stayed 17, 117 became 100, 52 stayed 52, and so on.\n", "\n", "This array, which has the same length as the original `Age` column of the `ages` table, can be used as the values in a new column called `Cut Off Age` alongside the existing `Person` (which has been set as index) and `Age` columns." ] }, { "cell_type": "code", "execution_count": 69, "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", "
AgeCut Off Age
Person
A1717
B117100
C5252
D100100
E66
F101100
\n", "
" ], "text/plain": [ " Age Cut Off Age\n", "Person \n", "A 17 17\n", "B 117 100\n", "C 52 52\n", "D 100 100\n", "E 6 6\n", "F 101 100" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ages['Cut Off Age'] = ages['Age'].map(cut_off_at_100)\n", "ages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Functions as Values\n", "We've seen that Python has many kinds of values. For example, `6` is a number value, `\"cake\"` is a text value, `pd.DataFrame({ : })` is an empty table, and `ages` is a name for a table value (since we defined it above).\n", "\n", "In Python, every function, including `cut_off_at_100`, is also a value. It helps to think about recipes again. A recipe for cake is a real thing, distinct from cakes or ingredients, and you can give it a name like \"Ani's cake recipe.\" When we defined `cut_off_at_100` with a `def` statement, we actually did two separate things: we created a function that cuts off numbers at 100, and we gave it the name `cut_off_at_100`.\n", "\n", "We can refer to any function by writing its name, without the parentheses or arguments necessary to actually call it. We did this when we called `apply` above. When we write a function's name by itself as the last line in a cell, Python produces a text representation of the function, just like it would print out a number or a string value." ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cut_off_at_100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that we did not write `\"cut_off_at_100\"` with quotes (which is just a piece of text), or `cut_off_at_100()` (which is a function call, and an invalid one at that). We simply wrote `cut_off_at_100` to refer to the function.\n", "\n", "Just like we can define new names for other values, we can define new names for functions. For example, suppose we want to refer to our function as `cut_off` instead of `cut_off_at_100`. We can just write this:" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "cut_off = cut_off_at_100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now `cut_off` is a name for a function. It's the same function as `cut_off_at_100`, so the printed value is exactly the same." ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cut_off" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us see another application of `map`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Prediction\n", "Data Science is often used to make predictions about the future. If we are trying to predict an outcome for a particular individual – for example, how they will respond to a treatment, or whether they will buy a product – it is natural to base the prediction on the outcomes of other similar individuals.\n", "\n", "Charles Darwin's cousin [Sir Francis Galton](https://en.wikipedia.org/wiki/Francis_Galton) was a pioneer in using this idea to make predictions based on numerical data. He studied how physical characteristics are passed down from one generation to the next.\n", "\n", "The data below are Galton's carefully collected measurements on the heights of parents and their adult children. Each row corresponds to one adult child. The variables are a numerical code for the family, the heights (in inches) of the father and mother, a \"midparent height\" which is a weighted average [[1]](#footnotes) of the height of the two parents, the number of children in the family, as well as the child's birth rank (1 = oldest), gender, and height." ] }, { "cell_type": "code", "execution_count": 73, "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", "
familyfathermothermidparentHeightchildrenchildNumgenderchildHeight
0178.567.075.4341male73.2
1178.567.075.4342female69.2
2178.567.075.4343female69.0
3178.567.075.4344female69.0
4275.566.573.6641male73.5
...........................
92920362.066.066.6431male64.0
93020362.066.066.6432female62.0
93120362.066.066.6433female61.0
93220462.563.065.2721male66.5
93320462.563.065.2722female57.0
\n", "

934 rows × 8 columns

\n", "
" ], "text/plain": [ " family father mother midparentHeight children childNum gender \\\n", "0 1 78.5 67.0 75.43 4 1 male \n", "1 1 78.5 67.0 75.43 4 2 female \n", "2 1 78.5 67.0 75.43 4 3 female \n", "3 1 78.5 67.0 75.43 4 4 female \n", "4 2 75.5 66.5 73.66 4 1 male \n", ".. ... ... ... ... ... ... ... \n", "929 203 62.0 66.0 66.64 3 1 male \n", "930 203 62.0 66.0 66.64 3 2 female \n", "931 203 62.0 66.0 66.64 3 3 female \n", "932 204 62.5 63.0 65.27 2 1 male \n", "933 204 62.5 63.0 65.27 2 2 female \n", "\n", " childHeight \n", "0 73.2 \n", "1 69.2 \n", "2 69.0 \n", "3 69.0 \n", "4 73.5 \n", ".. ... \n", "929 64.0 \n", "930 62.0 \n", "931 61.0 \n", "932 66.5 \n", "933 57.0 \n", "\n", "[934 rows x 8 columns]" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "galton = pd.read_csv(path_data + 'galton.csv')\n", "\n", "galton" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A primary reason for collecting the data was to be able to predict the adult height of a child born to parents similar to those in the dataset. Let us try to do this, using midparent height as the variable on which to base our prediction. Thus midparent height is our *predictor* variable.\n", "\n", "The table `heights` consists of just the midparent heights and child's heights. The scatter plot of the two variables shows a positive association, as we would expect for these variables." ] }, { "cell_type": "code", "execution_count": 74, "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", "
MidParentChild
075.4373.2
175.4369.2
275.4369.0
375.4369.0
473.6673.5
.........
92966.6464.0
93066.6462.0
93166.6461.0
93265.2766.5
93365.2757.0
\n", "

934 rows × 2 columns

\n", "
" ], "text/plain": [ " MidParent Child\n", "0 75.43 73.2\n", "1 75.43 69.2\n", "2 75.43 69.0\n", "3 75.43 69.0\n", "4 73.66 73.5\n", ".. ... ...\n", "929 66.64 64.0\n", "930 66.64 62.0\n", "931 66.64 61.0\n", "932 65.27 66.5\n", "933 65.27 57.0\n", "\n", "[934 rows x 2 columns]" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "heights = galton[['midparentHeight', 'childHeight']]\n", "heights = heights.rename(columns={'midparentHeight':'MidParent', 'childHeight':'Child'})\n", "heights" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "image/png": "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AuPLL79ERUUFJk2ahH379inmb2xsxB133IGKigqUlpaisLAQ7733HmbMmKFZhv/85z8AgJycHNTX12P58uUYP348fvrTn6KhoQFr1qzB3XffjbVr1+Lmm28W5N21axc2btyI0tJSuN1u9OrVCw0NDRgzZgyqqqrws5/9DJdffjn27duHv/zlL/j+++/x5ptvCsr44osv8MEHH2DatGm45557sGLFCpSVlaFv377o3bs3hgwZgtLSUixbtgy/+tWv0KtXLwDAwIEDNbeRIIxCgxhBqHDXXXdhzpw58Hg8cLlcWL16NXr06BHav0uJ119/HQcPHsTSpUsxZcoUAME9ocaMGSOb59y5c7DZbCGd2GuvvQa3240f/OAHsNvt+Pe//w273R5Kf//992Po0KH485//HDaIHTx4EFu3bhXsiPzcc8+hvLwcn376qWCT0SuvvBJz5szBZ599hsGDB4fOf/fdd9i5c2co7bhx43DNNdfgjTfewBNPPIHu3btj0KBBWLZsGUaMGIGhQ4eq9gtBRAtaTiQIFe644w4wDIONGzfC5/Nhw4YNuOuuuzTl/fjjj5GXlydIb7Vacf/998vmGTRoEHr06IHi4mLMnj0b/fr1w9q1a5Geng6r1RoawJqbm3Hu3DnU19djyJAh+Ne//hVW1sCBAwUDGAC88847GDhwIHJzc3HmzJnQ34gRIwAgzBpz6NChgsGuU6dOKCoqQmVlpaY+IIhYQjMxglChQ4cOGDVqFN5++2107twZtbW1mgexo0eP4vLLLw/bbbpnz56yef7617/C5XIhPT0dXbt2RUFBgeD3FStW4H//939x8OBBsGzrTkpSlovdu3cPO3f48GF8++236NGjh2T9p0+fFhxL7Qbucrlw7tw52TYQRLygQYwgNHDXXXeFtn8vKSmRHQDEsCwrObjwBx8xP/jBD+B2uyV/W7t2LX75y1/i1ltvxaxZs5CXlwebzYZVq1ZhzZo1YemldjgOBAIYNmwY/vu//1uyjs6dOwuOxQOwljYQRLygQYwgNDB69GhkZWVh586deOqppzTn69atG/bt2we/3y8YDA4fPmxIjvXr16N79+548803w3bx1srll18Or9cbWj6MBonqv0a0fUgnRhAasNvteO655/Cb3/wGd955p+Z8o0aNQm1trWCW5Pf78dJLLxmSgxsI+bOgyspKvP/++5rLmDBhAr7++mtJs/yGhgZ4vV7dcqWnpwMAPB6P7rwEEQk0EyMIjegZvDjuvfdevPrqq3jooYewd+9edO/eHe+++64uPzE+t956K9577z385Cc/wa233ooTJ07g1VdfRY8ePfDtt99qKuOhhx7Cpk2bcM8992DSpEkoKSlBU1MTDh06hHfeeQdr1qzRHUqrX79+sFgs+NOf/oTz588jLS0NJSUlkjo5gogmNIgRRAxJS0vDxo0b8dvf/havv/46UlJSMGbMGMyYMQM33nij7vL+3//7fzh9+jReffVVfPrpp7jiiivwhz/8ARUVFZoHsbS0NLz77rt4/vnnsX79eqxbtw4ZGRno3r07Zs6ciaKiIt1yFRQUYPHixVi8eDFmzZoFv9+PJUuW0CBGxBzG4/GQdpYgCIJISkgnRhAEQSQtNIgRBEEQSQsNYgRBEETSQoMYQRAEkbTQIEYQBEEkLTSIEQRBEEkLDWIEQRBE0kKDGEEQBJG00CBGEARBJC00iBEEQRBJy/8HD3+TUdJgtmIAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "heights.plot.scatter('MidParent', 'Child')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now suppose Galton encountered a new couple, similar to those in his dataset, and wondered how tall their child would be. What would be a good way for him to go about predicting the child's height, given that the midparent height was, say, 68 inches?\n", "\n", "One reasonable approach would be to base the prediction on all the points that correspond to a midparent height of around 68 inches. The prediction equals the average child's height calculated from those points alone.\n", "\n", "Let's pretend we are Galton and execute this plan. For now we will just make a reasonable definition of what \"around 68 inches\" means, and work with that. Later in the course we will examine the consequences of such choices.\n", "\n", "We will take \"close\" to mean \"within half an inch\". The figure below shows all the points corresponding to a midparent height between 67.5 inches and 68.5 inches. These are all the points in the strip between the red lines. Each of these points corresponds to one child; our prediction of the height of the new couple's child is the average height of all the children in the strip. That's represented by the gold dot.\n", "\n", "Ignore the code, and just focus on understanding the mental process of arriving at that gold dot." ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "heights.plot.scatter('MidParent','Child')\n", "_ = plt.plot([67.5, 67.5], [50, 85], color='red', lw=2)\n", "_ = plt.plot([68.5, 68.5], [50, 85], color='red', lw=2)\n", "_ = plt.scatter(68, 66.24, color='gold', s=40)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to calculate exactly where the gold dot should be, we first need to indentify all the points in the strip. These correspond to the rows where `MidParent` is between 67.5 inches and 68.5 inches." ] }, { "cell_type": "code", "execution_count": 77, "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", "
MidParentChild
23368.4462.0
39667.9471.2
39767.9467.0
51668.3362.5
51768.2373.0
.........
88567.6069.0
88667.6068.0
88767.6067.7
88867.6064.5
88967.6060.5
\n", "

131 rows × 2 columns

\n", "
" ], "text/plain": [ " MidParent Child\n", "233 68.44 62.0\n", "396 67.94 71.2\n", "397 67.94 67.0\n", "516 68.33 62.5\n", "517 68.23 73.0\n", ".. ... ...\n", "885 67.60 69.0\n", "886 67.60 68.0\n", "887 67.60 67.7\n", "888 67.60 64.5\n", "889 67.60 60.5\n", "\n", "[131 rows x 2 columns]" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "close_to_68 = heights[(heights['MidParent'] >= 67.5) & (heights['MidParent'] <= 68.5)]\n", "close_to_68" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The predicted height of a child who has a midparent height of 68 inches is the average height of the children in these rows. That's 66.24 inches." ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "66.24045801526718" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "close_to_68['Child'].mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have a way to predict the height of a child given any value of the midparent height near those in our dataset. We can define a function `predict_child` that does this. The body of the function consists of the code in the two cells above, apart from choices of names." ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "def predict_child(mpht):\n", " \"\"\"Predict the height of a child whose parents have a midparent height of mpht.\n", " \n", " The prediction is the average height of the children whose midparent height is\n", " in the range mpht plus or minus 0.5.\n", " \"\"\"\n", " \n", " close_points = heights[(heights['MidParent'] >= (mpht-0.5)) & (heights['MidParent'] <= (mpht + 0.5))]\n", " return close_points['Child'].mean() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given a midparent height of 68 inches, the function `predict_child` returns the same prediction (66.24 inches) as we got earlier. The advantage of defining the function is that we can easily change the value of the predictor and get a new prediction." ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "66.24045801526718" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_child(68)" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "70.41578947368421" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_child(74)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How good are these predictions? We can get a sense of this by comparing the predictions with the data that we already have. To do this, we first apply the function `predict_child` to the column of `Midparent` heights, and collect the results in a new column called `Prediction`. \n", "\n", "In this instance we have used the `map` function, more generally we will use the `applymap` function." ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "# Apply predict_child to all the midparent heights\n", "heights_with_predictions = heights\n", "\n", "heights_with_predictions['Prediction'] = heights['MidParent'].map(predict_child)" ] }, { "cell_type": "code", "execution_count": 83, "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", "
MidParentChildPrediction
075.4373.270.1000
175.4369.270.1000
275.4369.070.1000
375.4369.070.1000
473.6673.570.4158
............
92966.6464.065.1566
93066.6462.065.1566
93166.6461.065.1566
93265.2766.564.2296
93365.2757.064.2296
\n", "

934 rows × 3 columns

\n", "
" ], "text/plain": [ " MidParent Child Prediction\n", "0 75.43 73.2 70.1000\n", "1 75.43 69.2 70.1000\n", "2 75.43 69.0 70.1000\n", "3 75.43 69.0 70.1000\n", "4 73.66 73.5 70.4158\n", ".. ... ... ...\n", "929 66.64 64.0 65.1566\n", "930 66.64 62.0 65.1566\n", "931 66.64 61.0 65.1566\n", "932 65.27 66.5 64.2296\n", "933 65.27 57.0 64.2296\n", "\n", "[934 rows x 3 columns]" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "heights_with_predictions['Prediction'] = np.round(heights_with_predictions['Prediction'],4)\n", "heights_with_predictions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To see where the predictions lie relative to the observed data, we can draw overlaid scatter plots with `MidParent` as the common horizontal axis." ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = heights_with_predictions.plot.scatter('MidParent', 'Child', label='Child')\n", "\n", "# to plot both sets of data on the same chart we 'share' the axis - ax=ax\n", "\n", "ax1 = heights_with_predictions.plot.scatter('MidParent', 'Prediction', color='gold', label='Prediction', ax=ax)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The graph of gold dots is called a *graph of averages,* because each gold dot is the center of a vertical strip like the one we drew earlier. Each one provides a prediction of a child's height given the midparent height. For example, the scatter shows that for a midparent height of 72 inches, the predicted height of the child would be somewhere between 68 inches and 69 inches, and indeed `predict_child(72)` returns 68.5." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Galton's calculations and visualizations were very similar to ours, except that he didn't have Python. He drew the graph of averages through the scatter diagram and noticed that it roughly followed a straight line. This straight line is now called the *regression line* and is one of the most common methods of making predictions. Galton's friend, the mathematician Karl Pearson, used these analyses to formalize the notion of *correlation*. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This example, like the one about John Snow's analysis of cholera deaths, shows how some of the fundamental concepts of modern data science have roots going back more than a century. Galton's methods such as the one we have used here are precursors to *nearest neighbor* prediction methods that now have powerful applications in diverse settings. The modern field of *machine learning* includes the automation of such methods to make predictions based on vast and rapidly evolving datasets. " ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "\n", "#### Footnotes\n", "[1] Galton multiplied the heights of all the women by 1.08 before taking the average height of the men and the women. For a discussion of this, see [Chance](http://chance.amstat.org/2013/09/1-pagano/), a magazine published by the American Statistical Association." ] } ], "metadata": { "anaconda-cloud": {}, "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.8.5" } }, "nbformat": 4, "nbformat_minor": 1 }