{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f336841e4da04936af90fac9e5081be3",
   "metadata": {},
   "source": [
    "# Multiple Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "47ded8c94bab4e60a7e74681794b8eda",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:17.581197Z",
     "iopub.status.busy": "2026-08-31T06:02:17.581053Z",
     "iopub.status.idle": "2026-08-31T06:02:17.999549Z",
     "shell.execute_reply": "2026-08-31T06:02:17.999318Z"
    },
    "tags": [
     "hide-input",
     "thebe-init",
     "runnable"
    ]
   },
   "outputs": [],
   "source": [
    "path_data = '../../data/'\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use('fivethirtyeight')\n",
    "%matplotlib inline\n",
    "np.set_printoptions(suppress=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d2da90e6209411a80fae955789bbf4d",
   "metadata": {},
   "source": [
    "In the previous section, we fit a multiple regression with scikit-learn. In this section, we build one from scratch to see how the slopes are found, using a new data set with real home sales. Predicting a numerical quantity is called regression, and a commonly used method to use multiple attributes for regression is called *multiple linear regression*.\n",
    "\n",
    "## Home Prices\n",
    "\n",
    "The following dataset of house prices and attributes was collected over several years for the city of Ames, Iowa. A [description of the dataset appears online](http://ww2.amstat.org/publications/jse/v19n3/decock.pdf). We will focus only a subset of the columns. We will try to predict the sale price column from the other columns."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f704cb2b",
   "metadata": {},
   "source": [
    "```{contents}\n",
    ":local:\n",
    ":depth: 2\n",
    "```\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "96429e230be144cc8da4732e75f9fe7c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.000882Z",
     "iopub.status.busy": "2026-08-31T06:02:18.000778Z",
     "iopub.status.idle": "2026-08-31T06:02:18.002481Z",
     "shell.execute_reply": "2026-08-31T06:02:18.002301Z"
    },
    "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[x])*standard_units(t[y])).item(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "5a7ce4c6daa94c499cf5768a5e428440",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.003456Z",
     "iopub.status.busy": "2026-08-31T06:02:18.003384Z",
     "iopub.status.idle": "2026-08-31T06:02:18.024058Z",
     "shell.execute_reply": "2026-08-31T06:02:18.023857Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Order</th>\n",
       "      <th>PID</th>\n",
       "      <th>MS SubClass</th>\n",
       "      <th>MS Zoning</th>\n",
       "      <th>Lot Frontage</th>\n",
       "      <th>Lot Area</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>Lot Shape</th>\n",
       "      <th>Land Contour</th>\n",
       "      <th>...</th>\n",
       "      <th>Pool Area</th>\n",
       "      <th>Pool QC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>Misc Feature</th>\n",
       "      <th>Misc Val</th>\n",
       "      <th>Mo Sold</th>\n",
       "      <th>Yr Sold</th>\n",
       "      <th>Sale Type</th>\n",
       "      <th>Sale Condition</th>\n",
       "      <th>SalePrice</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>526301100</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>141.0</td>\n",
       "      <td>31770</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>215000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>526350040</td>\n",
       "      <td>20</td>\n",
       "      <td>RH</td>\n",
       "      <td>80.0</td>\n",
       "      <td>11622</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>MnPrv</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>105000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>526351010</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>81.0</td>\n",
       "      <td>14267</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Gar2</td>\n",
       "      <td>12500</td>\n",
       "      <td>6</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>172000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>526353030</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>93.0</td>\n",
       "      <td>11160</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>244000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>527105010</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>74.0</td>\n",
       "      <td>13830</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>MnPrv</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>189900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2925</th>\n",
       "      <td>2926</td>\n",
       "      <td>923275080</td>\n",
       "      <td>80</td>\n",
       "      <td>RL</td>\n",
       "      <td>37.0</td>\n",
       "      <td>7937</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>GdPrv</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>142500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2926</th>\n",
       "      <td>2927</td>\n",
       "      <td>923276100</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8885</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Low</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>MnPrv</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>131000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2927</th>\n",
       "      <td>2928</td>\n",
       "      <td>923400125</td>\n",
       "      <td>85</td>\n",
       "      <td>RL</td>\n",
       "      <td>62.0</td>\n",
       "      <td>10441</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>MnPrv</td>\n",
       "      <td>Shed</td>\n",
       "      <td>700</td>\n",
       "      <td>7</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>132000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2928</th>\n",
       "      <td>2929</td>\n",
       "      <td>924100070</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>77.0</td>\n",
       "      <td>10010</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>170000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2929</th>\n",
       "      <td>2930</td>\n",
       "      <td>924151050</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>74.0</td>\n",
       "      <td>9627</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>11</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>188000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2930 rows × 82 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Order        PID  MS SubClass MS Zoning  Lot Frontage  Lot Area Street  \\\n",
       "0         1  526301100           20        RL         141.0     31770   Pave   \n",
       "1         2  526350040           20        RH          80.0     11622   Pave   \n",
       "2         3  526351010           20        RL          81.0     14267   Pave   \n",
       "3         4  526353030           20        RL          93.0     11160   Pave   \n",
       "4         5  527105010           60        RL          74.0     13830   Pave   \n",
       "...     ...        ...          ...       ...           ...       ...    ...   \n",
       "2925   2926  923275080           80        RL          37.0      7937   Pave   \n",
       "2926   2927  923276100           20        RL           NaN      8885   Pave   \n",
       "2927   2928  923400125           85        RL          62.0     10441   Pave   \n",
       "2928   2929  924100070           20        RL          77.0     10010   Pave   \n",
       "2929   2930  924151050           60        RL          74.0      9627   Pave   \n",
       "\n",
       "     Alley Lot Shape Land Contour  ... Pool Area Pool QC  Fence Misc Feature  \\\n",
       "0      NaN       IR1          Lvl  ...         0     NaN    NaN          NaN   \n",
       "1      NaN       Reg          Lvl  ...         0     NaN  MnPrv          NaN   \n",
       "2      NaN       IR1          Lvl  ...         0     NaN    NaN         Gar2   \n",
       "3      NaN       Reg          Lvl  ...         0     NaN    NaN          NaN   \n",
       "4      NaN       IR1          Lvl  ...         0     NaN  MnPrv          NaN   \n",
       "...    ...       ...          ...  ...       ...     ...    ...          ...   \n",
       "2925   NaN       IR1          Lvl  ...         0     NaN  GdPrv          NaN   \n",
       "2926   NaN       IR1          Low  ...         0     NaN  MnPrv          NaN   \n",
       "2927   NaN       Reg          Lvl  ...         0     NaN  MnPrv         Shed   \n",
       "2928   NaN       Reg          Lvl  ...         0     NaN    NaN          NaN   \n",
       "2929   NaN       Reg          Lvl  ...         0     NaN    NaN          NaN   \n",
       "\n",
       "     Misc Val Mo Sold Yr Sold Sale Type  Sale Condition  SalePrice  \n",
       "0           0       5    2010       WD           Normal     215000  \n",
       "1           0       6    2010       WD           Normal     105000  \n",
       "2       12500       6    2010       WD           Normal     172000  \n",
       "3           0       4    2010       WD           Normal     244000  \n",
       "4           0       3    2010       WD           Normal     189900  \n",
       "...       ...     ...     ...       ...             ...        ...  \n",
       "2925        0       3    2006       WD           Normal     142500  \n",
       "2926        0       6    2006       WD           Normal     131000  \n",
       "2927      700       7    2006       WD           Normal     132000  \n",
       "2928        0       4    2006       WD           Normal     170000  \n",
       "2929        0      11    2006       WD           Normal     188000  \n",
       "\n",
       "[2930 rows x 82 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_sales = pd.read_csv(path_data + 'house.csv')\n",
    "# len(all_sales)\n",
    "all_sales"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a6e1f483bf3846cf9625fab91c5ae9f8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.025106Z",
     "iopub.status.busy": "2026-08-31T06:02:18.025033Z",
     "iopub.status.idle": "2026-08-31T06:02:18.041449Z",
     "shell.execute_reply": "2026-08-31T06:02:18.041251Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Order</th>\n",
       "      <th>PID</th>\n",
       "      <th>MS SubClass</th>\n",
       "      <th>Lot Frontage</th>\n",
       "      <th>Lot Area</th>\n",
       "      <th>Overall Qual</th>\n",
       "      <th>Overall Cond</th>\n",
       "      <th>Year Built</th>\n",
       "      <th>Year Remod/Add</th>\n",
       "      <th>Mas Vnr Area</th>\n",
       "      <th>...</th>\n",
       "      <th>Wood Deck SF</th>\n",
       "      <th>Open Porch SF</th>\n",
       "      <th>Enclosed Porch</th>\n",
       "      <th>3Ssn Porch</th>\n",
       "      <th>Screen Porch</th>\n",
       "      <th>Pool Area</th>\n",
       "      <th>Misc Val</th>\n",
       "      <th>Mo Sold</th>\n",
       "      <th>Yr Sold</th>\n",
       "      <th>SalePrice</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>2930.00000</td>\n",
       "      <td>2.930000e+03</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2440.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2907.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "      <td>2930.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1465.50000</td>\n",
       "      <td>7.144645e+08</td>\n",
       "      <td>57.387372</td>\n",
       "      <td>69.224590</td>\n",
       "      <td>10147.921843</td>\n",
       "      <td>6.094881</td>\n",
       "      <td>5.563140</td>\n",
       "      <td>1971.356314</td>\n",
       "      <td>1984.266553</td>\n",
       "      <td>101.896801</td>\n",
       "      <td>...</td>\n",
       "      <td>93.751877</td>\n",
       "      <td>47.533447</td>\n",
       "      <td>23.011604</td>\n",
       "      <td>2.592491</td>\n",
       "      <td>16.002048</td>\n",
       "      <td>2.243345</td>\n",
       "      <td>50.635154</td>\n",
       "      <td>6.216041</td>\n",
       "      <td>2007.790444</td>\n",
       "      <td>180796.060068</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>845.96247</td>\n",
       "      <td>1.887308e+08</td>\n",
       "      <td>42.638025</td>\n",
       "      <td>23.365335</td>\n",
       "      <td>7880.017759</td>\n",
       "      <td>1.411026</td>\n",
       "      <td>1.111537</td>\n",
       "      <td>30.245361</td>\n",
       "      <td>20.860286</td>\n",
       "      <td>179.112611</td>\n",
       "      <td>...</td>\n",
       "      <td>126.361562</td>\n",
       "      <td>67.483400</td>\n",
       "      <td>64.139059</td>\n",
       "      <td>25.141331</td>\n",
       "      <td>56.087370</td>\n",
       "      <td>35.597181</td>\n",
       "      <td>566.344288</td>\n",
       "      <td>2.714492</td>\n",
       "      <td>1.316613</td>\n",
       "      <td>79886.692357</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.00000</td>\n",
       "      <td>5.263011e+08</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>1300.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1872.000000</td>\n",
       "      <td>1950.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2006.000000</td>\n",
       "      <td>12789.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>733.25000</td>\n",
       "      <td>5.284770e+08</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>58.000000</td>\n",
       "      <td>7440.250000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1954.000000</td>\n",
       "      <td>1965.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>2007.000000</td>\n",
       "      <td>129500.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1465.50000</td>\n",
       "      <td>5.354536e+08</td>\n",
       "      <td>50.000000</td>\n",
       "      <td>68.000000</td>\n",
       "      <td>9436.500000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1973.000000</td>\n",
       "      <td>1993.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>2008.000000</td>\n",
       "      <td>160000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>2197.75000</td>\n",
       "      <td>9.071811e+08</td>\n",
       "      <td>70.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>11555.250000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>2001.000000</td>\n",
       "      <td>2004.000000</td>\n",
       "      <td>164.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>168.000000</td>\n",
       "      <td>70.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>2009.000000</td>\n",
       "      <td>213500.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2930.00000</td>\n",
       "      <td>1.007100e+09</td>\n",
       "      <td>190.000000</td>\n",
       "      <td>313.000000</td>\n",
       "      <td>215245.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>2010.000000</td>\n",
       "      <td>2010.000000</td>\n",
       "      <td>1600.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>1424.000000</td>\n",
       "      <td>742.000000</td>\n",
       "      <td>1012.000000</td>\n",
       "      <td>508.000000</td>\n",
       "      <td>576.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>17000.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>2010.000000</td>\n",
       "      <td>755000.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8 rows × 39 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            Order           PID  MS SubClass  Lot Frontage       Lot Area  \\\n",
       "count  2930.00000  2.930000e+03  2930.000000   2440.000000    2930.000000   \n",
       "mean   1465.50000  7.144645e+08    57.387372     69.224590   10147.921843   \n",
       "std     845.96247  1.887308e+08    42.638025     23.365335    7880.017759   \n",
       "min       1.00000  5.263011e+08    20.000000     21.000000    1300.000000   \n",
       "25%     733.25000  5.284770e+08    20.000000     58.000000    7440.250000   \n",
       "50%    1465.50000  5.354536e+08    50.000000     68.000000    9436.500000   \n",
       "75%    2197.75000  9.071811e+08    70.000000     80.000000   11555.250000   \n",
       "max    2930.00000  1.007100e+09   190.000000    313.000000  215245.000000   \n",
       "\n",
       "       Overall Qual  Overall Cond   Year Built  Year Remod/Add  Mas Vnr Area  \\\n",
       "count   2930.000000   2930.000000  2930.000000     2930.000000   2907.000000   \n",
       "mean       6.094881      5.563140  1971.356314     1984.266553    101.896801   \n",
       "std        1.411026      1.111537    30.245361       20.860286    179.112611   \n",
       "min        1.000000      1.000000  1872.000000     1950.000000      0.000000   \n",
       "25%        5.000000      5.000000  1954.000000     1965.000000      0.000000   \n",
       "50%        6.000000      5.000000  1973.000000     1993.000000      0.000000   \n",
       "75%        7.000000      6.000000  2001.000000     2004.000000    164.000000   \n",
       "max       10.000000      9.000000  2010.000000     2010.000000   1600.000000   \n",
       "\n",
       "       ...  Wood Deck SF  Open Porch SF  Enclosed Porch   3Ssn Porch  \\\n",
       "count  ...   2930.000000    2930.000000     2930.000000  2930.000000   \n",
       "mean   ...     93.751877      47.533447       23.011604     2.592491   \n",
       "std    ...    126.361562      67.483400       64.139059    25.141331   \n",
       "min    ...      0.000000       0.000000        0.000000     0.000000   \n",
       "25%    ...      0.000000       0.000000        0.000000     0.000000   \n",
       "50%    ...      0.000000      27.000000        0.000000     0.000000   \n",
       "75%    ...    168.000000      70.000000        0.000000     0.000000   \n",
       "max    ...   1424.000000     742.000000     1012.000000   508.000000   \n",
       "\n",
       "       Screen Porch    Pool Area      Misc Val      Mo Sold      Yr Sold  \\\n",
       "count   2930.000000  2930.000000   2930.000000  2930.000000  2930.000000   \n",
       "mean      16.002048     2.243345     50.635154     6.216041  2007.790444   \n",
       "std       56.087370    35.597181    566.344288     2.714492     1.316613   \n",
       "min        0.000000     0.000000      0.000000     1.000000  2006.000000   \n",
       "25%        0.000000     0.000000      0.000000     4.000000  2007.000000   \n",
       "50%        0.000000     0.000000      0.000000     6.000000  2008.000000   \n",
       "75%        0.000000     0.000000      0.000000     8.000000  2009.000000   \n",
       "max      576.000000   800.000000  17000.000000    12.000000  2010.000000   \n",
       "\n",
       "           SalePrice  \n",
       "count    2930.000000  \n",
       "mean   180796.060068  \n",
       "std     79886.692357  \n",
       "min     12789.000000  \n",
       "25%    129500.000000  \n",
       "50%    160000.000000  \n",
       "75%    213500.000000  \n",
       "max    755000.000000  \n",
       "\n",
       "[8 rows x 39 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_sales.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "af031d7da04c4150bc086ed3eb7a02ed",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.042429Z",
     "iopub.status.busy": "2026-08-31T06:02:18.042365Z",
     "iopub.status.idle": "2026-08-31T06:02:18.046136Z",
     "shell.execute_reply": "2026-08-31T06:02:18.045969Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2002"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sales1 = all_sales[all_sales['Bldg Type'] == '1Fam']\n",
    "sales2 = sales1[sales1['Sale Condition'] == 'Normal']\n",
    "\n",
    "sales = sales2[['SalePrice', '1st Flr SF', '2nd Flr SF', \n",
    "    'Total Bsmt SF', 'Garage Area', \n",
    "    'Wood Deck SF', 'Open Porch SF', 'Lot Area', \n",
    "    'Year Built', 'Yr Sold']]\n",
    "\n",
    "sales = sales.sort_values(by=['SalePrice'])\n",
    "\n",
    "len(sales)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a9f47c1b996447ce92b23d85f9c6f6aa",
   "metadata": {},
   "source": [
    "A histogram of sale prices shows a large amount of variability and a distribution that is clearly not normal. A long tail to the right contains a few houses that had very high prices. The short left tail does not contain any houses that sold for less than $35,000."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "b8fe561aca524066a38b829dc2d696a3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.047092Z",
     "iopub.status.busy": "2026-08-31T06:02:18.047030Z",
     "iopub.status.idle": "2026-08-31T06:02:18.109354Z",
     "shell.execute_reply": "2026-08-31T06:02:18.109129Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhMAAAGiCAYAAABd3URpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvgI3uAAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAaK1JREFUeJztnQu8pVP9/9ecmTkzg1zGLaopREhE0uXXDZFURCrRP3JN0UVXXYSikkgppahcfiG/Sn6F5NqFKBSKUJhynzGGGGdmzvxf78dvnZ5Zs5599n6ePcc+57zfr9d+nXP2edbe61nPunzWd32/a02YM2fOoiAiIiJSk766CUVEREQUEyIiItIYLRMiIiLSCMWEiIiINEIxISIiIo1QTIiIiEgjFBMiIiLSCMWEiIiIjD8x8eCDD4YHHnig62naueb+++8Pd9xxR0ffLSIiMpYZVWLizjvvDNtss03YaKONwsYbbxy23HLL8Pe//71xmnauufDCC8Muu+xS/H+rrbZaKvcnIiIyGhk1YmLRokVhjz32CCussEJhGeC12mqrhXe+851hcHCwdpp2P/e8884L++67b/j0pz89YvcsIiIyGpgURgnXXnttuP7668Nll10Wpk6dWrzHwP7KV74yXHnlleG//uu/aqVp93NPOOGE4uftt98+gnctIiLS+4waywSDfn9/f3jhC1849N4LXvCCsNxyy4Xrrruudpo6nysiIiKjUEzMmjUrrLTSSku8P3369DB79uzaaep8roiIiIxCMdHX1xfmz5+/xPu8x//qpqnzuSIiIvIfRs1o+YxnPCPMmTMnDAwMDL23YMGCwrLA/+qmqfO5IiIiMgrFBI6QRFdceumlQ+9dfvnlhQgoO18SjfHQQw+1nabdz30qmTdvXhGqys9eStOr+aqTplfzNVJpejVfddL0ar7qpOnVfNVJ06v5qpOmV/NVN824iuZ4znOeE3bbbbfwkY98JEycOLF4ffjDHw5vectbwnrrrTd03ate9apwwAEHhEMOOaStNO1+7r333hsee+yxwo8C8RH3oXjmM59ZOHAubRYuXNiTaXo1X3XS9Gq+RipNr+arTppezVedNL2arzppejVfddL0ar7qphk3YgKOO+64cOyxx4Yjjjii2B+CTaQQAWUQB2WHynbStHPNF77whXDFFVcUv/P5iA0455xzwjrrrLMU71pERKS3GVViYsqUKYXFgVcVccDvJE071xx//PE1cy0iIjK2GTU+EyIiItKbKCZERESkEYoJERERaYRiQkRERBqhmBAREZFGKCZERESkEYoJERERaYRiQkRERBqhmBAREZFGKCZERESkEYoJERERaYRiQkRERBqhmBAREZFGKCZERERk/BxBLqOfR/umhXnTZ4SZC6aGvseH17Ir908IU0ckZyIiUhfFhIwoDw2EsN8l94XJ/f2hb8LwYuLkbdYIz5gwIlkTEZGauMwhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijVBMiIiISCMUEyIiItIIxYSIiIg0QjEhIiIijZgUeohHHnkkXHXVVWHRokXhJS95SVhhhRW6kqZb19x9993hL3/5S3HNBhtsEJ75zGc2uFsREZGxQc+Iid/+9rfhne98Z3j2s58dJk6cGG677bZw6qmnhle/+tWN0nTrmiOPPDJ8/etfDy996UtDX19f+N3vfhf233//cPjhhy/FUhEREel9emKZY/78+cXAvMsuu4TLLrssXHzxxeEd73hH2G+//cK8efNqp+nWNXfccUf48pe/HL71rW+Fn/70p+HHP/5x+O53vxuOP/74cMstt4xgSYmIiPQePSEmsAz885//DO973/uG3uP3++67L1x++eW103TrmoGBgeLnjBkzhq55znOes9j/RERExis9scxx0003hWnTpg0N0PCsZz0rLL/88oWPwute97paabp1zXrrrRc++MEPhve///3h3e9+d5gwYUL4/ve/X4iOF7zgBS3vrcqy0glRsHQiXEYiTZ3vGFw0pfi5aHBRGOwbHP76hYNhYLA372UspenVfNVJ06v5qpOmV/NVJ02v5qtOml7NV900OaZOnTr6xMTcuXPDSiuttMT706dPDw8//HDtNN26BjbZZJPws5/9LJx77rmFzwTpXvjCFw57bzhtLly4MHQDrCW9mKaT6wemP2ndWbBgflvXz3tiXrhv9n09eS9jMU2v5qtOml7NV500vZqvOml6NV910vRqvuqmieA7uPbaa48+MTFlypTw6KOPLvH+v//97+J/ddN065rrr78+7LXXXuHss88O22yzTfHeFVdcEXbYYYfCovHiF7+48t7WXHPN0BQUJhVj9dVXD/39/T2Tps533Dn/yesmTZocJvRNGPb6qVOmFp/fi/cyltL0ar7qpOnVfNVJ06v5qpOmV/NVJ02v5qtumm7QE2JirbXWKmb6WAJiSCaD+ezZsxdbfug0Tbeuwa9i2WWXHRIS8KpXvaqwXvzmN79pKSY6NRW1gorR6eeNRJpOru9b8KSAQEj0TRjeZadvYl/on9Tfk/cyFtP0ar7qpOnVfNVJ06v5qpOmV/NVJ02v5qtumlHvgEkIJlYAlhAicTlhq622GnqPZQb8GNpN061r2E8CgYGjZgTlhwDphuVBRERkNNMTlglm+B//+MfDIYccUgzSrNccd9xx4eCDDy5MNZEDDzwwHHDAAWHDDTdsK023rtluu+3CRhttFHbeeeewzz77FA6Yp5xySuGYyVKHiIjIeKYnxAQweCMSzj///GKHyRNPPDG88Y1vXOwaBm6u6SRNN67BcnHRRReFH/7wh+GGG24ortl7773D7rvvXkSCiIiIjGd6RkxECwCvKk444YSO03TrGtaeCAsVERGRHvSZEBERkdGLYkJEREQaoZgQERGRRigmREREpBGKCREREWmEYkJEREQaoZgQERGRRigmREREpBGKCREREWmEYkJEREQaoZgQERGRRigmREREpBGKCREREWmEYkJEREQaoZgQERGRRigmREREpBGKCREREWmEYkJEREQaoZgQERGRRigmREREpBGKCREREWmEYkJEREQaoZgQERGRRigmREREpBGKCREREWmEYkJEREQaoZgQERGRRigmREREpBGKCREREWmEYkJEREQaoZgQERGRRigmREREpBGKCREREWmEYkJEREQaoZgQERGRRigmREREZOTFxP3337/Ee9/73vfC61//+rDTTjuFc889t1muREREZOyKifPPPz8cdNBBi7139tlnhw996EPh7rvvDvPmzQt77rln+NWvftXNfIqIiMhYERMnnnhi2H///Rd77xvf+EbYYIMNwtVXX12Ijc985jPFeyIiIjL2mdTuhX/+85+Ln3/84x/D5MmTh/5+4oknwg033BD23nvvcMsttxTvbbbZZuGEE04YugY23njj7udeRERERo+YQBwAyxg/+MEPQl/fk0aNmTNnhsHBweJnvIa/58yZE44//vgwYcKE4vWd73xnad2DjGEmT5wYZg5MC/OmzwgzF0wNfY+3Nqat3D8hrDhxwYjlT0REOhATJ510UvHzT3/6U9hrr73Cy1/+8uLvT37yk4UF4rTTTissFnDXXXeFa665Jpx88smWsTRi7sBgeO/F94T5AwNhcn9/6JvQWkycvM0aYcVpFrqISE+Kicib3/zmsN9++4X3vOc9Yfbs2eG73/1u2GWXXYaEBNx4441hk0026XZeRUREZCyIiQ984APh1ltvLZwsFy1aFLbYYotw2GGHLXbNKaecEt773vd2M58iIiIyVsTEMsssU4iFr33ta+Hxxx8Pq6666hLXfPGLXwzrrLNOt/IoIiIiY0lMRJZbbrnileO5z31ukzyJiIjIKMLttEVERKQRigkRERFphGJCREREGqGYEBERkadGTLCJ1cUXX9zs20VERGT8iolPf/rTRm2IiIhIfTGx/vrrh4ULF1qEIiIi45za+0x89rOfDUcccUT41re+FaZOndqVzHDux4UXXljsrLntttuGTTfdtCtpunUNJ6Sed955xemo7KWx8847L7aNuPTGwWC3Px7C4MLODgfrTg0WERmf1BYTV155ZbED5kYbbRS22mqrsMYaaywxsLIU0i4cFPaRj3wk7LbbbmHixIlhu+22C0cddVRxtHmTNN265p///GfYaaedwrRp08Ib3vCGcNVVV4XTTz+9EBfSWweDHXjJPWFw0WBHh4M9Y8KIZVFEZMxRW0wcc8wxQ7+fffbZ2WvaFRNz584tTh/l+oMOOqh4j+24Of/jLW95S1hxxRVrpenWNbD//vuHVVZZpRAPkyY9WWy33357h6UmIiIy9qjtM/Hggw8O+2qXK664IjzyyCPhHe94x9B7/D5v3rxwySWX1E7TrWv+8pe/hN/+9reF9SIKCfD8ERERkQaWifKg2pTbbrstPO1pTytm/hEsArz4X9003brm2muvLX4+//nPL0JiZ82aVTigvulNbxq2HBAlTRkYGFjsZ6+kqfMdg4umFD8XDS4Kg32Dw16PDwvXtpuG61ni6CTN4MLBMDDYm2U8Uml6NV910vRqvuqk6dV81UnTq/mqk6ZX81U3TY5OfSEbKYKbb745HH300cWsffbs2eGBBx4o3mfJgKPKcyeK5njssceKAT1l+eWXL/5XN023rmEpZMqUKWGXXXYJL37xiwvh8bnPfS4cf/zx4YILLmhZ6HfffXfXol7uu+++nkzTyfUD02cUPxcsmN/W9YODg0PXtpOG6/GViLSTZt4T88J9s+/r6TIeqTS9mq86aXo1X3XS9Gq+6qTp1XzVSdOr+aqbJoLv4Nprrz0yYoLoh+233z48/elPL6IfcGKMMKvnmPKPf/zjbX0Wp48+/PDDS7zPe1Unk7aTppvXEMmxxx57hH333bd4b7/99gubbLJJOOOMM1o6ia655pqhKShMKsbqq68e+vv7eyZNne+4c/6T102aNDlM6Bve67Gvr6+4FlHQThqux+kSi0S7aaZOmVrcQy+W8Uil6dV81UnTq/mqk6ZX81UnTa/mq06aXs1X3TTdoLaYYGa+4447hq997WuFqb8sJoiGYIBtV0w873nPC//+97+LWXwcfLFyzJkzJ6y33nq103TrGpY0YLPNNhv6fqwuz3rWs8Idd9zR8t66FTYLVIxOP28k0nRyfd+CJwd2BvjhoiyK6yZMGBID7aTheq6JSxvtpOmb2Bf6J/X3dBmPVJpezVedNL2arzppejVfddL0ar7qpOnVfNVN85Q4YBIayXJGzmdgrbXWCv/4xz/a/qxXvepVYfr06eF73/ve0Hv8zlLDlltuOfTe5z//+SGnyHbSdOuazTffPDz72c8unDUjd911VyEk8KMQEREZz9S2TMyfP38x1cOMMPLQQw8VPgbtwt4N+B+whHDTTTcV6zUXXXRR+OY3v7mYPwPOj/yPfS3aSdOtazCdn3jiiUWUxx/+8IfCZ+IXv/hF2GabbcLb3va2ukUoIiIyvsUESwDsuYAfQSomeJ/NrDqByIirr766sDzgkc8yynOe85zFrsESgp9CJ2m6dc3LX/7yQkggNPCf2H333cMWW2zR0T2KiIiMRWqLiXe/+93FZk9EOuA7gZggZPInP/lJsRxx3HHHdfyZM2bMCHvuuWfl/3F67DRNN6/BT4JdMkVERKRLYuLGG28sdorkVd7EiSUDzf8iIiLjg9piAkvEscceW8zU2Wvh/vvvDyuvvHIRyfGSl7yku7kUERGRnqXxNpZEOvASERGR8UljMUFUB8sd7ICJZYJQSY/lFhERGT80EhPscnnkkUcWjpcRBMWhhx46FOUhIiIiY5vaYuLUU08NBx98cLHXAttqE+nAzpE///nPi3M52MyK8EkREREZ29QWE2yj/YlPfKJ4pVEeRx11VPjqV7+qmBARERkH1N5Om+2k99lnn8r9IPi/iIiIjH1qi4nnPve54dFHH83+j/f5v4iIiIx9aouJz372s8W202wtXWbevHnh8MMPD4cddlg38iciIiJj1WfimmuuCY888kjYeOONw2te85qw2mqrFRtXXXrppWHTTTcNv//974tXeraGiIiIjC1qi4ljjjlm6Pezzjprsf9deOGFxStFMSEiIjL2qC0mHnzwwe7mRERERMaXmGAfCREREZHaDpgiIiIioJgQERGRRigmREREpBGKCREREWmEXpRSm0f7poV502eEmQumhr7H29OlCydY4CIiY43aYuLtb3/7EvtLdPJ/Gf08NBDCfpfcFyb394e+Ce2Jia9vucZSz5eIiIySZY7cplSd/F9ERETGBkvFZ+KBBx4I06ZNWxofLSIiIqN5mSPdDju3PTYHf3Emx4Ybbtg8dyIiIjK2xMSJJ57Y8m9YdtllwwYbbBC+9KUvNc+diIiIjC0xMWvWrKHfV1xxxcX+FhERkfFJbZ+Jm266qbs5ERERkfElJp7xjGd0NyciIiIy/jatuvHGG8Opp54a7rzzzvDwww8v8f8LLrigyceLiIjIWBYTZ555ZjjggAMKh8sZM2aE5Zdfvrs5ExERkbEtJojW2HvvvcMRRxwRlllmme7mSkRERMa+z8Tdd98dPvWpTykkRERExjm1xcT666+f9ZMQERGR8UVtMXHkkUeGo446KgwMDHQ3RyIiIjI+fCYuu+yy8Oijj4bNNtssvPrVrw5Pf/rTw4QJE4bdbltERETGFrXFxDHHHDP0+xlnnJG9RjEhIiIy9qktJh588MHu5kRERETGl5iYNKnRflciIiIy3h0w4eabbw577bVXeN7znhdWXXXVxZY3HnjggW7kT0RERMaqmPjTn/4Utt566+LntttuG+bPn7/YiaKnnHJKt/IoIiIiY1FMfO5znws77rhj+P3vfx++/vWvL/a/7bbbLvz4xz/uRv5ERESkx6nt+HDVVVeFq6++Ous7sdZaa4V//OMfTfMmIiIiY9kywbLG1KlTh/4u7zHx0EMPhSlTpjTPnYiIiIxdMbHeeuuF8847LysmeH+jjTZqnjsREREZu8sc7373u8MnP/nJMHfu3MJ3AjExa9as8JOf/CR8/vOfD8cdd1x3cyoiIiJjT0zceOON4TOf+UzxgnXWWaf4ue+++4a3ve1t3culiIiIjD0xgSXi2GOPDbvttlu44IILwv333x9WXnnlIpLjJS95SXdzKSIiIj1L420sN9988+IlIiIi45PaDpi33npr+OhHP5r9H+/fdtttTfIlIiIiY11M4GT5yle+Mvu/V7ziFeHII49ski8REREZ62LiN7/5TaWY4P3f/e53TfIlIiIiY11MPPbYY2HevHnZ//E+IaMiIiIy9qktJjgptOr8DfaaWHfddZvkS0RERMZ6NMcee+wRDjnkkPDEE0+EXXbZJayxxhrhnnvuCeecc044+uijw1FHHdXdnIqIiMjYEhN77rlnuPbaa8MRRxxRvMq8613vKja16oRFixaF0047LZx//vnF76973esKwdLX19coTbeuSaNV/vKXvxSi6fnPf35H9ykiIjLWaLRpFUeP77777uGiiy4KDzzwQFhllVWKgbjOplWHHnpoOOOMM8Jhhx1WDOL8/Otf/1oM2E3SdOuayHe+851w+eWXh7/97W/6hYiIiDQRE6997WvDPvvsE3bdddfw0pe+tFFh3nvvveGb3/xmMVDvvPPOxXtPe9rTCuvGgQceGGbMmFErTbeuibB9OGeOcO0b3vCGRvcsIiISxrsDJjNzts7uBldccUUYHBwsrBoRfsdKgBWgbppuXROjV/baa6/wxS9+sfAPERERkYaWiS233DJcf/314TWveU1oysyZM8MKK6wQll122aH3pk6dGqZPn178r26abl0T/SRYvtlhhx3C3//+97bvrSp8thMGBgYW+9kraQYXTSl+LhpcFAb7Btv+nk7S4MPCte2m4frBRYMdpRlcOBgGBnuzjEcqTa/mq06aXs1XnTS9mq86aXo1X3XS9Gq+6qbJwTg4ImLiy1/+cvjgBz9YzNiZyU+cOLHuRxU3PW3atCXe57358+fXTtOta4hQufLKKwsrRqfcfffdYeHChaEb3HfffT2VZmD6k0tACxbkn1EOrECdpOH6eG07abh+fqkRtZNm3hPzwn2z7+vJMh7pNL2arzppejVfddL0ar7qpOnVfNVJ06v5qpsmwni+9tprj4yY2HrrrYuO+xe/+EXxxauttlqYNGnxj7vhhhva+qwVV1wxPPTQQ0u8z3v8r26abl3z/e9/v7jXt7/97YtZGz72sY8VQurTn/505b2tueaaoSkIHirG6quvHvr7+3smzZ3zn7xm0qTJYULfhLa+I0bItJuG67kWUdBOGq6f3N9fWCTaTTN1ytTinnuxjEcqTa/mq06aXs1XnTS9mq86aXo1X3XS9Gq+6qbpBrXFxItf/OKuZWLjjTcuBuibb745rL/++sV7t99+exEtwf/qpunWNeyZ8fDDDw99N/tp7LfffuGd73xn5ZbidU1FraBidPp5SzNN34InB2kG674JnbnftJuGqKEoBtpJw/VcE5c22knTN7Ev9E/q78kyHuk0vZqvOml6NV910vRqvuqk6dV81UnTq/mqm+YpEROnnHJK1zJBNMg666wTvvKVrxSREnDMMccUkRQcGhbBMoDPAuGo7aTp1jWpoIk+E7y/4YYbdq0cRERERiO1xUSEGfx1110XZs+eHXbaaadan8EyCUsJu+22W9hoo42GHOlOP/30MHny5KHr8Ft44Qtf2Haabl0jIiIiS0lMMIM/9thjCydMiGICPwKOIN98883b/qwXvOAFRXRI9LNgYE99MM4666zFfBDaSdOta8oQGnreeedplRAREWkiJr73ve8VSwPve9/7wqtf/erwpje9aeh/BxxwQDjppJM6EhPRShAtDzle9rKXdZymm9eUIz2G85UQEREZL9QWE9/+9reL3SDZATNl0003DR//+Meb5k1ERETG8g6YRDxsv/32i3nRR1ZdddXCh0JERETGPrXFxDLLLBMefPDB7P+Idlh55ZWb5EtERETGupjAf4FzKuKOhtEyQSQETpn6FIiIiIwPavtM4BNB1MYtt9wy5Hx54oknhnPPPbeIjLj00ku7mU8REREZa5YJnCx/9KMfhX//+9/h85//fGGhOOSQQ4ptPHl/gw026G5ORUREZGxZJthbgpDQP/zhD+HWW28tRAR+EmxJXXbGFBERkbFNR5YJ/CGOPvro4jQxNo9aa621ir/XXXfdYutprBEKCRERkfFFX6cbVXHoFZEcOFguu+yyxd+8LyIiIuOTjsTED37wg7DXXnuFP/3pT8V20vzcY489ivdFRERkfNKR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v//974u9v8EGG4Tdd9+9WPIQEREZr+g52AbPeMYzwpw5c8LAwMDQewsWLCgsFvxPRERkPKOYaAN8IgYHB8Oll1469N7ll19eiIuRcL4UERHpZfSZaIPnPOc5Ybfddgsf+chHCqdGXh/+8IfDW97ylrDeeust/ackIiLSw+gz0SZPPPFEOPbYY8P5559f7Dvxute9rhAXMVRURERkvKKY6FEuvvjicNZZZ4W77rqr8M9Yc801w4477hje/OY3LxFD/MgjjxT7XWy77bbF33/961/DZz/72fDPf/4zvPrVrw6HHnpomDZtydizhx9+OFx00UXF1uCvetWrirBNYJdP/EFe85rXLHb997///SIc9o1vfGPbIorloTPPPDNMmjQpvO1tbws/+tGPiu9kB9H3ve992dA60vz85z8vXnfffXdYdtlli1Dc97znPUUETQrijlfcPIwImx/84Afh3//+d2E9wlG2E3784x+HtdZaK2y66aaLvY+QpJzIz9y5c4sy/v3vf1+EYX3+858vLFi5vP3qV78q8vLa1762KD949NFHi7J497vfvUSaK664Ipx33nnhrW99a1httdWK58c97bDDDmG//fZr6x4++clPhg033LDYWK2K3/72t+GMM84I//jHP4olu6c//elh++23L76XUOiUhQsXDtU9ntEPf/jDcPPNN4eXvexlRbpOuOmmm8Kf//zn8I53vGOx988+++wiLzvttFNRzp08M8oYC+IFF1wQzj333OJ5fOADH8h+Ds+FNvaTn/wk/Otf/yrqIeW1//77F+UwXB2jzdEe4nNJ60p559xTTjmluNeHHnqo2PjuRS96Udh7772LZ5vCXjYbb7xxUc/nzZsXPve5zxXLq/hmHXbYYeH5z39+9ntYdmWr/6233jqsuOKKQ8/r29/+dnjve9+7xPV/+MMfirLmudEWcSKnrdGHvP/9729rI75jjjmmKLeDDjqo8pq//e1vRVu87bbbivvhmVAnX/ziF2evp6+jr4j8z//8T7HHD+W78847h06gXl9yySVFWZehX7n33nvDLrvsElZYYYW2P+8Xv/hFkY7809/SdngulNdKmWg/+tCvfe1rYY011gj77rtv+MIXvhB+/etfF+X9mc98pqgLw8HWA4cffnj46U9/WnkNeWI3ZrYw4DupO5tssklx38985jPDSKHPRA/y1a9+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",
      "text/plain": [
       "<Figure size 500x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(5,4))\n",
    "ax.hist(sales['SalePrice'], bins=32, density=True, alpha=0.8, ec='white', zorder=5)\n",
    "\n",
    "unit = '$'\n",
    "y_label = 'Percent per ' + (unit if unit else 'unit')\n",
    "x_label = 'SalesPrice ($)' \n",
    "plt.ylabel(y_label, fontsize=12)\n",
    "plt.xlabel(x_label, fontsize=12)\n",
    "\n",
    "x_min, x_max = sales['SalePrice'].min(), sales['SalePrice'].max()   ### multiple assignment\n",
    "ax.set_xticks(np.linspace(x_min, x_max+.01, 32))\n",
    "# ax.set_xticks(np.linspace(0, 800000, 9))\n",
    "\n",
    "plt.xticks(rotation=90, fontsize=8)\n",
    "plt.yticks(fontsize=10)\n",
    "\n",
    "y_vals = ax.get_yticks()\n",
    "ax.set_yticks(y_vals)\n",
    "ax.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n",
    "\n",
    "plt.title('');\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ed546363710f43e5bbdc5c42bc31c95c",
   "metadata": {},
   "source": [
    "### Correlation\n",
    "\n",
    "No single attribute is sufficient to predict the sale price. For example, the area of first floor, measured in square feet, correlates with sale price but only explains some of its variability."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "ea8f8b25dcdf4deb83c4189890b4ea43",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.110449Z",
     "iopub.status.busy": "2026-08-31T06:02:18.110377Z",
     "iopub.status.idle": "2026-08-31T06:02:18.138043Z",
     "shell.execute_reply": "2026-08-31T06:02:18.137811Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 500x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(5,4))\n",
    "\n",
    "ax.scatter(\n",
    "    sales['1st Flr SF'], \n",
    "    sales['SalePrice'],   \n",
    "    color='darkblue', \n",
    "    alpha=0.8,\n",
    "    s=5\n",
    ")\n",
    "\n",
    "x_label = '1st Flr SF'\n",
    "y_label = 'SalePrice'\n",
    "\n",
    "plt.ylabel(y_label)\n",
    "plt.xlabel(x_label)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d52e526af8a3452295a511cec94fa853",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.139029Z",
     "iopub.status.busy": "2026-08-31T06:02:18.138960Z",
     "iopub.status.idle": "2026-08-31T06:02:18.141048Z",
     "shell.execute_reply": "2026-08-31T06:02:18.140884Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6424662541030225"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "correlation(sales, 'SalePrice', '1st Flr SF')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "396c2edfcea747e2849b82c003e7a583",
   "metadata": {},
   "source": [
    "In fact, none of the individual attributes have a correlation with sale price that is above 0.7 (except for the sale price itself)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "704fe09bc36c46328b51dfbc26fbc277",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.142013Z",
     "iopub.status.busy": "2026-08-31T06:02:18.141955Z",
     "iopub.status.idle": "2026-08-31T06:02:18.146020Z",
     "shell.execute_reply": "2026-08-31T06:02:18.145804Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Correlation of SalePrice and SalePrice:\t 1.0\n",
      "Correlation of 1st Flr SF and SalePrice:\t 0.6424662541030225\n",
      "Correlation of 2nd Flr SF and SalePrice:\t 0.3575218942800824\n",
      "Correlation of Total Bsmt SF and SalePrice:\t 0.652978626757169\n",
      "Correlation of Garage Area and SalePrice:\t 0.6385944852520442\n",
      "Correlation of Wood Deck SF and SalePrice:\t 0.3526986661950491\n",
      "Correlation of Open Porch SF and SalePrice:\t 0.3369094170263733\n",
      "Correlation of Lot Area and SalePrice:\t 0.29082345511576946\n",
      "Correlation of Year Built and SalePrice:\t 0.5651647537135916\n",
      "Correlation of Yr Sold and SalePrice:\t 0.025948579080721124\n"
     ]
    }
   ],
   "source": [
    "for label in sales.columns:\n",
    "    print('Correlation of', label, 'and SalePrice:\\t', correlation(sales, label, 'SalePrice'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f7b6f67b6ea4ba899ff9b12e3c7f767",
   "metadata": {},
   "source": [
    "However, combining attributes can provide higher correlation. In particular, if we sum the first floor and second floor areas, the result has a higher correlation than any single attribute alone."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "8f0209d76f3e4c5d8b4a0cc2045d482d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.147058Z",
     "iopub.status.busy": "2026-08-31T06:02:18.146991Z",
     "iopub.status.idle": "2026-08-31T06:02:18.149362Z",
     "shell.execute_reply": "2026-08-31T06:02:18.149173Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7821920556134877"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sales_copy = sales.copy()\n",
    "both_floors = sales_copy.iloc[:,1] + sales_copy.iloc[:,2]\n",
    "\n",
    "sales_copy['Both Floors'] = both_floors\n",
    "correlation(sales_copy, 'SalePrice', 'Both Floors')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "da2efadd342f4cf792773fc742971fae",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.150274Z",
     "iopub.status.busy": "2026-08-31T06:02:18.150219Z",
     "iopub.status.idle": "2026-08-31T06:02:18.151372Z",
     "shell.execute_reply": "2026-08-31T06:02:18.151213Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# sales_copy.iloc[:,2]\n",
    "# sales_copy['2nd Flr SF']"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91003f37eb3946e5889b4b006714ea48",
   "metadata": {},
   "source": [
    "This high correlation indicates that we should try to use more than one attribute to predict the sale price. In a dataset with multiple observed attributes and a single numerical value to be predicted (the sale price in this case), multiple linear regression can be an effective technique.\n",
    "\n",
    "## Multiple Linear Regression \n",
    "\n",
    "In multiple linear regression, a numerical output is predicted from numerical input attributes by multiplying each attribute value by a different slope, then summing the results. In this example, the slope for the `1st Flr SF` would represent the dollars per square foot of area on the first floor of the house that should be used in our prediction. \n",
    "\n",
    "Before we begin prediction, we split our data randomly into a training and test set of equal size."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acecab7833434d4cb06d1e8464849156",
   "metadata": {},
   "source": [
    "### Train/Test split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "7c41ecdee0f34799af3e9dc6508fc99b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.152409Z",
     "iopub.status.busy": "2026-08-31T06:02:18.152351Z",
     "iopub.status.idle": "2026-08-31T06:02:18.154415Z",
     "shell.execute_reply": "2026-08-31T06:02:18.154188Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1001 training and 1001 test instances.\n"
     ]
    }
   ],
   "source": [
    "sales_copy = sales.copy()\n",
    "train = sales_copy.sample(1001, replace=False, random_state=13)\n",
    "test = sales_copy.drop(train.index)\n",
    "\n",
    "print(f\"{len(train)} training and {len(test)} test instances.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e3e5d65e65a847af80a44ff1aac245b5",
   "metadata": {},
   "source": [
    "### Function for train/test split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "95245ef231f0484b822e9f673a68be8f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.155339Z",
     "iopub.status.busy": "2026-08-31T06:02:18.155278Z",
     "iopub.status.idle": "2026-08-31T06:02:18.157220Z",
     "shell.execute_reply": "2026-08-31T06:02:18.157062Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1001 training and 1001 test instances.\n"
     ]
    }
   ],
   "source": [
    "def split(self, k):\n",
    "    if not 1 <= k <= (len(self) - 1):\n",
    "        raise ValueError(\"Invalid value of k. k must be between 1 and the\"\n",
    "                         \"number of rows - 1\")\n",
    "\n",
    "    rows = np.random.default_rng(13).permutation(len(self))     ### random shuffle of indices (seeded)\n",
    "    first = self.take(rows[:k])                 ### first k random rows → training set\n",
    "    rest = self.take(rows[k:])                  ### remaining random rows → test set\n",
    "\n",
    "    return (first, rest)                          ### return a single tuple object\n",
    "\n",
    "train, test = split(sales, 1001)\n",
    "\n",
    "print(len(train), 'training and', len(test), 'test instances.')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "720830e0877447e8b2cf058bed906b49",
   "metadata": {},
   "source": [
    "### The scikit learn way\n",
    "We could employ the scikit learn [train_test_split](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html#sklearn-model-selection-train-test-split) function to determine the train, test split."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "970bcb59fd08401e9ff63c75d63e5fd5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.158051Z",
     "iopub.status.busy": "2026-08-31T06:02:18.157993Z",
     "iopub.status.idle": "2026-08-31T06:02:18.713999Z",
     "shell.execute_reply": "2026-08-31T06:02:18.713740Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1001 training and 1001 test instances.\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "train, test = train_test_split(sales_copy, test_size=0.5, random_state=13)\n",
    "\n",
    "print(len(train), 'training and', len(test), 'test instances.')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa602e8962cc48e98dfe141a463df884",
   "metadata": {},
   "source": [
    "The slopes in multiple regression is an array that has one slope value for each attribute in an example. Predicting the sale price involves multiplying each attribute by the slope and summing the result.\n",
    "\n",
    "Notice that this model has **no intercept**. The `LinearRegression` model in the previous section fit an intercept $\\beta_0$ plus one slope per attribute; `predict` below only multiplies and sums, so a house whose attributes were all 0 would be predicted to cost \\$0. We keep the model this simple so that the search for the best model only has to find slopes. One side effect: `Year Built` and `Yr Sold` are close to 2000 for every house, so their slopes end up doing part of an intercept's job, setting the overall price level. Read those two slopes with that in mind."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "9665f3b7d77a41158663267a4e551a69",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.715191Z",
     "iopub.status.busy": "2026-08-31T06:02:18.715072Z",
     "iopub.status.idle": "2026-08-31T06:02:18.717711Z",
     "shell.execute_reply": "2026-08-31T06:02:18.717513Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Predicting sale price for:\n",
      "1st Flr SF        848.0\n",
      "2nd Flr SF        580.0\n",
      "Total Bsmt SF     712.0\n",
      "Garage Area       576.0\n",
      "Wood Deck SF      264.0\n",
      "Open Porch SF       0.0\n",
      "Lot Area         6451.0\n",
      "Year Built       1900.0\n",
      "Yr Sold          2006.0\n",
      "Name: 2641, dtype: float64\n",
      "\n",
      "Using slopes:\n",
      " [11.82675656  6.92166809 10.95806398 10.06963723 11.31825002 10.38562925\n",
      " 11.82725863 10.03174376  9.48377056]\n",
      "\n",
      "Result: 145016.32993816028\n"
     ]
    }
   ],
   "source": [
    "def predict(slopes, row):\n",
    "    return sum(slopes * np.array(row))\n",
    "\n",
    "example_row1 = test.drop(columns=['SalePrice'])\n",
    "example_row = example_row1.iloc[0]\n",
    "\n",
    "print('Predicting sale price for:')\n",
    "print(example_row)\n",
    "\n",
    "example_slopes = np.random.default_rng(13).normal(10, 1, len(example_row))\n",
    "\n",
    "print('\\nUsing slopes:\\n', example_slopes)\n",
    "\n",
    "print('\\nResult:', predict(example_slopes, example_row))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2432eb63dba49179cfc85438ee28f58",
   "metadata": {},
   "source": [
    "The result is an estimated sale price, which can be compared to the actual sale price to assess whether the slopes provide accurate predictions. Since the `example_slopes` above were chosen at random, we should not expect them to provide accurate predictions at all."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "ebc0d0c048844554a407c129f4e56b89",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.718731Z",
     "iopub.status.busy": "2026-08-31T06:02:18.718670Z",
     "iopub.status.idle": "2026-08-31T06:02:18.720266Z",
     "shell.execute_reply": "2026-08-31T06:02:18.720081Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Actual sale price: 139900\n",
      "Predicted sale price using random slopes: 145016.32993816028\n"
     ]
    }
   ],
   "source": [
    "print('Actual sale price:', test['SalePrice'].iloc[0])\n",
    "print('Predicted sale price using random slopes:', predict(example_slopes, example_row))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "35e7bdc4544e47a188da836bf5ef44be",
   "metadata": {},
   "source": [
    "### Least Squares Regression\n",
    "\n",
    "The next step in performing multiple regression is to define the least squares objective. We perform the prediction for each row in the training set, and then compute the root mean squared error (RMSE) of the predictions from the actual prices."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "41cee15e3b164b59aeb6b5d50c936053",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.721277Z",
     "iopub.status.busy": "2026-08-31T06:02:18.721219Z",
     "iopub.status.idle": "2026-08-31T06:02:18.738482Z",
     "shell.execute_reply": "2026-08-31T06:02:18.738275Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE of all training examples using random slopes: 88139.7377326553\n"
     ]
    }
   ],
   "source": [
    "train_prices = train.iloc[:,0]\n",
    "train1 = train.copy()\n",
    "train_attributes = train1.drop(train1.columns[0], axis=1)\n",
    "\n",
    "def rmse(slopes, attributes, prices):\n",
    "    errors = []\n",
    "    for i in np.arange(len(prices)):\n",
    "        predicted = predict(slopes, attributes.iloc[i])\n",
    "        actual = prices.iloc[i]\n",
    "        errors.append((predicted - actual) ** 2)\n",
    "    return np.mean(errors) ** 0.5\n",
    "\n",
    "def rmse_train(slopes):\n",
    "    return rmse(slopes, train_attributes, train_prices)\n",
    "\n",
    "print('RMSE of all training examples using random slopes:', rmse_train(example_slopes))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "29f6d8c22f2a47fd9e28c63644005cf3",
   "metadata": {},
   "source": [
    "Finally, we use the `minimize` function to find the slopes with the lowest RMSE. Since the function we want to minimize, `rmse_train`, takes an array instead of a number, we must pass the `array=True` argument to `minimize`. When this argument is used, `minimize` also requires an initial guess of the slopes so that it knows the dimension of the input array. Finally, to speed up optimization, we indicate that `rmse_train` is a smooth function using the `smooth=True` attribute. Computation of the best slopes may take several minutes.\n",
    "\n",
    "[scipy optimize.minimize](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "2ff27a9d6da44cdf9d2ba707e672d4a7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.739498Z",
     "iopub.status.busy": "2026-08-31T06:02:18.739429Z",
     "iopub.status.idle": "2026-08-31T06:02:18.741653Z",
     "shell.execute_reply": "2026-08-31T06:02:18.741445Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from scipy import optimize\n",
    "\n",
    "def minimize(f, start=None, smooth=False, log=None, array=False, **vargs):\n",
    "    \"\"\"Minimize a function f of one or more arguments.\n",
    "    Args:\n",
    "        f: A function that takes numbers and returns a number\n",
    "        start: A starting value or list of starting values\n",
    "        smooth: Whether to assume that f is smooth and use first-order info\n",
    "        log: Logging function called on the result of optimization (e.g. print)\n",
    "        vargs: Other named arguments passed to scipy.optimize.minimize\n",
    "    Returns either:\n",
    "        (a) the minimizing argument of a one-argument function\n",
    "        (b) an array of minimizing arguments of a multi-argument function\n",
    "    \"\"\"\n",
    "    if start is None:\n",
    "        assert not array, \"Please pass starting values explicitly when array=True\"\n",
    "        arg_count = f.__code__.co_argcount\n",
    "        assert arg_count > 0, \"Please pass starting values explicitly for variadic functions\"\n",
    "        start = [0] * arg_count\n",
    "    if not hasattr(start, '__len__'):\n",
    "        start = [start]\n",
    "\n",
    "    if array:\n",
    "        objective = f\n",
    "    else:\n",
    "        @functools.wraps(f)\n",
    "        def objective(args):\n",
    "            return f(*args)\n",
    "\n",
    "    if not smooth and 'method' not in vargs:\n",
    "        vargs['method'] = 'Powell'\n",
    "    result = optimize.minimize(objective, start, **vargs)\n",
    "    if log is not None:\n",
    "        log(result)\n",
    "    if len(start) == 1:\n",
    "        return result.x.item(0)\n",
    "    else:\n",
    "        return result.x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "d7660190c78d4175b3f7358564307589",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:18.742671Z",
     "iopub.status.busy": "2026-08-31T06:02:18.742608Z",
     "iopub.status.idle": "2026-08-31T06:02:24.819904Z",
     "shell.execute_reply": "2026-08-31T06:02:24.819662Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The best slopes for the training set:\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>1st Flr SF</th>\n",
       "      <th>2nd Flr SF</th>\n",
       "      <th>Total Bsmt SF</th>\n",
       "      <th>Garage Area</th>\n",
       "      <th>Wood Deck SF</th>\n",
       "      <th>Open Porch SF</th>\n",
       "      <th>Lot Area</th>\n",
       "      <th>Year Built</th>\n",
       "      <th>Yr Sold</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>70.284761</td>\n",
       "      <td>78.14222</td>\n",
       "      <td>52.249434</td>\n",
       "      <td>49.680101</td>\n",
       "      <td>40.073921</td>\n",
       "      <td>19.604064</td>\n",
       "      <td>0.685828</td>\n",
       "      <td>429.425241</td>\n",
       "      <td>-429.130683</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  1st Flr SF 2nd Flr SF Total Bsmt SF Garage Area Wood Deck SF Open Porch SF  \\\n",
       "0  70.284761   78.14222     52.249434   49.680101    40.073921     19.604064   \n",
       "\n",
       "   Lot Area  Year Built     Yr Sold  \n",
       "0  0.685828  429.425241 -429.130683  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "best_slopes = minimize(rmse_train, start=example_slopes, smooth=True, array=True)\n",
    " \n",
    "train_df = pd.DataFrame(columns=[train_attributes.columns])\n",
    "\n",
    "train_df.loc[0] = best_slopes\n",
    "\n",
    "print('The best slopes for the training set:')\n",
    "\n",
    "train_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "7445613a001046af8cd08dccad5f93da",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.821062Z",
     "iopub.status.busy": "2026-08-31T06:02:24.820982Z",
     "iopub.status.idle": "2026-08-31T06:02:24.837062Z",
     "shell.execute_reply": "2026-08-31T06:02:24.836887Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE of all training examples using the best slopes: 31838.18490661393\n"
     ]
    }
   ],
   "source": [
    "print(f'RMSE of all training examples using the best slopes: {rmse_train(best_slopes)}')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "33525cc08d144c5ebd8c336ff0969731",
   "metadata": {},
   "source": [
    "### Interpreting Multiple Regression \n",
    "\n",
    "Let's interpret these results. The best slopes give us a method for estimating the price of a house from its attributes. A square foot of area on the first floor is worth about `$70` (the first slope), while one on the second floor is worth about `$78` (the second slope). The `Year Built` and `Yr Sold` slopes are almost equal and opposite (about +429 and -429). Because the model has no intercept, read them together: they add up to about -429 × (`Yr Sold` - `Year Built`), so each year of a house's age at sale lowers the predicted price by roughly \\$429.\n",
    "\n",
    "The RMSE of around `$32,000` means that our best linear prediction of the sale price based on all of the attributes is off by around \\$32,000 on the training set, on average.  We find a similar error when predicting prices on the test set, which indicates that our prediction method will generalize to other samples from the same population."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "c2ace617d3634e649fe67f66c272f6d8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.838113Z",
     "iopub.status.busy": "2026-08-31T06:02:24.838054Z",
     "iopub.status.idle": "2026-08-31T06:02:24.841693Z",
     "shell.execute_reply": "2026-08-31T06:02:24.841487Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>1st Flr SF</th>\n",
       "      <th>2nd Flr SF</th>\n",
       "      <th>Total Bsmt SF</th>\n",
       "      <th>Garage Area</th>\n",
       "      <th>Wood Deck SF</th>\n",
       "      <th>Open Porch SF</th>\n",
       "      <th>Lot Area</th>\n",
       "      <th>Year Built</th>\n",
       "      <th>Yr Sold</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2641</th>\n",
       "      <td>848</td>\n",
       "      <td>580</td>\n",
       "      <td>712.0</td>\n",
       "      <td>576.0</td>\n",
       "      <td>264</td>\n",
       "      <td>0</td>\n",
       "      <td>6451</td>\n",
       "      <td>1900</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1858</th>\n",
       "      <td>1094</td>\n",
       "      <td>761</td>\n",
       "      <td>528.0</td>\n",
       "      <td>512.0</td>\n",
       "      <td>113</td>\n",
       "      <td>100</td>\n",
       "      <td>9600</td>\n",
       "      <td>1976</td>\n",
       "      <td>2007</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>438</th>\n",
       "      <td>1743</td>\n",
       "      <td>0</td>\n",
       "      <td>1739.0</td>\n",
       "      <td>927.0</td>\n",
       "      <td>168</td>\n",
       "      <td>45</td>\n",
       "      <td>10367</td>\n",
       "      <td>2008</td>\n",
       "      <td>2009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>796</th>\n",
       "      <td>1148</td>\n",
       "      <td>568</td>\n",
       "      <td>768.0</td>\n",
       "      <td>281.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>11409</td>\n",
       "      <td>1949</td>\n",
       "      <td>2009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1057</th>\n",
       "      <td>1950</td>\n",
       "      <td>0</td>\n",
       "      <td>1950.0</td>\n",
       "      <td>706.0</td>\n",
       "      <td>156</td>\n",
       "      <td>207</td>\n",
       "      <td>14418</td>\n",
       "      <td>2007</td>\n",
       "      <td>2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1581</th>\n",
       "      <td>1256</td>\n",
       "      <td>0</td>\n",
       "      <td>1256.0</td>\n",
       "      <td>578.0</td>\n",
       "      <td>282</td>\n",
       "      <td>0</td>\n",
       "      <td>18265</td>\n",
       "      <td>1986</td>\n",
       "      <td>2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>976</th>\n",
       "      <td>1404</td>\n",
       "      <td>0</td>\n",
       "      <td>1188.0</td>\n",
       "      <td>504.0</td>\n",
       "      <td>0</td>\n",
       "      <td>16</td>\n",
       "      <td>13383</td>\n",
       "      <td>1969</td>\n",
       "      <td>2009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2774</th>\n",
       "      <td>1494</td>\n",
       "      <td>0</td>\n",
       "      <td>1479.0</td>\n",
       "      <td>576.0</td>\n",
       "      <td>168</td>\n",
       "      <td>27</td>\n",
       "      <td>9236</td>\n",
       "      <td>1997</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2737</th>\n",
       "      <td>1836</td>\n",
       "      <td>1836</td>\n",
       "      <td>1836.0</td>\n",
       "      <td>836.0</td>\n",
       "      <td>684</td>\n",
       "      <td>80</td>\n",
       "      <td>19800</td>\n",
       "      <td>1935</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2601</th>\n",
       "      <td>774</td>\n",
       "      <td>821</td>\n",
       "      <td>663.0</td>\n",
       "      <td>528.0</td>\n",
       "      <td>49</td>\n",
       "      <td>0</td>\n",
       "      <td>7200</td>\n",
       "      <td>1915</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1001 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      1st Flr SF  2nd Flr SF  Total Bsmt SF  Garage Area  Wood Deck SF  \\\n",
       "2641         848         580          712.0        576.0           264   \n",
       "1858        1094         761          528.0        512.0           113   \n",
       "438         1743           0         1739.0        927.0           168   \n",
       "796         1148         568          768.0        281.0             0   \n",
       "1057        1950           0         1950.0        706.0           156   \n",
       "...          ...         ...            ...          ...           ...   \n",
       "1581        1256           0         1256.0        578.0           282   \n",
       "976         1404           0         1188.0        504.0             0   \n",
       "2774        1494           0         1479.0        576.0           168   \n",
       "2737        1836        1836         1836.0        836.0           684   \n",
       "2601         774         821          663.0        528.0            49   \n",
       "\n",
       "      Open Porch SF  Lot Area  Year Built  Yr Sold  \n",
       "2641              0      6451        1900     2006  \n",
       "1858            100      9600        1976     2007  \n",
       "438              45     10367        2008     2009  \n",
       "796               0     11409        1949     2009  \n",
       "1057            207     14418        2007     2008  \n",
       "...             ...       ...         ...      ...  \n",
       "1581              0     18265        1986     2008  \n",
       "976              16     13383        1969     2009  \n",
       "2774             27      9236        1997     2006  \n",
       "2737             80     19800        1935     2006  \n",
       "2601              0      7200        1915     2006  \n",
       "\n",
       "[1001 rows x 9 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_prices = test.iloc[:,0]\n",
    "\n",
    "test_attributes = test.drop(test.columns[0], axis=1)\n",
    "test_attributes"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "318cd63628734ab8b8b643054b9e6da2",
   "metadata": {},
   "source": [
    "Now we use the `best_slopes` from the training set in the test."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "2d5997b883f646cf851a2d736604c788",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.842754Z",
     "iopub.status.busy": "2026-08-31T06:02:24.842681Z",
     "iopub.status.idle": "2026-08-31T06:02:24.859078Z",
     "shell.execute_reply": "2026-08-31T06:02:24.858882Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set RMSE for multiple linear regression: 30564.429912311512\n"
     ]
    }
   ],
   "source": [
    "test_prices = test.iloc[:,0]\n",
    "test_attributes = test.drop(test.columns[0], axis=1)\n",
    "\n",
    "def rmse_test(slopes):\n",
    "    return rmse(slopes, test_attributes, test_prices)\n",
    "\n",
    "rmse_linear = rmse_test(best_slopes)\n",
    "print('Test set RMSE for multiple linear regression:', rmse_linear)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7f5716b1c78463f886485fe865589ba",
   "metadata": {},
   "source": [
    "If the predictions were perfect, then a scatter plot of the predicted and actual values would be a straight line with slope 1. We see that most dots fall near that line, but there is some error in the predictions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "503b9a9b2c2c49439e93f36f3dc19bba",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.860085Z",
     "iopub.status.busy": "2026-08-31T06:02:24.860022Z",
     "iopub.status.idle": "2026-08-31T06:02:24.888850Z",
     "shell.execute_reply": "2026-08-31T06:02:24.888643Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def fit(row):\n",
    "    return sum(best_slopes * np.array(row))\n",
    "\n",
    "test['Fitted'] = test_attributes.apply(fit, axis=1)\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(4,4))\n",
    "\n",
    "ax.scatter(\n",
    "    test['Fitted'], \n",
    "    test['SalePrice'],   \n",
    "    color='navy', \n",
    "    alpha=0.5,\n",
    "    s=10\n",
    ")\n",
    "\n",
    "x_label = 'Fitted'\n",
    "y_label = 'SalePrice'\n",
    "\n",
    "plt.ylabel(y_label)\n",
    "plt.xlabel(x_label)\n",
    "\n",
    "plt.plot([0, 5e5], [0, 5e5], lw=2)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8d01b3433924d108aff53382e47015c",
   "metadata": {},
   "source": [
    "A residual plot for multiple regression typically compares the errors (residuals) to the actual values of the predicted variable. We see in the residual plot below that we have systematically underestimated the value of expensive houses, shown by the many positive residual values on the right side of the graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "e44573f6198f4e079fac947579cbb9c2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.889853Z",
     "iopub.status.busy": "2026-08-31T06:02:24.889790Z",
     "iopub.status.idle": "2026-08-31T06:02:24.917147Z",
     "shell.execute_reply": "2026-08-31T06:02:24.916938Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test['Residual'] = test_prices-test_attributes.apply(fit, axis=1)\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(4,4))\n",
    "\n",
    "ax.scatter(\n",
    "    test['SalePrice'], \n",
    "    test['Residual'],   \n",
    "    color='navy', \n",
    "    alpha=0.5,\n",
    "    s=10\n",
    ")\n",
    "\n",
    "x_label = 'SalePrice'\n",
    "\n",
    "y_label = 'Residual'\n",
    "\n",
    "plt.ylabel(y_label)\n",
    "\n",
    "plt.xlabel(x_label)\n",
    "\n",
    "plt.xticks(rotation=90)\n",
    "\n",
    "plt.plot([0, 7e5], [0, 0], lw=2)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c94bc0efcd4a42039a28f8bf6e7faad6",
   "metadata": {},
   "source": [
    "As with simple linear regression, interpreting the result of a predictor is at least as important as making predictions. There are many lessons about interpreting multiple regression that are not included in this textbook. A natural next step after completing this text would be to study linear modeling and regression in further depth."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "14c98b87e9d7479baf34c99e1748500b",
   "metadata": {},
   "source": [
    "## Nearest Neighbors for Regression\n",
    "\n",
    "Another approach to predicting the sale price of a house is to use the price of similar houses. This *nearest neighbor* approach finds the houses in the training set whose attributes are closest to the house we want to price, and averages their prices. To speed up computation, we will only use the attributes that had the highest correlation with the sale price in our original analysis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "dabf7cae63254cb980acaabb5c26da7f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.918243Z",
     "iopub.status.busy": "2026-08-31T06:02:24.918178Z",
     "iopub.status.idle": "2026-08-31T06:02:24.921664Z",
     "shell.execute_reply": "2026-08-31T06:02:24.921500Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SalePrice</th>\n",
       "      <th>1st Flr SF</th>\n",
       "      <th>2nd Flr SF</th>\n",
       "      <th>Total Bsmt SF</th>\n",
       "      <th>Garage Area</th>\n",
       "      <th>Year Built</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>717</th>\n",
       "      <td>160000</td>\n",
       "      <td>1090</td>\n",
       "      <td>917</td>\n",
       "      <td>917.0</td>\n",
       "      <td>357.0</td>\n",
       "      <td>1900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1189</th>\n",
       "      <td>215000</td>\n",
       "      <td>1620</td>\n",
       "      <td>0</td>\n",
       "      <td>1620.0</td>\n",
       "      <td>578.0</td>\n",
       "      <td>1967</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1218</th>\n",
       "      <td>153000</td>\n",
       "      <td>1118</td>\n",
       "      <td>0</td>\n",
       "      <td>1118.0</td>\n",
       "      <td>264.0</td>\n",
       "      <td>1960</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2328</th>\n",
       "      <td>275000</td>\n",
       "      <td>1742</td>\n",
       "      <td>0</td>\n",
       "      <td>1742.0</td>\n",
       "      <td>564.0</td>\n",
       "      <td>1985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>841</th>\n",
       "      <td>138000</td>\n",
       "      <td>990</td>\n",
       "      <td>0</td>\n",
       "      <td>990.0</td>\n",
       "      <td>480.0</td>\n",
       "      <td>1994</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1432</th>\n",
       "      <td>144000</td>\n",
       "      <td>1099</td>\n",
       "      <td>0</td>\n",
       "      <td>1099.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>1995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2158</th>\n",
       "      <td>219500</td>\n",
       "      <td>847</td>\n",
       "      <td>1081</td>\n",
       "      <td>847.0</td>\n",
       "      <td>434.0</td>\n",
       "      <td>2003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>193</th>\n",
       "      <td>87000</td>\n",
       "      <td>765</td>\n",
       "      <td>0</td>\n",
       "      <td>765.0</td>\n",
       "      <td>200.0</td>\n",
       "      <td>1925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1491</th>\n",
       "      <td>108000</td>\n",
       "      <td>996</td>\n",
       "      <td>0</td>\n",
       "      <td>996.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1940</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>787</th>\n",
       "      <td>122000</td>\n",
       "      <td>1383</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>498.0</td>\n",
       "      <td>1954</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1001 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      SalePrice  1st Flr SF  2nd Flr SF  Total Bsmt SF  Garage Area  \\\n",
       "717      160000        1090         917          917.0        357.0   \n",
       "1189     215000        1620           0         1620.0        578.0   \n",
       "1218     153000        1118           0         1118.0        264.0   \n",
       "2328     275000        1742           0         1742.0        564.0   \n",
       "841      138000         990           0          990.0        480.0   \n",
       "...         ...         ...         ...            ...          ...   \n",
       "1432     144000        1099           0         1099.0        352.0   \n",
       "2158     219500         847        1081          847.0        434.0   \n",
       "193       87000         765           0          765.0        200.0   \n",
       "1491     108000         996           0          996.0          0.0   \n",
       "787      122000        1383           0            0.0        498.0   \n",
       "\n",
       "      Year Built  \n",
       "717         1900  \n",
       "1189        1967  \n",
       "1218        1960  \n",
       "2328        1985  \n",
       "841         1994  \n",
       "...          ...  \n",
       "1432        1995  \n",
       "2158        2003  \n",
       "193         1925  \n",
       "1491        1940  \n",
       "787         1954  \n",
       "\n",
       "[1001 rows x 6 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_nn = train.iloc[:, [0, 1, 2, 3, 4, 8]]\n",
    "test_nn = test.iloc[:, [0, 1, 2, 3, 4, 8]]\n",
    "train_nn"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f6cc52b7ae94f83a0eda2a2ff777a5e",
   "metadata": {},
   "source": [
    "To find the closest houses, we compute the distance between houses using their attributes, leaving out `'SalePrice'`, the value we want to predict. The five nearest neighbors of the first test row are shown below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "415e3331faab4a0a81cb78b634eebcab",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.922643Z",
     "iopub.status.busy": "2026-08-31T06:02:24.922584Z",
     "iopub.status.idle": "2026-08-31T06:02:24.943232Z",
     "shell.execute_reply": "2026-08-31T06:02:24.943032Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SalePrice</th>\n",
       "      <th>1st Flr SF</th>\n",
       "      <th>2nd Flr SF</th>\n",
       "      <th>Total Bsmt SF</th>\n",
       "      <th>Garage Area</th>\n",
       "      <th>Year Built</th>\n",
       "      <th>Distance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>190</th>\n",
       "      <td>140750</td>\n",
       "      <td>868</td>\n",
       "      <td>602</td>\n",
       "      <td>738.0</td>\n",
       "      <td>624.0</td>\n",
       "      <td>1922</td>\n",
       "      <td>65.939366</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>188</th>\n",
       "      <td>125500</td>\n",
       "      <td>741</td>\n",
       "      <td>622</td>\n",
       "      <td>622.0</td>\n",
       "      <td>528.0</td>\n",
       "      <td>1910</td>\n",
       "      <td>154.003247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1348</th>\n",
       "      <td>128000</td>\n",
       "      <td>751</td>\n",
       "      <td>611</td>\n",
       "      <td>611.0</td>\n",
       "      <td>502.0</td>\n",
       "      <td>1920</td>\n",
       "      <td>162.625336</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013</th>\n",
       "      <td>126000</td>\n",
       "      <td>861</td>\n",
       "      <td>548</td>\n",
       "      <td>861.0</td>\n",
       "      <td>528.0</td>\n",
       "      <td>1938</td>\n",
       "      <td>164.748293</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2878</th>\n",
       "      <td>108000</td>\n",
       "      <td>897</td>\n",
       "      <td>439</td>\n",
       "      <td>637.0</td>\n",
       "      <td>570.0</td>\n",
       "      <td>1920</td>\n",
       "      <td>168.353794</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      SalePrice  1st Flr SF  2nd Flr SF  Total Bsmt SF  Garage Area  \\\n",
       "190      140750         868         602          738.0        624.0   \n",
       "188      125500         741         622          622.0        528.0   \n",
       "1348     128000         751         611          611.0        502.0   \n",
       "2013     126000         861         548          861.0        528.0   \n",
       "2878     108000         897         439          637.0        570.0   \n",
       "\n",
       "      Year Built    Distance  \n",
       "190         1922   65.939366  \n",
       "188         1910  154.003247  \n",
       "1348        1920  162.625336  \n",
       "2013        1938  164.748293  \n",
       "2878        1920  168.353794  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def distance(pt1, pt2):\n",
    "    \"\"\"The distance between two points, represented as arrays.\"\"\"\n",
    "    return np.sqrt(np.sum((pt1 - pt2) ** 2))\n",
    "    \n",
    "def row_distance(row1, row2):\n",
    "    \"\"\"The distance between two rows of a table.\"\"\"\n",
    "    return distance(np.array(row1), np.array(row2))\n",
    "\n",
    "def distances(training, example, output):\n",
    "    \"\"\"Compute the distance from example for each row in training.\"\"\"\n",
    "    dists = []\n",
    "    attributes = training.drop(columns=[output])\n",
    "    for row in range(len(attributes)):\n",
    "        dists.append(row_distance(attributes.iloc[row], example))\n",
    "    training['Distance'] = dists\n",
    "    #print(training)\n",
    "    return training\n",
    "\n",
    "def closest(training, example, k, output):\n",
    "    \"\"\"Return a table of the k closest neighbors to example.\"\"\"\n",
    "    distance = distances(training, example, output).sort_values(by=['Distance']).take(np.arange(k))\n",
    "    return distance\n",
    "\n",
    "train_nn_A = train_nn.copy()\n",
    "example_nn_row = test_nn.drop(test_nn.columns[0], axis=1).iloc[0]\n",
    "closest(train_nn_A, example_nn_row, 5, 'SalePrice')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0dde1b6cd82544378d04486e28e05f26",
   "metadata": {},
   "source": [
    "One simple method for predicting the price is to average the prices of the nearest neighbors."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "06cfef698fef415dbecd851947f8ae23",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.944193Z",
     "iopub.status.busy": "2026-08-31T06:02:24.944135Z",
     "iopub.status.idle": "2026-08-31T06:02:24.945982Z",
     "shell.execute_reply": "2026-08-31T06:02:24.945791Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1st Flr SF        848.0\n",
       "2nd Flr SF        580.0\n",
       "Total Bsmt SF     712.0\n",
       "Garage Area       576.0\n",
       "Year Built       1900.0\n",
       "Name: 2641, dtype: float64"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "example_nn_row"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "325a1ab946a048129b7b5ea0e34a1a78",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.946857Z",
     "iopub.status.busy": "2026-08-31T06:02:24.946798Z",
     "iopub.status.idle": "2026-08-31T06:02:24.965354Z",
     "shell.execute_reply": "2026-08-31T06:02:24.965177Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "np.float64(125650.0)"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def predict_nn(example):\n",
    "    \"\"\"Predict the price as the average price of the 5 nearest neighbors.\"\"\"\n",
    "    train_nn_B = train_nn.copy()\n",
    "    \n",
    "    col_sales_price = closest(train_nn_B, example, 5, 'SalePrice')\n",
    "    return np.average(col_sales_price['SalePrice'])\n",
    "\n",
    "predict_nn(example_nn_row)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "983448d3121947de95b1f788c80f6476",
   "metadata": {},
   "source": [
    "Finally, we can inspect whether our prediction is close to the true sale price for our one test example. Looks reasonable!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "4746727358ef4cc182d6176696323806",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.966301Z",
     "iopub.status.busy": "2026-08-31T06:02:24.966242Z",
     "iopub.status.idle": "2026-08-31T06:02:24.984385Z",
     "shell.execute_reply": "2026-08-31T06:02:24.984237Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Actual sale price: 139900\n",
      "Predicted sale price using nearest neighbors: 125650.0\n"
     ]
    }
   ],
   "source": [
    "print('Actual sale price:', test_nn['SalePrice'].iloc[0])\n",
    "print('Predicted sale price using nearest neighbors:', predict_nn(example_nn_row))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b55eb7e636cf48c1ba575c85532f6688",
   "metadata": {},
   "source": [
    "### Evaluation\n",
    "\n",
    "To evaluate the performance of this approach for the whole test set, we apply `predict_nn` to each test example, then compute the root mean squared error of the predictions. Computation of the predictions may take several minutes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "27cfab0996fd43348178b39e453eda1c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:24.985294Z",
     "iopub.status.busy": "2026-08-31T06:02:24.985242Z",
     "iopub.status.idle": "2026-08-31T06:02:25.003716Z",
     "shell.execute_reply": "2026-08-31T06:02:25.003511Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "125650.0"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def predict_nn(example):\n",
    "    \"\"\"Predict the price as the average price of the 5 nearest neighbors.\"\"\"\n",
    "    train_nn_B = train_nn.copy()\n",
    "    \n",
    "    col_sales_price = closest(train_nn_B, example, 5, 'SalePrice')\n",
    "    return np.average(col_sales_price['SalePrice']).item(0)\n",
    "\n",
    "predict_nn(example_nn_row)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "c657f99b25f54f9bb9237f7911b6185a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:25.004666Z",
     "iopub.status.busy": "2026-08-31T06:02:25.004611Z",
     "iopub.status.idle": "2026-08-31T06:02:41.930810Z",
     "shell.execute_reply": "2026-08-31T06:02:41.930363Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set RMSE for multiple linear regression:  30564.429912311512\n",
      "Test set RMSE for nearest neighbor regression: 31595.90871162731\n"
     ]
    }
   ],
   "source": [
    "test_nn_C = test_nn.copy()\n",
    "test_nn_drop = test_nn_C.drop(columns=['SalePrice'])\n",
    "\n",
    "nn_test_predictions = test_nn_drop.apply(predict_nn, axis=1)\n",
    "rmse_nn = np.mean((test_prices - nn_test_predictions) ** 2) ** 0.5\n",
    "\n",
    "print('Test set RMSE for multiple linear regression: ', rmse_linear)\n",
    "print('Test set RMSE for nearest neighbor regression:', rmse_nn)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e3f0686b1da45389662c11a75374c6d",
   "metadata": {},
   "source": [
    "For these data, the errors of the two techniques are quite similar! For different data sets, one technique might outperform another. By computing the RMSE of both techniques on the same data, we can compare methods fairly. One note of caution: the difference in performance might not be due to the technique at all; it might be due to the random variation due to sampling the training and test sets in the first place.\n",
    "\n",
    "Finally, we can draw a residual plot for these predictions. Like the linear model, nearest neighbors underestimates the prices of the most expensive houses: the residuals grow as the sale price increases. Few training houses are that expensive, so the nearest neighbors of an expensive house tend to be cheaper houses. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "445befff424444bfbcd596b1b6582f03",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:41.932736Z",
     "iopub.status.busy": "2026-08-31T06:02:41.932642Z",
     "iopub.status.idle": "2026-08-31T06:02:41.962150Z",
     "shell.execute_reply": "2026-08-31T06:02:41.961910Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test['Residual'] = test_prices-nn_test_predictions\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(4,4))\n",
    "\n",
    "ax.scatter(\n",
    "    test['SalePrice'], \n",
    "    test['Residual'],   \n",
    "    color='red', \n",
    "    alpha=0.5,\n",
    "    s=5\n",
    ")\n",
    "\n",
    "x_label = 'SalePrice'\n",
    "y_label = 'Residual'\n",
    "plt.ylabel(y_label)\n",
    "plt.xlabel(x_label)\n",
    "plt.xticks(rotation=90)\n",
    "plt.plot([0, 7e5], [0, 0], lw=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "368b94d733794554a2121c8c1650d379",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "cell-e103a1c9",
   "metadata": {},
   "source": [
    "\n",
    "## Section Practice\n",
    "\n",
    "Use this short exercise to check the main workflow from this section.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "cell-1383ec4b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:41.963315Z",
     "iopub.status.busy": "2026-08-31T06:02:41.963252Z",
     "iopub.status.idle": "2026-08-31T06:02:41.964799Z",
     "shell.execute_reply": "2026-08-31T06:02:41.964601Z"
    },
    "tags": [
     "thebe-interactive"
    ]
   },
   "outputs": [],
   "source": [
    "### Exercise: Practice Multiple Regression\n",
    "# A model produced the predictions and actual values below.\n",
    "# Calculate each error as actual minus predicted. Then print the mean absolute error.\n",
    "predicted = [98, 105, 110, 120]\n",
    "actual = [100, 102, 114, 119]\n",
    "### Your code starts here\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "### Your code ends here\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "cell-fb6abf59",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-31T06:02:41.965714Z",
     "iopub.status.busy": "2026-08-31T06:02:41.965648Z",
     "iopub.status.idle": "2026-08-31T06:02:41.967332Z",
     "shell.execute_reply": "2026-08-31T06:02:41.967147Z"
    },
    "tags": [
     "hide-input"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2, -3, 4, -1]\n",
      "2.5\n"
     ]
    }
   ],
   "source": [
    "### Solution\n",
    "predicted = [98, 105, 110, 120]\n",
    "actual = [100, 102, 114, 119]\n",
    "errors = [a - p for a, p in zip(actual, predicted)]\n",
    "mean_absolute_error = sum(abs(error) for error in errors) / len(errors)\n",
    "print(errors)\n",
    "print(mean_absolute_error)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "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.13.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
