{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "64c457bf",
   "metadata": {},
   "source": [
    "# Due October 20th at 4pm"
   ]
  },
  {
   "cell_type": "raw",
   "id": "621519e1",
   "metadata": {},
   "source": [
    "Devon Kelly   6504930246   6504930246@econ.tu.ac.th"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "11959f2b",
   "metadata": {},
   "source": [
    "Cleaning and Importing the Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 391,
   "id": "37022ef0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from pandas_datareader.famafrench import get_available_datasets\n",
    "import pandas_datareader.data as web\n",
    "import datetime as dt\n",
    "\n",
    "%matplotlib inline\n",
    "# activate plot theme\n",
    "import qeds\n",
    "\n",
    "qeds.themes.mpl_style();\n",
    "plotly_template = qeds.themes.plotly_template()\n",
    "colors = qeds.themes.COLOR_CYCLE\n",
    "\n",
    "# We will import all these here to ensure that they are loaded, but\n",
    "# will usually re-import close to where they are used to make clear\n",
    "# where the functions come from\n",
    "from sklearn import (linear_model, metrics, model_selection)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 393,
   "id": "ee22b1d3",
   "metadata": {},
   "outputs": [],
   "source": [
    "start_date = dt.datetime(1926, 7, 1)\n",
    "end_date = dt.datetime(2022, 8, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 406,
   "id": "edc5e2eb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Food</th>\n",
       "      <th>Beer</th>\n",
       "      <th>Smoke</th>\n",
       "      <th>Games</th>\n",
       "      <th>Books</th>\n",
       "      <th>Hshld</th>\n",
       "      <th>Clths</th>\n",
       "      <th>Hlth</th>\n",
       "      <th>Chems</th>\n",
       "      <th>Txtls</th>\n",
       "      <th>...</th>\n",
       "      <th>Telcm</th>\n",
       "      <th>Servs</th>\n",
       "      <th>BusEq</th>\n",
       "      <th>Paper</th>\n",
       "      <th>Trans</th>\n",
       "      <th>Whlsl</th>\n",
       "      <th>Rtail</th>\n",
       "      <th>Meals</th>\n",
       "      <th>Fin</th>\n",
       "      <th>Other</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1926-07</th>\n",
       "      <td>0.56</td>\n",
       "      <td>-5.19</td>\n",
       "      <td>1.29</td>\n",
       "      <td>2.93</td>\n",
       "      <td>10.97</td>\n",
       "      <td>-0.48</td>\n",
       "      <td>8.08</td>\n",
       "      <td>1.77</td>\n",
       "      <td>8.14</td>\n",
       "      <td>0.39</td>\n",
       "      <td>...</td>\n",
       "      <td>0.83</td>\n",
       "      <td>9.22</td>\n",
       "      <td>2.06</td>\n",
       "      <td>7.70</td>\n",
       "      <td>1.91</td>\n",
       "      <td>-23.79</td>\n",
       "      <td>0.07</td>\n",
       "      <td>1.87</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>5.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-08</th>\n",
       "      <td>2.59</td>\n",
       "      <td>27.03</td>\n",
       "      <td>6.50</td>\n",
       "      <td>0.55</td>\n",
       "      <td>10.01</td>\n",
       "      <td>-3.58</td>\n",
       "      <td>-2.51</td>\n",
       "      <td>4.25</td>\n",
       "      <td>5.50</td>\n",
       "      <td>7.97</td>\n",
       "      <td>...</td>\n",
       "      <td>2.17</td>\n",
       "      <td>2.02</td>\n",
       "      <td>4.39</td>\n",
       "      <td>-2.38</td>\n",
       "      <td>4.85</td>\n",
       "      <td>5.39</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.13</td>\n",
       "      <td>4.47</td>\n",
       "      <td>6.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-09</th>\n",
       "      <td>1.16</td>\n",
       "      <td>4.02</td>\n",
       "      <td>1.26</td>\n",
       "      <td>6.58</td>\n",
       "      <td>-0.99</td>\n",
       "      <td>0.73</td>\n",
       "      <td>-0.51</td>\n",
       "      <td>0.69</td>\n",
       "      <td>5.33</td>\n",
       "      <td>2.30</td>\n",
       "      <td>...</td>\n",
       "      <td>2.41</td>\n",
       "      <td>2.25</td>\n",
       "      <td>0.19</td>\n",
       "      <td>-5.54</td>\n",
       "      <td>0.07</td>\n",
       "      <td>-7.87</td>\n",
       "      <td>0.25</td>\n",
       "      <td>-0.56</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>-3.86</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-10</th>\n",
       "      <td>-3.06</td>\n",
       "      <td>-3.31</td>\n",
       "      <td>1.06</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>9.47</td>\n",
       "      <td>-4.68</td>\n",
       "      <td>0.12</td>\n",
       "      <td>-0.57</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>1.00</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.11</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>-1.09</td>\n",
       "      <td>-5.08</td>\n",
       "      <td>-2.61</td>\n",
       "      <td>-15.38</td>\n",
       "      <td>-2.20</td>\n",
       "      <td>-4.11</td>\n",
       "      <td>-5.51</td>\n",
       "      <td>-8.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-11</th>\n",
       "      <td>6.35</td>\n",
       "      <td>7.29</td>\n",
       "      <td>4.55</td>\n",
       "      <td>1.66</td>\n",
       "      <td>-5.80</td>\n",
       "      <td>-0.54</td>\n",
       "      <td>1.87</td>\n",
       "      <td>5.42</td>\n",
       "      <td>5.20</td>\n",
       "      <td>3.10</td>\n",
       "      <td>...</td>\n",
       "      <td>1.63</td>\n",
       "      <td>3.77</td>\n",
       "      <td>3.64</td>\n",
       "      <td>3.84</td>\n",
       "      <td>1.61</td>\n",
       "      <td>4.67</td>\n",
       "      <td>6.52</td>\n",
       "      <td>4.33</td>\n",
       "      <td>2.34</td>\n",
       "      <td>4.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04</th>\n",
       "      <td>3.01</td>\n",
       "      <td>3.03</td>\n",
       "      <td>6.37</td>\n",
       "      <td>-25.22</td>\n",
       "      <td>-10.76</td>\n",
       "      <td>2.04</td>\n",
       "      <td>-7.00</td>\n",
       "      <td>-6.80</td>\n",
       "      <td>-2.28</td>\n",
       "      <td>6.63</td>\n",
       "      <td>...</td>\n",
       "      <td>-10.70</td>\n",
       "      <td>-12.59</td>\n",
       "      <td>-12.26</td>\n",
       "      <td>-0.74</td>\n",
       "      <td>-10.93</td>\n",
       "      <td>-2.14</td>\n",
       "      <td>-11.41</td>\n",
       "      <td>-5.47</td>\n",
       "      <td>-7.99</td>\n",
       "      <td>-7.65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05</th>\n",
       "      <td>-1.68</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>2.67</td>\n",
       "      <td>-2.93</td>\n",
       "      <td>-7.40</td>\n",
       "      <td>-5.12</td>\n",
       "      <td>-6.45</td>\n",
       "      <td>0.99</td>\n",
       "      <td>4.52</td>\n",
       "      <td>2.38</td>\n",
       "      <td>...</td>\n",
       "      <td>8.54</td>\n",
       "      <td>-3.35</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.66</td>\n",
       "      <td>-4.59</td>\n",
       "      <td>1.03</td>\n",
       "      <td>-5.64</td>\n",
       "      <td>-3.29</td>\n",
       "      <td>2.80</td>\n",
       "      <td>-1.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-06</th>\n",
       "      <td>-1.64</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>-11.63</td>\n",
       "      <td>-11.33</td>\n",
       "      <td>-12.53</td>\n",
       "      <td>-2.56</td>\n",
       "      <td>-12.00</td>\n",
       "      <td>-2.05</td>\n",
       "      <td>-15.65</td>\n",
       "      <td>-11.17</td>\n",
       "      <td>...</td>\n",
       "      <td>-6.72</td>\n",
       "      <td>-6.79</td>\n",
       "      <td>-10.19</td>\n",
       "      <td>-8.51</td>\n",
       "      <td>-7.14</td>\n",
       "      <td>-6.43</td>\n",
       "      <td>-8.50</td>\n",
       "      <td>-9.02</td>\n",
       "      <td>-9.05</td>\n",
       "      <td>-11.78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-07</th>\n",
       "      <td>3.67</td>\n",
       "      <td>5.49</td>\n",
       "      <td>0.56</td>\n",
       "      <td>14.62</td>\n",
       "      <td>12.10</td>\n",
       "      <td>0.76</td>\n",
       "      <td>11.86</td>\n",
       "      <td>2.75</td>\n",
       "      <td>7.66</td>\n",
       "      <td>6.86</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.40</td>\n",
       "      <td>8.60</td>\n",
       "      <td>15.68</td>\n",
       "      <td>7.22</td>\n",
       "      <td>9.33</td>\n",
       "      <td>9.08</td>\n",
       "      <td>16.33</td>\n",
       "      <td>11.89</td>\n",
       "      <td>7.38</td>\n",
       "      <td>9.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-08</th>\n",
       "      <td>-1.61</td>\n",
       "      <td>-1.87</td>\n",
       "      <td>-0.12</td>\n",
       "      <td>-2.95</td>\n",
       "      <td>-4.97</td>\n",
       "      <td>-2.16</td>\n",
       "      <td>-6.01</td>\n",
       "      <td>-5.07</td>\n",
       "      <td>-1.39</td>\n",
       "      <td>-12.20</td>\n",
       "      <td>...</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>-4.72</td>\n",
       "      <td>-5.89</td>\n",
       "      <td>-7.66</td>\n",
       "      <td>-1.46</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>-3.46</td>\n",
       "      <td>-1.47</td>\n",
       "      <td>-2.24</td>\n",
       "      <td>-3.65</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1154 rows × 30 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Food   Beer   Smoke  Games  Books  Hshld  Clths  Hlth   Chems  Txtls  \\\n",
       "Date                                                                            \n",
       "1926-07   0.56  -5.19   1.29   2.93  10.97  -0.48   8.08   1.77   8.14   0.39   \n",
       "1926-08   2.59  27.03   6.50   0.55  10.01  -3.58  -2.51   4.25   5.50   7.97   \n",
       "1926-09   1.16   4.02   1.26   6.58  -0.99   0.73  -0.51   0.69   5.33   2.30   \n",
       "1926-10  -3.06  -3.31   1.06  -4.76   9.47  -4.68   0.12  -0.57  -4.76   1.00   \n",
       "1926-11   6.35   7.29   4.55   1.66  -5.80  -0.54   1.87   5.42   5.20   3.10   \n",
       "...        ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "2022-04   3.01   3.03   6.37 -25.22 -10.76   2.04  -7.00  -6.80  -2.28   6.63   \n",
       "2022-05  -1.68  -1.60   2.67  -2.93  -7.40  -5.12  -6.45   0.99   4.52   2.38   \n",
       "2022-06  -1.64  -0.02 -11.63 -11.33 -12.53  -2.56 -12.00  -2.05 -15.65 -11.17   \n",
       "2022-07   3.67   5.49   0.56  14.62  12.10   0.76  11.86   2.75   7.66   6.86   \n",
       "2022-08  -1.61  -1.87  -0.12  -2.95  -4.97  -2.16  -6.01  -5.07  -1.39 -12.20   \n",
       "\n",
       "         ...  Telcm  Servs  BusEq  Paper  Trans  Whlsl  Rtail  Meals  Fin    \\\n",
       "Date     ...                                                                  \n",
       "1926-07  ...   0.83   9.22   2.06   7.70   1.91 -23.79   0.07   1.87  -0.02   \n",
       "1926-08  ...   2.17   2.02   4.39  -2.38   4.85   5.39  -0.75  -0.13   4.47   \n",
       "1926-09  ...   2.41   2.25   0.19  -5.54   0.07  -7.87   0.25  -0.56  -1.61   \n",
       "1926-10  ...  -0.11  -2.00  -1.09  -5.08  -2.61 -15.38  -2.20  -4.11  -5.51   \n",
       "1926-11  ...   1.63   3.77   3.64   3.84   1.61   4.67   6.52   4.33   2.34   \n",
       "...      ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "2022-04  ... -10.70 -12.59 -12.26  -0.74 -10.93  -2.14 -11.41  -5.47  -7.99   \n",
       "2022-05  ...   8.54  -3.35  -0.75  -0.66  -4.59   1.03  -5.64  -3.29   2.80   \n",
       "2022-06  ...  -6.72  -6.79 -10.19  -8.51  -7.14  -6.43  -8.50  -9.02  -9.05   \n",
       "2022-07  ...  -0.40   8.60  15.68   7.22   9.33   9.08  16.33  11.89   7.38   \n",
       "2022-08  ...  -3.00  -4.72  -5.89  -7.66  -1.46  -1.60  -3.46  -1.47  -2.24   \n",
       "\n",
       "         Other  \n",
       "Date            \n",
       "1926-07   5.20  \n",
       "1926-08   6.76  \n",
       "1926-09  -3.86  \n",
       "1926-10  -8.49  \n",
       "1926-11   4.00  \n",
       "...        ...  \n",
       "2022-04  -7.65  \n",
       "2022-05  -1.19  \n",
       "2022-06 -11.78  \n",
       "2022-07   9.19  \n",
       "2022-08  -3.65  \n",
       "\n",
       "[1154 rows x 30 columns]"
      ]
     },
     "execution_count": 406,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#df_port = pd.read_csv(\"IndustryPortfolios.CSV\")\n",
    "df_Fama = web.DataReader('F-F_Research_Data_Factors', 'famafrench', start = start_date, end = end_date)\n",
    "df_Industry = web.DataReader('30_Industry_Portfolios', 'famafrench', start = start_date, end = end_date)\n",
    "df_Industry = df_Industry[0]\n",
    "\n",
    "#for col in list(df_Fama):\n",
    "    #df_Fama[col] = df_Fama[col].astype(float)\n",
    "#df_Fama = df_Fama/100\n",
    "df_Fama = df_Fama[0]\n",
    "df_Fama\n",
    "df_Industry"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 428,
   "id": "dde28b52",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Food</th>\n",
       "      <th>Beer</th>\n",
       "      <th>Smoke</th>\n",
       "      <th>Games</th>\n",
       "      <th>Books</th>\n",
       "      <th>Hshld</th>\n",
       "      <th>Clths</th>\n",
       "      <th>Hlth</th>\n",
       "      <th>Chems</th>\n",
       "      <th>Txtls</th>\n",
       "      <th>...</th>\n",
       "      <th>Servs</th>\n",
       "      <th>BusEq</th>\n",
       "      <th>Paper</th>\n",
       "      <th>Trans</th>\n",
       "      <th>Whlsl</th>\n",
       "      <th>Rtail</th>\n",
       "      <th>Meals</th>\n",
       "      <th>Fin</th>\n",
       "      <th>Other</th>\n",
       "      <th>const</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1926-07</th>\n",
       "      <td>0.56</td>\n",
       "      <td>-5.19</td>\n",
       "      <td>1.29</td>\n",
       "      <td>2.93</td>\n",
       "      <td>10.97</td>\n",
       "      <td>-0.48</td>\n",
       "      <td>8.08</td>\n",
       "      <td>1.77</td>\n",
       "      <td>8.14</td>\n",
       "      <td>0.39</td>\n",
       "      <td>...</td>\n",
       "      <td>9.22</td>\n",
       "      <td>2.06</td>\n",
       "      <td>7.70</td>\n",
       "      <td>1.91</td>\n",
       "      <td>-23.79</td>\n",
       "      <td>0.07</td>\n",
       "      <td>1.87</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>5.20</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-08</th>\n",
       "      <td>2.59</td>\n",
       "      <td>27.03</td>\n",
       "      <td>6.50</td>\n",
       "      <td>0.55</td>\n",
       "      <td>10.01</td>\n",
       "      <td>-3.58</td>\n",
       "      <td>-2.51</td>\n",
       "      <td>4.25</td>\n",
       "      <td>5.50</td>\n",
       "      <td>7.97</td>\n",
       "      <td>...</td>\n",
       "      <td>2.02</td>\n",
       "      <td>4.39</td>\n",
       "      <td>-2.38</td>\n",
       "      <td>4.85</td>\n",
       "      <td>5.39</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.13</td>\n",
       "      <td>4.47</td>\n",
       "      <td>6.76</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-09</th>\n",
       "      <td>1.16</td>\n",
       "      <td>4.02</td>\n",
       "      <td>1.26</td>\n",
       "      <td>6.58</td>\n",
       "      <td>-0.99</td>\n",
       "      <td>0.73</td>\n",
       "      <td>-0.51</td>\n",
       "      <td>0.69</td>\n",
       "      <td>5.33</td>\n",
       "      <td>2.30</td>\n",
       "      <td>...</td>\n",
       "      <td>2.25</td>\n",
       "      <td>0.19</td>\n",
       "      <td>-5.54</td>\n",
       "      <td>0.07</td>\n",
       "      <td>-7.87</td>\n",
       "      <td>0.25</td>\n",
       "      <td>-0.56</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>-3.86</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-10</th>\n",
       "      <td>-3.06</td>\n",
       "      <td>-3.31</td>\n",
       "      <td>1.06</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>9.47</td>\n",
       "      <td>-4.68</td>\n",
       "      <td>0.12</td>\n",
       "      <td>-0.57</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>1.00</td>\n",
       "      <td>...</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>-1.09</td>\n",
       "      <td>-5.08</td>\n",
       "      <td>-2.61</td>\n",
       "      <td>-15.38</td>\n",
       "      <td>-2.20</td>\n",
       "      <td>-4.11</td>\n",
       "      <td>-5.51</td>\n",
       "      <td>-8.49</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-11</th>\n",
       "      <td>6.35</td>\n",
       "      <td>7.29</td>\n",
       "      <td>4.55</td>\n",
       "      <td>1.66</td>\n",
       "      <td>-5.80</td>\n",
       "      <td>-0.54</td>\n",
       "      <td>1.87</td>\n",
       "      <td>5.42</td>\n",
       "      <td>5.20</td>\n",
       "      <td>3.10</td>\n",
       "      <td>...</td>\n",
       "      <td>3.77</td>\n",
       "      <td>3.64</td>\n",
       "      <td>3.84</td>\n",
       "      <td>1.61</td>\n",
       "      <td>4.67</td>\n",
       "      <td>6.52</td>\n",
       "      <td>4.33</td>\n",
       "      <td>2.34</td>\n",
       "      <td>4.00</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04</th>\n",
       "      <td>3.01</td>\n",
       "      <td>3.03</td>\n",
       "      <td>6.37</td>\n",
       "      <td>-25.22</td>\n",
       "      <td>-10.76</td>\n",
       "      <td>2.04</td>\n",
       "      <td>-7.00</td>\n",
       "      <td>-6.80</td>\n",
       "      <td>-2.28</td>\n",
       "      <td>6.63</td>\n",
       "      <td>...</td>\n",
       "      <td>-12.59</td>\n",
       "      <td>-12.26</td>\n",
       "      <td>-0.74</td>\n",
       "      <td>-10.93</td>\n",
       "      <td>-2.14</td>\n",
       "      <td>-11.41</td>\n",
       "      <td>-5.47</td>\n",
       "      <td>-7.99</td>\n",
       "      <td>-7.65</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05</th>\n",
       "      <td>-1.68</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>2.67</td>\n",
       "      <td>-2.93</td>\n",
       "      <td>-7.40</td>\n",
       "      <td>-5.12</td>\n",
       "      <td>-6.45</td>\n",
       "      <td>0.99</td>\n",
       "      <td>4.52</td>\n",
       "      <td>2.38</td>\n",
       "      <td>...</td>\n",
       "      <td>-3.35</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.66</td>\n",
       "      <td>-4.59</td>\n",
       "      <td>1.03</td>\n",
       "      <td>-5.64</td>\n",
       "      <td>-3.29</td>\n",
       "      <td>2.80</td>\n",
       "      <td>-1.19</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-06</th>\n",
       "      <td>-1.64</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>-11.63</td>\n",
       "      <td>-11.33</td>\n",
       "      <td>-12.53</td>\n",
       "      <td>-2.56</td>\n",
       "      <td>-12.00</td>\n",
       "      <td>-2.05</td>\n",
       "      <td>-15.65</td>\n",
       "      <td>-11.17</td>\n",
       "      <td>...</td>\n",
       "      <td>-6.79</td>\n",
       "      <td>-10.19</td>\n",
       "      <td>-8.51</td>\n",
       "      <td>-7.14</td>\n",
       "      <td>-6.43</td>\n",
       "      <td>-8.50</td>\n",
       "      <td>-9.02</td>\n",
       "      <td>-9.05</td>\n",
       "      <td>-11.78</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-07</th>\n",
       "      <td>3.67</td>\n",
       "      <td>5.49</td>\n",
       "      <td>0.56</td>\n",
       "      <td>14.62</td>\n",
       "      <td>12.10</td>\n",
       "      <td>0.76</td>\n",
       "      <td>11.86</td>\n",
       "      <td>2.75</td>\n",
       "      <td>7.66</td>\n",
       "      <td>6.86</td>\n",
       "      <td>...</td>\n",
       "      <td>8.60</td>\n",
       "      <td>15.68</td>\n",
       "      <td>7.22</td>\n",
       "      <td>9.33</td>\n",
       "      <td>9.08</td>\n",
       "      <td>16.33</td>\n",
       "      <td>11.89</td>\n",
       "      <td>7.38</td>\n",
       "      <td>9.19</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-08</th>\n",
       "      <td>-1.61</td>\n",
       "      <td>-1.87</td>\n",
       "      <td>-0.12</td>\n",
       "      <td>-2.95</td>\n",
       "      <td>-4.97</td>\n",
       "      <td>-2.16</td>\n",
       "      <td>-6.01</td>\n",
       "      <td>-5.07</td>\n",
       "      <td>-1.39</td>\n",
       "      <td>-12.20</td>\n",
       "      <td>...</td>\n",
       "      <td>-4.72</td>\n",
       "      <td>-5.89</td>\n",
       "      <td>-7.66</td>\n",
       "      <td>-1.46</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>-3.46</td>\n",
       "      <td>-1.47</td>\n",
       "      <td>-2.24</td>\n",
       "      <td>-3.65</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1154 rows × 31 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Food   Beer   Smoke  Games  Books  Hshld  Clths  Hlth   Chems  Txtls  \\\n",
       "Date                                                                            \n",
       "1926-07   0.56  -5.19   1.29   2.93  10.97  -0.48   8.08   1.77   8.14   0.39   \n",
       "1926-08   2.59  27.03   6.50   0.55  10.01  -3.58  -2.51   4.25   5.50   7.97   \n",
       "1926-09   1.16   4.02   1.26   6.58  -0.99   0.73  -0.51   0.69   5.33   2.30   \n",
       "1926-10  -3.06  -3.31   1.06  -4.76   9.47  -4.68   0.12  -0.57  -4.76   1.00   \n",
       "1926-11   6.35   7.29   4.55   1.66  -5.80  -0.54   1.87   5.42   5.20   3.10   \n",
       "...        ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "2022-04   3.01   3.03   6.37 -25.22 -10.76   2.04  -7.00  -6.80  -2.28   6.63   \n",
       "2022-05  -1.68  -1.60   2.67  -2.93  -7.40  -5.12  -6.45   0.99   4.52   2.38   \n",
       "2022-06  -1.64  -0.02 -11.63 -11.33 -12.53  -2.56 -12.00  -2.05 -15.65 -11.17   \n",
       "2022-07   3.67   5.49   0.56  14.62  12.10   0.76  11.86   2.75   7.66   6.86   \n",
       "2022-08  -1.61  -1.87  -0.12  -2.95  -4.97  -2.16  -6.01  -5.07  -1.39 -12.20   \n",
       "\n",
       "         ...  Servs  BusEq  Paper  Trans  Whlsl  Rtail  Meals  Fin    Other  \\\n",
       "Date     ...                                                                  \n",
       "1926-07  ...   9.22   2.06   7.70   1.91 -23.79   0.07   1.87  -0.02   5.20   \n",
       "1926-08  ...   2.02   4.39  -2.38   4.85   5.39  -0.75  -0.13   4.47   6.76   \n",
       "1926-09  ...   2.25   0.19  -5.54   0.07  -7.87   0.25  -0.56  -1.61  -3.86   \n",
       "1926-10  ...  -2.00  -1.09  -5.08  -2.61 -15.38  -2.20  -4.11  -5.51  -8.49   \n",
       "1926-11  ...   3.77   3.64   3.84   1.61   4.67   6.52   4.33   2.34   4.00   \n",
       "...      ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "2022-04  ... -12.59 -12.26  -0.74 -10.93  -2.14 -11.41  -5.47  -7.99  -7.65   \n",
       "2022-05  ...  -3.35  -0.75  -0.66  -4.59   1.03  -5.64  -3.29   2.80  -1.19   \n",
       "2022-06  ...  -6.79 -10.19  -8.51  -7.14  -6.43  -8.50  -9.02  -9.05 -11.78   \n",
       "2022-07  ...   8.60  15.68   7.22   9.33   9.08  16.33  11.89   7.38   9.19   \n",
       "2022-08  ...  -4.72  -5.89  -7.66  -1.46  -1.60  -3.46  -1.47  -2.24  -3.65   \n",
       "\n",
       "         const  \n",
       "Date            \n",
       "1926-07      1  \n",
       "1926-08      1  \n",
       "1926-09      1  \n",
       "1926-10      1  \n",
       "1926-11      1  \n",
       "...        ...  \n",
       "2022-04      1  \n",
       "2022-05      1  \n",
       "2022-06      1  \n",
       "2022-07      1  \n",
       "2022-08      1  \n",
       "\n",
       "[1154 rows x 31 columns]"
      ]
     },
     "execution_count": 428,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_Industry.columns\n",
    "\n",
    "name = list(df_Industry.columns)\n",
    "df = df_Industry\n",
    "df.transpose()\n",
    "df['const'] = 1\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 288,
   "id": "d932248c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Food ',\n",
       " 'Beer ',\n",
       " 'Smoke',\n",
       " 'Games',\n",
       " 'Books',\n",
       " 'Hshld',\n",
       " 'Clths',\n",
       " 'Hlth ',\n",
       " 'Chems',\n",
       " 'Txtls',\n",
       " 'Cnstr',\n",
       " 'Steel',\n",
       " 'FabPr',\n",
       " 'ElcEq',\n",
       " 'Autos',\n",
       " 'Carry',\n",
       " 'Mines',\n",
       " 'Coal ',\n",
       " 'Oil  ',\n",
       " 'Util ',\n",
       " 'Telcm',\n",
       " 'Servs',\n",
       " 'BusEq',\n",
       " 'Paper',\n",
       " 'Trans',\n",
       " 'Whlsl',\n",
       " 'Rtail',\n",
       " 'Meals',\n",
       " 'Fin  ',\n",
       " 'Other']"
      ]
     },
     "execution_count": 288,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c7d521d3",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 409,
   "id": "d3eb8fce",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Food</th>\n",
       "      <th>Beer</th>\n",
       "      <th>Smoke</th>\n",
       "      <th>Games</th>\n",
       "      <th>Books</th>\n",
       "      <th>Hshld</th>\n",
       "      <th>Clths</th>\n",
       "      <th>Hlth</th>\n",
       "      <th>Chems</th>\n",
       "      <th>Txtls</th>\n",
       "      <th>...</th>\n",
       "      <th>Servs</th>\n",
       "      <th>BusEq</th>\n",
       "      <th>Paper</th>\n",
       "      <th>Trans</th>\n",
       "      <th>Whlsl</th>\n",
       "      <th>Rtail</th>\n",
       "      <th>Meals</th>\n",
       "      <th>Fin</th>\n",
       "      <th>Other</th>\n",
       "      <th>const</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1926-07</th>\n",
       "      <td>0.56</td>\n",
       "      <td>-5.19</td>\n",
       "      <td>1.29</td>\n",
       "      <td>2.93</td>\n",
       "      <td>10.97</td>\n",
       "      <td>-0.48</td>\n",
       "      <td>8.08</td>\n",
       "      <td>1.77</td>\n",
       "      <td>8.14</td>\n",
       "      <td>0.39</td>\n",
       "      <td>...</td>\n",
       "      <td>9.22</td>\n",
       "      <td>2.06</td>\n",
       "      <td>7.70</td>\n",
       "      <td>1.91</td>\n",
       "      <td>-23.79</td>\n",
       "      <td>0.07</td>\n",
       "      <td>1.87</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>5.20</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-08</th>\n",
       "      <td>2.59</td>\n",
       "      <td>27.03</td>\n",
       "      <td>6.50</td>\n",
       "      <td>0.55</td>\n",
       "      <td>10.01</td>\n",
       "      <td>-3.58</td>\n",
       "      <td>-2.51</td>\n",
       "      <td>4.25</td>\n",
       "      <td>5.50</td>\n",
       "      <td>7.97</td>\n",
       "      <td>...</td>\n",
       "      <td>2.02</td>\n",
       "      <td>4.39</td>\n",
       "      <td>-2.38</td>\n",
       "      <td>4.85</td>\n",
       "      <td>5.39</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.13</td>\n",
       "      <td>4.47</td>\n",
       "      <td>6.76</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-09</th>\n",
       "      <td>1.16</td>\n",
       "      <td>4.02</td>\n",
       "      <td>1.26</td>\n",
       "      <td>6.58</td>\n",
       "      <td>-0.99</td>\n",
       "      <td>0.73</td>\n",
       "      <td>-0.51</td>\n",
       "      <td>0.69</td>\n",
       "      <td>5.33</td>\n",
       "      <td>2.30</td>\n",
       "      <td>...</td>\n",
       "      <td>2.25</td>\n",
       "      <td>0.19</td>\n",
       "      <td>-5.54</td>\n",
       "      <td>0.07</td>\n",
       "      <td>-7.87</td>\n",
       "      <td>0.25</td>\n",
       "      <td>-0.56</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>-3.86</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-10</th>\n",
       "      <td>-3.06</td>\n",
       "      <td>-3.31</td>\n",
       "      <td>1.06</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>9.47</td>\n",
       "      <td>-4.68</td>\n",
       "      <td>0.12</td>\n",
       "      <td>-0.57</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>1.00</td>\n",
       "      <td>...</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>-1.09</td>\n",
       "      <td>-5.08</td>\n",
       "      <td>-2.61</td>\n",
       "      <td>-15.38</td>\n",
       "      <td>-2.20</td>\n",
       "      <td>-4.11</td>\n",
       "      <td>-5.51</td>\n",
       "      <td>-8.49</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1926-11</th>\n",
       "      <td>6.35</td>\n",
       "      <td>7.29</td>\n",
       "      <td>4.55</td>\n",
       "      <td>1.66</td>\n",
       "      <td>-5.80</td>\n",
       "      <td>-0.54</td>\n",
       "      <td>1.87</td>\n",
       "      <td>5.42</td>\n",
       "      <td>5.20</td>\n",
       "      <td>3.10</td>\n",
       "      <td>...</td>\n",
       "      <td>3.77</td>\n",
       "      <td>3.64</td>\n",
       "      <td>3.84</td>\n",
       "      <td>1.61</td>\n",
       "      <td>4.67</td>\n",
       "      <td>6.52</td>\n",
       "      <td>4.33</td>\n",
       "      <td>2.34</td>\n",
       "      <td>4.00</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04</th>\n",
       "      <td>3.01</td>\n",
       "      <td>3.03</td>\n",
       "      <td>6.37</td>\n",
       "      <td>-25.22</td>\n",
       "      <td>-10.76</td>\n",
       "      <td>2.04</td>\n",
       "      <td>-7.00</td>\n",
       "      <td>-6.80</td>\n",
       "      <td>-2.28</td>\n",
       "      <td>6.63</td>\n",
       "      <td>...</td>\n",
       "      <td>-12.59</td>\n",
       "      <td>-12.26</td>\n",
       "      <td>-0.74</td>\n",
       "      <td>-10.93</td>\n",
       "      <td>-2.14</td>\n",
       "      <td>-11.41</td>\n",
       "      <td>-5.47</td>\n",
       "      <td>-7.99</td>\n",
       "      <td>-7.65</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05</th>\n",
       "      <td>-1.68</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>2.67</td>\n",
       "      <td>-2.93</td>\n",
       "      <td>-7.40</td>\n",
       "      <td>-5.12</td>\n",
       "      <td>-6.45</td>\n",
       "      <td>0.99</td>\n",
       "      <td>4.52</td>\n",
       "      <td>2.38</td>\n",
       "      <td>...</td>\n",
       "      <td>-3.35</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.66</td>\n",
       "      <td>-4.59</td>\n",
       "      <td>1.03</td>\n",
       "      <td>-5.64</td>\n",
       "      <td>-3.29</td>\n",
       "      <td>2.80</td>\n",
       "      <td>-1.19</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-06</th>\n",
       "      <td>-1.64</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>-11.63</td>\n",
       "      <td>-11.33</td>\n",
       "      <td>-12.53</td>\n",
       "      <td>-2.56</td>\n",
       "      <td>-12.00</td>\n",
       "      <td>-2.05</td>\n",
       "      <td>-15.65</td>\n",
       "      <td>-11.17</td>\n",
       "      <td>...</td>\n",
       "      <td>-6.79</td>\n",
       "      <td>-10.19</td>\n",
       "      <td>-8.51</td>\n",
       "      <td>-7.14</td>\n",
       "      <td>-6.43</td>\n",
       "      <td>-8.50</td>\n",
       "      <td>-9.02</td>\n",
       "      <td>-9.05</td>\n",
       "      <td>-11.78</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-07</th>\n",
       "      <td>3.67</td>\n",
       "      <td>5.49</td>\n",
       "      <td>0.56</td>\n",
       "      <td>14.62</td>\n",
       "      <td>12.10</td>\n",
       "      <td>0.76</td>\n",
       "      <td>11.86</td>\n",
       "      <td>2.75</td>\n",
       "      <td>7.66</td>\n",
       "      <td>6.86</td>\n",
       "      <td>...</td>\n",
       "      <td>8.60</td>\n",
       "      <td>15.68</td>\n",
       "      <td>7.22</td>\n",
       "      <td>9.33</td>\n",
       "      <td>9.08</td>\n",
       "      <td>16.33</td>\n",
       "      <td>11.89</td>\n",
       "      <td>7.38</td>\n",
       "      <td>9.19</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-08</th>\n",
       "      <td>-1.61</td>\n",
       "      <td>-1.87</td>\n",
       "      <td>-0.12</td>\n",
       "      <td>-2.95</td>\n",
       "      <td>-4.97</td>\n",
       "      <td>-2.16</td>\n",
       "      <td>-6.01</td>\n",
       "      <td>-5.07</td>\n",
       "      <td>-1.39</td>\n",
       "      <td>-12.20</td>\n",
       "      <td>...</td>\n",
       "      <td>-4.72</td>\n",
       "      <td>-5.89</td>\n",
       "      <td>-7.66</td>\n",
       "      <td>-1.46</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>-3.46</td>\n",
       "      <td>-1.47</td>\n",
       "      <td>-2.24</td>\n",
       "      <td>-3.65</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1154 rows × 31 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Food   Beer   Smoke  Games  Books  Hshld  Clths  Hlth   Chems  Txtls  \\\n",
       "Date                                                                            \n",
       "1926-07   0.56  -5.19   1.29   2.93  10.97  -0.48   8.08   1.77   8.14   0.39   \n",
       "1926-08   2.59  27.03   6.50   0.55  10.01  -3.58  -2.51   4.25   5.50   7.97   \n",
       "1926-09   1.16   4.02   1.26   6.58  -0.99   0.73  -0.51   0.69   5.33   2.30   \n",
       "1926-10  -3.06  -3.31   1.06  -4.76   9.47  -4.68   0.12  -0.57  -4.76   1.00   \n",
       "1926-11   6.35   7.29   4.55   1.66  -5.80  -0.54   1.87   5.42   5.20   3.10   \n",
       "...        ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "2022-04   3.01   3.03   6.37 -25.22 -10.76   2.04  -7.00  -6.80  -2.28   6.63   \n",
       "2022-05  -1.68  -1.60   2.67  -2.93  -7.40  -5.12  -6.45   0.99   4.52   2.38   \n",
       "2022-06  -1.64  -0.02 -11.63 -11.33 -12.53  -2.56 -12.00  -2.05 -15.65 -11.17   \n",
       "2022-07   3.67   5.49   0.56  14.62  12.10   0.76  11.86   2.75   7.66   6.86   \n",
       "2022-08  -1.61  -1.87  -0.12  -2.95  -4.97  -2.16  -6.01  -5.07  -1.39 -12.20   \n",
       "\n",
       "         ...  Servs  BusEq  Paper  Trans  Whlsl  Rtail  Meals  Fin    Other  \\\n",
       "Date     ...                                                                  \n",
       "1926-07  ...   9.22   2.06   7.70   1.91 -23.79   0.07   1.87  -0.02   5.20   \n",
       "1926-08  ...   2.02   4.39  -2.38   4.85   5.39  -0.75  -0.13   4.47   6.76   \n",
       "1926-09  ...   2.25   0.19  -5.54   0.07  -7.87   0.25  -0.56  -1.61  -3.86   \n",
       "1926-10  ...  -2.00  -1.09  -5.08  -2.61 -15.38  -2.20  -4.11  -5.51  -8.49   \n",
       "1926-11  ...   3.77   3.64   3.84   1.61   4.67   6.52   4.33   2.34   4.00   \n",
       "...      ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "2022-04  ... -12.59 -12.26  -0.74 -10.93  -2.14 -11.41  -5.47  -7.99  -7.65   \n",
       "2022-05  ...  -3.35  -0.75  -0.66  -4.59   1.03  -5.64  -3.29   2.80  -1.19   \n",
       "2022-06  ...  -6.79 -10.19  -8.51  -7.14  -6.43  -8.50  -9.02  -9.05 -11.78   \n",
       "2022-07  ...   8.60  15.68   7.22   9.33   9.08  16.33  11.89   7.38   9.19   \n",
       "2022-08  ...  -4.72  -5.89  -7.66  -1.46  -1.60  -3.46  -1.47  -2.24  -3.65   \n",
       "\n",
       "         const  \n",
       "Date            \n",
       "1926-07      1  \n",
       "1926-08      1  \n",
       "1926-09      1  \n",
       "1926-10      1  \n",
       "1926-11      1  \n",
       "...        ...  \n",
       "2022-04      1  \n",
       "2022-05      1  \n",
       "2022-06      1  \n",
       "2022-07      1  \n",
       "2022-08      1  \n",
       "\n",
       "[1154 rows x 31 columns]"
      ]
     },
     "execution_count": 409,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_Fama\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 297,
   "id": "4e4b168d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Index: 1154 entries, 192607 to 202208\n",
      "Data columns (total 31 columns):\n",
      " #   Column  Non-Null Count  Dtype  \n",
      "---  ------  --------------  -----  \n",
      " 0   Food    1154 non-null   float64\n",
      " 1   Beer    1154 non-null   float64\n",
      " 2   Smoke   1154 non-null   float64\n",
      " 3   Games   1154 non-null   float64\n",
      " 4   Books   1154 non-null   float64\n",
      " 5   Hshld   1154 non-null   float64\n",
      " 6   Clths   1154 non-null   float64\n",
      " 7   Hlth    1154 non-null   float64\n",
      " 8   Chems   1154 non-null   float64\n",
      " 9   Txtls   1154 non-null   float64\n",
      " 10  Cnstr   1154 non-null   float64\n",
      " 11  Steel   1154 non-null   float64\n",
      " 12  FabPr   1154 non-null   float64\n",
      " 13  ElcEq   1154 non-null   float64\n",
      " 14  Autos   1154 non-null   float64\n",
      " 15  Carry   1154 non-null   float64\n",
      " 16  Mines   1154 non-null   float64\n",
      " 17  Coal    1154 non-null   float64\n",
      " 18  Oil     1154 non-null   float64\n",
      " 19  Util    1154 non-null   float64\n",
      " 20  Telcm   1154 non-null   float64\n",
      " 21  Servs   1154 non-null   float64\n",
      " 22  BusEq   1154 non-null   float64\n",
      " 23  Paper   1154 non-null   float64\n",
      " 24  Trans   1154 non-null   float64\n",
      " 25  Whlsl   1154 non-null   float64\n",
      " 26  Rtail   1154 non-null   float64\n",
      " 27  Meals   1154 non-null   float64\n",
      " 28  Fin     1154 non-null   float64\n",
      " 29  Other   1154 non-null   float64\n",
      " 30  const   1154 non-null   int64  \n",
      "dtypes: float64(30), int64(1)\n",
      "memory usage: 320.8+ KB\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 34620 entries, 0 to 34619\n",
      "Data columns (total 2 columns):\n",
      " #   Column    Non-Null Count  Dtype  \n",
      "---  ------    --------------  -----  \n",
      " 0   Industry  34620 non-null  object \n",
      " 1   Return    34620 non-null  float64\n",
      "dtypes: float64(1), object(1)\n",
      "memory usage: 541.1+ KB\n"
     ]
    }
   ],
   "source": [
    "df\n",
    "df.info()\n",
    "df1.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acdd0043",
   "metadata": {},
   "source": [
    "# Solution to 1.1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5378cb34",
   "metadata": {},
   "source": [
    "Running the Regression Analyses"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 429,
   "id": "825ccf59",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "from sklearn import linear_model\n",
    "\n",
    "beta = pd.DataFrame(np.nan, index = name, columns = [\"BETAs\"])\n",
    "trans = beta\n",
    "trans = trans.rename(columns = {\"BETAs\" : \"Returns\"})\n",
    "rf = df_Fama[\"RF\"]\n",
    "rm = df_Fama[\"Mkt-RF\"]\n",
    "\n",
    "predict = pd.DataFrame()\n",
    "resid = pd.DataFrame()\n",
    "y = pd.DataFrame()\n",
    "type(df_Fama[\"RF\"])\n",
    "data_new.isnull().count()\n",
    "data_new\n",
    "#df_Fama1 = df_Fama.reset_index()\n",
    "df_Fama1\n",
    "#df = df.reset_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 430,
   "id": "0b76aee4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>Food</th>\n",
       "      <th>Beer</th>\n",
       "      <th>Smoke</th>\n",
       "      <th>Games</th>\n",
       "      <th>Books</th>\n",
       "      <th>Hshld</th>\n",
       "      <th>Clths</th>\n",
       "      <th>Hlth</th>\n",
       "      <th>Chems</th>\n",
       "      <th>...</th>\n",
       "      <th>Servs</th>\n",
       "      <th>BusEq</th>\n",
       "      <th>Paper</th>\n",
       "      <th>Trans</th>\n",
       "      <th>Whlsl</th>\n",
       "      <th>Rtail</th>\n",
       "      <th>Meals</th>\n",
       "      <th>Fin</th>\n",
       "      <th>Other</th>\n",
       "      <th>const</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1926-07</td>\n",
       "      <td>0.56</td>\n",
       "      <td>-5.19</td>\n",
       "      <td>1.29</td>\n",
       "      <td>2.93</td>\n",
       "      <td>10.97</td>\n",
       "      <td>-0.48</td>\n",
       "      <td>8.08</td>\n",
       "      <td>1.77</td>\n",
       "      <td>8.14</td>\n",
       "      <td>...</td>\n",
       "      <td>9.22</td>\n",
       "      <td>2.06</td>\n",
       "      <td>7.70</td>\n",
       "      <td>1.91</td>\n",
       "      <td>-23.79</td>\n",
       "      <td>0.07</td>\n",
       "      <td>1.87</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>5.20</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1926-08</td>\n",
       "      <td>2.59</td>\n",
       "      <td>27.03</td>\n",
       "      <td>6.50</td>\n",
       "      <td>0.55</td>\n",
       "      <td>10.01</td>\n",
       "      <td>-3.58</td>\n",
       "      <td>-2.51</td>\n",
       "      <td>4.25</td>\n",
       "      <td>5.50</td>\n",
       "      <td>...</td>\n",
       "      <td>2.02</td>\n",
       "      <td>4.39</td>\n",
       "      <td>-2.38</td>\n",
       "      <td>4.85</td>\n",
       "      <td>5.39</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.13</td>\n",
       "      <td>4.47</td>\n",
       "      <td>6.76</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1926-09</td>\n",
       "      <td>1.16</td>\n",
       "      <td>4.02</td>\n",
       "      <td>1.26</td>\n",
       "      <td>6.58</td>\n",
       "      <td>-0.99</td>\n",
       "      <td>0.73</td>\n",
       "      <td>-0.51</td>\n",
       "      <td>0.69</td>\n",
       "      <td>5.33</td>\n",
       "      <td>...</td>\n",
       "      <td>2.25</td>\n",
       "      <td>0.19</td>\n",
       "      <td>-5.54</td>\n",
       "      <td>0.07</td>\n",
       "      <td>-7.87</td>\n",
       "      <td>0.25</td>\n",
       "      <td>-0.56</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>-3.86</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1926-10</td>\n",
       "      <td>-3.06</td>\n",
       "      <td>-3.31</td>\n",
       "      <td>1.06</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>9.47</td>\n",
       "      <td>-4.68</td>\n",
       "      <td>0.12</td>\n",
       "      <td>-0.57</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>...</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>-1.09</td>\n",
       "      <td>-5.08</td>\n",
       "      <td>-2.61</td>\n",
       "      <td>-15.38</td>\n",
       "      <td>-2.20</td>\n",
       "      <td>-4.11</td>\n",
       "      <td>-5.51</td>\n",
       "      <td>-8.49</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1926-11</td>\n",
       "      <td>6.35</td>\n",
       "      <td>7.29</td>\n",
       "      <td>4.55</td>\n",
       "      <td>1.66</td>\n",
       "      <td>-5.80</td>\n",
       "      <td>-0.54</td>\n",
       "      <td>1.87</td>\n",
       "      <td>5.42</td>\n",
       "      <td>5.20</td>\n",
       "      <td>...</td>\n",
       "      <td>3.77</td>\n",
       "      <td>3.64</td>\n",
       "      <td>3.84</td>\n",
       "      <td>1.61</td>\n",
       "      <td>4.67</td>\n",
       "      <td>6.52</td>\n",
       "      <td>4.33</td>\n",
       "      <td>2.34</td>\n",
       "      <td>4.00</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1149</th>\n",
       "      <td>2022-04</td>\n",
       "      <td>3.01</td>\n",
       "      <td>3.03</td>\n",
       "      <td>6.37</td>\n",
       "      <td>-25.22</td>\n",
       "      <td>-10.76</td>\n",
       "      <td>2.04</td>\n",
       "      <td>-7.00</td>\n",
       "      <td>-6.80</td>\n",
       "      <td>-2.28</td>\n",
       "      <td>...</td>\n",
       "      <td>-12.59</td>\n",
       "      <td>-12.26</td>\n",
       "      <td>-0.74</td>\n",
       "      <td>-10.93</td>\n",
       "      <td>-2.14</td>\n",
       "      <td>-11.41</td>\n",
       "      <td>-5.47</td>\n",
       "      <td>-7.99</td>\n",
       "      <td>-7.65</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1150</th>\n",
       "      <td>2022-05</td>\n",
       "      <td>-1.68</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>2.67</td>\n",
       "      <td>-2.93</td>\n",
       "      <td>-7.40</td>\n",
       "      <td>-5.12</td>\n",
       "      <td>-6.45</td>\n",
       "      <td>0.99</td>\n",
       "      <td>4.52</td>\n",
       "      <td>...</td>\n",
       "      <td>-3.35</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.66</td>\n",
       "      <td>-4.59</td>\n",
       "      <td>1.03</td>\n",
       "      <td>-5.64</td>\n",
       "      <td>-3.29</td>\n",
       "      <td>2.80</td>\n",
       "      <td>-1.19</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1151</th>\n",
       "      <td>2022-06</td>\n",
       "      <td>-1.64</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>-11.63</td>\n",
       "      <td>-11.33</td>\n",
       "      <td>-12.53</td>\n",
       "      <td>-2.56</td>\n",
       "      <td>-12.00</td>\n",
       "      <td>-2.05</td>\n",
       "      <td>-15.65</td>\n",
       "      <td>...</td>\n",
       "      <td>-6.79</td>\n",
       "      <td>-10.19</td>\n",
       "      <td>-8.51</td>\n",
       "      <td>-7.14</td>\n",
       "      <td>-6.43</td>\n",
       "      <td>-8.50</td>\n",
       "      <td>-9.02</td>\n",
       "      <td>-9.05</td>\n",
       "      <td>-11.78</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1152</th>\n",
       "      <td>2022-07</td>\n",
       "      <td>3.67</td>\n",
       "      <td>5.49</td>\n",
       "      <td>0.56</td>\n",
       "      <td>14.62</td>\n",
       "      <td>12.10</td>\n",
       "      <td>0.76</td>\n",
       "      <td>11.86</td>\n",
       "      <td>2.75</td>\n",
       "      <td>7.66</td>\n",
       "      <td>...</td>\n",
       "      <td>8.60</td>\n",
       "      <td>15.68</td>\n",
       "      <td>7.22</td>\n",
       "      <td>9.33</td>\n",
       "      <td>9.08</td>\n",
       "      <td>16.33</td>\n",
       "      <td>11.89</td>\n",
       "      <td>7.38</td>\n",
       "      <td>9.19</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1153</th>\n",
       "      <td>2022-08</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>-1.87</td>\n",
       "      <td>-0.12</td>\n",
       "      <td>-2.95</td>\n",
       "      <td>-4.97</td>\n",
       "      <td>-2.16</td>\n",
       "      <td>-6.01</td>\n",
       "      <td>-5.07</td>\n",
       "      <td>-1.39</td>\n",
       "      <td>...</td>\n",
       "      <td>-4.72</td>\n",
       "      <td>-5.89</td>\n",
       "      <td>-7.66</td>\n",
       "      <td>-1.46</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>-3.46</td>\n",
       "      <td>-1.47</td>\n",
       "      <td>-2.24</td>\n",
       "      <td>-3.65</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1154 rows × 32 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Date  Food   Beer   Smoke  Games  Books  Hshld  Clths  Hlth   Chems  \\\n",
       "0     1926-07   0.56  -5.19   1.29   2.93  10.97  -0.48   8.08   1.77   8.14   \n",
       "1     1926-08   2.59  27.03   6.50   0.55  10.01  -3.58  -2.51   4.25   5.50   \n",
       "2     1926-09   1.16   4.02   1.26   6.58  -0.99   0.73  -0.51   0.69   5.33   \n",
       "3     1926-10  -3.06  -3.31   1.06  -4.76   9.47  -4.68   0.12  -0.57  -4.76   \n",
       "4     1926-11   6.35   7.29   4.55   1.66  -5.80  -0.54   1.87   5.42   5.20   \n",
       "...       ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "1149  2022-04   3.01   3.03   6.37 -25.22 -10.76   2.04  -7.00  -6.80  -2.28   \n",
       "1150  2022-05  -1.68  -1.60   2.67  -2.93  -7.40  -5.12  -6.45   0.99   4.52   \n",
       "1151  2022-06  -1.64  -0.02 -11.63 -11.33 -12.53  -2.56 -12.00  -2.05 -15.65   \n",
       "1152  2022-07   3.67   5.49   0.56  14.62  12.10   0.76  11.86   2.75   7.66   \n",
       "1153  2022-08  -1.61  -1.87  -0.12  -2.95  -4.97  -2.16  -6.01  -5.07  -1.39   \n",
       "\n",
       "      ...  Servs  BusEq  Paper  Trans  Whlsl  Rtail  Meals  Fin    Other  \\\n",
       "0     ...   9.22   2.06   7.70   1.91 -23.79   0.07   1.87  -0.02   5.20   \n",
       "1     ...   2.02   4.39  -2.38   4.85   5.39  -0.75  -0.13   4.47   6.76   \n",
       "2     ...   2.25   0.19  -5.54   0.07  -7.87   0.25  -0.56  -1.61  -3.86   \n",
       "3     ...  -2.00  -1.09  -5.08  -2.61 -15.38  -2.20  -4.11  -5.51  -8.49   \n",
       "4     ...   3.77   3.64   3.84   1.61   4.67   6.52   4.33   2.34   4.00   \n",
       "...   ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "1149  ... -12.59 -12.26  -0.74 -10.93  -2.14 -11.41  -5.47  -7.99  -7.65   \n",
       "1150  ...  -3.35  -0.75  -0.66  -4.59   1.03  -5.64  -3.29   2.80  -1.19   \n",
       "1151  ...  -6.79 -10.19  -8.51  -7.14  -6.43  -8.50  -9.02  -9.05 -11.78   \n",
       "1152  ...   8.60  15.68   7.22   9.33   9.08  16.33  11.89   7.38   9.19   \n",
       "1153  ...  -4.72  -5.89  -7.66  -1.46  -1.60  -3.46  -1.47  -2.24  -3.65   \n",
       "\n",
       "      const  \n",
       "0         1  \n",
       "1         1  \n",
       "2         1  \n",
       "3         1  \n",
       "4         1  \n",
       "...     ...  \n",
       "1149      1  \n",
       "1150      1  \n",
       "1151      1  \n",
       "1152      1  \n",
       "1153      1  \n",
       "\n",
       "[1154 rows x 32 columns]"
      ]
     },
     "execution_count": 430,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Change to decimal format   Check\n",
    "\n",
    "# Then merge the file together (on date)   Check\n",
    "\n",
    "# Create dataframe with beta and expected (E(R - Rf))   sm .OLS\n",
    "#ri,   endog = ri, exog = data_set\n",
    "import statsmodels.api as sm\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 431,
   "id": "21aa2322",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>Food</th>\n",
       "      <th>Beer</th>\n",
       "      <th>Smoke</th>\n",
       "      <th>Games</th>\n",
       "      <th>Books</th>\n",
       "      <th>Hshld</th>\n",
       "      <th>Clths</th>\n",
       "      <th>Hlth</th>\n",
       "      <th>Chems</th>\n",
       "      <th>...</th>\n",
       "      <th>Whlsl</th>\n",
       "      <th>Rtail</th>\n",
       "      <th>Meals</th>\n",
       "      <th>Fin</th>\n",
       "      <th>Other</th>\n",
       "      <th>const</th>\n",
       "      <th>Mkt-RF</th>\n",
       "      <th>SMB</th>\n",
       "      <th>HML</th>\n",
       "      <th>RF</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1926-07</td>\n",
       "      <td>0.56</td>\n",
       "      <td>-5.19</td>\n",
       "      <td>1.29</td>\n",
       "      <td>2.93</td>\n",
       "      <td>10.97</td>\n",
       "      <td>-0.48</td>\n",
       "      <td>8.08</td>\n",
       "      <td>1.77</td>\n",
       "      <td>8.14</td>\n",
       "      <td>...</td>\n",
       "      <td>-23.79</td>\n",
       "      <td>0.07</td>\n",
       "      <td>1.87</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>5.20</td>\n",
       "      <td>1</td>\n",
       "      <td>2.96</td>\n",
       "      <td>-2.56</td>\n",
       "      <td>-2.43</td>\n",
       "      <td>0.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1926-08</td>\n",
       "      <td>2.59</td>\n",
       "      <td>27.03</td>\n",
       "      <td>6.50</td>\n",
       "      <td>0.55</td>\n",
       "      <td>10.01</td>\n",
       "      <td>-3.58</td>\n",
       "      <td>-2.51</td>\n",
       "      <td>4.25</td>\n",
       "      <td>5.50</td>\n",
       "      <td>...</td>\n",
       "      <td>5.39</td>\n",
       "      <td>-0.75</td>\n",
       "      <td>-0.13</td>\n",
       "      <td>4.47</td>\n",
       "      <td>6.76</td>\n",
       "      <td>1</td>\n",
       "      <td>2.64</td>\n",
       "      <td>-1.17</td>\n",
       "      <td>3.82</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1926-09</td>\n",
       "      <td>1.16</td>\n",
       "      <td>4.02</td>\n",
       "      <td>1.26</td>\n",
       "      <td>6.58</td>\n",
       "      <td>-0.99</td>\n",
       "      <td>0.73</td>\n",
       "      <td>-0.51</td>\n",
       "      <td>0.69</td>\n",
       "      <td>5.33</td>\n",
       "      <td>...</td>\n",
       "      <td>-7.87</td>\n",
       "      <td>0.25</td>\n",
       "      <td>-0.56</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>-3.86</td>\n",
       "      <td>1</td>\n",
       "      <td>0.36</td>\n",
       "      <td>-1.40</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1926-10</td>\n",
       "      <td>-3.06</td>\n",
       "      <td>-3.31</td>\n",
       "      <td>1.06</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>9.47</td>\n",
       "      <td>-4.68</td>\n",
       "      <td>0.12</td>\n",
       "      <td>-0.57</td>\n",
       "      <td>-4.76</td>\n",
       "      <td>...</td>\n",
       "      <td>-15.38</td>\n",
       "      <td>-2.20</td>\n",
       "      <td>-4.11</td>\n",
       "      <td>-5.51</td>\n",
       "      <td>-8.49</td>\n",
       "      <td>1</td>\n",
       "      <td>-3.24</td>\n",
       "      <td>-0.09</td>\n",
       "      <td>0.70</td>\n",
       "      <td>0.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1926-11</td>\n",
       "      <td>6.35</td>\n",
       "      <td>7.29</td>\n",
       "      <td>4.55</td>\n",
       "      <td>1.66</td>\n",
       "      <td>-5.80</td>\n",
       "      <td>-0.54</td>\n",
       "      <td>1.87</td>\n",
       "      <td>5.42</td>\n",
       "      <td>5.20</td>\n",
       "      <td>...</td>\n",
       "      <td>4.67</td>\n",
       "      <td>6.52</td>\n",
       "      <td>4.33</td>\n",
       "      <td>2.34</td>\n",
       "      <td>4.00</td>\n",
       "      <td>1</td>\n",
       "      <td>2.53</td>\n",
       "      <td>-0.10</td>\n",
       "      <td>-0.51</td>\n",
       "      <td>0.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1149</th>\n",
       "      <td>2022-04</td>\n",
       "      <td>3.01</td>\n",
       "      <td>3.03</td>\n",
       "      <td>6.37</td>\n",
       "      <td>-25.22</td>\n",
       "      <td>-10.76</td>\n",
       "      <td>2.04</td>\n",
       "      <td>-7.00</td>\n",
       "      <td>-6.80</td>\n",
       "      <td>-2.28</td>\n",
       "      <td>...</td>\n",
       "      <td>-2.14</td>\n",
       "      <td>-11.41</td>\n",
       "      <td>-5.47</td>\n",
       "      <td>-7.99</td>\n",
       "      <td>-7.65</td>\n",
       "      <td>1</td>\n",
       "      <td>-9.46</td>\n",
       "      <td>-1.41</td>\n",
       "      <td>6.19</td>\n",
       "      <td>0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1150</th>\n",
       "      <td>2022-05</td>\n",
       "      <td>-1.68</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>2.67</td>\n",
       "      <td>-2.93</td>\n",
       "      <td>-7.40</td>\n",
       "      <td>-5.12</td>\n",
       "      <td>-6.45</td>\n",
       "      <td>0.99</td>\n",
       "      <td>4.52</td>\n",
       "      <td>...</td>\n",
       "      <td>1.03</td>\n",
       "      <td>-5.64</td>\n",
       "      <td>-3.29</td>\n",
       "      <td>2.80</td>\n",
       "      <td>-1.19</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.34</td>\n",
       "      <td>-1.85</td>\n",
       "      <td>8.41</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1151</th>\n",
       "      <td>2022-06</td>\n",
       "      <td>-1.64</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>-11.63</td>\n",
       "      <td>-11.33</td>\n",
       "      <td>-12.53</td>\n",
       "      <td>-2.56</td>\n",
       "      <td>-12.00</td>\n",
       "      <td>-2.05</td>\n",
       "      <td>-15.65</td>\n",
       "      <td>...</td>\n",
       "      <td>-6.43</td>\n",
       "      <td>-8.50</td>\n",
       "      <td>-9.02</td>\n",
       "      <td>-9.05</td>\n",
       "      <td>-11.78</td>\n",
       "      <td>1</td>\n",
       "      <td>-8.43</td>\n",
       "      <td>2.09</td>\n",
       "      <td>-5.97</td>\n",
       "      <td>0.06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1152</th>\n",
       "      <td>2022-07</td>\n",
       "      <td>3.67</td>\n",
       "      <td>5.49</td>\n",
       "      <td>0.56</td>\n",
       "      <td>14.62</td>\n",
       "      <td>12.10</td>\n",
       "      <td>0.76</td>\n",
       "      <td>11.86</td>\n",
       "      <td>2.75</td>\n",
       "      <td>7.66</td>\n",
       "      <td>...</td>\n",
       "      <td>9.08</td>\n",
       "      <td>16.33</td>\n",
       "      <td>11.89</td>\n",
       "      <td>7.38</td>\n",
       "      <td>9.19</td>\n",
       "      <td>1</td>\n",
       "      <td>9.57</td>\n",
       "      <td>2.81</td>\n",
       "      <td>-4.10</td>\n",
       "      <td>0.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1153</th>\n",
       "      <td>2022-08</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>-1.87</td>\n",
       "      <td>-0.12</td>\n",
       "      <td>-2.95</td>\n",
       "      <td>-4.97</td>\n",
       "      <td>-2.16</td>\n",
       "      <td>-6.01</td>\n",
       "      <td>-5.07</td>\n",
       "      <td>-1.39</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.60</td>\n",
       "      <td>-3.46</td>\n",
       "      <td>-1.47</td>\n",
       "      <td>-2.24</td>\n",
       "      <td>-3.65</td>\n",
       "      <td>1</td>\n",
       "      <td>-3.78</td>\n",
       "      <td>1.39</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.19</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1154 rows × 36 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Date  Food   Beer   Smoke  Games  Books  Hshld  Clths  Hlth   Chems  \\\n",
       "0     1926-07   0.56  -5.19   1.29   2.93  10.97  -0.48   8.08   1.77   8.14   \n",
       "1     1926-08   2.59  27.03   6.50   0.55  10.01  -3.58  -2.51   4.25   5.50   \n",
       "2     1926-09   1.16   4.02   1.26   6.58  -0.99   0.73  -0.51   0.69   5.33   \n",
       "3     1926-10  -3.06  -3.31   1.06  -4.76   9.47  -4.68   0.12  -0.57  -4.76   \n",
       "4     1926-11   6.35   7.29   4.55   1.66  -5.80  -0.54   1.87   5.42   5.20   \n",
       "...       ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "1149  2022-04   3.01   3.03   6.37 -25.22 -10.76   2.04  -7.00  -6.80  -2.28   \n",
       "1150  2022-05  -1.68  -1.60   2.67  -2.93  -7.40  -5.12  -6.45   0.99   4.52   \n",
       "1151  2022-06  -1.64  -0.02 -11.63 -11.33 -12.53  -2.56 -12.00  -2.05 -15.65   \n",
       "1152  2022-07   3.67   5.49   0.56  14.62  12.10   0.76  11.86   2.75   7.66   \n",
       "1153  2022-08  -1.61  -1.87  -0.12  -2.95  -4.97  -2.16  -6.01  -5.07  -1.39   \n",
       "\n",
       "      ...  Whlsl  Rtail  Meals  Fin    Other  const  Mkt-RF   SMB   HML    RF  \n",
       "0     ... -23.79   0.07   1.87  -0.02   5.20      1    2.96 -2.56 -2.43  0.22  \n",
       "1     ...   5.39  -0.75  -0.13   4.47   6.76      1    2.64 -1.17  3.82  0.25  \n",
       "2     ...  -7.87   0.25  -0.56  -1.61  -3.86      1    0.36 -1.40  0.13  0.23  \n",
       "3     ... -15.38  -2.20  -4.11  -5.51  -8.49      1   -3.24 -0.09  0.70  0.32  \n",
       "4     ...   4.67   6.52   4.33   2.34   4.00      1    2.53 -0.10 -0.51  0.31  \n",
       "...   ...    ...    ...    ...    ...    ...    ...     ...   ...   ...   ...  \n",
       "1149  ...  -2.14 -11.41  -5.47  -7.99  -7.65      1   -9.46 -1.41  6.19  0.01  \n",
       "1150  ...   1.03  -5.64  -3.29   2.80  -1.19      1   -0.34 -1.85  8.41  0.03  \n",
       "1151  ...  -6.43  -8.50  -9.02  -9.05 -11.78      1   -8.43  2.09 -5.97  0.06  \n",
       "1152  ...   9.08  16.33  11.89   7.38   9.19      1    9.57  2.81 -4.10  0.08  \n",
       "1153  ...  -1.60  -3.46  -1.47  -2.24  -3.65      1   -3.78  1.39  0.31  0.19  \n",
       "\n",
       "[1154 rows x 36 columns]"
      ]
     },
     "execution_count": 431,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df3 = df\n",
    "\n",
    "df4 = df3.merge(df_Fama1, on = \"Date\")\n",
    "df4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 432,
   "id": "7bb46ac9",
   "metadata": {},
   "outputs": [],
   "source": [
    "industries = name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 433,
   "id": "c2f6d28d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Food \n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.694\n",
      "Model:                            OLS   Adj. R-squared:                  0.693\n",
      "Method:                 Least Squares   F-statistic:                     868.1\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          7.81e-295\n",
      "Time:                        15:39:53   Log-Likelihood:                -2742.7\n",
      "No. Observations:                1154   AIC:                             5493.\n",
      "Df Residuals:                    1150   BIC:                             5514.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.2050      0.078      2.640      0.008       0.053       0.357\n",
      "Mkt-RF         0.7475      0.015     48.252      0.000       0.717       0.778\n",
      "SMB           -0.1404      0.026     -5.491      0.000      -0.191      -0.090\n",
      "HML            0.0523      0.022      2.354      0.019       0.009       0.096\n",
      "==============================================================================\n",
      "Omnibus:                      149.225   Durbin-Watson:                   1.846\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              815.171\n",
      "Skew:                           0.455   Prob(JB):                    9.72e-178\n",
      "Kurtosis:                       7.016   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Beer \n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.494\n",
      "Model:                            OLS   Adj. R-squared:                  0.493\n",
      "Method:                 Least Squares   F-statistic:                     374.3\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          1.42e-169\n",
      "Time:                        15:39:54   Log-Likelihood:                -3507.6\n",
      "No. Observations:                1154   AIC:                             7023.\n",
      "Df Residuals:                    1150   BIC:                             7043.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.2612      0.151      1.733      0.083      -0.034       0.557\n",
      "Mkt-RF         0.8667      0.030     28.837      0.000       0.808       0.926\n",
      "SMB            0.1964      0.050      3.960      0.000       0.099       0.294\n",
      "HML            0.1334      0.043      3.096      0.002       0.049       0.218\n",
      "==============================================================================\n",
      "Omnibus:                      593.932   Durbin-Watson:                   2.033\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):            19337.825\n",
      "Skew:                           1.753   Prob(JB):                         0.00\n",
      "Kurtosis:                      22.746   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Smoke\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.344\n",
      "Model:                            OLS   Adj. R-squared:                  0.342\n",
      "Method:                 Least Squares   F-statistic:                     201.1\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          7.52e-105\n",
      "Time:                        15:39:54   Log-Likelihood:                -3424.5\n",
      "No. Observations:                1154   AIC:                             6857.\n",
      "Df Residuals:                    1150   BIC:                             6877.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.4375      0.140      3.121      0.002       0.162       0.713\n",
      "Mkt-RF         0.6494      0.028     23.219      0.000       0.594       0.704\n",
      "SMB           -0.2169      0.046     -4.698      0.000      -0.307      -0.126\n",
      "HML            0.0966      0.040      2.410      0.016       0.018       0.175\n",
      "==============================================================================\n",
      "Omnibus:                      112.385   Durbin-Watson:                   1.830\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              766.527\n",
      "Skew:                          -0.052   Prob(JB):                    3.55e-167\n",
      "Kurtosis:                       6.991   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Games\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.711\n",
      "Model:                            OLS   Adj. R-squared:                  0.710\n",
      "Method:                 Least Squares   F-statistic:                     941.7\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          4.26e-309\n",
      "Time:                        15:39:54   Log-Likelihood:                -3447.5\n",
      "No. Observations:                1154   AIC:                             6903.\n",
      "Df Residuals:                    1150   BIC:                             6923.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.1589      0.143     -1.111      0.267      -0.440       0.122\n",
      "Mkt-RF         1.2875      0.029     45.128      0.000       1.232       1.344\n",
      "SMB            0.4089      0.047      8.684      0.000       0.317       0.501\n",
      "HML            0.1382      0.041      3.381      0.001       0.058       0.218\n",
      "==============================================================================\n",
      "Omnibus:                      316.297   Durbin-Watson:                   1.896\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):             4880.976\n",
      "Skew:                          -0.830   Prob(JB):                         0.00\n",
      "Kurtosis:                      12.937   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Books\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.715\n",
      "Model:                            OLS   Adj. R-squared:                  0.715\n",
      "Method:                 Least Squares   F-statistic:                     963.0\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          4.52e-313\n",
      "Time:                        15:39:54   Log-Likelihood:                -3188.9\n",
      "No. Observations:                1154   AIC:                             6386.\n",
      "Df Residuals:                    1150   BIC:                             6406.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.1875      0.114     -1.640      0.101      -0.412       0.037\n",
      "Mkt-RF         1.0125      0.023     44.401      0.000       0.968       1.057\n",
      "SMB            0.3725      0.038      9.897      0.000       0.299       0.446\n",
      "HML            0.1862      0.033      5.696      0.000       0.122       0.250\n",
      "==============================================================================\n",
      "Omnibus:                      120.867   Durbin-Watson:                   2.059\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              864.987\n",
      "Skew:                          -0.131   Prob(JB):                    1.48e-188\n",
      "Kurtosis:                       7.233   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Hshld\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.674\n",
      "Model:                            OLS   Adj. R-squared:                  0.673\n",
      "Method:                 Least Squares   F-statistic:                     793.4\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          1.82e-279\n",
      "Time:                        15:39:54   Log-Likelihood:                -3011.9\n",
      "No. Observations:                1154   AIC:                             6032.\n",
      "Df Residuals:                    1150   BIC:                             6052.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0750      0.098      0.765      0.445      -0.117       0.267\n",
      "Mkt-RF         0.9063      0.020     46.332      0.000       0.868       0.945\n",
      "SMB           -0.0882      0.032     -2.731      0.006      -0.152      -0.025\n",
      "HML           -0.0354      0.028     -1.262      0.207      -0.090       0.020\n",
      "==============================================================================\n",
      "Omnibus:                      132.839   Durbin-Watson:                   1.993\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):             1163.603\n",
      "Skew:                           0.034   Prob(JB):                    2.12e-253\n",
      "Kurtosis:                       7.919   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Clths\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.562\n",
      "Model:                            OLS   Adj. R-squared:                  0.561\n",
      "Method:                 Least Squares   F-statistic:                     492.8\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          7.72e-206\n",
      "Time:                        15:39:54   Log-Likelihood:                -3259.3\n",
      "No. Observations:                1154   AIC:                             6527.\n",
      "Df Residuals:                    1150   BIC:                             6547.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0917      0.122      0.755      0.451      -0.147       0.330\n",
      "Mkt-RF         0.7615      0.024     31.419      0.000       0.714       0.809\n",
      "SMB            0.4221      0.040     10.552      0.000       0.344       0.501\n",
      "HML           -0.0600      0.035     -1.728      0.084      -0.128       0.008\n",
      "==============================================================================\n",
      "Omnibus:                      327.709   Durbin-Watson:                   1.833\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):            10214.310\n",
      "Skew:                          -0.649   Prob(JB):                         0.00\n",
      "Kurtosis:                      17.517   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Hlth \n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.666\n",
      "Model:                            OLS   Adj. R-squared:                  0.665\n",
      "Method:                 Least Squares   F-statistic:                     763.0\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          6.42e-273\n",
      "Time:                        15:39:54   Log-Likelihood:                -2979.1\n",
      "No. Observations:                1154   AIC:                             5966.\n",
      "Df Residuals:                    1150   BIC:                             5986.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.2999      0.095      3.147      0.002       0.113       0.487\n",
      "Mkt-RF         0.8789      0.019     46.228      0.000       0.842       0.916\n",
      "SMB           -0.0857      0.031     -2.730      0.006      -0.147      -0.024\n",
      "HML           -0.1895      0.027     -6.953      0.000      -0.243      -0.136\n",
      "==============================================================================\n",
      "Omnibus:                       77.950   Durbin-Watson:                   2.006\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              345.355\n",
      "Skew:                          -0.056   Prob(JB):                     1.02e-75\n",
      "Kurtosis:                       5.678   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Chems\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.782\n",
      "Model:                            OLS   Adj. R-squared:                  0.781\n",
      "Method:                 Least Squares   F-statistic:                     1372.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -2888.8\n",
      "No. Observations:                1154   AIC:                             5786.\n",
      "Df Residuals:                    1150   BIC:                             5806.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0787      0.088      0.893      0.372      -0.094       0.252\n",
      "Mkt-RF         1.0681      0.018     60.755      0.000       1.034       1.103\n",
      "SMB           -0.1515      0.029     -5.222      0.000      -0.208      -0.095\n",
      "HML            0.0262      0.025      1.039      0.299      -0.023       0.076\n",
      "==============================================================================\n",
      "Omnibus:                      119.449   Durbin-Watson:                   1.944\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              559.456\n",
      "Skew:                           0.362   Prob(JB):                    3.28e-122\n",
      "Kurtosis:                       6.333   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Txtls\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.692\n",
      "Model:                            OLS   Adj. R-squared:                  0.692\n",
      "Method:                 Least Squares   F-statistic:                     863.1\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          7.84e-294\n",
      "Time:                        15:39:54   Log-Likelihood:                -3328.5\n",
      "No. Observations:                1154   AIC:                             6665.\n",
      "Df Residuals:                    1150   BIC:                             6685.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.2266      0.129     -1.756      0.079      -0.480       0.027\n",
      "Mkt-RF         0.9827      0.026     38.186      0.000       0.932       1.033\n",
      "SMB            0.5633      0.042     13.261      0.000       0.480       0.647\n",
      "HML            0.3730      0.037     10.111      0.000       0.301       0.445\n",
      "==============================================================================\n",
      "Omnibus:                      333.882   Durbin-Watson:                   1.953\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):             7153.968\n",
      "Skew:                           0.799   Prob(JB):                         0.00\n",
      "Kurtosis:                      15.093   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cnstr\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.840\n",
      "Model:                            OLS   Adj. R-squared:                  0.839\n",
      "Method:                 Least Squares   F-statistic:                     2011.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -2817.6\n",
      "No. Observations:                1154   AIC:                             5643.\n",
      "Df Residuals:                    1150   BIC:                             5663.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.1445      0.083     -1.744      0.081      -0.307       0.018\n",
      "Mkt-RF         1.1183      0.017     67.658      0.000       1.086       1.151\n",
      "SMB            0.2477      0.027      9.081      0.000       0.194       0.301\n",
      "HML            0.1078      0.024      4.551      0.000       0.061       0.154\n",
      "==============================================================================\n",
      "Omnibus:                       82.802   Durbin-Watson:                   2.026\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              394.794\n",
      "Skew:                          -0.025   Prob(JB):                     1.87e-86\n",
      "Kurtosis:                       5.865   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Steel\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.750\n",
      "Model:                            OLS   Adj. R-squared:                  0.750\n",
      "Method:                 Least Squares   F-statistic:                     1151.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -3317.6\n",
      "No. Observations:                1154   AIC:                             6643.\n",
      "Df Residuals:                    1150   BIC:                             6663.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.3495      0.128     -2.734      0.006      -0.600      -0.099\n",
      "Mkt-RF         1.2597      0.025     49.412      0.000       1.210       1.310\n",
      "SMB            0.2320      0.042      5.515      0.000       0.149       0.315\n",
      "HML            0.3804      0.037     10.411      0.000       0.309       0.452\n",
      "==============================================================================\n",
      "Omnibus:                      163.176   Durbin-Watson:                   1.979\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              787.320\n",
      "Skew:                           0.562   Prob(JB):                    1.09e-171\n",
      "Kurtosis:                       6.887   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "FabPr\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.855\n",
      "Model:                            OLS   Adj. R-squared:                  0.854\n",
      "Method:                 Least Squares   F-statistic:                     2251.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -2808.0\n",
      "No. Observations:                1154   AIC:                             5624.\n",
      "Df Residuals:                    1150   BIC:                             5644.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.0790      0.082     -0.961      0.337      -0.240       0.082\n",
      "Mkt-RF         1.1734      0.016     71.581      0.000       1.141       1.206\n",
      "SMB            0.2615      0.027      9.667      0.000       0.208       0.315\n",
      "HML            0.1120      0.023      4.766      0.000       0.066       0.158\n",
      "==============================================================================\n",
      "Omnibus:                      104.749   Durbin-Watson:                   1.901\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              392.289\n",
      "Skew:                           0.370   Prob(JB):                     6.54e-86\n",
      "Kurtosis:                       5.759   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "ElcEq\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.815\n",
      "Model:                            OLS   Adj. R-squared:                  0.815\n",
      "Method:                 Least Squares   F-statistic:                     1690.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -3008.0\n",
      "No. Observations:                1154   AIC:                             6024.\n",
      "Df Residuals:                    1150   BIC:                             6044.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0322      0.098      0.329      0.742      -0.160       0.224\n",
      "Mkt-RF         1.2955      0.019     66.455      0.000       1.257       1.334\n",
      "SMB           -0.0355      0.032     -1.102      0.271      -0.099       0.028\n",
      "HML           -0.0006      0.028     -0.022      0.982      -0.055       0.054\n",
      "==============================================================================\n",
      "Omnibus:                       33.771   Durbin-Watson:                   2.069\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):               55.494\n",
      "Skew:                           0.242   Prob(JB):                     8.90e-13\n",
      "Kurtosis:                       3.959   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Autos\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.686\n",
      "Model:                            OLS   Adj. R-squared:                  0.685\n",
      "Method:                 Least Squares   F-statistic:                     838.1\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          9.06e-289\n",
      "Time:                        15:39:54   Log-Likelihood:                -3416.7\n",
      "No. Observations:                1154   AIC:                             6841.\n",
      "Df Residuals:                    1150   BIC:                             6862.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0068      0.139      0.049      0.961      -0.266       0.280\n",
      "Mkt-RF         1.2477      0.028     44.917      0.000       1.193       1.302\n",
      "SMB            0.0551      0.046      1.202      0.230      -0.035       0.145\n",
      "HML            0.1886      0.040      4.738      0.000       0.111       0.267\n",
      "==============================================================================\n",
      "Omnibus:                      418.150   Durbin-Watson:                   1.891\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):             4814.371\n",
      "Skew:                           1.333   Prob(JB):                         0.00\n",
      "Kurtosis:                      12.645   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Carry\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.719\n",
      "Model:                            OLS   Adj. R-squared:                  0.718\n",
      "Method:                 Least Squares   F-statistic:                     979.9\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          3.42e-316\n",
      "Time:                        15:39:54   Log-Likelihood:                -3254.3\n",
      "No. Observations:                1154   AIC:                             6517.\n",
      "Df Residuals:                    1150   BIC:                             6537.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.0463      0.121     -0.383      0.702      -0.284       0.191\n",
      "Mkt-RF         1.0976      0.024     45.482      0.000       1.050       1.145\n",
      "SMB            0.2181      0.040      5.477      0.000       0.140       0.296\n",
      "HML            0.3281      0.035      9.485      0.000       0.260       0.396\n",
      "==============================================================================\n",
      "Omnibus:                       70.890   Durbin-Watson:                   2.000\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              189.199\n",
      "Skew:                           0.308   Prob(JB):                     8.24e-42\n",
      "Kurtosis:                       4.885   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Mines\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.461\n",
      "Model:                            OLS   Adj. R-squared:                  0.460\n",
      "Method:                 Least Squares   F-statistic:                     327.7\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          9.28e-154\n",
      "Time:                        15:39:54   Log-Likelihood:                -3578.6\n",
      "No. Observations:                1154   AIC:                             7165.\n",
      "Df Residuals:                    1150   BIC:                             7185.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.0280      0.160     -0.174      0.862      -0.342       0.286\n",
      "Mkt-RF         0.8426      0.032     26.364      0.000       0.780       0.905\n",
      "SMB            0.2587      0.053      4.905      0.000       0.155       0.362\n",
      "HML            0.1456      0.046      3.179      0.002       0.056       0.236\n",
      "==============================================================================\n",
      "Omnibus:                       44.690   Durbin-Watson:                   2.014\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              104.546\n",
      "Skew:                           0.184   Prob(JB):                     1.99e-23\n",
      "Kurtosis:                       4.428   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Coal \n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.451\n",
      "Model:                            OLS   Adj. R-squared:                  0.449\n",
      "Method:                 Least Squares   F-statistic:                     314.3\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          5.51e-149\n",
      "Time:                        15:39:54   Log-Likelihood:                -4059.4\n",
      "No. Observations:                1154   AIC:                             8127.\n",
      "Df Residuals:                    1150   BIC:                             8147.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.2331      0.243     -0.959      0.338      -0.710       0.244\n",
      "Mkt-RF         1.0842      0.048     22.362      0.000       0.989       1.179\n",
      "SMB            0.4854      0.080      6.066      0.000       0.328       0.642\n",
      "HML            0.6733      0.069      9.690      0.000       0.537       0.810\n",
      "==============================================================================\n",
      "Omnibus:                      274.247   Durbin-Watson:                   1.809\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):             1903.951\n",
      "Skew:                           0.909   Prob(JB):                         0.00\n",
      "Kurtosis:                       9.024   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Oil  \n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.581\n",
      "Model:                            OLS   Adj. R-squared:                  0.580\n",
      "Method:                 Least Squares   F-statistic:                     530.8\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          2.01e-216\n",
      "Time:                        15:39:54   Log-Likelihood:                -3279.5\n",
      "No. Observations:                1154   AIC:                             6567.\n",
      "Df Residuals:                    1150   BIC:                             6587.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.1151      0.124      0.931      0.352      -0.128       0.358\n",
      "Mkt-RF         0.8788      0.025     35.627      0.000       0.830       0.927\n",
      "SMB           -0.1792      0.041     -4.402      0.000      -0.259      -0.099\n",
      "HML            0.2901      0.035      8.205      0.000       0.221       0.359\n",
      "==============================================================================\n",
      "Omnibus:                      114.285   Durbin-Watson:                   1.842\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              555.916\n",
      "Skew:                           0.317   Prob(JB):                    1.93e-121\n",
      "Kurtosis:                       6.341   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Util \n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.591\n",
      "Model:                            OLS   Adj. R-squared:                  0.590\n",
      "Method:                 Least Squares   F-statistic:                     553.1\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          1.89e-222\n",
      "Time:                        15:39:54   Log-Likelihood:                -3083.2\n",
      "No. Observations:                1154   AIC:                             6174.\n",
      "Df Residuals:                    1150   BIC:                             6195.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0508      0.104      0.487      0.626      -0.154       0.255\n",
      "Mkt-RF         0.7555      0.021     36.308      0.000       0.715       0.796\n",
      "SMB           -0.1669      0.034     -4.860      0.000      -0.234      -0.100\n",
      "HML            0.2597      0.030      8.709      0.000       0.201       0.318\n",
      "==============================================================================\n",
      "Omnibus:                       76.329   Durbin-Watson:                   1.894\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              335.642\n",
      "Skew:                          -0.008   Prob(JB):                     1.31e-73\n",
      "Kurtosis:                       5.642   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Telcm\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.602\n",
      "Model:                            OLS   Adj. R-squared:                  0.601\n",
      "Method:                 Least Squares   F-statistic:                     578.8\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          3.26e-229\n",
      "Time:                        15:39:54   Log-Likelihood:                -2870.2\n",
      "No. Observations:                1154   AIC:                             5748.\n",
      "Df Residuals:                    1150   BIC:                             5769.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.1372      0.087      1.582      0.114      -0.033       0.307\n",
      "Mkt-RF         0.6950      0.017     40.174      0.000       0.661       0.729\n",
      "SMB           -0.1317      0.029     -4.611      0.000      -0.188      -0.076\n",
      "HML           -0.0367      0.025     -1.482      0.139      -0.085       0.012\n",
      "==============================================================================\n",
      "Omnibus:                       53.445   Durbin-Watson:                   1.934\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              160.437\n",
      "Skew:                           0.116   Prob(JB):                     1.45e-35\n",
      "Kurtosis:                       4.812   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Servs\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.346\n",
      "Model:                            OLS   Adj. R-squared:                  0.344\n",
      "Method:                 Least Squares   F-statistic:                     202.4\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          2.06e-105\n",
      "Time:                        15:39:54   Log-Likelihood:                -3827.5\n",
      "No. Observations:                1154   AIC:                             7663.\n",
      "Df Residuals:                    1150   BIC:                             7683.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.4999      0.199      2.514      0.012       0.110       0.890\n",
      "Mkt-RF         0.8321      0.040     20.984      0.000       0.754       0.910\n",
      "SMB            0.3686      0.065      5.632      0.000       0.240       0.497\n",
      "HML           -0.5058      0.057     -8.899      0.000      -0.617      -0.394\n",
      "==============================================================================\n",
      "Omnibus:                      715.042   Durbin-Watson:                   2.200\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):            81810.763\n",
      "Skew:                           1.918   Prob(JB):                         0.00\n",
      "Kurtosis:                      44.070   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "BusEq\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.783\n",
      "Model:                            OLS   Adj. R-squared:                  0.783\n",
      "Method:                 Least Squares   F-statistic:                     1385.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -2962.9\n",
      "No. Observations:                1154   AIC:                             5934.\n",
      "Df Residuals:                    1150   BIC:                             5954.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.2803      0.094      2.982      0.003       0.096       0.465\n",
      "Mkt-RF         1.1212      0.019     59.804      0.000       1.084       1.158\n",
      "SMB            0.1533      0.031      4.955      0.000       0.093       0.214\n",
      "HML           -0.4557      0.027    -16.960      0.000      -0.508      -0.403\n",
      "==============================================================================\n",
      "Omnibus:                       70.809   Durbin-Watson:                   2.067\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              285.566\n",
      "Skew:                           0.056   Prob(JB):                     9.77e-63\n",
      "Kurtosis:                       5.434   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Paper\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.749\n",
      "Model:                            OLS   Adj. R-squared:                  0.748\n",
      "Method:                 Least Squares   F-statistic:                     1144.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -2881.2\n",
      "No. Observations:                1154   AIC:                             5770.\n",
      "Df Residuals:                    1150   BIC:                             5791.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.0753      0.088      0.860      0.390      -0.097       0.247\n",
      "Mkt-RF         0.9528      0.017     54.552      0.000       0.919       0.987\n",
      "SMB           -0.0577      0.029     -2.001      0.046      -0.114      -0.001\n",
      "HML            0.0454      0.025      1.812      0.070      -0.004       0.094\n",
      "==============================================================================\n",
      "Omnibus:                       79.644   Durbin-Watson:                   1.931\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              355.308\n",
      "Skew:                           0.081   Prob(JB):                     7.01e-78\n",
      "Kurtosis:                       5.714   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Trans\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.795\n",
      "Model:                            OLS   Adj. R-squared:                  0.794\n",
      "Method:                 Least Squares   F-statistic:                     1483.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -2982.0\n",
      "No. Observations:                1154   AIC:                             5972.\n",
      "Df Residuals:                    1150   BIC:                             5992.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.2353      0.096     -2.462      0.014      -0.423      -0.048\n",
      "Mkt-RF         1.0380      0.019     54.459      0.000       1.001       1.075\n",
      "SMB            0.1635      0.031      5.196      0.000       0.102       0.225\n",
      "HML            0.4544      0.027     16.633      0.000       0.401       0.508\n",
      "==============================================================================\n",
      "Omnibus:                       81.776   Durbin-Watson:                   1.915\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              384.621\n",
      "Skew:                          -0.027   Prob(JB):                     3.02e-84\n",
      "Kurtosis:                       5.828   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Whlsl\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.690\n",
      "Model:                            OLS   Adj. R-squared:                  0.689\n",
      "Method:                 Least Squares   F-statistic:                     853.8\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          5.95e-292\n",
      "Time:                        15:39:54   Log-Likelihood:                -3251.7\n",
      "No. Observations:                1154   AIC:                             6511.\n",
      "Df Residuals:                    1150   BIC:                             6532.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.2105      0.121     -1.744      0.081      -0.447       0.026\n",
      "Mkt-RF         0.9730      0.024     40.409      0.000       0.926       1.020\n",
      "SMB            0.5502      0.040     13.844      0.000       0.472       0.628\n",
      "HML            0.0682      0.035      1.977      0.048       0.001       0.136\n",
      "==============================================================================\n",
      "Omnibus:                      303.643   Durbin-Watson:                   2.053\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):            10510.009\n",
      "Skew:                          -0.496   Prob(JB):                         0.00\n",
      "Kurtosis:                      17.751   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Rtail\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.753\n",
      "Model:                            OLS   Adj. R-squared:                  0.753\n",
      "Method:                 Least Squares   F-statistic:                     1171.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -2893.6\n",
      "No. Observations:                1154   AIC:                             5795.\n",
      "Df Residuals:                    1150   BIC:                             5815.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.1568      0.089      1.771      0.077      -0.017       0.330\n",
      "Mkt-RF         0.9800      0.018     55.509      0.000       0.945       1.015\n",
      "SMB            0.0416      0.029      1.429      0.153      -0.016       0.099\n",
      "HML           -0.1315      0.025     -5.196      0.000      -0.181      -0.082\n",
      "==============================================================================\n",
      "Omnibus:                       48.752   Durbin-Watson:                   1.832\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              136.982\n",
      "Skew:                          -0.112   Prob(JB):                     1.80e-30\n",
      "Kurtosis:                       4.673   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Meals\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.625\n",
      "Model:                            OLS   Adj. R-squared:                  0.624\n",
      "Method:                 Least Squares   F-statistic:                     638.9\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          2.48e-244\n",
      "Time:                        15:39:54   Log-Likelihood:                -3230.1\n",
      "No. Observations:                1154   AIC:                             6468.\n",
      "Df Residuals:                    1150   BIC:                             6488.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.1512      0.118      1.276      0.202      -0.081       0.384\n",
      "Mkt-RF         0.8969      0.024     37.955      0.000       0.851       0.943\n",
      "SMB            0.2895      0.039      7.423      0.000       0.213       0.366\n",
      "HML           -0.0306      0.034     -0.902      0.367      -0.097       0.036\n",
      "==============================================================================\n",
      "Omnibus:                      117.928   Durbin-Watson:                   1.819\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              710.326\n",
      "Skew:                          -0.233   Prob(JB):                    5.68e-155\n",
      "Kurtosis:                       6.815   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Fin  \n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.865\n",
      "Model:                            OLS   Adj. R-squared:                  0.865\n",
      "Method:                 Least Squares   F-statistic:                     2456.\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):               0.00\n",
      "Time:                        15:39:54   Log-Likelihood:                -2687.7\n",
      "No. Observations:                1154   AIC:                             5383.\n",
      "Df Residuals:                    1150   BIC:                             5404.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.1124      0.074     -1.518      0.129      -0.258       0.033\n",
      "Mkt-RF         1.1215      0.015     75.939      0.000       1.093       1.151\n",
      "SMB           -0.0575      0.024     -2.360      0.018      -0.105      -0.010\n",
      "HML            0.3152      0.021     14.891      0.000       0.274       0.357\n",
      "==============================================================================\n",
      "Omnibus:                       73.836   Durbin-Watson:                   1.900\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              276.599\n",
      "Skew:                          -0.168   Prob(JB):                     8.66e-61\n",
      "Kurtosis:                       5.375   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "Other\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.716\n",
      "Model:                            OLS   Adj. R-squared:                  0.715\n",
      "Method:                 Least Squares   F-statistic:                     965.7\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):          1.40e-313\n",
      "Time:                        15:39:54   Log-Likelihood:                -3113.6\n",
      "No. Observations:                1154   AIC:                             6235.\n",
      "Df Residuals:                    1150   BIC:                             6255.\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const         -0.2119      0.107     -1.979      0.048      -0.422      -0.002\n",
      "Mkt-RF         0.9995      0.021     46.789      0.000       0.958       1.041\n",
      "SMB            0.2831      0.035      8.029      0.000       0.214       0.352\n",
      "HML            0.0183      0.031      0.599      0.549      -0.042       0.078\n",
      "==============================================================================\n",
      "Omnibus:                      171.185   Durbin-Watson:                   2.003\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):             1680.770\n",
      "Skew:                           0.326   Prob(JB):                         0.00\n",
      "Kurtosis:                       8.876   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "const\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.007\n",
      "Model:                            OLS   Adj. R-squared:                  0.004\n",
      "Method:                 Least Squares   F-statistic:                     2.687\n",
      "Date:                Thu, 20 Oct 2022   Prob (F-statistic):             0.0453\n",
      "Time:                        15:39:54   Log-Likelihood:                -42.324\n",
      "No. Observations:                1154   AIC:                             92.65\n",
      "Df Residuals:                    1150   BIC:                             112.9\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          0.7321      0.007     97.865      0.000       0.717       0.747\n",
      "Mkt-RF         0.0031      0.001      2.094      0.036       0.000       0.006\n",
      "SMB            0.0026      0.002      1.065      0.287      -0.002       0.007\n",
      "HML           -0.0028      0.002     -1.332      0.183      -0.007       0.001\n",
      "==============================================================================\n",
      "Omnibus:                      199.038   Durbin-Watson:                   0.057\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              327.203\n",
      "Skew:                          -1.116   Prob(JB):                     8.89e-72\n",
      "Kurtosis:                       4.349   Cond. No.                         5.69\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
      "/var/folders/n7/0psm04t971g6575br78tr0sc0000gn/T/ipykernel_53145/2027425925.py:12: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n",
      "  industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n"
     ]
    }
   ],
   "source": [
    "industries_betas = pd.DataFrame(columns = [\"Industry\", \"beta\", \"E(R - Rf)\"])\n",
    "\n",
    "\n",
    "\n",
    "for industry in industries:\n",
    "    ri = df4[industry] - df4[\"RF\"]\n",
    "    regressed = sm.OLS(endog = ri, exog = df4[['const','Mkt-RF','SMB', 'HML']], missing = 'drop')\n",
    "    print(industry)\n",
    "    result = regressed.fit()\n",
    "    print(result.summary())\n",
    "    expected_ri = ri.mean()\n",
    "    industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 434,
   "id": "3819095d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.733708838821491"
      ]
     },
     "execution_count": 434,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expected_ri"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0cc2005",
   "metadata": {},
   "source": [
    "# Solution to 1.2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "73471ce5",
   "metadata": {},
   "source": [
    "Plotting the Betas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 435,
   "id": "66b78b3a",
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "unhashable type: 'numpy.ndarray'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "Input \u001b[0;32mIn [435]\u001b[0m, in \u001b[0;36m<cell line: 11>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      7\u001b[0m industries_betas\n\u001b[1;32m      9\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpyplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplt\u001b[39;00m\n\u001b[0;32m---> 11\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mscatter\u001b[49m\u001b[43m(\u001b[49m\u001b[43mindustries_betas\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mexpected_ri\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m     12\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mBeta\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m     13\u001b[0m plt\u001b[38;5;241m.\u001b[39mylabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mExcess Return\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/matplotlib/pyplot.py:2807\u001b[0m, in \u001b[0;36mscatter\u001b[0;34m(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, plotnonfinite, data, **kwargs)\u001b[0m\n\u001b[1;32m   2802\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mscatter)\n\u001b[1;32m   2803\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mscatter\u001b[39m(\n\u001b[1;32m   2804\u001b[0m         x, y, s\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, c\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, marker\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, cmap\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, norm\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m   2805\u001b[0m         vmin\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, vmax\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, alpha\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, linewidths\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m,\n\u001b[1;32m   2806\u001b[0m         edgecolors\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, plotnonfinite\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2807\u001b[0m     __ret \u001b[38;5;241m=\u001b[39m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mscatter\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m   2808\u001b[0m \u001b[43m        \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43ms\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mc\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmarker\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmarker\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcmap\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcmap\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnorm\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnorm\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2809\u001b[0m \u001b[43m        \u001b[49m\u001b[43mvmin\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvmin\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvmax\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvmax\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43malpha\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malpha\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinewidths\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinewidths\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2810\u001b[0m \u001b[43m        \u001b[49m\u001b[43medgecolors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43medgecolors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mplotnonfinite\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mplotnonfinite\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2811\u001b[0m \u001b[43m        \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   2812\u001b[0m     sci(__ret)\n\u001b[1;32m   2813\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m __ret\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/matplotlib/__init__.py:1412\u001b[0m, in \u001b[0;36m_preprocess_data.<locals>.inner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1409\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[1;32m   1410\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m(ax, \u001b[38;5;241m*\u001b[39margs, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m   1411\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1412\u001b[0m         \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43max\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43msanitize_sequence\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1414\u001b[0m     bound \u001b[38;5;241m=\u001b[39m new_sig\u001b[38;5;241m.\u001b[39mbind(ax, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m   1415\u001b[0m     auto_label \u001b[38;5;241m=\u001b[39m (bound\u001b[38;5;241m.\u001b[39marguments\u001b[38;5;241m.\u001b[39mget(label_namer)\n\u001b[1;32m   1416\u001b[0m                   \u001b[38;5;129;01mor\u001b[39;00m bound\u001b[38;5;241m.\u001b[39mkwargs\u001b[38;5;241m.\u001b[39mget(label_namer))\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/matplotlib/axes/_axes.py:4363\u001b[0m, in \u001b[0;36mAxes.scatter\u001b[0;34m(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, plotnonfinite, **kwargs)\u001b[0m\n\u001b[1;32m   4249\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m   4250\u001b[0m \u001b[38;5;124;03mA scatter plot of *y* vs. *x* with varying marker size and/or color.\u001b[39;00m\n\u001b[1;32m   4251\u001b[0m \n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m   4360\u001b[0m \n\u001b[1;32m   4361\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m   4362\u001b[0m \u001b[38;5;66;03m# Process **kwargs to handle aliases, conflicts with explicit kwargs:\u001b[39;00m\n\u001b[0;32m-> 4363\u001b[0m x, y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_process_unit_info\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mx\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43my\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   4364\u001b[0m \u001b[38;5;66;03m# np.ma.ravel yields an ndarray, not a masked array,\u001b[39;00m\n\u001b[1;32m   4365\u001b[0m \u001b[38;5;66;03m# unless its argument is a masked array.\u001b[39;00m\n\u001b[1;32m   4366\u001b[0m x \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mma\u001b[38;5;241m.\u001b[39mravel(x)\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/matplotlib/axes/_base.py:2521\u001b[0m, in \u001b[0;36m_AxesBase._process_unit_info\u001b[0;34m(self, datasets, kwargs, convert)\u001b[0m\n\u001b[1;32m   2519\u001b[0m     \u001b[38;5;66;03m# Update from data if axis is already set but no unit is set yet.\u001b[39;00m\n\u001b[1;32m   2520\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m axis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis\u001b[38;5;241m.\u001b[39mhave_units():\n\u001b[0;32m-> 2521\u001b[0m         \u001b[43maxis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   2522\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m axis_name, axis \u001b[38;5;129;01min\u001b[39;00m axis_map\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m   2523\u001b[0m     \u001b[38;5;66;03m# Return if no axis is set.\u001b[39;00m\n\u001b[1;32m   2524\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m axis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/matplotlib/axis.py:1449\u001b[0m, in \u001b[0;36mAxis.update_units\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m   1447\u001b[0m neednew \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconverter \u001b[38;5;241m!=\u001b[39m converter\n\u001b[1;32m   1448\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconverter \u001b[38;5;241m=\u001b[39m converter\n\u001b[0;32m-> 1449\u001b[0m default \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconverter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdefault_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1450\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m default \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39munits \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m   1451\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_units(default)\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/matplotlib/category.py:116\u001b[0m, in \u001b[0;36mStrCategoryConverter.default_units\u001b[0;34m(data, axis)\u001b[0m\n\u001b[1;32m    114\u001b[0m \u001b[38;5;66;03m# the conversion call stack is default_units -> axis_info -> convert\u001b[39;00m\n\u001b[1;32m    115\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m axis\u001b[38;5;241m.\u001b[39munits \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 116\u001b[0m     axis\u001b[38;5;241m.\u001b[39mset_units(\u001b[43mUnitData\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m    117\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m    118\u001b[0m     axis\u001b[38;5;241m.\u001b[39munits\u001b[38;5;241m.\u001b[39mupdate(data)\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/matplotlib/category.py:192\u001b[0m, in \u001b[0;36mUnitData.__init__\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m    190\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_counter \u001b[38;5;241m=\u001b[39m itertools\u001b[38;5;241m.\u001b[39mcount()\n\u001b[1;32m    191\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 192\u001b[0m     \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/matplotlib/category.py:225\u001b[0m, in \u001b[0;36mUnitData.update\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m    223\u001b[0m \u001b[38;5;66;03m# check if convertible to number:\u001b[39;00m\n\u001b[1;32m    224\u001b[0m convertible \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[0;32m--> 225\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m val \u001b[38;5;129;01min\u001b[39;00m \u001b[43mOrderedDict\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfromkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m    226\u001b[0m     \u001b[38;5;66;03m# OrderedDict just iterates over unique values in data.\u001b[39;00m\n\u001b[1;32m    227\u001b[0m     _api\u001b[38;5;241m.\u001b[39mcheck_isinstance((\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mbytes\u001b[39m), value\u001b[38;5;241m=\u001b[39mval)\n\u001b[1;32m    228\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m convertible:\n\u001b[1;32m    229\u001b[0m         \u001b[38;5;66;03m# this will only be called so long as convertible is True.\u001b[39;00m\n",
      "\u001b[0;31mTypeError\u001b[0m: unhashable type: 'numpy.ndarray'"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "industries_betas\n",
    "#industries_betas = industries_betas.drop([0,30])\n",
    "industries_betas\n",
    "industries_betas.plot()\n",
    "\n",
    "industries_betas[\"E(R - Rf)\"] = industries_betas[\"E(R - Rf)\"]*100\n",
    "industries_betas\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.scatter(industries_betas, expected_ri)\n",
    "plt.xlabel('Beta')\n",
    "plt.ylabel('Excess Return')\n",
    "plt.title('Industry Betas and Excess Returns')\n",
    "plt.ylim(0.5,1)\n",
    "plt.xlim(0.5,1.5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e5818a56",
   "metadata": {},
   "source": [
    "Observations and Conclusions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4024fdbc",
   "metadata": {},
   "source": [
    "Do you observe the SML? What do you conclude?\n",
    "SML is the security market line."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01d694f4",
   "metadata": {},
   "source": [
    "Although mine is a bit skewed, I sort of do or know that I should observe the SML or security market line. This shows the beta or the basis of the risk and returns, for the entirety of the market."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "36c62a3e",
   "metadata": {},
   "source": [
    "# Solution to 1.3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f177be5e",
   "metadata": {},
   "source": [
    "Conducting cross-validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 389,
   "id": "ae290005",
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyError",
     "evalue": "'c'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/indexes/base.py:3621\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m   3620\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 3621\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   3622\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/pandas/_libs/index.pyx:136\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/pandas/_libs/index.pyx:163\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
      "File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:5198\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
      "File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:5206\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;31mKeyError\u001b[0m: 'c'",
      "\nThe above exception was the direct cause of the following exception:\n",
      "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "Input \u001b[0;32mIn [389]\u001b[0m, in \u001b[0;36m<cell line: 3>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      5\u001b[0m err_mae_test \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m      6\u001b[0m mkt \u001b[38;5;241m=\u001b[39m df4[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mMkt-RF\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mto_numpy()\n\u001b[0;32m----> 7\u001b[0m ri_rf \u001b[38;5;241m=\u001b[39m (\u001b[43mdf4\u001b[49m\u001b[43m[\u001b[49m\u001b[43mindustry\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m]\u001b[49m\u001b[38;5;241m-\u001b[39mdf[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mRF\u001b[39m\u001b[38;5;124m'\u001b[39m])\u001b[38;5;241m.\u001b[39mto_numpy()\n\u001b[1;32m      8\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m train,test \u001b[38;5;129;01min\u001b[39;00m kf\u001b[38;5;241m.\u001b[39msplit(mkt):\n\u001b[1;32m      9\u001b[0m     lr\u001b[38;5;241m=\u001b[39mlinear_model\u001b[38;5;241m.\u001b[39mLinearRegression()\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/frame.py:3505\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3503\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m   3504\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[0;32m-> 3505\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   3506\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[1;32m   3507\u001b[0m     indexer \u001b[38;5;241m=\u001b[39m [indexer]\n",
      "File \u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/indexes/base.py:3623\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m   3621\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine\u001b[38;5;241m.\u001b[39mget_loc(casted_key)\n\u001b[1;32m   3622\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m-> 3623\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m   3624\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[1;32m   3625\u001b[0m     \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[1;32m   3626\u001b[0m     \u001b[38;5;66;03m#  InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[1;32m   3627\u001b[0m     \u001b[38;5;66;03m#  the TypeError.\u001b[39;00m\n\u001b[1;32m   3628\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n",
      "\u001b[0;31mKeyError\u001b[0m: 'c'"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "\n",
    "for i in range(len(industries)):\n",
    "    err_rmse_test = 0\n",
    "    err_mae_test = 0\n",
    "    mkt = df4['Mkt-RF'].to_numpy()\n",
    "    ri_rf = (df4[industry[i]]-df['RF']).to_numpy()\n",
    "    for train,test in kf.split(mkt):\n",
    "        lr=linear_model.LinearRegression()\n",
    "        reg=lr.fit(mkt[train].reshape(-1, 1),ri_rf[train])\n",
    "        ri_rf_pred_test =reg.predict(mkt[test].reshape(-1, 1))\n",
    "        e_test = ri_rf[test]-ri_rf_pred_test\n",
    "        err_rmse_test += np.sqrt(np.mean(e_test*e_test))\n",
    "        err_mae_test += np.mean(np.abs(e_test))\n",
    "    rmse_10cv_test = err_rmse_test/10\n",
    "    mae_10cv_test = err_mae_test/10\n",
    "    metric.iloc[i][0] = rmse_10cv_test\n",
    "    metric.iloc[i][1] = mae_10cv_test"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3c4b02e",
   "metadata": {},
   "source": [
    "Calculating the average of RMSE and MAE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "768ab6b0",
   "metadata": {},
   "outputs": [],
   "source": [
    "r2_cv = r2_score(y, p)\n",
    "    MAE_test = mean_absolute_error(y[test],p[test])\n",
    "    print('MAE on training: {}'.format(MAE_train))\n",
    "    print('MAE on 10-fold CV: {}'.format(MAE_test))\n",
    "    \n",
    "for train,test in kf.split(x):\n",
    "    lasso=las.fit(x[train],y[train])\n",
    "    y_pred =lasso.predict(x[test])\n",
    "    e = y[test]-y_pred\n",
    "    err += np.sum(e*e)   \n",
    "rmse_10cv = np.sqrt(err/len(x))\n",
    "print('RMSE on 10-fold CV: {}'.format(rmse_10cv))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2ecd9ded",
   "metadata": {},
   "source": [
    "# Solution to 1.4"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "883b05d8",
   "metadata": {},
   "source": [
    "Using SMB and HML to see improvements in CAPM performance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 309,
   "id": "e62b0b38",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "199007        0.53\n",
       "199008       -1.51\n",
       "199009        1.32\n",
       "199010       -7.58\n",
       "199011        1.44\n",
       "              ... \n",
       "202204       -0.30\n",
       "202205       -1.21\n",
       "202206       -0.09\n",
       "202207        0.27\n",
       "202208        0.42\n",
       "Name: SMB, Length: 386, dtype: float64"
      ]
     },
     "execution_count": 309,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "SMB = df2[\"SMB\"]\n",
    "HML = df2[\"HML\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45d41fa1",
   "metadata": {},
   "source": [
    "Running new regression analyses"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c3c6dc17",
   "metadata": {},
   "outputs": [],
   "source": [
    "industries_betas = pd.DataFrame(columns = [\"Industry\", \"beta\", \"E(R - Rf)\"])\n",
    "\n",
    "\n",
    "\n",
    "for industry in industries:\n",
    "    ri = df4[industry] - df4[\"RF\"]\n",
    "    regressed = sm.OLS(endog = ri, exog = df4[['const','Mkt-RF','SMB', 'HML']], missing = 'drop')\n",
    "    print(industry)\n",
    "    result = regressed.fit()\n",
    "    print(result.summary())\n",
    "    expected_ri = ri.mean()\n",
    "    industries_betas = industries_betas.append({\"Industry\" : industry, \"beta\" : result.params[1], 'E(R - Rf)': expected_ri}, ignore_index = True)\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ea2c44e4",
   "metadata": {},
   "source": [
    "# Solution to 1.5"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2ffbeed5",
   "metadata": {},
   "source": [
    "Plotting graphs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ad6e0c7a",
   "metadata": {},
   "outputs": [],
   "source": [
    "industries_betas\n",
    "#industries_betas = industries_betas.drop([0,30])\n",
    "industries_betas\n",
    "industries_betas.plot()\n",
    "\n",
    "industries_betas[\"E(R - Rf)\"] = industries_betas[\"E(R - Rf)\"]*100\n",
    "industries_betas\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.scatter(industries_betas, expected_ri)\n",
    "plt.xlabel('Beta')\n",
    "plt.ylabel('Excess Return')\n",
    "plt.title('Industry Betas and Excess Returns')\n",
    "plt.ylim(0.5,1)\n",
    "plt.xlim(0.5,1.5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "85749973",
   "metadata": {},
   "source": [
    "Observations and Answers to questions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f144ec2",
   "metadata": {},
   "source": [
    "# Solution to 1.6"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d1321bd6",
   "metadata": {},
   "source": [
    "Conducting cross-validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5e00de82",
   "metadata": {},
   "outputs": [],
   "source": [
    "lasso = linear_model.LassoCV(cv=10).fit(X_train,y_train)\n",
    "-np.log10(lasso.alpha_)\n",
    "\n",
    "# Or \n",
    "\n",
    " kf = KFold(n_splits=10)\n",
    "    kf.get_n_splits(x)\n",
    "    p = np.zeros_like(y)\n",
    "    for train, test in kf.split(x):\n",
    "        met.fit(x[train], y[train])\n",
    "        p[test] = met.predict(x[test])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f89afc8",
   "metadata": {},
   "source": [
    "Calculating the average of RMSE and MAE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f401bfc3",
   "metadata": {},
   "outputs": [],
   "source": [
    "r2_cv = r2_score(y, p)\n",
    "    MAE_test = mean_absolute_error(y[test],p[test])\n",
    "    print('MAE on training: {}'.format(MAE_train))\n",
    "    print('MAE on 10-fold CV: {}'.format(MAE_test))\n",
    "    \n",
    "for train,test in kf.split(x):\n",
    "    lasso=las.fit(x[train],y[train])\n",
    "    y_pred =lasso.predict(x[test])\n",
    "    e = y[test]-y_pred\n",
    "    err += np.sum(e*e)   \n",
    "rmse_10cv = np.sqrt(err/len(x))\n",
    "print('RMSE on 10-fold CV: {}'.format(rmse_10cv))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
