{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [ "remove-input" ] }, "outputs": [], "source": [ "from datascience import *\n", "%matplotlib inline\n", "path_data = '../../../assets/data/'\n", "import matplotlib.pyplot as plots\n", "plots.style.use('fivethirtyeight')\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The Method of Least Squares\n", "We have developed the equation of the regression line that runs through a football shaped scatter plot. But not all scatter plots are football shaped, not even linear ones. Does every scatter plot have a \"best\" line that goes through it? If so, can we still use the formulas for the slope and intercept developed in the previous section, or do we need new ones?\n", "\n", "To address these questions, we need a reasonable definition of \"best\". Recall that the purpose of the line is to *predict* or *estimate* values of $y$, given values of $x$. Estimates typically aren't perfect. Each one is off the true value by an *error*. A reasonable criterion for a line to be the \"best\" is for it to have the smallest possible overall error among all straight lines.\n", "\n", "In this section we will make this criterion precise and see if we can identify the best straight line under the criterion." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [ "remove-input" ] }, "outputs": [], "source": [ "def standard_units(any_numbers):\n", " \"Convert any array of numbers to standard units.\"\n", " return (any_numbers - np.mean(any_numbers))/np.std(any_numbers) \n", "\n", "def correlation(t, x, y):\n", " return np.mean(standard_units(t.column(x))*standard_units(t.column(y)))\n", "\n", "def slope(table, x, y):\n", " r = correlation(table, x, y)\n", " return r * np.std(table.column(y))/np.std(table.column(x))\n", "\n", "def intercept(table, x, y):\n", " a = slope(table, x, y)\n", " return np.mean(table.column(y)) - a * np.mean(table.column(x))\n", "\n", "def fit(table, x, y):\n", " \"\"\"Return the height of the regression line at each x value.\"\"\"\n", " a = slope(table, x, y)\n", " b = intercept(table, x, y)\n", " return a * table.column(x) + b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our first example is a dataset that has one row for every chapter of the novel \"Little Women.\" The goal is to estimate the number of characters (that is, letters, spaces punctuation marks, and so on) based on the number of periods. Recall that we attempted to do this in the very first lecture of this course." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Periods | Characters | \n", "
---|---|
189 | 21759 | \n", "
188 | 22148 | \n", "
231 | 20558 | \n", "
... (44 rows omitted)
" ], "text/plain": [ "Periods | Characters | Linear Prediction | Error | \n", "
---|---|---|---|
189 | 21759 | 21183.6 | 575.403 | \n", "
188 | 22148 | 21096.6 | 1051.38 | \n", "
231 | 20558 | 24836.7 | -4278.67 | \n", "
195 | 25526 | 21705.5 | 3820.54 | \n", "
255 | 23395 | 26924.1 | -3529.13 | \n", "
140 | 14622 | 16921.7 | -2299.68 | \n", "
131 | 14431 | 16138.9 | -1707.88 | \n", "
214 | 22476 | 23358 | -882.043 | \n", "
337 | 33767 | 34056.3 | -289.317 | \n", "
185 | 18508 | 20835.7 | -2327.69 | \n", "
... (37 rows omitted)
" ], "text/plain": [ "Periods | Characters | Linear Prediction | Error\n", "189 | 21759 | 21183.6 | 575.403\n", "188 | 22148 | 21096.6 | 1051.38\n", "231 | 20558 | 24836.7 | -4278.67\n", "195 | 25526 | 21705.5 | 3820.54\n", "255 | 23395 | 26924.1 | -3529.13\n", "140 | 14622 | 16921.7 | -2299.68\n", "131 | 14431 | 16138.9 | -1707.88\n", "214 | 22476 | 23358 | -882.043\n", "337 | 33767 | 34056.3 | -289.317\n", "185 | 18508 | 20835.7 | -2327.69\n", "... (37 rows omitted)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lw_with_predictions.with_column('Error', errors)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use `slope` and `intercept` to calculate the slope and intercept of the fitted line. The graph below shows the line (in light blue). The errors corresponding to four of the points are shown in red. There is nothing special about those four points. They were just chosen for clarity of the display. The function `lw_errors` takes a slope and an intercept (in that order) as its arguments and draws the figure. " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "lw_reg_slope = slope(little_women, 'Periods', 'Characters')\n", "lw_reg_intercept = intercept(little_women, 'Periods', 'Characters')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [ "remove-input" ] }, "outputs": [], "source": [ "\n", "sample = [[131, 14431], [231, 20558], [392, 40935], [157, 23524]]\n", "def lw_errors(slope, intercept):\n", " little_women.scatter('Periods', 'Characters')\n", " xlims = np.array([50, 450])\n", " plots.plot(xlims, slope * xlims + intercept, lw=2)\n", " for x, y in sample:\n", " plots.plot([x, x], [y, slope * x + intercept], color='r', lw=2)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Slope of Regression Line: 87.0 characters per period\n", "Intercept of Regression Line: 4745.0 characters\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "