diff --git a/notebooks/lectures/Model_Validation/copy.txt b/notebooks/lectures/Model_Validation/copy.txt new file mode 100644 index 00000000..c8491806 --- /dev/null +++ b/notebooks/lectures/Model_Validation/copy.txt @@ -0,0 +1 @@ +Given data with many different dimensions, deciding which ones to include is a non-trivial task. Including too many increases the risk of overfitting and multicollinearity while too few means your model might miss out on important relationships. The next important step, once you have selected your model, is to determine whether or not it is well-founded. This lecture provides a brief overview of the methods and criteria behind model selection and validation. diff --git a/notebooks/lectures/Model_Validation/notebook.ipynb b/notebooks/lectures/Model_Validation/notebook.ipynb new file mode 100644 index 00000000..8df58f53 --- /dev/null +++ b/notebooks/lectures/Model_Validation/notebook.ipynb @@ -0,0 +1,1165 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#Model Selection and Validation\n", + "By Chris Fenaroli, Max Margenot, and Delaney Granizo-Mackenzie\n", + "\n", + "Part of the Quantopian Lecture Series:\n", + "\n", + "* [www.quantopian.com/lectures](https://www.quantopian.com/lectures)\n", + "* [github.com/quantopian/research_public](https://github.com/quantopian/research_public)\n", + "\n", + "Notebook released under the Creative Commons Attribution 4.0 License.\n", + "\n", + "---\n", + "Linear regression is a technique that models the relationship between a set of independent variables $X_1,\\ldots, X_k$ and a dependent outcome variable $Y$. Simple linear regression with two variables allows us to determine which linear model of the form $Y = \\beta_0 + \\beta_1 X$ best explains the data, while a multiple linear regression allows for the dependent variable to be a linear function of multiple independent variables $X_1,\\ldots, X_k$: \n", + "\n", + "$$ Y = \\beta_0 + \\beta_1 X_1 + \\ldots + \\beta_k X_k + \\epsilon_i $$\n", + "\n", + "More background information on regressions can be found in the [simple linear regression](https://www.quantopian.com/lectures#Linear-Regression) and [multiple linear regression](https://www.quantopian.com/lectures#Multiple-Linear-Regression) lectures.\n", + "\n", + "In many cases, choosing which explanatory variables to include in a model is not trivial. If you include too many variables $X_1,\\ldots, X_k$ you risk overfitting and multicollinearity (correaltion of explanatory variables) which would invalidate your regression results. With too few variables you risk excluding predictive interactions. **Model selection** is the process of determining which combination of explanatory variables maximizes explanatory power and minimizes complexity. \n", + "\n", + "Once we have chosen our model fitted the data using an estimation method like OLS, it would be useful to quantify just how \"good\" our end-result model is. But what exactly makes a model \"good\"? Is it how well it fits the data? It's simplicity/complexity? Or is it how well it performs when applied to out-of-sample data? **Model validation** is the process of determining how well-founded a model is and whether it is a satisfactory explanation for the given data." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Import libraries\n", + "import numpy as np\n", + "import pandas as pd\n", + "from statsmodels import regression\n", + "import statsmodels.api as sm\n", + "import statsmodels.stats.diagnostic as smd\n", + "import scipy.stats as stats\n", + "import matplotlib.pyplot as plt\n", + "import math" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Selection\n", + "\n", + "When presented with many possible explanatory variables, choosing which to include in a regression model can be a difficult task. Luckily, there exists a variety of strategies and criteria that simplify model selection. \n", + "\n", + "As an example, let's attempt to model the US unemployment rate with US inflation rate, gold prices, USD vs. EUR exchange rate, and two ETFs that track the Russel-2000 and NASDAQ-100 indices as potential explanatory variables. All of these macro indicators are available as free [Quantopian Data Feeds](https://www.quantopian.com/data).\n", + "\n", + "Let's begin by pulling the above as Blaze expressions." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [], + "source": [ + "from quantopian.interactive.data.quandl import fred_unrate as unemployment_bz\n", + "from quantopian.interactive.data.quandl import rateinf_inflation_usa as inflation_bz\n", + "from quantopian.interactive.data.quandl import bundesbank_bbk01_wt5511 as gold_bz\n", + "from quantopian.interactive.data.quandl import currfx_usdeur as fx_bz\n", + "\n", + "import blaze as bz\n", + "from odo import odo" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's migrate the data into Pandas series using `asof_date` as our index keeping in mind that:\n", + "\n", + "* The specific inflation and unemployment datasets we are using have one month intervals, so time index intervals cannot be anything smaller than monthly\n", + "* The unemployment data is released at the start of the month after the relevant month and inflation rate data is released ~3 weeks after so we must shift both back a month from the asof_date to prevent look-ahead bias\n", + "* Gold prices must be shifted back one day from asof_date to prevent look-ahead bias\n", + "* Equity pricing data only goes back to 2002, so we can only consider data from 2002 on\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [], + "source": [ + "# Start date dictated by QQQ and IWM (tickers of index-tracking ETFs)\n", + "start = '2002-01-01'\n", + "end = '2017-01-01'\n", + "\n", + "# Sample period will be 2002-2012, saving 2012-2017 for model validation\n", + "s = '2002-01-01'\n", + "e = '2012-01-01'\n", + "\n", + "index = pd.date_range(start=start, end = end, freq= 'MS')\n", + "\n", + "# Migrating Blaze expressions into Pandas DataFrames and setting index\n", + "unemployment = odo(unemployment_bz, pd.DataFrame).set_index(['asof_date'])\n", + "inflation = odo(inflation_bz, pd.DataFrame)\n", + "inflation = inflation.set_index(inflation['asof_date'] + pd.Timedelta('1 days'))\n", + "gold = odo(gold_bz[gold_bz.asof_date >= start], pd.DataFrame).set_index(['asof_date'])\n", + "fx = odo(fx_bz, pd.DataFrame).set_index(['asof_date'])\n", + "qqq = get_pricing('QQQ', start_date=start, end_date=end, fields = 'price')\n", + "iwm = get_pricing('IWM', start_date=start, end_date=end, fields = 'price')\n", + "\n", + "# Adjusting data along points mentioned above\n", + "unemployment = unemployment.shift().loc[index].ffill()['value'][1:];\n", + "inflation = inflation.shift().loc[index].ffill()['value'][1:];\n", + "gold = gold['value'].sort_index().asof(index).ffill()[1:];\n", + "fx = fx['rate'].sort_index().asof(index).ffill()[1:];\n", + "qqq = qqq.asof(index).ffill()[1:];\n", + "iwm = iwm.asof(index).ffill()[1:];" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we have data for on independent variable and 5 predictor variables. If we were to include every one of these preditors, our model would look like:\n", + "\n", + "$$ Y_{unrate} = \\beta_0 + \\beta_1 X_{inflation} + \\beta_2 X_{gold} + \\beta_3 X_{FX} + \\beta_4 X_{qqq} + \\beta_5 X_{iwm} + \\epsilon_i $$\n", + "\n", + "The next step is to figure out which predictors to include in our model. We could include every single predictor we have, but we would not be sure if every predictor was significant. Adding many insignificant predictors causes a few different issues. If there are more predictors there is a larger chance that the predictors themselves are correalted with each other which would lead to regression model instability and invalidate our results. Furthermore, including many regressors hurts the predictive power of a model. A solution might be to include as few variables as possible, but we would likely exclude some explanatory effects this way. Let's look at some ways to find this balance and determine which variables to include." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Model Selection Criteria\n", + "\n", + "There exist a number of metrics we can use to asses the relative and absolute strength of a specfic model. The ones we will focus on are $R^2$, adjusted $R^2$, AIC, and BIC." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Primer on Sum of Squares ($SS_{err}$, $SS_{reg}$, and $SS_{total}$)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The residual sum of squares ($RSS$ or $SS_{err}$) measures the variation in the difference between modelled values and observed values (residuals). The explained sum of squares ($SSR$ or $SS_{reg}$) measures the variation of model values. Finally, the total sum of squares ($SST$ or $SS_{tot}$) measures the variation in the observed data.\n", + "\n", + "\n", + "$$SS_{err} = \\sum_{i=1}^{n}{(Y_i - \\hat{Y_i})^2}\\:\\:\\:\\:\\:\\:\\:SS_{reg} = \\sum_{i=1}^{n}{(\\hat{Y_i} - \\bar{Y_i})^2}\\:\\:\\:\\:\\:\\:\\:SS_{tot} = \\sum_{i=1}^{n}{(Y_i - \\bar{Y_i})^2}$$\n", + "\n", + "Where $Y_i$ are observed sample values, $\\hat{Y_i}$ are the model values and $\\bar{Y}$ is the sample mean.\n", + "\n", + "In cases of simple linear regression, the following is generally true:\n", + "\n", + "$$ SS_{tot} = SS_{reg} + SS_{err} $$\n", + "\n", + "For more intuition on their relationship, look at the graph below. Change the value of $p$ to choose which point to see squared error, regression, and total values for." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n/SpUqMArr7zC7NmzU33JfuONN8znO9zPy8sLW1tbDh8+zN27d9m7d6/5C15mL4batm3bVP3jxIkT\nfP/99xm2t7GxISwsjEmTJvGf//yHO3fuAHDt2jXmzJlDcnIynTp1ytR9p6dPnz6cP3+eL7/8ksTE\nRMLCwpg3bx516tTJcJTjXrGxsXTq1Illy5YRFxeH0Wg0vx73Hs72IJnpi19//TWXLl0iNjaWhQsX\n4uzsnOraVCke9f2UldpS1hUuXJhnn32WBQsW8Oeff5KcnMzBgwfp2bMn27ZtA0yHnP7555/ExsZy\n6dIlpk6dipeXV6ownNVz7wCaN29O5cqVefvtt7l27RqJiYmsWbOGbt26ERoaisFgoE2bNqxevZor\nV64QHR3NrFmzzO/ljPTv358bN27g7+9PTEwMERERvP322wwdOhQwHWLarVs386QLMTExnDhxwnwO\n0LPPPsu8efOIjo4GTKE6MjIy3XOEHvVz6lGeLxHJGh0aJ5LP2dvbs2bNGgICAnj99de5fv06SUlJ\nlCxZEl9fX+bNm2c+JMNgMGT6V/8qVaowadIkPv/8cz7++GOaNm3K2LFjee2111LtL0XdunWZO3cu\nn332GXPmzMHV1ZWWLVvyxhtvPPB+BgwYwBdffMH+/fspXLgwU6dOpUGDBuZtsbGxvPfee1y5coWS\nJUvi5+fHiy++aL59erNj3evedc2aNaN69eo8++yzPPfcc+YZpDJqf68JEyawa9cupk2bxvz586lS\npQqrV69myZIlDBkyhNu3bwOmYOLn58eQIUPMt7148aJ5+/2y8vpl5LnnnuOnn35i4sSJrFmzBhsb\nGy5fvpzhY3niiSd48803WbRoER999BGNGzdm5syZzJgxg+nTp2fqEB5vb28++OADFixYwEcffUSN\nGjUYNWoUEyZMyPA2s2fP5quvvmLBggVMmjSJuLg43NzcaNiwIevWrUv38M3M9tdq1aqxaNEiFi5c\nSEBAgHmygvRe4/Q4OTkREBDA3Llz+fTTT83ndHzwwQdUrlyZS5cuPfT987BaUw4ne/nll/nnn3/w\n9PTk888/N3+pf9z304Pqe9h7Y/LkyRQqVIiXXnqJO3fu4OXlxSuvvGI+THPixIlMmjSJZs2aUbp0\naV5//XXi4+OZMmUKw4cP56WXXsrUa3V/m5RJR2bPnk3Xrl0xGAw8+eSTfPHFF+bzjSZPnswbb7xB\np06dKFWqFGPGjOH8+fMP7KelS5cmICCAjz/+mOXLl1O4cGEaNGjA4sWLAejevTuXL19m/Pjx3Lx5\n07w95ceDRYsWMXPmTNq0aUNSUhKenp6MHTuWli1bpnkcWf2cetA6EcleBqMFf3I4cOAA48aNo0qV\nKhiNRqpVq2a+LgCYfjH08vIyfzjPnTvXPFOMiOR+iYmJqY67//bbb3nrrbc4duxYtlyw0Nvbm/fe\ne++hs43lddu2beP69eupwpGl/fHHH/zwww/ma62IdR04cIDnnnuOHTt2ZHmiAzEd1nbv+Udt27al\nV69ejBkzxopViUhuZ/ERIR8fHz755JN0txkMBpYsWZKla1uISO5w7do12rVrx4QJE/Dz8yMsLIwV\nK1bQunVrXbU9i7Zv326efCGnbNu2LUuzyInl6VCoR/Pee++ZJywoUaIEGzduJCwszDy1uIhIRiwe\nhB70wZ4y/aaI5D0eHh58/PHHzJ8/n08++cR8qNHrr7+ebfdRUA4NyejHIkt62CGJkvMKSn/PbuPH\njycmJoZevXoRHx9PuXLlzIdjiog8iMUPjXvnnXcoX748ERERjB49mmbNmpm3t23bloYNGxIaGkrD\nhg0f+SRPERERERGRrLBoEAoLC+Pw4cN06dKFixcvMmTIEH788Ufs7EwDUZs3b6Zly5YULVqUUaNG\n0atXLzp27Jjh/oKDgy1VqoiIiIiI5BMpEys9iEUPjStZsqR5mtuyZctSokQJwsLCzNdE6NGjh7lt\nq1atOH369AODEGTuQUn+FhwcrH4ggPqCmKgfCKgfiIn6gUDmB08seh2hwMBAFixYAMDNmzcJDw+n\nZMmSgOnK5YMHDyY+Ph6AQ4cOUaVKFUuWIyIiIiIiAlh4RKht27ZMmDCBAQMGYDQamT59OoGBgbi6\nutK+fXs6depEv379cHZ2pnr16o91sTwREREREZHMsmgQcnZ2JiAgIMPtfn5++Pn5WbIEEREREZE8\nx2g0mo+ckow5ODg88qybFj00TkREREREsi4+Pl5B6CEe9zmy+HWEREREREQk6xwcHHB0dLR2GfmW\nRoRERERERKTAURASEREREZECR0FIREREREQKHAUhERERERFJ12effYa/v7952Wg00rNnT06fPm3F\nqrKHgpCIiIiIiKTrhRdeYMeOHVy7dg2AjRs3UqdOHapWrWrlyh6fZo0TEREREZF0OTg4MGrUKPz9\n/Zk+fTpfffUVK1euTLftpUuXmDhxIuXKlePIkSP079+fU6dOcfz4cQYOHMjAgQM5dOgQ/v7+FCpU\nCE9PT2bMmIHBYOCNN94gLCyMuLg4xowZg6+vL35+fjRv3px9+/Zx+/ZtAgICKFWqVLY9NgUhERER\nEZFc7uTJk1y+fDlb9+nl5UWNGjUe2q579+6sXLmSqVOn0qtXL9zd3TNs+9dff/HZZ59x69Ytnn76\naX755Rfi4uIYO3YsAwcOZObMmSxfvhw3Nzc+/PBDtm/fTrNmzWjRogU9e/YkNDSUsWPH4uvrC4Cr\nqyvLli1j3rx57NixgyFDhmTb41cQEhERERGRBxo/fjwTJ05k9uzZD2xXrlw53NzcsLOzo0SJEjzx\nxBPcuXOHqKgobt68yblz5xgzZgxGo5G4uDjc3d1xc3Pj+PHjrFu3DhsbGyIiIsz7a9CgAQClSpXi\n9u3b2fqYFIRERERERHK5GjVqZGr0xlLKli2Lh4cHhQoVemA7W1vbdP82Go3Y29tTsmRJvv7661S3\n2bRpExEREaxZs4Zbt27x7LPPmrfZ2dml2kd20mQJIiIiIiLyUJkJIve2ub+9q6srBoOBM2fOALBy\n5UpOnTrFrVu3KFOmDABBQUEkJiZmY9UZ04iQiIiIiIg8lMFgyFKb9Nq/9957TJ48GXt7ezw8POjX\nrx8uLi78+9//5vDhw/Tu3ZtSpUqxcOHCTN3f4zAYs3uMyYKCg4PNxwlKwaV+ICnUFwTUD8RE/UAg\nf/WDuLg4ABwdHa1cSe6V0XOU2X6gESEREREREcm09evXExgYaB6xMRqNGAwGJkyYQJ06daxcXeYp\nCImIiIiISKb17duXvn37WruMx6bJEkREREREpMBREBIRERERkQJHQUhERERERAocBSERERERESlw\nFIRERERERMQifv31VyZPnpzh9gULFrBq1aocrOh/FIRERERERKTA0fTZIiIiIiKSru+++44DBw5w\n69Ytzpw5wyuvvMKWLVs4e/YsH374IUePHmXr1q0AtGvXjmHDhnH69GneeOMNihYtStmyZc37WrVq\nFVu2bMHW1pb27dszdOhQKz0qEwUhEREREZG8oEKF9NefO5c97TNw4cIFVq1axYYNG1i8eDGbNm3i\nm2++ISAggKtXr/LNN9+QnJxMnz596Ny5M4sWLWLs2LG0adOGt99+G4DQ0FCCgoJYs2YNAP3796dz\n585ZqiO7KQiJiIiIiEiGatWqBcATTzxBtWrVMBgMlChRglOnTtGqVSsMBgO2trbUr1+fv/76izNn\nzlC3bl0AfHx8+O233/jjjz84f/48Q4YMwWg0EhsbS2hoqDUfloKQiIiIiEiekMWRnCy3z4CtrW26\nf0dERGA0Gs3LCQkJGAwGAGxsTFMRpGy3t7endevWvPPOO6n2vW/fvmyp8VFosgQREREREcmyDh06\ncPToUZKTk7l79y7Hjx+nZs2aVKxYkePHjwOwf/9+AGrWrMn+/fuJi4vDaDQyc+ZMEhISrFm+RoRE\nREREROTR9O3bl0GDBmE0GunTpw+enp6MHDmSyZMns2LFCkqXLk1iYiKenp4MGTKEQYMGYWdnR/v2\n7bG3t7dq7QbjveNZuVxwcDANGjSwdhliZeoHkkJ9QUD9QEzUDwTyVz+Ii4sDwNHR0cqV5F4ZPUeZ\n7Qc6NE5ERERERAocBSERERERESlwFIRERERERKTAURASEREREZECR0FIREREREQKHAUhEREREREp\ncBSERERERETkoe7cuUPbtm0z3L5jx44crObxKQiJiIiIiMhDGY1GDAZDuttCQ0PZsmVLDlf0eOys\nXYCIiIhIfjJ//ny+++477Ozs6NatG+PGjbN2SVJAxMbG8u677xIeHk7nzp155plnHnuf0dHRjB07\nloSEBOrXrw9AYGAgK1asoFChQlSuXJl3332XGTNmcPz4cRYtWkTv3r157bXXsLGx4e7du7z//vuU\nLVv2sWvJbhoREhEREckm33//PXv27CEoKIjAwEBOnDhBSEiItcuSAsBoNNKnTx/ef/99Fi9ezNCh\nQ1m3bt1j7/f777+natWqrFy5Em9vb4xGI/Hx8SxZsoRVq1YREhLC33//zYsvvkijRo0YNWoU169f\nZ8yYMSxfvpzevXuzevXqbHiE2U8jQiIiIlIgHThwgBkzZtCiRQt++eUX7t69y0cffcRTTz31yPv8\n9ttveeGFF7C3twfgiy++yK5yRR7o1q1b7N6927wcGRnJ1q1b6dev32Pt98yZM/j4+ADQuHFjAFxd\nXRk9erR5++3bt1PdpkSJEgQEBPDpp58SGRlJzZo1H6sGS9GIkIiIiBRYZ8+epU6dOmzfvp0RI0Yw\nffr0NG22bt1Kly5d6Nq1K127djX/nd75EH/99RehoaH06dOHbt26sWzZshx4FCLg7OxMkSJFUq1z\ncXF57P0ajUZsbEyRITk5mcTERGbMmMEnn3zCihUr0v3h4JNPPqFly5asXLnSHJhyI40IiYiISIHl\n7OxM584suP4cAAAgAElEQVSdAejUqRNvvfUW8fHxODg4mNukBKDMiIqK4tSpU6xZs4awsDD69+9P\ntWrVaNq0qUXqF0nh4ODA1KlTmT59Ojdu3KBJkya8++67j73fihUrcvz4cTp06MD+/fuJiYnB1dUV\nd3d3rly5wvHjx0lMTMTe3p6kpCTANDpVrlw5AH766SeMRuNj12EJGhESERGRAsvNzS3V30ajkcjI\nyEfen4uLC8888wx2dnaULl2aTp068fvvv2dHqSIPNWzYMP766y9Onz7NL7/8QvHixR97nz179uTo\n0aM8//zzhISEUKxYMZo1a8azzz7L/PnzGTZsGLNnz6Zy5cqcPHmS999/nwEDBvDuu+/y4osv8vTT\nT3Pw4EH27NmTDY8we2lESERERAqse89tiIiIwGAwpDm8aOvWrXz66afmaYNTphAeNWoU3bp1S9W2\ndOnSREdHm5dtbW2xtbW14CMQSc3NzS1VwH9crq6ufP311+bll19+OU2boUOHAvCf//zHvM7X19f8\n986dO7OtnuykICQiIiIFVlxcHD///DPt2rVj+/bt1KpVyzzRQYqsHBrXpUsXvv76a3x9fYmOjubH\nH39k1qxZlihdRB6TgpCIiIgUWF5eXgQHB/Phhx+SmJjI/PnzH2t/L7zwAhcvXqRDhw44OTnh5+dH\nkyZNsqlaEclOCkIiIiJSYBkMBiZOnMjEiROzZX+2trbZcoK6iFieRYPQgQMHGDduHFWqVMFoNFKt\nWjWmTp1q3r5nzx78/f2xtbWlVatWjBo1ypLliIiIiIiIADkwIuTj48Mnn3yS7raZM2eydOlSPDw8\nGDx4MJ06daJy5cqWLklERERERAo4iwehjOYNv3jxIkWLFqVkyZKAaWaJffv2KQiJiIhIjvDx8SEo\nKMjaZYhkyuNO7Z4eNzc382yIBZHFg9CZM2cYNWoUERERjB49mmbNmgFw48YN3N3dze3c3d25ePGi\npcsREREREclzIiMjCQiIwtHRNVv2FxcXxciRpJkuPj2rVq3i+++/x97envj4eMaPH58vLhJs0SBU\nvnx5xowZQ5cuXbh48SJDhgzhxx9/xM4u7d1m9oqzwcHB2V2m5EHqB5JCfUFA/UBM1A8E8lc/qFmz\n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\ngaqyj4Phw4cXHWGXUPZxQJVxQLLzkyc1XRq3YcOGXHrppbn22mvTpUuXbc5NmjQpmzdvTpIsXrw4\nhxxySC3jAAAAJKnxjNA999yT9evXZ9q0aVs2STjqqKPSt2/fjBgxIqNHj8748ePTuXPn9OvXL6NH\nj65lHAAAgCQ1LkLjxo3LuHHjtnt+8uTJmTx5ci0jAAAAbKOmS+MAAAB2RYoQAABQOooQAABQOooQ\nAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQ\nOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQ\nAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQ\nOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQ\nAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOrvV+g3mzJmTJ554Im+99VZOO+20jBw5\ncsu5hQsX5oorrkjHjh0zdOjQNDc31zoOAABAbYvQ448/nmeffTYtLS1Zv359TjzxxK2K0EUXXZQf\n//jHaWpqyqRJkzJ69OgcfPDBtYwEAABQ2yI0aNCg9O/fP0myzz77ZNOmTalUKmloaMjzzz+fbt26\npXv37kmSYcOG5bHHHlOEAACAmqvpPUIdOnTIXnvtlSS55ZZbMmzYsDQ0NCRJ1qxZk8bGxi3XNjY2\nZvXq1bWMAwAAkKQN7hFKkvvvvz+33XZb5s+fv91rKpXKTr1Wa2vrhxWLOmYc8L+MBRLjgCrjgMQ4\nYOfVvAg98sgjmTdvXubPn5+99957y/NNTU156aWXthy/+OKLaWpqetfXGzBgQE1yUj9aW1uNA5IY\nC1QZByTGAVXGAcnOl+GaLo3bsGFDLr300lx77bXp0qXLVucOOuigbNy4MatWrcqbb76Zhx56KEcf\nfXQt4wAAACSp8YzQPffck/Xr12fatGlbNkk46qij0rdv34wYMSKzZs3KOeeckyQ5/vjj07t371rG\nAQAASFLjIjRu3LiMGzduu+cHDhyYlpaWWkYAAADYRk2XxgEAAOyKFCEAAKB0FCEAAKB0FCEAAKB0\nFCGoM2vXrs348eMzePDgjB8/PuvWrSs6EgBA3an5F6oCH67m5ubcfPPNSZJFixYlSRYsWFBkJACA\numNGCOrM8uXLd3gMAMC7U4SgzvTp02eHxwAAvDtL46DOzJ07N0l1JqhPnz5bjgEA2HmKENSZxsZG\n9wQBAHxAlsYBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgB\nAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAACl\nowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgB\nAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAAClowgBAACl\nU/MitHTp0owcOTI//elPtzk3fPjwTJo0KZMnT86UKVOyevXqWscBAADIbrV88U2bNuWSSy7JkCFD\n3vF8Q0NDrrvuuuy55561jAEAALCVms4IderUKT/84Q+z//77v+P5SqWSSqVSywgAAADbqOmMUIcO\nHbLHHnvs8JpZs2ZlxYoVGThwYM4555xaxgEAAEiSNFTaYErmqquuyr777puJEydu9fydd96ZY445\nJt26dUtzc3NOOumkjBo1aruv09raWuuoAABAnRswYMC7XlPTGaF3M3bs2C2Phw4dmmXLlu2wCO3M\nDwQAAPBuCts+e8OGDZk0aVI2b96cJFm8eHEOOeSQouIAAAAlUtOlcU8++WTOP//8rFu3Lh07dkzX\nrl3z+c9/Pn/1V3+VESNG5MYbb8ytt96azp07p1+/fjn//PNrFQUAAGCLNrlHCAAAYFdS2NI4AACA\noihCAABA6ShCAABA6dRNEfr+97+fCRMm5JRTTslTTz1VdBwKsnTp0owcOTI//elPi45CgebMmZMJ\nEybk5JNPzn333Vd0HArw2muvZdq0aZk8eXLGjx+fhx56qOhIFGjz5s0ZOXJk7rjjjqKjUJDf/OY3\n+dSnPpUpU6Zk8uTJ+e53v1t0JApy1113ZezYsfn85z+fhx9+eIfXFvo9Qjtr0aJF+a//+q+0tLTk\nueeey7e+9a20tLQUHYs2tmnTplxyySUZMmRI0VEo0OOPP55nn302LS0tWb9+fU488cSMHDmy6Fi0\nsQcffDBHHHFETj311KxatSpTp07NscceW3QsCnLNNdekW7duRcegYIMHD86VV15ZdAwKtH79+lx9\n9dW54447snHjxvzzP/9zhg0btt3r66IIPfrooxkxYkSS5OCDD84rr7ySjRs3pnPnzgUnoy116tQp\nP/zhDzNv3ryio1CgQYMGpX///kmSffbZJ5s2bUqlUklDQ0PByWhLY8aM2fJ41apV6dGjR4FpKNIf\n//jHLF++fIcfdigHGyGzcOHCDBkyJHvttVf22muvXHjhhTu8vi6Wxq1ZsyaNjY1bjvfdd9+sWbOm\nwEQUoUOHDtljjz2KjkHBOnTokL322itJcsstt2TYsGFKUIlNmDAh3/jGNzJjxoyio1CQOXPmZPr0\n6UXHYBfw3HPPpbm5ORMnTszChQuLjkMBVq5cmU2bNuWMM87IpEmT8uijj+7w+rqYEfpLGj9w//33\n57bbbsv8+fOLjkKBWlpasnTp0px77rm56667io5DG7vjjjsyaNCg9OzZM4nPB2XWu3fvnHnmmTnu\nuOPy/PPPZ8qUKbnvvvuy2251+VGX96lSqWT9+vW55pprsmLFikyZMiX//u//vt3r62J0NDU1bTUD\ntHr16hxwwAEFJgKK9Mgjj2TevHmZP39+9t5776LjUIAlS5Zkv/32S48ePXLooYfmrbfeyrp167Za\nPUD79/DDD2fFihW5995788ILL6RTp0458MAD86lPfaroaLSx7t2757jjjkuS9OrVK/vvv39efPHF\nHHTQQQUnoy3tv//+OfLII9PQ0JBevXqlc+fOO/zdUBdL44YMGZJf/vKXSZL/+I//SPfu3fORj3yk\n4FRAETZs2JBLL7001157bbp06VJ0HAqyePHiXH/99Umqy6c3bdqkBJXQFVdckVtuuSULFizIySef\nnObmZiWopO6+++5cddVVSZK1a9dm3bp16d69e8GpaGtDhgzJ448/nkqlkj/96U/585//vMPfDXUx\nI3TkkUfmE5/4RCZMmJCOHTtm5syZRUeiAE8++WTOP//8rFu3Lh07dkxLS0tuuummdO3atehotKF7\n7rkn69evz7Rp07ZskjBnzpwceOCBRUejDZ1yyimZMWNGJk6cmM2bN2fWrFlFRwIKNHz48Hzta1/L\nKaeckkqlktmzZ1sWV0Ldu3fP6NGjM27cuDQ0NLxrZ2ioWFALAACUTF0sjQMAAPgwKUIAAEDpKEIA\nAEDpKEIAAEDpKEIAAEDpKEIAAEDpKEIA1JUlS5Zk5MiR2bhx45bnvvOd72TOnDkFpgKg3ihCANSV\nww8/PCeccEIuvvjiJMnixYuzaNGiTJs2reBkANQTRQiAunP66adn2bJleeCBB3LBBRfkkksuyR57\n7FF0LADqSEOlUqkUHQIA3qvly5fnhBNOyD/8wz/k7LPPLjoOAHXGjBAAdemZZ55Jr1698sQTTxQd\nBYA6pAgBUHdeeumlXHHFFbn++uvT1NSUn/zkJ0VHAqDOWBoHQN356le/mjFjxmTs2LFZt25dvvCF\nL+SGG25Ir169io4GQJ0wIwRAXVmwYEEaGhoyduzYJEljY2POPvvsnHfeeQUnA6CemBECAABKx4wQ\nAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOooQAABQOv8PdLEZa0754rUAAAAASUVO\nRK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Change p to choose which point to see sum of squares visualization at\n", + "p = 6\n", + "\n", + "np.random.seed(0)\n", + "X = np.linspace(1,5,9)\n", + "Y = X + np.random.normal(0,1,9)\n", + "\n", + "params = regression.linear_model.OLS(Y, sm.add_constant(X)).fit().params\n", + "model = params[0] + X * params[1]\n", + "\n", + "err = Y-model\n", + "reg = model - np.mean(Y)\n", + "tot = Y-[np.mean(Y)]*9\n", + "\n", + "plt.scatter(X,Y, color = 'black', label = 'data');\n", + "plt.plot(X,[np.mean(Y)]*9, color = 'black', alpha = 0.3, label = 'Y_mean')\n", + "\n", + "x_p= X[p]\n", + "\n", + "plt.annotate('p = %i'%p, xy=(x_p+0.1,Y[p]+0.1))\n", + "\n", + "plt.fill_between([x_p,x_p+err[p]], model[p], Y[p], \n", + " facecolor='blue', alpha = 0.4, label = 'S_err');\n", + "plt.fill_between([x_p+reg[p],x_p], np.mean(Y), model[p], \n", + " facecolor='yellow', alpha = 0.4, label = 'S_reg');\n", + "plt.fill_between([x_p-tot[p],x_p], np.mean(Y), Y[p], \n", + " facecolor='red', alpha = 0.4, label = 'S_tot');\n", + " \n", + "plt.plot(X,model, linestyle = '--', c = 'r', label = 'model');\n", + "plt.xlabel('X');\n", + "plt.ylabel('Y');\n", + "plt.title('Single point RS, SR, and ST of simple linear regression', \n", + " fontsize = 15);\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$SS_{err}$, $SS_{reg}$, and $SS_{total}$ are the sums of the areas of the above squares for every point in the sample." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Coefficient of Determination ($R^2$)\n", + "\n", + "The coefficient of determination, or $R^2$, is a metric that tells us the proportion of in-sample variance 'explained' by a certain model. For example, an $R^2$ of 0.9 tells us that the magnitude of the model residual variance is about 90% of that of the sample data. The formula for $R^2$ is:\n", + "\n", + "$$R^2 = \\frac{SS_{reg}}{SS_{tot}} = \\frac{\\sum_{i=1}^{n} (\\hat{Y_i} - \\bar{Y_i})^2}{\\sum_{i=1}^{n} (Y_i - \\bar{Y})^2}$$\n", + "\n", + "\n", + "One major drawback of $R^2$ in model selection is that as the number of explanatory variables increases, $R^2$ will always also increase or stay the same, even if the incremental variables are not adding much predictive insight. To illustrate this, let's find the $R^2$ of five unemployment models, each model having one more predictor than the next. We will do this by defining a function that takes predictor variables $X_1,\\ldots, X_k$ and an independent variable $Y$, runs a regression, and calculates $R^2$ using the `model.rsquared` attribute." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "------ R Squared Values ------\n", + "1 predictor: 0.124499233139\n", + "2 predictors: 0.459882090695\n", + "3 predictors: 0.700574522302\n", + "4 predictors: 0.734219660452\n", + "5 predictors: 0.875758340212\n" + ] + } + ], + "source": [ + "def rsquared(X,Y):\n", + " X = sm.add_constant(X)\n", + " model = regression.linear_model.OLS(Y, X).fit()\n", + " return model.rsquared\n", + "\n", + "# Defining variables, making sure to keep data\n", + "# within the sample period [:e]\n", + "Y = unemployment[:e]\n", + "X = [qqq[:e], inflation[:e], iwm[:e], fx[:e], gold[:e]]\n", + "X_str = ['qqq', 'inflation', 'iwm', 'fx', 'gold']\n", + "\n", + "print '------ R Squared Values ------'\n", + "print '1 predictor:', rsquared(np.column_stack(X[:1]), Y)\n", + "print '2 predictors:', rsquared(np.column_stack(X[:2]), Y)\n", + "print '3 predictors:', rsquared(np.column_stack(X[:3]), Y)\n", + "print '4 predictors:', rsquared(np.column_stack(X[:4]), Y)\n", + "print '5 predictors:', rsquared(np.column_stack(X[:5]), Y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see, increasing the number of predictors inflates the $R^2$ output. If we only went by the $R^2$ prediction criteria, the best model would always be the one with the most predictor variables. This invalidates $R^2$ as a model selection criteria for models with different amounts of predictor variables." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### $\\bar{R}^2$ (Adjusted $R^2$)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Because regular $R^2$ becomes inflated as more variables are added we cannot use $R^2$ alone for model selection. To account for this effect, there exists an alternate version of $R^2$ which includes a penalty for adding more variables. The formula is below, where $p$ is the number of predictor variables, and $n$ is the sample size:\n", + "\n", + "$$ \\bar{R}^2 = 1-(1-R^2)\\frac{n-1}{n-p-1} $$\n", + "\n", + "Let's repeat the experiment above, this time using $\\bar{R}^2$, to see if it still inflates as more predictors are added." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "------ Adj R Squared Values ------\n", + "1 predictor: 0.117079735115\n", + "2 predictors: 0.45064930592\n", + "3 predictors: 0.692830759948\n", + "4 predictors: 0.724975126903\n", + "5 predictors: 0.870309144607\n" + ] + } + ], + "source": [ + "def rsquared_adj(X,Y):\n", + " X = sm.add_constant(X)\n", + " model = regression.linear_model.OLS(Y, X).fit()\n", + " return model.rsquared_adj\n", + "\n", + "print '------ Adj R Squared Values ------'\n", + "print '1 predictor:', rsquared_adj(np.column_stack(X[:1]), Y)\n", + "print '2 predictors:', rsquared_adj(np.column_stack(X[:2]), Y)\n", + "print '3 predictors:', rsquared_adj(np.column_stack(X[:3]), Y)\n", + "print '4 predictors:', rsquared_adj(np.column_stack(X[:4]), Y)\n", + "print '5 predictors:', rsquared_adj(np.column_stack(X[:5]), Y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The $\\bar{R}^2$ are similar to the $R^2$ values, however we can see that the values are slightly smaller due to the predictor penalty. $\\bar{R}^2$ should always be used when comparing models with different amounts of predictors to avoid the predictor inflation effect of $R^2$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Akaike and Bayesian Information Criterion (AIC and BIC)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$R^2$ and $\\bar{R}^2$ provide absolute measures on the quality on a model, meaning they can be calculated on any single regression model. They tell you how \"good\" a model is on its own on a scale of 0 to 1. \n", + "\n", + "AIC and BIC provide relative measures of quality and are calculated with an underlying selection pool of models. Instead of yeidling a metric with an absolute scale like $R^2$ and $\\bar{R}^2$, they return values for every model in the selection pool and determining model quality requires looking at all of the values and comparing them.\n", + "\n", + "AIC is calculated along the following formula: \n", + "\n", + "$$ AIC = 2p + 2Log(\\hat{L}) $$\n", + "\n", + "BIC is calculated similarly:\n", + "\n", + "$$ BIC = p \\cdot ln(n) -2Log(\\hat{L}) $$\n", + "\n", + "Where $\\hat{L}$ is defined as the maximumized value of the likelihood function. The likelihood function is the probability our model in question is in fact correct given the data we observed. For more information on likelihood functions refer to the [Wikipedia](https://en.wikipedia.org/wiki/Likelihood_function) page on the subject.\n", + "\n", + "\n", + "Let's use AIC and BIC to compare 5 simple linear regression models for unemployment. We will compute them using the `model.aic` and `model.bic` attributes." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " AIC values: BIC values: \n", + "Y = b0 + b1*qqq 481.904294922 487.479278408\n", + "Y = b0 + b1*inflation 464.408261441 469.983244926\n", + "Y = b0 + b1*iwm 497.835819526 503.410803012\n", + "Y = b0 + b1*fx 488.599333286 494.174316772\n", + "Y = b0 + b1*gold 398.65240035 404.227383836\n" + ] + } + ], + "source": [ + "def aic(X,Y):\n", + " X = sm.add_constant(X)\n", + " model = regression.linear_model.OLS(Y, X).fit()\n", + " return model.aic\n", + "\n", + "def bic(X,Y):\n", + " X = sm.add_constant(X)\n", + " model = regression.linear_model.OLS(Y, X).fit()\n", + " return model.bic\n", + "\n", + "AICs = pd.Series([aic(X[_],Y) for _ in range(5)])\n", + "BICs = pd.Series([bic(X[_],Y) for _ in range(5)])\n", + "\n", + "print \"%-24s %-15s %-13s\" % ('', 'AIC values:', 'BIC values:')\n", + "print \"%-24s %-15s %-13s\" % ('Y = b0 + b1*qqq', AICs[0], BICs[0])\n", + "print \"%-24s %-15s %-13s\" % ('Y = b0 + b1*inflation', AICs[1], BICs[1])\n", + "print \"%-24s %-15s %-13s\" % ('Y = b0 + b1*iwm', AICs[2], BICs[2])\n", + "print \"%-24s %-15s %-13s\" % ('Y = b0 + b1*fx', AICs[3], BICs[3])\n", + "print \"%-24s %-15s %-13s\" % ('Y = b0 + b1*gold', AICs[4], BICs[4])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's plot the AICs and BICs." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nGnXPz+2y4HFycjKcyu3h4QFHR0cUFhbir3/9Kzw9PfHss88C0EeItu3oFBYWIiQkpMsJ3M/kiUxF\ndHQ07wWiFrwfiPR4LxDp3W+TpMslbYcOHcKWLVsAAKWlpSgtLcXFixdhZmaG559/3jAuKCgISUlJ\nqK6uRk1NDWJjY3mTEhERERFRr+qywzN16lRs2LABy5cvh06nw+uvv46tW7eisbERq1evhkgkgpeX\nFzZv3owNGzbgySefhFgsxrp166BQKIT4DERERERERLfVZcFjZWWFTz/91Oixhx9++LZjZ86caXSI\nHRERERER9QydToeGhobenka3Mjc3v+Mh0vfqrlLaiIiIiIiob2loaDCpgqenPk+XHR4iIiIiIuqb\nzM3NIZfLe3safRo7PEREREREZLJY8BARERERkcliwUNERERERCaLBQ8REREREd2XiIgIBAQEoLy8\nHACwZcsW7NixAwCg0Wjw/vvvY9GiRVi5ciWeeOIJpKenCzY3FjxERERERHRfIiIiMGvWLBw7dqzD\ntX/+85+oqqrC/v37sWPHDqxfvx7r1q2DVqsVZG4seIiIiIiI6J5VVFTg6tWr+O1vf4uIiIgO17/5\n5hu8+OKLhj+HhIRg7969EIuFKUUYS01EREREZAI+P5SMH+Nzu/U1Hwxyw5Pz/Tsdc/ToUUyePBk+\nPj4oKipCUVGR4Vp1dTXMzc2hUCiMntP+zz2JHR4iIiIiIrpnERERmD59OgBg6tSpOHz4sNF1jUbT\nG9MyYIeHiIiIiMgEPDnfv8tuTHcrLCxEfHw83nrrLQBAfX09rK2tMWnSJAD6To5Go0FZWRlUKpXh\neSkpKfDz8xNkjuzwEBERERHRPYmIiMDKlStx4MABHDhwAEePHkVFRQWuX79uGLNixQq8/fbbhk5P\ndHQ0Nm3ahMbGRkHmyIKHiIiIiIjuSWRkJJYsWWL02MKFC42WtT399NPw8vLCwoULsXr1anz++ef4\n5JNPYGZmJsgcuaSNiIiIiIjuyb59+zo89uyzz+LZZ581eux3v/sdfve73wk1LSPs8BARERERkcli\nwUNERERERCaLBQ8REREREZksFjxERERERGSyWPAQEREREZHJYsFDREREREQmi7HURERERER0T3Jz\nczF//nwEBAQAABobG/HSSy/h+vXrSE9Px8aNGwEA//73vxEZGQkLCwvodDr88Y9/xNixYwWZIwse\n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\nkqS4uDhdvHhR3t7e8vf3l8ViUc+ePX9wDmiowsLCFBgYKJPJpObNm+vy5cs/ONe0aVMtWrRIkydP\n1gcffKBLly5Jkmw2m7790VhFRUUym81q3ry5pKvrY9++fZJ0bc2EhITwIhANSp8+fZSZmalDhw6p\na9euKi8vlyQVFBQoJCREkhQRESFJCgoKUteuXSVJgYGB111TgDPx9/fXuHHj9NRTT+nXv/717Y4D\n1KmjR48qNjZWknTPPfeoqKjo2uso6buvfSTpyJEjioqKknT1NVDr1q0dnqNOC4/NZrv2W2qLxSLp\nu/fZffPYtx//9mNAQ/Ptv7//XV6+bf78+erfv78WL16sWbNmXff5TCaTrFbrta+rqqquneO/zwU0\nFC1bttS5c+eUnp6u2NhYhYaGauvWrQoPD7828+2/3/xdR2OUn58vb29vFRYW3u4oQJ2y2Wwym/9T\nSUwm03f+X//t1z7fzH+7T9TU1Dg8R50Wnvbt2yszM1OS9PXXX6tJkya6fPmyiouLVV1drdTU1O/N\nbdu2rS4jAfXCpUuX1KZNG0nS559/fu3+U7PZ/J2F6+fnJ7PZrNzcXElSamqqevTo8b3n40UgGpoW\nLVpo06ZNio6OVmRkpBYuXKg+ffrc7lhAvZCTk6Nt27bpgw8+0B//+Mfv/OILcDZt2rRRdna2JOnL\nL7+Un5+fTCbTdV/7tGvX7tr8mTNnlJOT4/AcdVp4HnroIe3Zs0fx8fHav3+/TCaT5syZo8mTJ+up\np55S27ZtJUkPPvjgd+aAhui/33tmbyeR8ePH63e/+51mzJihESNGaOfOndq2bZvi4uI0ceJEXbx4\n8doxv/vd7/T8889rypQpqqmp0YgRIxyeG6jPTCaT4uLilJubKz8/P0VHR+vrr7++Vni+/ff5en8G\nnNkf/vAHvfDCCwoNDVX//v31wQcf3O5IQJ15+OGHtXPnTk2ZMkUXLlyQi4uLfv/731/3tU+XLl3U\nuXNnTZgwQX//+9+v3fZsj8lm0K+Gr1y5opEjR35n97U///nP6tKli0aNGmV3DgAAAIDzOXv2rI4f\nP64777xTmZmZeu211/Tuu+/W6jkM/RyeG/kNuL3HAQAAADgPX19fvffee3r99dclSb/61a9q/RyG\nXeEBAAAAAKPV6Xt4AAAAAOB2ovAAAAAAcFoUHgAAAABOi8IDAAAAwGlReACgETpz5ozCw8OVnJz8\nncfT09MVHh6unTt33vBzJScn6xe/+IXdmfj4eH399dffyxAREaEpU6YoPj5eEydO1AviXPwTAAAE\n3UlEQVQvvKCSkpIb/0HsZJk7d67Onz9/3dmMjIwb+sA6AEDDRuEBgEYqLCxMH3744XceW7t2rdq3\nb29YhqCgIC1cuFCLFi3SsmXLFBwcrISEhFp57r/97W8KDg6+7vdXr16t06dP18q5AAD1l6GfwwMA\nqD+Cg4NVVVWlnJwctWrVStXV1dq1a5ciIyOvzaxcuVLLly+Xp6enmjZtqt///vfy9vbWkiVLlJSU\npBYtWqhZs2bX5g8cOKCXX35Z1dXVqq6u1m9+8xuFh4ffcKbevXtr+fLlkqTBgwdr+PDhOnXq/2/v\n/kGbWsM4jn9T8q9F0uLQMxhLJikY/6SlduikDqJgRlEKGupQB8GhKCalCaUBCXYxKFS7xMRA3KKD\nBAehDbgKrS1uwatgoUYLrVFomjhIDkm57S33wqVNf58l8Lw5eZ/3bE+e95z3L+LxOK9evSKdTgNw\n8OBBotEo7e3tW+Zy5swZnj59itvtJhqN8v79eywWC4FAAKvVSi6XY35+nmAwiGEYRCIRKpUKlUqF\nkZERenp6CAaD2Gw2CoUCk5OTGIbxX2+7iIj8z9ThERHZx/x+P9lsFoCZmRkGBgbMw5+/fPnCw4cP\nSSaTJJNJDMMgkUiwtrZGPB4nnU7z5MkTvn//bv7e7du3GR8fJ5lMEg6HCYVCO85lY2OD169f09fX\nZ8Y8Hg/xeJylpSUeP35MIpEgnU7T19fH1NTUtrnUvHz5kmKxyPPnz5meniabzXL27Fm6u7u5e/cu\n/f39TExMMDg4SCqVIhKJcOfOHfP6X79+kUqlVOyIiOxR6vCIiOxTFouFCxcuMDg4yM2bN3nx4gXD\nw8M8e/YMgIWFBbxeL62trQD09/eTyWT4+PEjbrcbl8tlxj98+MC3b98oFAqMjo5SO9O6VCqx3fnW\nxWKRq1evmt/p7e3l2rVr5rjP5wP+PG+zvLzM9evXqVarrK+v43a7t8yl3tzcHKdOnQL+nOg9NTVl\njtXmnZub48GDBwAcOXKEHz9+sLKy0pCDiIjsTSp4RET2sY6ODjweD/l8nk+fPnH06FFzzGKxNBQr\n1WrVjNW6QACVSgUAu92Ow+EgmUzueP7aMzxbsdvt5ufx48cbihXA3Ka2OZd6m9fxd1paGjc81K/R\nZrNtvwgREdnVtKVNRGSf8/v93Lt3j3PnzjXEvV4vi4uLlEolAN6+fcvJkyfp6uri8+fPrK2tUa1W\nzbevHThwgEOHDjEzMwNAoVDg0aNH2879T4VIzbFjx5ifn+fr168A5HI53rx5s2Uu9Xw+H/l8HoDV\n1VUuXbpEuVympaWFcrkMwIkTJ5idnQVgcXGRjo4O2tvbd5SbiIjsburwiIjsc6dPnyYcDnPx4sWG\nuGEY3Lp1i0AggMPhwDAMRkZGcDqd3LhxgytXrnD48GHcbjc/f/4EIBaLEY1GmZ6eplwum6+Iru/C\n1Nsqvnmss7OT0dFRhoeHaWtrw+l0EovFcLlcW+ZSu/78+fO8e/eOy5cvU6lUGBoawmq1MjAwQCQS\nIRQKMTY2RjgcJpPJsLGxwf379//9DRURkV3FUt3p32siIiIiIiJ7jLa0iYiIiIhI01LBIyIiIiIi\nTUsFj4iIiIiINC0VPCIiIiIi0rRU8IiIiIiISNNSwSMiIiIiIk1LBY+IiIiIiDSt3wUhm1Mr8AWD\nAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "AICs.plot(title = 'Model AICs and BICs', label = 'AIC');\n", + "BICs.plot(label = 'BIC');\n", + "plt.xticks(range(5), X_str);\n", + "plt.xlabel('Model Predictor');\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The \"best\" model according to AIC and BIC is the one with the smallest value. In this case, both the Akaike and Bayesian information criterion point to the same conclusion; they are both at their minimum with the model $Y = b_0 + b_1 \\cdot gold$ meaning gold is the best single predictor for the model on this sample.\n", + "\n", + "### AIC vs BIC\n", + "\n", + "In this test the two criteria pointed to the same model as the best, but this is not always the case as the two criteria have a few key differences. \n", + "\n", + "* The BIC imposes a harsher penalty on additional regressors than the AIC does and will usually select \"smaller\" models with less parameters\n", + "* AIC is more suitable for selecting models that serve as the best predictors\n", + "* BIC is best used to select a model that best explains the behavior in-sample" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Selection Methods\n", + "\n", + "Now that we have a handful of criteria to quantify model quality we need to have a method to cycle through and search for the possible models.\n", + "\n", + "The first idea that might come to mind is to simply pool all possible models together and test them all. While this might work for a situation in which there are a small number of potential regressors, when dealing with big data sets and many possible predictors it becomes a more difficult issue. The number of predictor combinations begins to rise quickly as more possible predictors are added making cycling through every combination not efficient.\n", + "\n", + "### Step AIC/BIC\n", + "\n", + "If the number of possible predictors large, the best for selecting the \"best\" is likely iterating through a stepwise linear regression. Broadly, the method builds a model by selecting regressors one at a time, at each step choosing the one that minimizes the model's AIC or BIC. The process ends when adding another variable can no longer decrease the AIC/BIC or when the algorithm exhausts the predictor set and there are no more potential predictors to add. Note that stepwise regressions need not only step forward; the process can be conducted in reverse, starting with all variables included and subtracting off those yielding the *highest* AIC/BIC, or in tandem with steps alterating forward and backwards.\n", + "\n", + "Let's use a step-forward AIC algorithm to select a set of unemployment predictors to use in our model. Some print statements have been added to show the iteration process but can and should be deleted if you would like to use the function elsewhere." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def forward_aic(response, data):\n", + " # This function will work with pandas dataframes and series\n", + " \n", + " # Initialize some variables\n", + " explanatory = list(data.columns)\n", + " selected = pd.Series(np.ones(data.shape[0]), name=\"Intercept\")\n", + " current_score, best_new_score = np.inf, np.inf\n", + " step = 1\n", + " \n", + " # Loop while we haven't found a better model\n", + " while current_score == best_new_score and len(explanatory) != 0:\n", + " \n", + " \n", + " scores_with_elements = []\n", + " count = 0\n", + " \n", + " # For each explanatory variable\n", + " for element in explanatory:\n", + " # Make a set of explanatory variables including our current best and the new one\n", + " tmp = pd.concat([selected, data[element]], axis=1)\n", + " # Test the set\n", + " result = regression.linear_model.OLS(response, tmp).fit()\n", + " score = result.aic\n", + " scores_with_elements.append((score, element, count))\n", + " count += 1\n", + " \n", + " # Sort the scoring list\n", + " scores_with_elements.sort(reverse = True)\n", + " # Get the best new variable\n", + " best_new_score, best_element, index = scores_with_elements.pop()\n", + " print '--- Step', step, ' ---'\n", + " step += 1\n", + " print 'Current Best AIC:', current_score\n", + " print 'Best New AIC:', best_new_score\n", + " print 'Variable to Add:', best_element \n", + " \n", + " if current_score > best_new_score:\n", + " # If it's better than the best add it to the set\n", + " explanatory.pop(index)\n", + " selected = pd.concat([selected, data[best_element]],axis=1)\n", + " current_score = best_new_score\n", + " print 'Chosen Model Predictors:', selected.columns.values[1:], '\\n'\n", + " \n", + " else:\n", + " print 'Best new AIC did not beat current best. The new variable to add is rejected and the algorithm is finished.\\n\\n'\n", + "\n", + " # Return the final model\n", + " return selected" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--- Step 1 ---\n", + "Current Best AIC: inf\n", + "Best New AIC: 398.65240035\n", + "Variable to Add: gold\n", + "Chosen Model Predictors: ['gold'] \n", + "\n", + "--- Step 2 ---\n", + "Current Best AIC: 398.65240035\n", + "Best New AIC: 307.741249417\n", + "Variable to Add: iwm\n", + "Chosen Model Predictors: ['gold' 'iwm'] \n", + "\n", + "--- Step 3 ---\n", + "Current Best AIC: 307.741249417\n", + "Best New AIC: 258.210706106\n", + "Variable to Add: inflation\n", + "Chosen Model Predictors: ['gold' 'iwm' 'inflation'] \n", + "\n", + "--- Step 4 ---\n", + "Current Best AIC: 258.210706106\n", + "Best New AIC: 253.653929589\n", + "Variable to Add: qqq\n", + "Chosen Model Predictors: ['gold' 'iwm' 'inflation' 'qqq'] \n", + "\n", + "--- Step 5 ---\n", + "Current Best AIC: 253.653929589\n", + "Best New AIC: 255.596196199\n", + "Variable to Add: fx\n", + "Best new AIC did not beat current best. The new variable to add is rejected and the algorithm is finished.\n", + "\n", + "\n", + "Selected Predictors: ['gold' 'iwm' 'inflation' 'qqq']\n" + ] + } + ], + "source": [ + "# Reformatting the data to work with the forward_aic function\n", + "Y_series = pd.Series(Y).reset_index(drop=True)\n", + "data_df = pd.DataFrame(np.column_stack((X[0],X[1],X[2],X[3],X[4])), columns = X_str)\n", + "\n", + "predictors = forward_aic(Y_series, data_df)\n", + "print 'Selected Predictors:', predictors.columns.values[1:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `forward_aic` algorithm selected gold prices, the IWM index, inflation rate, and the QQQ index as the most appropriate combination of predictors. The model is now:\n", + "\n", + "$$ Y_{unrate} = \\beta_0 + \\beta_1 X_{gold} + \\beta_2 X_{iwm} + \\beta_3 X_{inflation} + \\beta_4 X_{qqq} + \\epsilon_i $$\n", + "\n", + "Let's fit this model using OLS to determine the beta coefficients and graph both the model's prediction for unemployment and its actual values." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Intercept 7.180962\n", + "gold 0.003986\n", + "iwm -0.093050\n", + "inflation -0.386373\n", + "qqq 0.067445\n", + "dtype: float64\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy0AAAHBCAYAAABkCVTWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4lfX9//HnOSebEUJCwgwbQlhKwhJEEHCAs1oHCFpH\nnXV8rVKttVhrHa0/axUH7oGziAIqKghCZYdNEiADElYSkhCy1zm/P26CYNbJyclZeT2uK9cd7/nm\nJrTnlc8y2Ww2GyIiIiIiIh7K7O4CREREREREGqLQIiIiIiIiHk2hRUREREREPJpCi4iIiIiIeDSF\nFhERERER8WgKLSIiIiIi4tHsCi3JyclMnTqVBQsWnNr33nvvMWTIEEpLS1usOBERERERkUZDS2lp\nKc8++yzjxo07te/LL7/kxIkTREZGtmhxIiIiIiIijYaWwMBAXn/9dSIiIk7tu/DCC/nDH/7QooWJ\niIiIiIiAHaHFbDYTEBBwxr7g4OAWK0hEREREROR0GogvIiIiIiIeza85F5tMJrvOS0hIaM5jRERE\nRESklYiLi6u1r1mhxWazYbPZHH64/CIhIUHvyAF6b47Tu3Oc3p3j9O4co/fmOL07x+ndOU7vznH1\nNXY0Glq2b9/OY489Rl5eHhaLhU8++YT4+Hg2b95MTk4O11xzDfHx8cydO9fZNYuIiIiIiDQeWoYP\nH86SJUtcUYuIiIiIiEgtzeoeJiIiIiLiyWw2G+Xl5S5/bllZmcuf6W0CAwPtHiOv2cNERERExGeV\nl5e7PLQMHjzYpc/zRk39e1FLi4iIiIj4tMDAQIKCgtxdhjSDWlpERERERMSjKbSIiIiIiIhHU2gR\nEREREfFwq1at4pFHHqn3+Msvv8yCBQtcWJFrKbSIiIiIiIhH00B8EREREZEWtmjRIjZu3Eh+fj6p\nqancf//9LF26lLS0NP75z3+ybds2vvnmGwAmT57Mbbfdxt69e5kzZw4dOnSgR48ep+61YMECli5d\nisViYcqUKdx0001u+lO5jkKLiIiIiLQuvXrVvX//fuecX4+MjAwWLFjA559/zvz58/nyyy9ZuHAh\nr732GkePHmXhwoVYrVZ++9vfctFFF/HKK69w7733MmnSJObOnQvAwYMH+e677/j4448BuO6667jo\noouaVIc3UmgREREREXGBIUOGANCpUycGDhyIyWQiIiKCPXv2MGHCBEwmExaLhREjRpCcnExqaipn\nnXUWAKNGjWLNmjXs2LGDAwcOMHv2bGw2G6WlpRw8eNCdfyyXUGgRERERkdaliS0kTT6/HhaLpc7v\nCwoKsNlsp/67oqLi1ErxZrMxBL3meEBAABMnTuSJJ544497r1693So2eSgPxRURERETcaOrUqWzb\ntg2r1UpVVRU7d+5k8ODB9O7dm507dwKwYcMGAAYPHsyGDRsoKyvDZrPx1FNPUVFR4c7yXUItLSIi\nIiIibnbNNdcwc+ZMbDYbv/3tb+nSpQt33HEHjzzyCB988AHdunWjsrKSLl26MHv2bGbOnImfnx9T\npkwhICDA3eW3OIUWEREREZEWduWVV576fuLEiUycOLHW9zNmzDjjmtjYWL766qta95oxY0atc++5\n5x7nFuxh1D1MREREREQ8mkKLiIiIiIh4NIUWERERERHxaAotIiIiIiLi0RRaRERERETEoym0iIiI\niIiIR1NoERERERHxUWPGjHHr8zdv3kxeXl6z76PQIiIiIiLio0wmk1ufv3DhQnJzc5t9Hy0uKSIi\nIiLSwhYtWsTevXuZM2cOJSUlXHLJJfj5+XHttdeycuVKKisreeeddwgKCuIvf/kLBw8epKqqinvv\nvZfRo0cza9YsRo8ezdq1azGbzVxxxRUsWrQIi8XCe++9x7x58zh69ChHjhwhJyeHhx9+mPHjx596\n/p49e3jyyScxm820adOGZ555hrlz53LNNdcwduxYKioqmDZtGk8++SQLFizAYrGQlJTE7bffzpo1\na0hKSuLhhx9m8uTJ/PDDD7z99tv4+fkxZMgQ5syZw6JFi0hISCAvL4/9+/dz880307VrV5YvX05K\nSgovvfQSnTt3dvj9KbSIiIiISKvx9pLd/Lz9kFPvOW54N26+dHCj5/261aO6upq+fftyyy238OCD\nD7Ju3TqKioqIjIzkqaeeIj8/nxtvvJHFixcDEBUVxUcffcT111/PiRMnWLBgATfccAN79uwBIDs7\nm7feeutUODo9tPzjH/9gzpw5DB06lHfeeYf333+fK664giVLljB27Fh+/vlnJk6ciMViITk5mWXL\nlrFx40YeeughfvzxR7Zs2cKCBQsYO3Ysr776Kp9++in+/v7cf//9bN26FYB9+/bx6aefkpaWxoMP\nPsiiRYuIiYlh7ty5zQosoNAiIiIiIuI28fHxAERGRlJYWMi2bdtISEggISEBm81GRUUFlZWVAAwd\nOhSATp06MWjQIAA6duxIUVERAGPHjgVgwIABZGdnn/Gc1NTUU9ePGjWKefPmcdddd/HMM89QWVnJ\nDz/8wLXXXkt5eTkxMTH4+fnRqVMnevXqRWBgIBERERQWFpKSksLhw4e55ZZbsNlsFBcXc/jwYQDO\nOussADp37kxhYeGpZ9tstma/J4UWEREREWk1br50sF2tIs52eitLVVXVqe8tFssZ5wUEBHDnnXcy\nbdq0Wvfw8/Or8/uaUGC1Wu2qpbKyErPZjMViYcKECaxcuZKUlBSGDx/Oxo0bz6jp9O9tNhsBAQEM\nGTKEN99884x71nRV+3VNzqKB+CIiIiIiLaxt27anWj8SEhLqPW/48OEsX74cgNzcXF544QW7n1Fz\n3+TkZLp27Qr8Eh4GDBjA9u3bAdi4cSNDhgwB4PLLL+f5558/oytZQ3r16kVaWtqpGcFeeumlWq06\npzObzWeENEeppUVEREREpIWNGTOGV199ldmzZ58aO3J6a0RNS8zFF1/MunXruO6667DZbPzhD384\n43hD37dt25Y777yTQ4cO8ec///mM43/+85954oknMJvNtG/fnqeffhqA2NhYbDYb06dPt+vPERQU\nxCOPPMJtt91GYGAgsbGxREZG1nv+yJEjue+++3jllVfo27evXc+oi8nm7LabOiQkJBAXF9fSj/Fq\nekeO0XtznN6d4/TuHKd35xi9N8fp3TnOV95dWVkZYHzY9mUvv/wyYWFhzJw5s0nXpaam8ve//513\n3nmnhSqrW31/L/X93KmlRURERESkFfroo4/4/PPPee6559xdSqMUWkREREREvNw999zT5GtmzJjB\njBkzWqAa59NAfBERERER8WgKLSIiIiIi4tHUPUxEREREfFp5ebm7S5BfKS8vJzAw0O7z1dIiIiIi\nIj4rMDCwSR+OnWH37t0ufZ43aurfi1paRERERMRnmUwmt0x37FNTLGdmwsqVMHu220pQS4uIiIiI\niNTv7rvhxhth3z63laDQIiIiIiIidXvoIcjIML7/8ku3laHQIiIiIiIitVmt8MILUFICZrNbQ4vG\ntIiIiIiISG15eVBdDUOGQNeusHo1HD0KnTu7vBS1tIiIiIiISG1HjxrbqCi44gqw2WDxYreUopYW\nERERERGpLSvL2EZFwZVXGmNbxoxxSykKLSIiIiIiUtvpoaVnT/h//89tpah7mIiIiIiI1BYXB//5\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "model = regression.linear_model.OLS(Y.reset_index(drop=True), predictors).fit()\n", + "theta = model.params\n", + "print theta\n", + "predictions = (model.params[0] + model.params[1]*gold[s:e] + model.params[2]*iwm[s:e]\n", + " + model.params[3]*inflation[s:e] + model.params[4]*qqq[s:e])\n", + "\n", + "predictions.plot(label = 'model', linestyle = '--', c = 'r');\n", + "Y.plot(label = 'unemployment');\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At first glance the regression model seems decent, but further evaluation is required to determine it's validity." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Validation\n", + "\n", + "Now that we used model selection criteria and methods to find the most valuable combination of regressors, we now must determine whether this best model is acceptable. Because \"best\" is a relative term, it is possible that the best model does not explain the independent variable in a satisfactory way. As a result, more work needs to be done to ensure that our model is well-founded.\n", + "\n", + "### $R^2$ and $\\bar{R}^2$\n", + "\n", + "As well as being criteria model selection, $R^2$ and $\\bar{R}^2$ can also be used as model validation criteria. The intuition, formulas, and weaknesses detailed in the selection section still hold. However, in terms of validation they are additionally limited as they cannot determine the accuracy of the form of the relationship, a vital part of a well-founded model. \n", + "\n", + "To illustrate this weakness we can run a linear regression on two datasets with very different forms. Both regressions have a similar $R^2$ value but only the second accurately represents the form of the data it is modeling." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R^2 of First Model: 0.671416768972\n", + "R^2 of Second Model: 0.67216727851\n" + ] + }, + { + "data": { + "image/png": "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\nAAAA6I6Qgo/dbteyZcs6Xf/jH//Y8/Unn3wS+qgAAAAAIIJCKnUDAAAAADMh+AAAAACwPIIPAAAA\nAMsj+AAAAACwPIIPAAAAAMsj+AAAAACwPIIPAAAAAMsj+AAAAACwPIIPAAAAAMsj+AAAAACwPIIP\nAAAAAMsj+AAAAACwPIIPAAAAAMsj+AAAAACwPIIPAAAAAMsj+AAAAACwvF6hfFNLS4seffRRHT58\nWAkJCVq2bJmys7P9HrtgwQI5HA4tW7YsrIECAAAAQKhCWvHZtGmT+vbtqzfeeEM/+clP9Pzzz/s9\n7oMPPlBFRUVYAwQAAACAcIUUfLZu3app06ZJkiZPnqzt27d3Oqa5uVkvvvii7r333vBGCAAAAABh\nCin41NbWKiMjQ5Jks9lkt9vV0tLic8xLL72kO+64Q6mpqeGPEgAAAADC0OUen7feektvv/22bDab\nJMntdmvnzp0+x7S2tvpcLi8v1969e/XAAw/oo48+6vZgXC5Xt4+F8TB/5sXcmRvzZ17Mnbkxf+bG\n/MUfm9vtdgf7TY899phmzZqloqIitbS0aOrUqfr73//uuX3t2rX64x//qOTkZJ08eVLHjx/XPffc\no3vuuSeigwcAAACA7gipq1tRUZFKSkpUVFSkv/3tb5owYYLP7XfeeafuvPNOSdLHH3+sDRs2EHoA\nAAAAxExIe3y+/e1vq6WlRbfffrt+//vf66GHHpLUtq+ntLQ0ogMEAAAAgHCFVOoGAAAAAGYS0ooP\nAAAAAJgJwQcAAACA5RF8AAAAAFheSF3dIuXcuXNatGiRDh48qNbWVv3yl7/UFVdcoT179uiJJ56Q\n3W5XXl6eHn/88VgOExewbNkylZaWymazaeHChcrPz4/1kNCFZ555Rtu3b9e5c+f04x//WPn5+Xr4\n4YfldruVmZmpZ555RomJibEeJi6gqalJs2bN0v3336+JEycyfyaxceNGvfzyy+rVq5d++tOfKi8v\nj7kzidOnT+uRRx7RiRMndPbsWd1///3Kzc1l/gxuz549mj9/vu666y59//vf15EjR/zO2caNG7Vu\n3TolJCRo9uzZuvXWW2M9dKjz/FVWVmrhwoVqaWlRYmKinn32WfXv3z+o+Yvpis8777yj3r176403\n3tBTTz2lZcuWSZJ+/etf6z/+4z/0xhtvqL6+Xv/85z9jOUwEsG3bNpWXl6u4uFhPPfWUli5dGush\noQsfffSRysrKVFxcrP/+7//Wr3/9a61cuVJ33HGHXnvtNQ0ZMkTr16+P9TDRhVWrVik9PV2StHLl\nSs2bN4/5M7i6ujr97ne/U3FxsVavXq2//vWvzJ2JbNiwQcOGDdO6deu0cuVKLV26lH87Da6xsVHL\nly9XUVGR5zp/r7nGxkatWrVKa9eu1bp167R27VrV19fHcOSQAs/fnDlz9Oqrr2rq1Kl65ZVXgp6/\nmAafm266SY899pgkKSMjw/NJSkVFhcaMGSNJuuGGG7Rly5ZYDhMBbN26VdOmTZMkDR8+XPX19Tp1\n6lSMR4ULueqqq7Ry5UpJ0kUXXaTTp09r27ZtuuGGGyRJU6ZM4fVmcF9++aUOHDig6667Tm63W9u2\nbdOUKVMkMX9GtmXLFhUVFSk5OVkDBgzQk08+qY8//pi5M4mMjAwdP35cknTixAllZGTwb6fBORwO\nrV69WgMGDPBc5+81V1paqssvv1ypqalyOBy64oortH379lgNG9/wN3+PP/64ZsyYIantNVlXVxf0\n/MU0+PTq1UsOh0OStHbtWn33u9/V8ePHPZ9kSm1PrKamJlZDxAXU1tYqIyPDc7lfv36qra2N4YjQ\nFbvdruTkZEnS22+/reuvv16NjY2e8oz+/fvzejO4Z555Ro8++qjnMvNnDocOHVJjY6Puvfde3XHH\nHdq6davOnDnD3JnEt771LR05ckTTp0/XD37wAz3yyCO89gzObrcrKSnJ57qOc1ZdXa2jR4/6vJfh\nfacx+Ju/5ORk2e12tba26o033tCsWbM6vRftav56bI/PW2+9pbfffls2m01ut1s2m03z589XUVGR\nXn/9dX322Wd68cUXdfTo0Z4aEiKMU0KZx1/+8hetX79eL7/8sqZPn+65njk0tj/96U+66qqrNGjQ\nIL+3M3/G5Xa7PeVuhw4d0g9+8AOf+WLujG3jxo0aOHCgXnrpJe3du1eLFi3yuZ35M59Ac8ZcGltr\na6sefvhhTZo0SRMnTtSmTZt8bu9q/nos+MyePVuzZ8/udP1bb72l999/X6tWrVJCQoLPcrIkVVVV\nKSsrq6eGiSBkZWX5rPBUV1crMzMzhiNCd/zzn//USy+9pJdffllpaWlKTU1Vc3OzkpKSeL0Z3N//\n/ndVVFTovffeU1VVlRITE5WSksL8mcCAAQM0fvx42e12XXLJJUpNTVWvXr2YO5PYvn27rrnmGklS\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(13)\n", + "X = range(100)\n", + "Y1 = [x**5 for x in X]\n", + "Y2 = [x + 20*np.random.normal(0,1) for x in X]\n", + "\n", + "model1 = regression.linear_model.OLS(Y1, sm.add_constant(X)).fit()\n", + "model2 = regression.linear_model.OLS(Y2, sm.add_constant(X)).fit()\n", + "\n", + "print 'R^2 of First Model:', model1.rsquared\n", + "print 'R^2 of Second Model:', model2.rsquared\n", + "\n", + "line1 = [model1.params[0] + model1.params[1]*x for x in X]\n", + "line2 = [model2.params[0] + model2.params[1]*x for x in X]\n", + "\n", + "fig, axes = plt.subplots(nrows = 2, ncols = 1)\n", + "\n", + "axes[0].plot(X, line1, c = 'r');\n", + "axes[0].scatter(X, Y1, alpha = 0.4);\n", + "axes[1].plot(X, line2, c = 'r');\n", + "axes[1].scatter(X, Y2, alpha = 0.4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Clearly the second model best represents the data it was meant to model, but it has practically the same $R^2$ as the first. This illustrates the limitations of $R^2$ when it comes to determining model fit and predictive value." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although it will not provide a complete picture, let's find the $R^2$ and $\\bar{R}^2$ of our unemployment model:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unemployment Model R^2: 0.875698551729\n", + "Unemployment Model Adjusted R^2: 0.871375023094\n" + ] + } + ], + "source": [ + "print 'Unemployment Model R^2:', model.rsquared\n", + "print 'Unemployment Model Adjusted R^2:', model.rsquared_adj" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Residual Analysis\n", + "\n", + "Residual analysis can help check that the basic assumptions of the linear model are satisfied. A large portion of model validation has to do with studying the residuals of the regression in question. To learn more about this aspect of model validation refer to the [lecture on residual analysis](https://www.quantopian.com/lectures/residual-analysis).\n", + "\n", + "Note that our toy model is conducted on the point values of these datasets. Ideally, we would conduct it on a stationary and normal representation of the data (such as first-order differences) in order to satisfy the assumptions of linear regression. While our toy model works for demonstrating model selection and validation, looking at the residuals will make these violations glaringly obvious and should always be done when validating a model." + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n34wvfelLsWHDhpg5c2ZccsklxbwVAABQAbXWCVJIDjC0snLlyli1alUUCoVIkiQKhUIsWLAgpk6d\nGosWLYqzzz47pk2b9rafW7FiRZx33nkREXHRRRfFP/7jP8YJJ5yQ+j6dnZ0lbgoAAFDrWlpa9vv1\nA47YzJ07N+bOnTvkN2xtbe3//4c+9KF48cUXBww2EemNzFJnZ2dVtqsaqE06tUmnNgNTn3Rqk05t\n0qlNOrUZmPqky7I2Aw2GlHyDzv0N+Kxfvz7a2tpi165dsXPnznj22WfjPe95T6lvBQAAsF9FrbF5\n9NFH45vf/GZs2rQpnn766bj11lvj/vvvj2XLlsWpp54akyZNigkTJsScOXNi1KhRceaZZ8aJJ55Y\n7rYDAABERJHBZsaMGTFjxoy3ff3SSy/t//+VV14ZV155ZfEtAwAAGKSSp6IBAABkTbABAAByT7AB\nAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAABy\nT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7AB\nAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAABy\nT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7ABAAByT7AB\nAAByb2QxP7Rz585YvHhxvPrqq7Fr16646qqr4uSTT97ne374wx/G3XffHQ0NDTF37tyYM2dOWRoM\nAADwp4oKNv/+7/8eBx98cNxzzz3x0ksvxaJFi2LlypX9z2/fvj1uv/32uP/++2PkyJExZ86cmDlz\nZhxyyCFlazgAAECfoqainXfeebFo0aKIiGhsbIwtW7bs8/y6devipJNOijFjxsTo0aPj5JNPjrVr\n15beWgAAgP0oasRm5MiRMXLk7h/99re/Heeee+4+z3d1dUVjY2P/48bGxnj99ddLaCYAAEC6QpIk\nyUDfsHLlyli1alUUCoVIkiQKhUIsWLAgpk6dGt/73vdi9erVcccdd0RDQ0P/z/zoRz+K5557LhYu\nXBgREf/0T/8URx99dMydOzf1fTo7O8u0SQAAQK1qaWnZ79cPOGIzd+7c/QaSlStXxurVq+P222/f\nJ9RERDQ1Ne0zQrNx48b4wAc+UFQDAQAADqSoNTavvfZarFixIm677bY46KCD3vb8pEmT4rnnnove\n3t7Ytm1bPPvss4ILAABQMUWtsVm1alVs2bIlPvOZz/RPT7vrrrvirrvuilNPPTUmTZoUV155ZXz6\n05+OESNGxIIFC2Ls2LHlbjsAAEBEDGKNDQAAQLUraioaAABANRFsAACA3BNsAACA3Cvq4gG14MYb\nb4y1a9fGzp0749JLL40TTzwx/uEf/iGSJInDDz88brzxxjjooIPihz/8Ydx9993R0NAQc+fOjTlz\n5sTOnTtj8eLF8eqrr8auXbviqquuipNPPjnrTSqbUmqzefPm+PKXvxxvvvlm7NixIxYuXBgnnXRS\n1ptUNqXUpk9XV1fMnj07/vmf/zlOOeWUDLem/EqpzwMPPBDf+MY34s///M8jImLq1Knx2c9+NuMt\nKp9SPzvLly+PBx98MA466KBYsmRJTJw4MeMtKp9ianPBBRfE+eefH3fccUc8/vjjUSgUYteuXdHV\n1RU/+clPst6ksinlc7Np06a4+uqr46233ookSWLRokXxl3/5l1lvUlmVUp/t27fHl7/85eju7o53\nvvOdcf3118e73vWurDepbAZbmy1btsQVV1wRY8eOjW984xsREf3H7w0bNkRDQ0MsXbo0jjnmmIy3\nqHxKqU1ExNNPPx1f/OIXY+nSpTFt2rQMt6T8SqlNVZwfJ3XoqaeeSj7zmc8kSZIkb7zxRvKRj3wk\nWbhwYfKTn/wkSZIk+frXv57ce++9yR/+8Idk1qxZSW9vb/K///u/ybnnnpts2bIluf/++5MlS5Yk\nSZIkv/nNb5I5c+ZktSllV2pt/vVf/zX50Y9+lCRJkjzzzDPJpz/96cy2pdxKrU2fq666KvnEJz6R\nPPPMM5lsR6WUWp/vf//7yQ033JDlJlRMqbX5zW9+k5x//vnJrl27kueffz659dZbs9ycsirX31WS\nJMkDDzyQLF++fNi3oVJKrc3111+frFixIkmSJFm7dm3yN3/zN5ltSyWU43h18803J0mSJGvWrEm+\n8pWvZLYt5TbY2iRJknzxi19Mli1blvz93/99/88/8MADybXXXpskSZL853/+Z3L55ZcP8xZUTqm1\neeWVV5LPf/7zyYIFC5LVq1cP/wZUUKm1qYbz47qcinbKKaf0p8tDDjkk/vCHP8SaNWvirLPOioiI\nM888M5544olYt25dnHTSSTFmzJgYPXp0nHzyybF27do477zzYtGiRRER0djYGFu2bMlsW8qt1Npc\ncskl8dGPfjQiIjZs2BBHHnlkZttSbqXWJiLiqaeeinHjxsVxxx2X2XZUSjnqk9ToRRpLqU1nZ2f8\nx3/8R5xzzjlRKBTi+OOPjy984QtZbk5ZleNzE7G7p/Dee++NefPmZbIdlVDq5+bd73539PT0RETE\nli1borGxMbNtqYRS6/PKK6/0zyiYPHlyPPPMM5ltS7kNtjYREdddd11MmjRpn59/8sknY/r06RER\ncdppp+3zt5Z3pdbmyCOPjNtuuy3GjBkzvA0fBqXWphrOj+sy2IwYMSLe8Y53RMTue/J85CMfie3b\nt/ffbPRd73pXbNq0Kbq7u/c5EDQ2Nsbrr78eI0eOjNGjR0dExLe//e0499xzh38jKqTU2kTsnmo1\nZ86c+Na3vhWXX3758G9EhZRam//7v/+L9vb2mqrJ3srx2VmzZk185jOfiU996lPxP//zP8O/ERVS\nam1+97vfxYYNG+Jv//Zv41Of+lS88MILmWxHJZTjcxMR8cgjj8Tpp58eo0aNGt4NqKBSatPV1RXz\n58+Phx56KM4555xYsmRJXHbZZZlsR6WUWp/jjjsuVq9eHRERzzzzTGzcuHHYt6FSBlObvr+fvu/b\nW1dXV3/NCoVCjBgxInbs2DFMra+sUmtTS/uYP1Vqbarh/Lgug02fn/70p3H//ffHV77ylX16itN6\njf/069/73vfi+eefj89//vMVbWcWSqnNu9/97li1alUsXLgwFi5cWPG2Drdia7Ns2bL45Cc/2X+z\n2lodnSi2Pu9///tjwYIF8S//8i9x2WWXxVVXXTUs7R1OxdSmUChEkiSxa9euuPPOO+MLX/hCXHPN\nNcPV5GFT6v541apV8YlPfKKibcxKsbVZvnx5nH322fHQQw/FtddeGzfccMOwtHe4FVufOXPmREND\nQ8ybNy/WrVsXI0fW3rLjodYmza5du8rdtMyVqza1qNTaZHl+XLfB5rHHHotly5bFnXfeGWPHjo0x\nY8bEW2+9FRERGzdujCOOOCKampr26RHcuHFjNDU1RUTEypUrY/Xq1XH77bdHQ0NDJttQKaXU5pln\nnukfejzjjDPiV7/6VSbbUCml1Obxxx+Pf/u3f4vW1tZYvXp1XHvttfHyyy9ntSkVUUp9mpub+xdh\nvv/974833nijpg4wpdTm8MMP77/QREtLS2zYsCGTbaiUUvfH27dvj02bNsVRRx2VSfsrqZTarF27\nNk4//fSIiPjQhz4U//3f/53JNlRSKfU56KCD4tprr43vfve7cd5558Xhhx+e1WZUxIFq0/f3sz9N\nTU3R1dUVEdE/UlNLwa+U2tS6UmuT9flxXQab3t7euOmmm+KOO+6IcePGRcTunf7DDz8cEREPP/xw\nnH766XHSSSfFc889F729vbFt27Z49tlno6WlJV577bVYsWJF3Hbbbf3Dc7Wi1No8+uij8YMf/CAi\nIn7961/X1IlGqbW55557oqOjI1asWBEf+chHYsmSJTFhwoQsN6msSq3PnXfeGStXroyIiJdeeika\nGxujUChktj3lVGptTj/99HjsscciIuLll1+uqbVrpdYmIuKFF16I5ubmzLahUkqtzbHHHhv/9V//\nFRERv/zlL+PYY4/NbFsqodT6/PznP49bb701IiJ+8IMfxJlnnpnZtpTbYGvTJ0mSfTqSpk6d2n91\nwZ/97Gdx6qmnDmPrK6vU2uytljrfIkqvTTWcHxeSWvutDMJ9990Xt912W/zFX/xF/1SPG264IRYv\nXhxvvfVWHHXUUbF06dJoaGiIRx55JO68884YMWJEzJ8/Pz760Y/GLbfcEj/+8Y/jz/7sz/p//q67\n7qqJ3oxSa/PGG2/EwoUL4w9/+EO89dZbsXjx4pq53HOptdnbokWL4hOf+ERNXe651Pps3LgxvvSl\nL0XE7mkPCxcujBNPPDHjrSqPcnx2br311nj88ccjYvfn508XbeZVOWrzyCOPxJNPPhlLlizJeGvK\nq9TavP7667F48eLYvn17FAqFuOaaa2rqwiWl1ufNN9+Myy67LN5444049NBD4+tf/3r/VOG8G2xt\nCoVCfOxjH4vt27fHli1b4sgjj4wvf/nLcdppp8XixYvjlVdeidGjR8f1118fRxxxRNabVRal1mb7\n9u3xzW9+MzZt2hRjxoyJww47LO6///6sN6ssSq3NmjVrMj8/rstgAwAA1Ja6nIoGAADUFsEGAADI\nPcEGAADIPcEGAADIPcEGAADIPcEGAADIPcEGAADIvf8Pzo4IBuYCSF4AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "residuals = model.resid;\n", + "plt.plot(index[:len(residuals)], [0]*len(residuals), c='r')\n", + "plt.scatter(index[:len(residuals)], residuals);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This residual plot uncovers serial correlation and changing variance, both violations of the assumptions of linear regression which invalidate our model. To learn how to detect and adjust for these symptoms refer to the [lecture on residual analysis](https://www.quantopian.com/lectures/residual-analysis)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Cross-Validation\n", + "\n", + "Cross-validation is a technique used to determine how well a model will predict values outside of the sample used to select or fit it. In the case of our unemployment model, we used data from 2002 through 2012 to select our parameters. Now to ensure the accuracy of our model parameters (stored in `predictors`) we will employ a cross-validation technique known as *forward chaining* on the 2002-2012 data. We will leave the 2012-2017 data untouched for further validation methods later on in this lecture.\n", + "\n", + "Forward chaining cross-validation works by splitting the data up into $k$ equal sized partitions, and conducting an \"out-of-sample test\" for each partition. During each of these out-of-sample tests we will choose a training set and a testing set and use the training set to fit the model and the testing set to asses its performance. For time series data the training set must come before the testing set, and in the case of forward chaining the training set consists of all the data before the testing set. Forward chaining iterates through all possible testing sets and asses model performance in each.\n", + "\n", + "In the case of our unemployment model, we will partition our 2002-2012 data into 10 yearly blocks. The first 3 iterations of a forward chaining test would be constructed as follows:\n", + "\n", + "\n", + "$$\n", + "\\\n", + " \\text{Iteration } 1: \\overbrace{\n", + " \\underbrace{\\textit{2002}}_\\text{Training} +\n", + " \\underbrace{\\textit{2003}}_\\text{Testing}\n", + " }^\\text{First Trail-Test Pair}\n", + " \\\n", + "$$\n", + "\n", + "$$\n", + " \\\n", + " \\text{Iteration } 2: \\overbrace{\n", + " \\underbrace{\\textit{2002 & 2003}}_\\text{Training} +\n", + " \\underbrace{\\textit{2004}}_\\text{Testing}\n", + " }^\\text{Second Trail-Test Pair}\n", + " \\\n", + "$$\n", + "\n", + "$$\n", + " \\\n", + " \\text{Iteration } 3: \\overbrace{\n", + " \\underbrace{\\textit{2002 & 2003 & 2004}}_\\text{Training} +\n", + " \\underbrace{\\textit{2005}}_\\text{Testing}\n", + " }^\\text{Third Trail-Test Pair}\n", + " \\\n", + "$$\n", + "\n", + "
\n", + ". . .\n", + "
\n", + "\n", + "\n", + "The end result is a single performance statistic, usually the mean squared error (MSE) or adjusted $R^2$ of the model in the testing set averaged from across all of the iterations. Let's implement a forward chaining model-validation test on our unemployment model using adjusted MSE as our model prediction quality metric." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE in 2003 : 0.0565831690527\n", + "MSE in 2004 : 0.653180823804\n", + "MSE in 2005 : 0.20938626572\n", + "MSE in 2006 : 0.56114441747\n", + "MSE in 2007 : 0.021279349198\n", + "MSE in 2008 : 2.0220023476\n", + "MSE in 2009 : 13.4768461212\n", + "MSE in 2010 : 3.51297688997\n", + "MSE in 2011 : 2.4009454556\n", + "\n", + "\n", + "Average MSE across Iterations: 2.54603831551\n", + "Average MSE Excluding 2009: 1.1796873398\n" + ] + } + ], + "source": [ + "Y = unemployment[:e]\n", + "X = [qqq[:e], inflation[:e], iwm[:e], fx[:e], gold[:e]]\n", + "\n", + "# Our step AIC algorithm selected all predictors except for fx_rate\n", + "predictors = pd.DataFrame(data = [qqq[:e], inflation[:e], iwm[:e], gold[:e]], \n", + " index = ['qqq', 'inflation', 'iwm', 'gold']).T\n", + "\n", + "# Setting partition dates to the first day of every year 2002-2012\n", + "cutoff_dates = pd.date_range(start = '2002-01-01', end = '2012-01-01', freq = 'AS')\n", + "n = len(cutoff_dates)\n", + "\n", + "MSEs = []\n", + "\n", + "for i in range(1,n-1):\n", + " \n", + " # Defining training and testing sets for each iteration, using yearly cutoff dates\n", + " training_data = predictors.loc[cutoff_dates[0]:cutoff_dates[i]]\n", + " testing_data = predictors.loc[cutoff_dates[i]:cutoff_dates[i+1]]\n", + " \n", + " # Fitting model within the training set\n", + " fitted_theta = regression.linear_model.OLS(Y[cutoff_dates[0]:cutoff_dates[i]],\n", + " sm.add_constant(training_data)).fit().params\n", + " \n", + " # Testing performance within the testing set\n", + " testing_model = (fitted_theta[0] + fitted_theta[1] * testing_data['qqq'] \n", + " + fitted_theta[2] * testing_data['inflation']\n", + " + fitted_theta[3] * testing_data['iwm']\n", + " + fitted_theta[4] * testing_data['gold'])\n", + " \n", + " # Caluclate Mean Squared Error for the model runnning on the testing set\n", + " errors = Y[cutoff_dates[i]:cutoff_dates[i+1]]-testing_model\n", + " df = len(testing_model) - len(predictors.columns) - 1\n", + " MSE = np.sum([error**2 for error in errors])/df\n", + " MSEs.append(MSE)\n", + " \n", + " print 'MSE in', cutoff_dates[i].year,':', MSE\n", + " \n", + "print '\\n\\nAverage MSE across Iterations:', np.mean(MSEs)\n", + "print 'Average MSE Excluding 2009:', np.mean(MSEs[:6]+MSEs[7:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since unemployment usually is between 3 and 10 percent, a 2.5 MSE is relatively large. However, we can also see that the a couple outliers around the 2009 recession led to this higher error. Excluding 2009, our average MSE would be 1.18, a more reasonable value." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Out-of-Sample Validation\n", + "\n", + "After conducting the forward chaining test we can be confident in the performance of our model within the time period of 2002-2012. So far in this lecture, all of the testing and development of this model has been done within this 10-year period. Working extensively within a single time period can lead to overfitting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Overfitting\n", + "\n", + "A model is overfit when it is trained so much that it models the random noise of the data instead of just the underlying relationship. Conducting out-of-sample tests and using cross-validation helps avoid overfitting. It is easy to have a model that looks perfect in-sample, but has little predictive value. To demonstrate the dangers of overfitting, look at the two models below. They both model the same data, but `simple_model` is just a simple linear regression while `complicated_model` includes high-order values of X. The result is that the second more complicated model looks better in-sample, but the first and more simple one explains the relationship better." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(1)\n", + "X = np.linspace(1,15,10)\n", + "Y = [2*x + 2*np.random.normal(0,1) for x in X]\n", + "\n", + "X2 = X**2\n", + "X3 = X**3\n", + "X4 = X**4\n", + "\n", + "X_is = X[:len(X)/2],X2[:len(X)/2],X3[:len(X)/2],X4[:len(X)/2]\n", + "\n", + "simple = regression.linear_model.OLS(Y[:len(X)/2], sm.add_constant(X[:len(X)/2])).fit().params\n", + "complicated = regression.linear_model.OLS(Y[:len(X)/2], sm.add_constant(np.column_stack(X_is))).fit().params\n", + "\n", + "simple_model = simple[0] + simple[1] * X\n", + "complicated_model = (complicated[0] + complicated[1] * X \n", + " + complicated[2] * X2 + complicated[3] * X3 \n", + " + complicated[4] * X4) \n", + " \n", + "fig, axes = plt.subplots(nrows = 2, ncols = 1)\n", + "\n", + "axes[0].plot(X[:len(X)/2], simple_model[:len(X)/2], c = 'r');\n", + "axes[0].plot(X, simple_model, c = 'r', linestyle='--');\n", + "axes[0].scatter(X, Y, alpha = 0.8);\n", + "axes[1].plot(X[:len(X)/2], complicated_model[:len(X)/2], c = 'r');\n", + "axes[1].plot(X, complicated_model, c = 'r', linestyle='--');\n", + "axes[1].scatter(X, Y, alpha = 0.8);\n", + "plt.ylim(0,35);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For more information on overfitting, refer to the [Dangers of Overfitting Lecture](https://www.quantopian.com/lectures/the-dangers-of-overfitting). \n", + "\n", + "To see if our unemployment model is overfit let's conduct an out-of-sample validation test. We will use the 2002-2012 data to fit the model and then the 2012-2017 data to test it." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Y = pd.Series(unemployment)\n", + "X_train = pd.DataFrame([qqq[:e], inflation[:e], iwm[:e], fx[:e],\n", + " gold[:e]], columns = Y[:e].index, index = X_str).T\n", + "\n", + "X_test = pd.DataFrame([qqq[e:], inflation[e:], iwm[e:], fx[e:],\n", + " gold[e:]], columns = Y[e:].index, index = X_str).T\n", + "\n", + "\n", + "thetas = regression.linear_model.OLS(Y.loc[:e], sm.add_constant(X_train)).fit().params\n", + "model_insample = (thetas[0] + thetas[1] * X_train['qqq'] + thetas[2] * X_train['inflation']\n", + " + thetas[3] * X_train['iwm'] + thetas[5] * X_train['gold'])\n", + "\n", + "model_outsample = (thetas[0] + thetas[1] * X_test['qqq'] + thetas[2] * X_test['inflation']\n", + " + thetas[3] * X_test['iwm'] + thetas[5] * X_test['gold'])\n", + "\n", + "model_insample.plot(c = 'r');\n", + "model_outsample.plot(c = 'r', linestyle = '--');\n", + "Y.plot();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Out-of-sample our fitted model performs nowhere near as well as it does in-sample. Lets employ forward-chaining again, this time with 6 month partitions instead of yearly ones, on this 2012-2017 validation data to confirm the validity of our predictor selections." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE in 2012 : 0.23988877334\n", + "MSE in 2013 : 0.405434958749\n", + "MSE in 2013 : 0.0945991177613\n", + "MSE in 2014 : 0.779186505254\n", + "MSE in 2014 : 0.10545739628\n", + "MSE in 2015 : 0.0494698316077\n", + "MSE in 2015 : 0.509364605593\n", + "MSE in 2016 : 0.520218562335\n", + "MSE in 2016 : 0.226247940777\n", + "\n", + "\n", + "Average MSE across iterations: 0.325540854633\n" + ] + } + ], + "source": [ + "Y = unemployment[e:]\n", + "X = [qqq[e:], inflation[e:], iwm[e:], fx[e:], gold[e:]]\n", + "\n", + "# Our step AIC algorithm selected all predictors except for fx_rate\n", + "predictors = pd.DataFrame(data = [qqq[e:], inflation[e:], iwm[e:], gold[e:]], \n", + " index = ['qqq', 'inflation', 'iwm', 'gold']).T\n", + "\n", + "# Setting partition dates to the first day of every year 2002-2012\n", + "cutoff_dates = pd.date_range(start = '2012-01-01', end = '2017-01-01', freq = '6MS')\n", + "n = len(cutoff_dates)\n", + "\n", + "MSEs = []\n", + "\n", + "for i in range(1,n-1):\n", + " \n", + " # Defining training and testing sets for each iteration, using yearly cutoff dates\n", + " training_data = predictors.loc[cutoff_dates[0]:cutoff_dates[i]]\n", + " testing_data = predictors.loc[cutoff_dates[i]:cutoff_dates[i+1]]\n", + " \n", + " # Fitting model within the training set\n", + " thetas = regression.linear_model.OLS(Y[cutoff_dates[0]:cutoff_dates[i]], \n", + " sm.add_constant(training_data)).fit().params\n", + " \n", + " # Testing performance within the testing set\n", + " testing_model = (thetas[0] + thetas[1] * testing_data['qqq'] \n", + " + thetas[2] * testing_data['inflation']\n", + " + thetas[3] * testing_data['iwm'] \n", + " + thetas[4] * testing_data['gold'])\n", + " \n", + " # Caluclate Mean Squared Error for the model runnning on the testing set\n", + " errors = Y[cutoff_dates[i]:cutoff_dates[i+1]]-testing_model\n", + " df = len(testing_model) - len(predictors.columns) - 1\n", + " MSE = np.sum([error**2 for error in errors])/df\n", + " MSEs.append(MSE)\n", + " \n", + " print 'MSE in', cutoff_dates[i].year,':', MSE\n", + " \n", + "print '\\n\\nAverage MSE across iterations:', np.mean(MSEs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This MSE is still low, meaning that the regressor selections we made using the `forward_aic` algorithm were well-founded, but the beta coefficients for each have a lot of variability. Therefore, the parameters from a certain training period will not hold for very long and might need to be recalculated on a rolling basis. For more information on detecting and adjusting for this, refer to the Quantopian lecture on [Regression Model Instability](https://www.quantopian.com/lectures/regression-model-instability)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*This presentation is for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation for any security; nor does it constitute an offer to provide investment advisory or other services by Quantopian, Inc. (\"Quantopian\"). Nothing contained herein constitutes investment advice or offers any opinion with respect to the suitability of any security, and any views expressed herein should not be taken as advice to buy, sell, or hold any security or as an endorsement of any security or company. In preparing the information contained herein, Quantopian, Inc. has not taken into account the investment needs, objectives, and financial circumstances of any particular investor. Any views expressed and data illustrated herein were prepared based upon information, believed to be reliable, available to Quantopian, Inc. at the time of publication. Quantopian makes no guarantees as to their accuracy or completeness. All information is subject to change and may quickly become unreliable for various reasons, including changes in market conditions or economic circumstances.*" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/notebooks/lectures/Model_Validation/preview.html b/notebooks/lectures/Model_Validation/preview.html new file mode 100644 index 00000000..aaa06714 --- /dev/null +++ b/notebooks/lectures/Model_Validation/preview.html @@ -0,0 +1,16666 @@ + + + Model Validation Lecture V3 + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Model Selection and Validation¶

By Chris Fenaroli, Max Margenot, and Delaney Granizo-Mackenzie

+

Part of the Quantopian Lecture Series:

+ +

Notebook released under the Creative Commons Attribution 4.0 License.

+
+

Linear regression is a technique that models the relationship between a set of independent variables $X_1,\ldots, X_k$ and a dependent outcome variable $Y$. Simple linear regression with two variables allows us to determine which linear model of the form $Y = \beta_0 + \beta_1 X$ best explains the data, while a multiple linear regression allows for the dependent variable to be a linear function of multiple independent variables $X_1,\ldots, X_k$:

+$$ Y = \beta_0 + \beta_1 X_1 + \ldots + \beta_k X_k + \epsilon_i $$

More background information on regressions can be found in the simple linear regression and multiple linear regression lectures.

+

In many cases, choosing which explanatory variables to include in a model is not trivial. If you include too many variables $X_1,\ldots, X_k$ you risk overfitting and multicollinearity (correaltion of explanatory variables) which would invalidate your regression results. With too few variables you risk excluding predictive interactions. Model selection is the process of determining which combination of explanatory variables maximizes explanatory power and minimizes complexity.

+

Once we have chosen our model fitted the data using an estimation method like OLS, it would be useful to quantify just how "good" our end-result model is. But what exactly makes a model "good"? Is it how well it fits the data? It's simplicity/complexity? Or is it how well it performs when applied to out-of-sample data? Model validation is the process of determining how well-founded a model is and whether it is a satisfactory explanation for the given data.

+ +
+
+
+
+
+
In [33]:
+
+
+
# Import libraries
+import numpy as np
+import pandas as pd
+from statsmodels import regression
+import statsmodels.api as sm
+import statsmodels.stats.diagnostic as smd
+import scipy.stats as stats
+import matplotlib.pyplot as plt
+import math
+
+ +
+
+
+ +
+
+
+
+
+

Model Selection¶

When presented with many possible explanatory variables, choosing which to include in a regression model can be a difficult task. Luckily, there exists a variety of strategies and criteria that simplify model selection.

+

As an example, let's attempt to model the US unemployment rate with US inflation rate, gold prices, USD vs. EUR exchange rate, and two ETFs that track the Russel-2000 and NASDAQ-100 indices as potential explanatory variables. All of these macro indicators are available as free Quantopian Data Feeds.

+

Let's begin by pulling the above as Blaze expressions.

+ +
+
+
+
+
+
In [34]:
+
+
+
from quantopian.interactive.data.quandl import fred_unrate as unemployment_bz
+from quantopian.interactive.data.quandl import rateinf_inflation_usa as inflation_bz
+from quantopian.interactive.data.quandl import bundesbank_bbk01_wt5511 as gold_bz
+from quantopian.interactive.data.quandl import currfx_usdeur as fx_bz
+
+import blaze as bz
+from odo import odo
+
+ +
+
+
+ +
+
+
+
+
+

Now let's migrate the data into Pandas series using asof_date as our index keeping in mind that:

+
    +
  • The specific inflation and unemployment datasets we are using have one month intervals, so time index intervals cannot be anything smaller than monthly
  • +
  • The unemployment data is released at the start of the month after the relevant month and inflation rate data is released ~3 weeks after so we must shift both back a month from the asof_date to prevent look-ahead bias
  • +
  • Gold prices must be shifted back one day from asof_date to prevent look-ahead bias
  • +
  • Equity pricing data only goes back to 2002, so we can only consider data from 2002 on
  • +
+ +
+
+
+
+
+
In [35]:
+
+
+
# Start date dictated by QQQ and IWM (tickers of index-tracking ETFs)
+start = '2002-01-01'
+end = '2017-01-01'
+
+# Sample period will be 2002-2012, saving 2012-2017 for model validation
+s = '2002-01-01'
+e = '2012-01-01'
+
+index = pd.date_range(start=start, end = end, freq= 'MS')
+
+# Migrating Blaze expressions into Pandas DataFrames and setting index
+unemployment = odo(unemployment_bz, pd.DataFrame).set_index(['asof_date'])
+inflation = odo(inflation_bz, pd.DataFrame)
+inflation = inflation.set_index(inflation['asof_date'] + pd.Timedelta('1 days'))
+gold = odo(gold_bz[gold_bz.asof_date >= start], pd.DataFrame).set_index(['asof_date'])
+fx = odo(fx_bz, pd.DataFrame).set_index(['asof_date'])
+qqq = get_pricing('QQQ', start_date=start, end_date=end, fields = 'price')
+iwm = get_pricing('IWM', start_date=start, end_date=end, fields = 'price')
+
+# Adjusting data along points mentioned above
+unemployment = unemployment.shift().loc[index].ffill()['value'][1:];
+inflation = inflation.shift().loc[index].ffill()['value'][1:];
+gold = gold['value'].sort_index().asof(index).ffill()[1:];
+fx = fx['rate'].sort_index().asof(index).ffill()[1:];
+qqq = qqq.asof(index).ffill()[1:];
+iwm = iwm.asof(index).ffill()[1:];
+
+ +
+
+
+ +
+
+
+
+
+

Now we have data for on independent variable and 5 predictor variables. If we were to include every one of these preditors, our model would look like:

+$$ Y_{unrate} = \beta_0 + \beta_1 X_{inflation} + \beta_2 X_{gold} + \beta_3 X_{FX} + \beta_4 X_{qqq} + \beta_5 X_{iwm} + \epsilon_i $$

The next step is to figure out which predictors to include in our model. We could include every single predictor we have, but we would not be sure if every predictor was significant. Adding many insignificant predictors causes a few different issues. If there are more predictors there is a larger chance that the predictors themselves are correalted with each other which would lead to regression model instability and invalidate our results. Furthermore, including many regressors hurts the predictive power of a model. A solution might be to include as few variables as possible, but we would likely exclude some explanatory effects this way. Let's look at some ways to find this balance and determine which variables to include.

+ +
+
+
+
+
+
+
+

Model Selection Criteria¶

There exist a number of metrics we can use to asses the relative and absolute strength of a specfic model. The ones we will focus on are $R^2$, adjusted $R^2$, AIC, and BIC.

+ +
+
+
+
+
+
+
+

Primer on Sum of Squares ($SS_{err}$, $SS_{reg}$, and $SS_{total}$)¶

+
+
+
+
+
+
+
+

The residual sum of squares ($RSS$ or $SS_{err}$) measures the variation in the difference between modelled values and observed values (residuals). The explained sum of squares ($SSR$ or $SS_{reg}$) measures the variation of model values. Finally, the total sum of squares ($SST$ or $SS_{tot}$) measures the variation in the observed data.

+$$SS_{err} = \sum_{i=1}^{n}{(Y_i - \hat{Y_i})^2}\:\:\:\:\:\:\:SS_{reg} = \sum_{i=1}^{n}{(\hat{Y_i} - \bar{Y_i})^2}\:\:\:\:\:\:\:SS_{tot} = \sum_{i=1}^{n}{(Y_i - \bar{Y_i})^2}$$

Where $Y_i$ are observed sample values, $\hat{Y_i}$ are the model values and $\bar{Y}$ is the sample mean.

+

In cases of simple linear regression, the following is generally true:

+$$ SS_{tot} = SS_{reg} + SS_{err} $$

For more intuition on their relationship, look at the graph below. Change the value of $p$ to choose which point to see squared error, regression, and total values for.

+ +
+
+
+
+
+
In [36]:
+
+
+
# Change p to choose which point to see sum of squares visualization at
+p = 6
+
+np.random.seed(0)
+X = np.linspace(1,5,9)
+Y = X + np.random.normal(0,1,9)
+
+params = regression.linear_model.OLS(Y, sm.add_constant(X)).fit().params
+model = params[0] + X * params[1]
+
+err = Y-model
+reg = model - np.mean(Y)
+tot = Y-[np.mean(Y)]*9
+
+plt.scatter(X,Y, color = 'black', label = 'data');
+plt.plot(X,[np.mean(Y)]*9, color = 'black', alpha = 0.3, label = 'Y_mean')
+
+x_p= X[p]
+
+plt.annotate('p = %i'%p, xy=(x_p+0.1,Y[p]+0.1))
+
+plt.fill_between([x_p,x_p+err[p]], model[p], Y[p], 
+                 facecolor='blue', alpha = 0.4, label = 'S_err');
+plt.fill_between([x_p+reg[p],x_p], np.mean(Y), model[p], 
+                 facecolor='yellow', alpha = 0.4, label = 'S_reg');
+plt.fill_between([x_p-tot[p],x_p], np.mean(Y), Y[p], 
+                 facecolor='red', alpha = 0.4, label = 'S_tot');
+                                                                     
+plt.plot(X,model, linestyle = '--', c = 'r', label = 'model');
+plt.xlabel('X');
+plt.ylabel('Y');
+plt.title('Single point RS, SR, and ST of simple linear regression', 
+          fontsize = 15);
+plt.legend();
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+

$SS_{err}$, $SS_{reg}$, and $SS_{total}$ are the sums of the areas of the above squares for every point in the sample.

+ +
+
+
+
+
+
+
+

Coefficient of Determination ($R^2$)¶

The coefficient of determination, or $R^2$, is a metric that tells us the proportion of in-sample variance 'explained' by a certain model. For example, an $R^2$ of 0.9 tells us that the magnitude of the model residual variance is about 90% of that of the sample data. The formula for $R^2$ is:

+$$R^2 = \frac{SS_{reg}}{SS_{tot}} = \frac{\sum_{i=1}^{n} (\hat{Y_i} - \bar{Y_i})^2}{\sum_{i=1}^{n} (Y_i - \bar{Y})^2}$$

One major drawback of $R^2$ in model selection is that as the number of explanatory variables increases, $R^2$ will always also increase or stay the same, even if the incremental variables are not adding much predictive insight. To illustrate this, let's find the $R^2$ of five unemployment models, each model having one more predictor than the next. We will do this by defining a function that takes predictor variables $X_1,\ldots, X_k$ and an independent variable $Y$, runs a regression, and calculates $R^2$ using the model.rsquared attribute.

+ +
+
+
+
+
+
In [37]:
+
+
+
def rsquared(X,Y):
+    X = sm.add_constant(X)
+    model = regression.linear_model.OLS(Y, X).fit()
+    return model.rsquared
+
+# Defining variables, making sure to keep data
+# within the sample period [:e]
+Y = unemployment[:e]
+X = [qqq[:e], inflation[:e], iwm[:e], fx[:e], gold[:e]]
+X_str = ['qqq', 'inflation', 'iwm', 'fx', 'gold']
+
+print '------ R Squared Values ------'
+print '1 predictor:', rsquared(np.column_stack(X[:1]), Y)
+print '2 predictors:', rsquared(np.column_stack(X[:2]), Y)
+print '3 predictors:', rsquared(np.column_stack(X[:3]), Y)
+print '4 predictors:', rsquared(np.column_stack(X[:4]), Y)
+print '5 predictors:', rsquared(np.column_stack(X[:5]), Y)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
------ R Squared Values ------
+1 predictor: 0.124499233139
+2 predictors: 0.459882090695
+3 predictors: 0.700574522302
+4 predictors: 0.734219660452
+5 predictors: 0.875758340212
+
+
+
+ +
+
+ +
+
+
+
+
+

As we can see, increasing the number of predictors inflates the $R^2$ output. If we only went by the $R^2$ prediction criteria, the best model would always be the one with the most predictor variables. This invalidates $R^2$ as a model selection criteria for models with different amounts of predictor variables.

+ +
+
+
+
+
+
+
+

$\bar{R}^2$ (Adjusted $R^2$)¶

+
+
+
+
+
+
+
+

Because regular $R^2$ becomes inflated as more variables are added we cannot use $R^2$ alone for model selection. To account for this effect, there exists an alternate version of $R^2$ which includes a penalty for adding more variables. The formula is below, where $p$ is the number of predictor variables, and $n$ is the sample size:

+$$ \bar{R}^2 = 1-(1-R^2)\frac{n-1}{n-p-1} $$

Let's repeat the experiment above, this time using $\bar{R}^2$, to see if it still inflates as more predictors are added.

+ +
+
+
+
+
+
In [38]:
+
+
+
def rsquared_adj(X,Y):
+    X = sm.add_constant(X)
+    model = regression.linear_model.OLS(Y, X).fit()
+    return model.rsquared_adj
+
+print '------ Adj R Squared Values ------'
+print '1 predictor:', rsquared_adj(np.column_stack(X[:1]), Y)
+print '2 predictors:', rsquared_adj(np.column_stack(X[:2]), Y)
+print '3 predictors:', rsquared_adj(np.column_stack(X[:3]), Y)
+print '4 predictors:', rsquared_adj(np.column_stack(X[:4]), Y)
+print '5 predictors:', rsquared_adj(np.column_stack(X[:5]), Y)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
------ Adj R Squared Values ------
+1 predictor: 0.117079735115
+2 predictors: 0.45064930592
+3 predictors: 0.692830759948
+4 predictors: 0.724975126903
+5 predictors: 0.870309144607
+
+
+
+ +
+
+ +
+
+
+
+
+

The $\bar{R}^2$ are similar to the $R^2$ values, however we can see that the values are slightly smaller due to the predictor penalty. $\bar{R}^2$ should always be used when comparing models with different amounts of predictors to avoid the predictor inflation effect of $R^2$.

+ +
+
+
+
+
+
+
+

Akaike and Bayesian Information Criterion (AIC and BIC)¶

+
+
+
+
+
+
+
+

$R^2$ and $\bar{R}^2$ provide absolute measures on the quality on a model, meaning they can be calculated on any single regression model. They tell you how "good" a model is on its own on a scale of 0 to 1.

+

AIC and BIC provide relative measures of quality and are calculated with an underlying selection pool of models. Instead of yeidling a metric with an absolute scale like $R^2$ and $\bar{R}^2$, they return values for every model in the selection pool and determining model quality requires looking at all of the values and comparing them.

+

AIC is calculated along the following formula:

+$$ AIC = 2p + 2Log(\hat{L}) $$

BIC is calculated similarly:

+$$ BIC = p \cdot ln(n) -2Log(\hat{L}) $$

Where $\hat{L}$ is defined as the maximumized value of the likelihood function. The likelihood function is the probability our model in question is in fact correct given the data we observed. For more information on likelihood functions refer to the Wikipedia page on the subject.

+

Let's use AIC and BIC to compare 5 simple linear regression models for unemployment. We will compute them using the model.aic and model.bic attributes.

+ +
+
+
+
+
+
In [39]:
+
+
+
def aic(X,Y):
+    X = sm.add_constant(X)
+    model = regression.linear_model.OLS(Y, X).fit()
+    return model.aic
+
+def bic(X,Y):
+    X = sm.add_constant(X)
+    model = regression.linear_model.OLS(Y, X).fit()
+    return model.bic
+
+AICs = pd.Series([aic(X[_],Y) for _ in range(5)])
+BICs = pd.Series([bic(X[_],Y) for _ in range(5)])
+
+print "%-24s %-15s %-13s" % ('', 'AIC values:', 'BIC values:')
+print "%-24s %-15s %-13s" % ('Y = b0 + b1*qqq', AICs[0], BICs[0])
+print "%-24s %-15s %-13s" % ('Y = b0 + b1*inflation', AICs[1], BICs[1])
+print "%-24s %-15s %-13s" % ('Y = b0 + b1*iwm', AICs[2], BICs[2])
+print "%-24s %-15s %-13s" % ('Y = b0 + b1*fx', AICs[3], BICs[3])
+print "%-24s %-15s %-13s" % ('Y = b0 + b1*gold', AICs[4], BICs[4])
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                         AIC values:     BIC values:  
+Y = b0 + b1*qqq          481.904294922   487.479278408
+Y = b0 + b1*inflation    464.408261441   469.983244926
+Y = b0 + b1*iwm          497.835819526   503.410803012
+Y = b0 + b1*fx           488.599333286   494.174316772
+Y = b0 + b1*gold         398.65240035    404.227383836
+
+
+
+ +
+
+ +
+
+
+
+
+

Now let's plot the AICs and BICs.

+ +
+
+
+
+
+
In [40]:
+
+
+
AICs.plot(title = 'Model AICs and BICs', label = 'AIC');
+BICs.plot(label = 'BIC');
+plt.xticks(range(5), X_str);
+plt.xlabel('Model Predictor');
+plt.legend();
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+

The "best" model according to AIC and BIC is the one with the smallest value. In this case, both the Akaike and Bayesian information criterion point to the same conclusion; they are both at their minimum with the model $Y = b_0 + b_1 \cdot gold$ meaning gold is the best single predictor for the model on this sample.

+

AIC vs BIC¶

In this test the two criteria pointed to the same model as the best, but this is not always the case as the two criteria have a few key differences.

+
    +
  • The BIC imposes a harsher penalty on additional regressors than the AIC does and will usually select "smaller" models with less parameters
  • +
  • AIC is more suitable for selecting models that serve as the best predictors
  • +
  • BIC is best used to select a model that best explains the behavior in-sample
  • +
+ +
+
+
+
+
+
+
+

Selection Methods¶

Now that we have a handful of criteria to quantify model quality we need to have a method to cycle through and search for the possible models.

+

The first idea that might come to mind is to simply pool all possible models together and test them all. While this might work for a situation in which there are a small number of potential regressors, when dealing with big data sets and many possible predictors it becomes a more difficult issue. The number of predictor combinations begins to rise quickly as more possible predictors are added making cycling through every combination not efficient.

+

Step AIC/BIC¶

If the number of possible predictors large, the best for selecting the "best" is likely iterating through a stepwise linear regression. Broadly, the method builds a model by selecting regressors one at a time, at each step choosing the one that minimizes the model's AIC or BIC. The process ends when adding another variable can no longer decrease the AIC/BIC or when the algorithm exhausts the predictor set and there are no more potential predictors to add. Note that stepwise regressions need not only step forward; the process can be conducted in reverse, starting with all variables included and subtracting off those yielding the highest AIC/BIC, or in tandem with steps alterating forward and backwards.

+

Let's use a step-forward AIC algorithm to select a set of unemployment predictors to use in our model. Some print statements have been added to show the iteration process but can and should be deleted if you would like to use the function elsewhere.

+ +
+
+
+
+
+
In [41]:
+
+
+
def forward_aic(response, data):
+    # This function will work with pandas dataframes and series
+    
+    # Initialize some variables
+    explanatory = list(data.columns)
+    selected = pd.Series(np.ones(data.shape[0]), name="Intercept")
+    current_score, best_new_score = np.inf, np.inf
+    step = 1
+    
+    # Loop while we haven't found a better model
+    while current_score == best_new_score and len(explanatory) != 0:
+        
+        
+        scores_with_elements = []
+        count = 0
+        
+        # For each explanatory variable
+        for element in explanatory:
+            # Make a set of explanatory variables including our current best and the new one
+            tmp = pd.concat([selected, data[element]], axis=1)
+            # Test the set
+            result = regression.linear_model.OLS(response, tmp).fit()
+            score = result.aic
+            scores_with_elements.append((score, element, count))
+            count += 1
+        
+        # Sort the scoring list
+        scores_with_elements.sort(reverse = True)
+        # Get the best new variable
+        best_new_score, best_element, index = scores_with_elements.pop()
+        print '--- Step', step, ' ---'
+        step += 1
+        print 'Current Best AIC:', current_score
+        print 'Best New AIC:', best_new_score
+        print 'Variable to Add:', best_element    
+        
+        if current_score > best_new_score:
+            # If it's better than the best add it to the set
+            explanatory.pop(index)
+            selected = pd.concat([selected, data[best_element]],axis=1)
+            current_score = best_new_score
+            print 'Chosen Model Predictors:', selected.columns.values[1:], '\n'
+            
+        else:
+            print 'Best new AIC did not beat current best. The new variable to add is rejected and the algorithm is finished.\n\n'
+
+    # Return the final model
+    return selected
+
+ +
+
+
+ +
+
+
+
In [42]:
+
+
+
# Reformatting the data to work with the forward_aic function
+Y_series = pd.Series(Y).reset_index(drop=True)
+data_df = pd.DataFrame(np.column_stack((X[0],X[1],X[2],X[3],X[4])), columns = X_str)
+
+predictors = forward_aic(Y_series, data_df)
+print 'Selected Predictors:', predictors.columns.values[1:]
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
--- Step 1  ---
+Current Best AIC: inf
+Best New AIC: 398.65240035
+Variable to Add: gold
+Chosen Model Predictors: ['gold'] 
+
+--- Step 2  ---
+Current Best AIC: 398.65240035
+Best New AIC: 307.741249417
+Variable to Add: iwm
+Chosen Model Predictors: ['gold' 'iwm'] 
+
+--- Step 3  ---
+Current Best AIC: 307.741249417
+Best New AIC: 258.210706106
+Variable to Add: inflation
+Chosen Model Predictors: ['gold' 'iwm' 'inflation'] 
+
+--- Step 4  ---
+Current Best AIC: 258.210706106
+Best New AIC: 253.653929589
+Variable to Add: qqq
+Chosen Model Predictors: ['gold' 'iwm' 'inflation' 'qqq'] 
+
+--- Step 5  ---
+Current Best AIC: 253.653929589
+Best New AIC: 255.596196199
+Variable to Add: fx
+Best new AIC did not beat current best. The new variable to add is rejected and the algorithm is finished.
+
+
+Selected Predictors: ['gold' 'iwm' 'inflation' 'qqq']
+
+
+
+ +
+
+ +
+
+
+
+
+

The forward_aic algorithm selected gold prices, the IWM index, inflation rate, and the QQQ index as the most appropriate combination of predictors. The model is now:

+$$ Y_{unrate} = \beta_0 + \beta_1 X_{gold} + \beta_2 X_{iwm} + \beta_3 X_{inflation} + \beta_4 X_{qqq} + \epsilon_i $$

Let's fit this model using OLS to determine the beta coefficients and graph both the model's prediction for unemployment and its actual values.

+ +
+
+
+
+
+
In [43]:
+
+
+
model = regression.linear_model.OLS(Y.reset_index(drop=True), predictors).fit()
+theta = model.params
+print theta
+predictions = (model.params[0] + model.params[1]*gold[s:e] + model.params[2]*iwm[s:e]
+            + model.params[3]*inflation[s:e] + model.params[4]*qqq[s:e])
+
+predictions.plot(label = 'model', linestyle = '--', c = 'r');
+Y.plot(label = 'unemployment');
+plt.legend();
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Intercept    7.180962
+gold         0.003986
+iwm         -0.093050
+inflation   -0.386373
+qqq          0.067445
+dtype: float64
+
+
+
+ +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+

At first glance the regression model seems decent, but further evaluation is required to determine it's validity.

+ +
+
+
+
+
+
+
+

Model Validation¶

Now that we used model selection criteria and methods to find the most valuable combination of regressors, we now must determine whether this best model is acceptable. Because "best" is a relative term, it is possible that the best model does not explain the independent variable in a satisfactory way. As a result, more work needs to be done to ensure that our model is well-founded.

+

$R^2$ and $\bar{R}^2$¶

As well as being criteria model selection, $R^2$ and $\bar{R}^2$ can also be used as model validation criteria. The intuition, formulas, and weaknesses detailed in the selection section still hold. However, in terms of validation they are additionally limited as they cannot determine the accuracy of the form of the relationship, a vital part of a well-founded model.

+

To illustrate this weakness we can run a linear regression on two datasets with very different forms. Both regressions have a similar $R^2$ value but only the second accurately represents the form of the data it is modeling.

+ +
+
+
+
+
+
In [44]:
+
+
+
np.random.seed(13)
+X = range(100)
+Y1 = [x**5 for x in X]
+Y2 = [x + 20*np.random.normal(0,1) for x in X]
+
+model1 = regression.linear_model.OLS(Y1, sm.add_constant(X)).fit()
+model2 = regression.linear_model.OLS(Y2, sm.add_constant(X)).fit()
+
+print 'R^2 of First Model:', model1.rsquared
+print 'R^2 of Second Model:', model2.rsquared
+
+line1 = [model1.params[0] + model1.params[1]*x for x in X]
+line2 = [model2.params[0] + model2.params[1]*x for x in X]
+
+fig, axes = plt.subplots(nrows = 2, ncols = 1)
+
+axes[0].plot(X, line1, c = 'r');
+axes[0].scatter(X, Y1, alpha = 0.4);
+axes[1].plot(X, line2, c = 'r');
+axes[1].scatter(X, Y2, alpha = 0.4);
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
R^2 of First Model: 0.671416768972
+R^2 of Second Model: 0.67216727851
+
+
+
+ +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+

Clearly the second model best represents the data it was meant to model, but it has practically the same $R^2$ as the first. This illustrates the limitations of $R^2$ when it comes to determining model fit and predictive value.

+ +
+
+
+
+
+
+
+

Although it will not provide a complete picture, let's find the $R^2$ and $\bar{R}^2$ of our unemployment model:

+ +
+
+
+
+
+
In [45]:
+
+
+
print 'Unemployment Model R^2:', model.rsquared
+print 'Unemployment Model Adjusted R^2:', model.rsquared_adj
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Unemployment Model R^2: 0.875698551729
+Unemployment Model Adjusted R^2: 0.871375023094
+
+
+
+ +
+
+ +
+
+
+
+
+

Residual Analysis¶

Residual analysis can help check that the basic assumptions of the linear model are satisfied. A large portion of model validation has to do with studying the residuals of the regression in question. To learn more about this aspect of model validation refer to the lecture on residual analysis.

+

Note that our toy model is conducted on the point values of these datasets. Ideally, we would conduct it on a stationary and normal representation of the data (such as first-order differences) in order to satisfy the assumptions of linear regression. While our toy model works for demonstrating model selection and validation, looking at the residuals will make these violations glaringly obvious and should always be done when validating a model.

+ +
+
+
+
+
+
In [61]:
+
+
+
residuals = model.resid;
+plt.plot(index[:len(residuals)], [0]*len(residuals), c='r')
+plt.scatter(index[:len(residuals)], residuals);
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+

This residual plot uncovers serial correlation and changing variance, both violations of the assumptions of linear regression which invalidate our model. To learn how to detect and adjust for these symptoms refer to the lecture on residual analysis.

+ +
+
+
+
+
+
+
+

Cross-Validation¶

Cross-validation is a technique used to determine how well a model will predict values outside of the sample used to select or fit it. In the case of our unemployment model, we used data from 2002 through 2012 to select our parameters. Now to ensure the accuracy of our model parameters (stored in predictors) we will employ a cross-validation technique known as forward chaining on the 2002-2012 data. We will leave the 2012-2017 data untouched for further validation methods later on in this lecture.

+

Forward chaining cross-validation works by splitting the data up into $k$ equal sized partitions, and conducting an "out-of-sample test" for each partition. During each of these out-of-sample tests we will choose a training set and a testing set and use the training set to fit the model and the testing set to asses its performance. For time series data the training set must come before the testing set, and in the case of forward chaining the training set consists of all the data before the testing set. Forward chaining iterates through all possible testing sets and asses model performance in each.

+

In the case of our unemployment model, we will partition our 2002-2012 data into 10 yearly blocks. The first 3 iterations of a forward chaining test would be constructed as follows:

+$$ +\ + \text{Iteration } 1: \overbrace{ + \underbrace{\textit{2002}}_\text{Training} + + \underbrace{\textit{2003}}_\text{Testing} + }^\text{First Trail-Test Pair} + \ +$$$$ + \ + \text{Iteration } 2: \overbrace{ + \underbrace{\textit{2002 & 2003}}_\text{Training} + + \underbrace{\textit{2004}}_\text{Testing} + }^\text{Second Trail-Test Pair} + \ +$$$$ + \ + \text{Iteration } 3: \overbrace{ + \underbrace{\textit{2002 & 2003 & 2004}}_\text{Training} + + \underbrace{\textit{2005}}_\text{Testing} + }^\text{Third Trail-Test Pair} + \ +$$
+. . . +

The end result is a single performance statistic, usually the mean squared error (MSE) or adjusted $R^2$ of the model in the testing set averaged from across all of the iterations. Let's implement a forward chaining model-validation test on our unemployment model using adjusted MSE as our model prediction quality metric.

+ +
+
+
+
+
+
In [28]:
+
+
+
Y = unemployment[:e]
+X = [qqq[:e], inflation[:e], iwm[:e], fx[:e], gold[:e]]
+
+# Our step AIC algorithm selected all predictors except for fx_rate
+predictors = pd.DataFrame(data = [qqq[:e], inflation[:e], iwm[:e], gold[:e]], 
+                          index = ['qqq', 'inflation', 'iwm', 'gold']).T
+
+# Setting partition dates to the first day of every year 2002-2012
+cutoff_dates = pd.date_range(start = '2002-01-01', end = '2012-01-01', freq = 'AS')
+n = len(cutoff_dates)
+
+MSEs = []
+
+for i in range(1,n-1):
+    
+    # Defining training and testing sets for each iteration, using yearly cutoff dates
+    training_data = predictors.loc[cutoff_dates[0]:cutoff_dates[i]]
+    testing_data = predictors.loc[cutoff_dates[i]:cutoff_dates[i+1]]
+    
+    # Fitting model within the training set
+    fitted_theta = regression.linear_model.OLS(Y[cutoff_dates[0]:cutoff_dates[i]],
+                                               sm.add_constant(training_data)).fit().params
+    
+    # Testing performance within the testing set
+    testing_model = (fitted_theta[0] + fitted_theta[1] * testing_data['qqq'] 
+                     + fitted_theta[2] * testing_data['inflation']
+                     + fitted_theta[3] * testing_data['iwm']
+                     + fitted_theta[4] * testing_data['gold'])
+    
+    # Caluclate Mean Squared Error for the model runnning on the testing set
+    errors = Y[cutoff_dates[i]:cutoff_dates[i+1]]-testing_model
+    df = len(testing_model) - len(predictors.columns) - 1
+    MSE = np.sum([error**2 for error in errors])/df
+    MSEs.append(MSE)
+    
+    print 'MSE in', cutoff_dates[i].year,':', MSE
+    
+print '\n\nAverage MSE across Iterations:', np.mean(MSEs)
+print 'Average MSE Excluding 2009:', np.mean(MSEs[:6]+MSEs[7:])
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
MSE in 2003 : 0.0565831690527
+MSE in 2004 : 0.653180823804
+MSE in 2005 : 0.20938626572
+MSE in 2006 : 0.56114441747
+MSE in 2007 : 0.021279349198
+MSE in 2008 : 2.0220023476
+MSE in 2009 : 13.4768461212
+MSE in 2010 : 3.51297688997
+MSE in 2011 : 2.4009454556
+
+
+Average MSE across Iterations: 2.54603831551
+Average MSE Excluding 2009: 1.1796873398
+
+
+
+ +
+
+ +
+
+
+
+
+

Since unemployment usually is between 3 and 10 percent, a 2.5 MSE is relatively large. However, we can also see that the a couple outliers around the 2009 recession led to this higher error. Excluding 2009, our average MSE would be 1.18, a more reasonable value.

+ +
+
+
+
+
+
+
+

Out-of-Sample Validation¶

After conducting the forward chaining test we can be confident in the performance of our model within the time period of 2002-2012. So far in this lecture, all of the testing and development of this model has been done within this 10-year period. Working extensively within a single time period can lead to overfitting.

+ +
+
+
+
+
+
+
+

Overfitting¶

A model is overfit when it is trained so much that it models the random noise of the data instead of just the underlying relationship. Conducting out-of-sample tests and using cross-validation helps avoid overfitting. It is easy to have a model that looks perfect in-sample, but has little predictive value. To demonstrate the dangers of overfitting, look at the two models below. They both model the same data, but simple_model is just a simple linear regression while complicated_model includes high-order values of X. The result is that the second more complicated model looks better in-sample, but the first and more simple one explains the relationship better.

+ +
+
+
+
+
+
In [29]:
+
+
+
np.random.seed(1)
+X = np.linspace(1,15,10)
+Y = [2*x + 2*np.random.normal(0,1) for x in X]
+
+X2 = X**2
+X3 = X**3
+X4 = X**4
+
+X_is = X[:len(X)/2],X2[:len(X)/2],X3[:len(X)/2],X4[:len(X)/2]
+
+simple = regression.linear_model.OLS(Y[:len(X)/2], sm.add_constant(X[:len(X)/2])).fit().params
+complicated = regression.linear_model.OLS(Y[:len(X)/2], sm.add_constant(np.column_stack(X_is))).fit().params
+
+simple_model = simple[0] + simple[1] * X
+complicated_model = (complicated[0] + complicated[1] * X 
+                     + complicated[2] * X2 + complicated[3] * X3 
+                     + complicated[4] * X4)                                   
+                                            
+fig, axes = plt.subplots(nrows = 2, ncols = 1)
+
+axes[0].plot(X[:len(X)/2], simple_model[:len(X)/2], c = 'r');
+axes[0].plot(X, simple_model, c = 'r', linestyle='--');
+axes[0].scatter(X, Y, alpha = 0.8);
+axes[1].plot(X[:len(X)/2], complicated_model[:len(X)/2], c = 'r');
+axes[1].plot(X, complicated_model, c = 'r', linestyle='--');
+axes[1].scatter(X, Y, alpha = 0.8);
+plt.ylim(0,35);
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+

For more information on overfitting, refer to the Dangers of Overfitting Lecture.

+

To see if our unemployment model is overfit let's conduct an out-of-sample validation test. We will use the 2002-2012 data to fit the model and then the 2012-2017 data to test it.

+ +
+
+
+
+
+
In [30]:
+
+
+
Y = pd.Series(unemployment)
+X_train = pd.DataFrame([qqq[:e], inflation[:e], iwm[:e], fx[:e],
+                        gold[:e]], columns = Y[:e].index, index = X_str).T
+
+X_test = pd.DataFrame([qqq[e:], inflation[e:], iwm[e:], fx[e:],
+                       gold[e:]], columns = Y[e:].index, index = X_str).T
+
+
+thetas = regression.linear_model.OLS(Y.loc[:e], sm.add_constant(X_train)).fit().params
+model_insample = (thetas[0] + thetas[1] * X_train['qqq'] + thetas[2] * X_train['inflation']
+                     + thetas[3] * X_train['iwm'] + thetas[5] * X_train['gold'])
+
+model_outsample = (thetas[0] + thetas[1] * X_test['qqq'] + thetas[2] * X_test['inflation']
+                     + thetas[3] * X_test['iwm'] + thetas[5] * X_test['gold'])
+
+model_insample.plot(c = 'r');
+model_outsample.plot(c = 'r', linestyle = '--');
+Y.plot();
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+

Out-of-sample our fitted model performs nowhere near as well as it does in-sample. Lets employ forward-chaining again, this time with 6 month partitions instead of yearly ones, on this 2012-2017 validation data to confirm the validity of our predictor selections.

+ +
+
+
+
+
+
In [31]:
+
+
+
Y = unemployment[e:]
+X = [qqq[e:], inflation[e:], iwm[e:], fx[e:], gold[e:]]
+
+# Our step AIC algorithm selected all predictors except for fx_rate
+predictors = pd.DataFrame(data = [qqq[e:], inflation[e:], iwm[e:], gold[e:]], 
+                          index = ['qqq', 'inflation', 'iwm', 'gold']).T
+
+# Setting partition dates to the first day of every year 2002-2012
+cutoff_dates = pd.date_range(start = '2012-01-01', end = '2017-01-01', freq = '6MS')
+n = len(cutoff_dates)
+
+MSEs = []
+
+for i in range(1,n-1):
+    
+    # Defining training and testing sets for each iteration, using yearly cutoff dates
+    training_data = predictors.loc[cutoff_dates[0]:cutoff_dates[i]]
+    testing_data = predictors.loc[cutoff_dates[i]:cutoff_dates[i+1]]
+    
+    # Fitting model within the training set
+    thetas = regression.linear_model.OLS(Y[cutoff_dates[0]:cutoff_dates[i]], 
+                                               sm.add_constant(training_data)).fit().params
+    
+    # Testing performance within the testing set
+    testing_model = (thetas[0] + thetas[1] * testing_data['qqq'] 
+                     + thetas[2] * testing_data['inflation']
+                     + thetas[3] * testing_data['iwm'] 
+                     + thetas[4] * testing_data['gold'])
+    
+    # Caluclate Mean Squared Error for the model runnning on the testing set
+    errors = Y[cutoff_dates[i]:cutoff_dates[i+1]]-testing_model
+    df = len(testing_model) - len(predictors.columns) - 1
+    MSE = np.sum([error**2 for error in errors])/df
+    MSEs.append(MSE)
+    
+    print 'MSE in', cutoff_dates[i].year,':', MSE
+    
+print '\n\nAverage MSE across iterations:', np.mean(MSEs)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
MSE in 2012 : 0.23988877334
+MSE in 2013 : 0.405434958749
+MSE in 2013 : 0.0945991177613
+MSE in 2014 : 0.779186505254
+MSE in 2014 : 0.10545739628
+MSE in 2015 : 0.0494698316077
+MSE in 2015 : 0.509364605593
+MSE in 2016 : 0.520218562335
+MSE in 2016 : 0.226247940777
+
+
+Average MSE across iterations: 0.325540854633
+
+
+
+ +
+
+ +
+
+
+
+
+

This MSE is still low, meaning that the regressor selections we made using the forward_aic algorithm were well-founded, but the beta coefficients for each have a lot of variability. Therefore, the parameters from a certain training period will not hold for very long and might need to be recalculated on a rolling basis. For more information on detecting and adjusting for this, refer to the Quantopian lecture on Regression Model Instability.

+ +
+
+
+
+
+
+
+

This presentation is for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation for any security; nor does it constitute an offer to provide investment advisory or other services by Quantopian, Inc. ("Quantopian"). Nothing contained herein constitutes investment advice or offers any opinion with respect to the suitability of any security, and any views expressed herein should not be taken as advice to buy, sell, or hold any security or as an endorsement of any security or company. In preparing the information contained herein, Quantopian, Inc. has not taken into account the investment needs, objectives, and financial circumstances of any particular investor. Any views expressed and data illustrated herein were prepared based upon information, believed to be reliable, available to Quantopian, Inc. at the time of publication. Quantopian makes no guarantees as to their accuracy or completeness. All information is subject to change and may quickly become unreliable for various reasons, including changes in market conditions or economic circumstances.

+ +
+
+
+
+
+