{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "822a7c16",
   "metadata": {},
   "source": [
    "# 1.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "27ffb86d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "408ee95a",
   "metadata": {},
   "outputs": [],
   "source": [
    "df1 = pd.read_csv('FFFactors.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "faa551b8",
   "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>Period</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>192607</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>192608</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>192609</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>192610</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>192611</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",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1149</th>\n",
       "      <td>202204</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>202205</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>202206</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>202207</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>202208</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 × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Period  Mkt-RF   SMB   HML    RF\n",
       "0     192607    2.96 -2.56 -2.43  0.22\n",
       "1     192608    2.64 -1.17  3.82  0.25\n",
       "2     192609    0.36 -1.40  0.13  0.23\n",
       "3     192610   -3.24 -0.09  0.70  0.32\n",
       "4     192611    2.53 -0.10 -0.51  0.31\n",
       "...      ...     ...   ...   ...   ...\n",
       "1149  202204   -9.46 -1.41  6.19  0.01\n",
       "1150  202205   -0.34 -1.85  8.41  0.03\n",
       "1151  202206   -8.43  2.09 -5.97  0.06\n",
       "1152  202207    9.57  2.81 -4.10  0.08\n",
       "1153  202208   -3.78  1.39  0.31  0.19\n",
       "\n",
       "[1154 rows x 5 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "46ed08c8",
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = pd.read_csv('30_Industry_Portfolios.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "f854ee60",
   "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>Period</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>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",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>192607</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>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>1</th>\n",
       "      <td>192608</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.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>2</th>\n",
       "      <td>192609</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.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>3</th>\n",
       "      <td>192610</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>-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>4</th>\n",
       "      <td>192611</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>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>1149</th>\n",
       "      <td>202204</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>-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>1150</th>\n",
       "      <td>202205</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>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>1151</th>\n",
       "      <td>202206</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.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>1152</th>\n",
       "      <td>202207</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>-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>1153</th>\n",
       "      <td>202208</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>-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 × 31 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Period  Food   Beer   Smoke  Games  Books  Hshld  Clths  Hlth   Chems  \\\n",
       "0     192607   0.56  -5.19   1.29   2.93  10.97  -0.48   8.08   1.77   8.14   \n",
       "1     192608   2.59  27.03   6.50   0.55  10.01  -3.58  -2.51   4.25   5.50   \n",
       "2     192609   1.16   4.02   1.26   6.58  -0.99   0.73  -0.51   0.69   5.33   \n",
       "3     192610  -3.06  -3.31   1.06  -4.76   9.47  -4.68   0.12  -0.57  -4.76   \n",
       "4     192611   6.35   7.29   4.55   1.66  -5.80  -0.54   1.87   5.42   5.20   \n",
       "...      ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "1149  202204   3.01   3.03   6.37 -25.22 -10.76   2.04  -7.00  -6.80  -2.28   \n",
       "1150  202205  -1.68  -1.60   2.67  -2.93  -7.40  -5.12  -6.45   0.99   4.52   \n",
       "1151  202206  -1.64  -0.02 -11.63 -11.33 -12.53  -2.56 -12.00  -2.05 -15.65   \n",
       "1152  202207   3.67   5.49   0.56  14.62  12.10   0.76  11.86   2.75   7.66   \n",
       "1153  202208  -1.61  -1.87  -0.12  -2.95  -4.97  -2.16  -6.01  -5.07  -1.39   \n",
       "\n",
       "      ...  Telcm  Servs  BusEq  Paper  Trans  Whlsl  Rtail  Meals  Fin    \\\n",
       "0     ...   0.83   9.22   2.06   7.70   1.91 -23.79   0.07   1.87  -0.02   \n",
       "1     ...   2.17   2.02   4.39  -2.38   4.85   5.39  -0.75  -0.13   4.47   \n",
       "2     ...   2.41   2.25   0.19  -5.54   0.07  -7.87   0.25  -0.56  -1.61   \n",
       "3     ...  -0.11  -2.00  -1.09  -5.08  -2.61 -15.38  -2.20  -4.11  -5.51   \n",
       "4     ...   1.63   3.77   3.64   3.84   1.61   4.67   6.52   4.33   2.34   \n",
       "...   ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "1149  ... -10.70 -12.59 -12.26  -0.74 -10.93  -2.14 -11.41  -5.47  -7.99   \n",
       "1150  ...   8.54  -3.35  -0.75  -0.66  -4.59   1.03  -5.64  -3.29   2.80   \n",
       "1151  ...  -6.72  -6.79 -10.19  -8.51  -7.14  -6.43  -8.50  -9.02  -9.05   \n",
       "1152  ...  -0.40   8.60  15.68   7.22   9.33   9.08  16.33  11.89   7.38   \n",
       "1153  ...  -3.00  -4.72  -5.89  -7.66  -1.46  -1.60  -3.46  -1.47  -2.24   \n",
       "\n",
       "      Other  \n",
       "0      5.20  \n",
       "1      6.76  \n",
       "2     -3.86  \n",
       "3     -8.49  \n",
       "4      4.00  \n",
       "...     ...  \n",
       "1149  -7.65  \n",
       "1150  -1.19  \n",
       "1151 -11.78  \n",
       "1152   9.19  \n",
       "1153  -3.65  \n",
       "\n",
       "[1154 rows x 31 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "22674004",
   "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>Mkt-RF</th>\n",
       "      <th>SMB</th>\n",
       "      <th>HML</th>\n",
       "      <th>RF</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Period</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>192607</th>\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>192608</th>\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>192609</th>\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>192610</th>\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>192611</th>\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",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>202204</th>\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>202205</th>\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>202206</th>\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>202207</th>\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>202208</th>\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 × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Mkt-RF   SMB   HML    RF\n",
       "Period                          \n",
       "192607    2.96 -2.56 -2.43  0.22\n",
       "192608    2.64 -1.17  3.82  0.25\n",
       "192609    0.36 -1.40  0.13  0.23\n",
       "192610   -3.24 -0.09  0.70  0.32\n",
       "192611    2.53 -0.10 -0.51  0.31\n",
       "...        ...   ...   ...   ...\n",
       "202204   -9.46 -1.41  6.19  0.01\n",
       "202205   -0.34 -1.85  8.41  0.03\n",
       "202206   -8.43  2.09 -5.97  0.06\n",
       "202207    9.57  2.81 -4.10  0.08\n",
       "202208   -3.78  1.39  0.31  0.19\n",
       "\n",
       "[1154 rows x 4 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df3 = df1.set_index('Period')\n",
    "df3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "47e3fdd6",
   "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>Period</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>192607</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>192608</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>192609</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>192610</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>192611</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>202204</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>202205</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>202206</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>202207</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>202208</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",
       "Period                                                                         \n",
       "192607   0.56  -5.19   1.29   2.93  10.97  -0.48   8.08   1.77   8.14   0.39   \n",
       "192608   2.59  27.03   6.50   0.55  10.01  -3.58  -2.51   4.25   5.50   7.97   \n",
       "192609   1.16   4.02   1.26   6.58  -0.99   0.73  -0.51   0.69   5.33   2.30   \n",
       "192610  -3.06  -3.31   1.06  -4.76   9.47  -4.68   0.12  -0.57  -4.76   1.00   \n",
       "192611   6.35   7.29   4.55   1.66  -5.80  -0.54   1.87   5.42   5.20   3.10   \n",
       "...       ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "202204   3.01   3.03   6.37 -25.22 -10.76   2.04  -7.00  -6.80  -2.28   6.63   \n",
       "202205  -1.68  -1.60   2.67  -2.93  -7.40  -5.12  -6.45   0.99   4.52   2.38   \n",
       "202206  -1.64  -0.02 -11.63 -11.33 -12.53  -2.56 -12.00  -2.05 -15.65 -11.17   \n",
       "202207   3.67   5.49   0.56  14.62  12.10   0.76  11.86   2.75   7.66   6.86   \n",
       "202208  -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",
       "Period  ...                                                                  \n",
       "192607  ...   0.83   9.22   2.06   7.70   1.91 -23.79   0.07   1.87  -0.02   \n",
       "192608  ...   2.17   2.02   4.39  -2.38   4.85   5.39  -0.75  -0.13   4.47   \n",
       "192609  ...   2.41   2.25   0.19  -5.54   0.07  -7.87   0.25  -0.56  -1.61   \n",
       "192610  ...  -0.11  -2.00  -1.09  -5.08  -2.61 -15.38  -2.20  -4.11  -5.51   \n",
       "192611  ...   1.63   3.77   3.64   3.84   1.61   4.67   6.52   4.33   2.34   \n",
       "...     ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "202204  ... -10.70 -12.59 -12.26  -0.74 -10.93  -2.14 -11.41  -5.47  -7.99   \n",
       "202205  ...   8.54  -3.35  -0.75  -0.66  -4.59   1.03  -5.64  -3.29   2.80   \n",
       "202206  ...  -6.72  -6.79 -10.19  -8.51  -7.14  -6.43  -8.50  -9.02  -9.05   \n",
       "202207  ...  -0.40   8.60  15.68   7.22   9.33   9.08  16.33  11.89   7.38   \n",
       "202208  ...  -3.00  -4.72  -5.89  -7.66  -1.46  -1.60  -3.46  -1.47  -2.24   \n",
       "\n",
       "        Other  \n",
       "Period         \n",
       "192607   5.20  \n",
       "192608   6.76  \n",
       "192609  -3.86  \n",
       "192610  -8.49  \n",
       "192611   4.00  \n",
       "...       ...  \n",
       "202204  -7.65  \n",
       "202205  -1.19  \n",
       "202206 -11.78  \n",
       "202207   9.19  \n",
       "202208  -3.65  \n",
       "\n",
       "[1154 rows x 30 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4 = df2.set_index('Period')\n",
    "df4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f0af42fc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Food ', 'Beer ', 'Smoke', 'Games', 'Books', 'Hshld', 'Clths', 'Hlth ',\n",
       "       'Chems', 'Txtls', 'Cnstr', 'Steel', 'FabPr', 'ElcEq', 'Autos', 'Carry',\n",
       "       'Mines', 'Coal ', 'Oil  ', 'Util ', 'Telcm', 'Servs', 'BusEq', 'Paper',\n",
       "       'Trans', 'Whlsl', 'Rtail', 'Meals', 'Fin  ', 'Other'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "indus = df4.columns\n",
    "indus"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "b816c05a",
   "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>Mkt-RF</th>\n",
       "      <th>SMB</th>\n",
       "      <th>HML</th>\n",
       "      <th>RF</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>...</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>Period</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>192607</th>\n",
       "      <td>2.96</td>\n",
       "      <td>-2.56</td>\n",
       "      <td>-2.43</td>\n",
       "      <td>0.22</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>...</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>192608</th>\n",
       "      <td>2.64</td>\n",
       "      <td>-1.17</td>\n",
       "      <td>3.82</td>\n",
       "      <td>0.25</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>...</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>192609</th>\n",
       "      <td>0.36</td>\n",
       "      <td>-1.40</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.23</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>...</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>192610</th>\n",
       "      <td>-3.24</td>\n",
       "      <td>-0.09</td>\n",
       "      <td>0.70</td>\n",
       "      <td>0.32</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>...</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>192611</th>\n",
       "      <td>2.53</td>\n",
       "      <td>-0.10</td>\n",
       "      <td>-0.51</td>\n",
       "      <td>0.31</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>...</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>202204</th>\n",
       "      <td>-9.46</td>\n",
       "      <td>-1.41</td>\n",
       "      <td>6.19</td>\n",
       "      <td>0.01</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>...</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>202205</th>\n",
       "      <td>-0.34</td>\n",
       "      <td>-1.85</td>\n",
       "      <td>8.41</td>\n",
       "      <td>0.03</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>...</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>202206</th>\n",
       "      <td>-8.43</td>\n",
       "      <td>2.09</td>\n",
       "      <td>-5.97</td>\n",
       "      <td>0.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>...</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>202207</th>\n",
       "      <td>9.57</td>\n",
       "      <td>2.81</td>\n",
       "      <td>-4.10</td>\n",
       "      <td>0.08</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>...</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>202208</th>\n",
       "      <td>-3.78</td>\n",
       "      <td>1.39</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.19</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>...</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 × 34 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Mkt-RF   SMB   HML    RF  Food   Beer   Smoke  Games  Books  Hshld  \\\n",
       "Period                                                                       \n",
       "192607    2.96 -2.56 -2.43  0.22   0.56  -5.19   1.29   2.93  10.97  -0.48   \n",
       "192608    2.64 -1.17  3.82  0.25   2.59  27.03   6.50   0.55  10.01  -3.58   \n",
       "192609    0.36 -1.40  0.13  0.23   1.16   4.02   1.26   6.58  -0.99   0.73   \n",
       "192610   -3.24 -0.09  0.70  0.32  -3.06  -3.31   1.06  -4.76   9.47  -4.68   \n",
       "192611    2.53 -0.10 -0.51  0.31   6.35   7.29   4.55   1.66  -5.80  -0.54   \n",
       "...        ...   ...   ...   ...    ...    ...    ...    ...    ...    ...   \n",
       "202204   -9.46 -1.41  6.19  0.01   3.01   3.03   6.37 -25.22 -10.76   2.04   \n",
       "202205   -0.34 -1.85  8.41  0.03  -1.68  -1.60   2.67  -2.93  -7.40  -5.12   \n",
       "202206   -8.43  2.09 -5.97  0.06  -1.64  -0.02 -11.63 -11.33 -12.53  -2.56   \n",
       "202207    9.57  2.81 -4.10  0.08   3.67   5.49   0.56  14.62  12.10   0.76   \n",
       "202208   -3.78  1.39  0.31  0.19  -1.61  -1.87  -0.12  -2.95  -4.97  -2.16   \n",
       "\n",
       "        ...  Telcm  Servs  BusEq  Paper  Trans  Whlsl  Rtail  Meals  Fin    \\\n",
       "Period  ...                                                                  \n",
       "192607  ...   0.83   9.22   2.06   7.70   1.91 -23.79   0.07   1.87  -0.02   \n",
       "192608  ...   2.17   2.02   4.39  -2.38   4.85   5.39  -0.75  -0.13   4.47   \n",
       "192609  ...   2.41   2.25   0.19  -5.54   0.07  -7.87   0.25  -0.56  -1.61   \n",
       "192610  ...  -0.11  -2.00  -1.09  -5.08  -2.61 -15.38  -2.20  -4.11  -5.51   \n",
       "192611  ...   1.63   3.77   3.64   3.84   1.61   4.67   6.52   4.33   2.34   \n",
       "...     ...    ...    ...    ...    ...    ...    ...    ...    ...    ...   \n",
       "202204  ... -10.70 -12.59 -12.26  -0.74 -10.93  -2.14 -11.41  -5.47  -7.99   \n",
       "202205  ...   8.54  -3.35  -0.75  -0.66  -4.59   1.03  -5.64  -3.29   2.80   \n",
       "202206  ...  -6.72  -6.79 -10.19  -8.51  -7.14  -6.43  -8.50  -9.02  -9.05   \n",
       "202207  ...  -0.40   8.60  15.68   7.22   9.33   9.08  16.33  11.89   7.38   \n",
       "202208  ...  -3.00  -4.72  -5.89  -7.66  -1.46  -1.60  -3.46  -1.47  -2.24   \n",
       "\n",
       "        Other  \n",
       "Period         \n",
       "192607   5.20  \n",
       "192608   6.76  \n",
       "192609  -3.86  \n",
       "192610  -8.49  \n",
       "192611   4.00  \n",
       "...       ...  \n",
       "202204  -7.65  \n",
       "202205  -1.19  \n",
       "202206 -11.78  \n",
       "202207   9.19  \n",
       "202208  -3.65  \n",
       "\n",
       "[1154 rows x 34 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.concat([df3, df4], axis =1, join = 'inner')\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "29c2a443",
   "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>Betas</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Betas\n",
       "Food     NaN\n",
       "Beer     NaN\n",
       "Smoke    NaN\n",
       "Games    NaN\n",
       "Books    NaN\n",
       "Hshld    NaN\n",
       "Clths    NaN\n",
       "Hlth     NaN\n",
       "Chems    NaN\n",
       "Txtls    NaN\n",
       "Cnstr    NaN\n",
       "Steel    NaN\n",
       "FabPr    NaN\n",
       "ElcEq    NaN\n",
       "Autos    NaN\n",
       "Carry    NaN\n",
       "Mines    NaN\n",
       "Coal     NaN\n",
       "Oil      NaN\n",
       "Util     NaN\n",
       "Telcm    NaN\n",
       "Servs    NaN\n",
       "BusEq    NaN\n",
       "Paper    NaN\n",
       "Trans    NaN\n",
       "Whlsl    NaN\n",
       "Rtail    NaN\n",
       "Meals    NaN\n",
       "Fin      NaN\n",
       "Other    NaN"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "beta = pd.DataFrame(np.nan,index=indus,columns=[\"Betas\"])\n",
    "beta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e497ebbe",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import linear_model\n",
    "\n",
    "for i in range(len(indus)):\n",
    "    model = linear_model.LinearRegression()\n",
    "    reg = model.fit(df[['Mkt-RF']], pd.DataFrame(df[indus[i]]-df['RF']))\n",
    "    beta.iloc[i] = reg.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c0399323",
   "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>Betas</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>0.729095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>0.924026</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>0.623424</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>1.385464</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>1.110920</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>0.884306</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>0.831563</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>0.833813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>1.043679</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>1.145560</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>1.181354</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>1.361442</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>1.239619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>1.288733</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>1.286918</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>1.188716</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>0.913507</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>1.278337</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>0.889536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>0.763865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>0.664651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>0.823919</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>1.080205</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>0.948937</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>1.138238</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>1.086695</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>0.967677</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>0.946614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>1.158976</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>1.055502</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Betas\n",
       "Food   0.729095\n",
       "Beer   0.924026\n",
       "Smoke  0.623424\n",
       "Games  1.385464\n",
       "Books  1.110920\n",
       "Hshld  0.884306\n",
       "Clths  0.831563\n",
       "Hlth   0.833813\n",
       "Chems  1.043679\n",
       "Txtls  1.145560\n",
       "Cnstr  1.181354\n",
       "Steel  1.361442\n",
       "FabPr  1.239619\n",
       "ElcEq  1.288733\n",
       "Autos  1.286918\n",
       "Carry  1.188716\n",
       "Mines  0.913507\n",
       "Coal   1.278337\n",
       "Oil    0.889536\n",
       "Util   0.763865\n",
       "Telcm  0.664651\n",
       "Servs  0.823919\n",
       "BusEq  1.080205\n",
       "Paper  0.948937\n",
       "Trans  1.138238\n",
       "Whlsl  1.086695\n",
       "Rtail  0.967677\n",
       "Meals  0.946614\n",
       "Fin    1.158976\n",
       "Other  1.055502"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "beta"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e988f4e6",
   "metadata": {},
   "source": [
    "# 1.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "1c424bb4",
   "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>Excess Return</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Excess Return\n",
       "Food             NaN\n",
       "Beer             NaN\n",
       "Smoke            NaN\n",
       "Games            NaN\n",
       "Books            NaN\n",
       "Hshld            NaN\n",
       "Clths            NaN\n",
       "Hlth             NaN\n",
       "Chems            NaN\n",
       "Txtls            NaN\n",
       "Cnstr            NaN\n",
       "Steel            NaN\n",
       "FabPr            NaN\n",
       "ElcEq            NaN\n",
       "Autos            NaN\n",
       "Carry            NaN\n",
       "Mines            NaN\n",
       "Coal             NaN\n",
       "Oil              NaN\n",
       "Util             NaN\n",
       "Telcm            NaN\n",
       "Servs            NaN\n",
       "BusEq            NaN\n",
       "Paper            NaN\n",
       "Trans            NaN\n",
       "Whlsl            NaN\n",
       "Rtail            NaN\n",
       "Meals            NaN\n",
       "Fin              NaN\n",
       "Other            NaN"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "excess = pd.DataFrame(data = np.nan, index = indus, columns = ['Excess Return'])\n",
    "excess"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "648c6c22",
   "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>Excess Return</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>0.699220</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>0.929593</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>0.866482</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>0.835659</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>0.631750</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>0.655269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>0.664896</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>0.807920</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>0.777340</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>0.675537</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>0.694168</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>0.677374</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>0.800849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>0.896854</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>0.923614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>0.850295</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>0.640659</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>0.828094</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>0.773960</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>0.618354</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>0.566352</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>0.953033</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>0.903787</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>0.721256</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>0.655191</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>0.575069</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>0.777964</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>0.800208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>0.742305</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>0.522088</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Excess Return\n",
       "Food        0.699220\n",
       "Beer        0.929593\n",
       "Smoke       0.866482\n",
       "Games       0.835659\n",
       "Books       0.631750\n",
       "Hshld       0.655269\n",
       "Clths       0.664896\n",
       "Hlth        0.807920\n",
       "Chems       0.777340\n",
       "Txtls       0.675537\n",
       "Cnstr       0.694168\n",
       "Steel       0.677374\n",
       "FabPr       0.800849\n",
       "ElcEq       0.896854\n",
       "Autos       0.923614\n",
       "Carry       0.850295\n",
       "Mines       0.640659\n",
       "Coal        0.828094\n",
       "Oil         0.773960\n",
       "Util        0.618354\n",
       "Telcm       0.566352\n",
       "Servs       0.953033\n",
       "BusEq       0.903787\n",
       "Paper       0.721256\n",
       "Trans       0.655191\n",
       "Whlsl       0.575069\n",
       "Rtail       0.777964\n",
       "Meals       0.800208\n",
       "Fin         0.742305\n",
       "Other       0.522088"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "for i in range(len(indus)):\n",
    "    excess.iloc[i] = np.sum(df[indus[i]]-df['RF'])/len(df)\n",
    "excess"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "7a0bb3a1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Excess Return')"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.scatter(beta, excess)\n",
    "plt.xlabel(\"Beta\")\n",
    "plt.ylabel(\"Excess Return\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4ffc1fc4",
   "metadata": {},
   "source": [
    "# 1.3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "04e75a03",
   "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>RMSE</th>\n",
       "      <th>MAE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       RMSE  MAE\n",
       "Food    NaN  NaN\n",
       "Beer    NaN  NaN\n",
       "Smoke   NaN  NaN\n",
       "Games   NaN  NaN\n",
       "Books   NaN  NaN\n",
       "Hshld   NaN  NaN\n",
       "Clths   NaN  NaN\n",
       "Hlth    NaN  NaN\n",
       "Chems   NaN  NaN\n",
       "Txtls   NaN  NaN\n",
       "Cnstr   NaN  NaN\n",
       "Steel   NaN  NaN\n",
       "FabPr   NaN  NaN\n",
       "ElcEq   NaN  NaN\n",
       "Autos   NaN  NaN\n",
       "Carry   NaN  NaN\n",
       "Mines   NaN  NaN\n",
       "Coal    NaN  NaN\n",
       "Oil     NaN  NaN\n",
       "Util    NaN  NaN\n",
       "Telcm   NaN  NaN\n",
       "Servs   NaN  NaN\n",
       "BusEq   NaN  NaN\n",
       "Paper   NaN  NaN\n",
       "Trans   NaN  NaN\n",
       "Whlsl   NaN  NaN\n",
       "Rtail   NaN  NaN\n",
       "Meals   NaN  NaN\n",
       "Fin     NaN  NaN\n",
       "Other   NaN  NaN"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "p = pd.DataFrame(data = np.nan, index = indus, columns = ['RMSE', 'MAE'])\n",
    "p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "94320ebd",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import linear_model\n",
    "from sklearn.model_selection import KFold\n",
    "kf = KFold(n_splits=10,shuffle=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "8e0f1e29",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE on 10-fold CV on the test data: 3.713825599096656\n",
      "MAE on 10-fold CV on the test data: 2.8338511655788796\n"
     ]
    }
   ],
   "source": [
    "for i in range(len(indus)):\n",
    "    err_rmse_test = 0\n",
    "    err_mae_test = 0\n",
    "    y = df['Mkt-RF'].to_numpy()\n",
    "    x = (df[indus[i]]-df['RF']).to_numpy()\n",
    "    for train,test in kf.split(y):\n",
    "        lr=linear_model.LinearRegression()\n",
    "        reg=lr.fit(y[train].reshape(-1,1),x[train])\n",
    "        y_pred_test =reg.predict(x[test].reshape(-1,1))\n",
    "        e_test = y[test]-y_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_test_10cv_model1 = err_rmse_test/10   \n",
    "    mae_test_10cv_model1 = err_mae_test/10\n",
    "    p.iloc[i][0] = rmse_test_10cv_model1\n",
    "    p.iloc[i][1] = mae_test_10cv_model1\n",
    "\n",
    "print('RMSE on 10-fold CV on the test data: {}'.format(rmse_test_10cv_model1))\n",
    "print('MAE on 10-fold CV on the test data: {}'.format(mae_test_10cv_model1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "eba1f6a3",
   "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>RMSE</th>\n",
       "      <th>MAE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>3.043070</td>\n",
       "      <td>2.289695</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>4.261417</td>\n",
       "      <td>3.160785</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>4.254982</td>\n",
       "      <td>3.216801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>7.789605</td>\n",
       "      <td>5.777839</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>4.389655</td>\n",
       "      <td>3.326886</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>3.011533</td>\n",
       "      <td>2.282302</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>3.600781</td>\n",
       "      <td>2.630440</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>3.088892</td>\n",
       "      <td>2.332975</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>3.030684</td>\n",
       "      <td>2.294720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>5.508709</td>\n",
       "      <td>3.962079</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>3.905479</td>\n",
       "      <td>2.933231</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>7.290707</td>\n",
       "      <td>5.301983</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>4.340823</td>\n",
       "      <td>3.292714</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>5.218373</td>\n",
       "      <td>4.026759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>6.529596</td>\n",
       "      <td>4.661341</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>5.393278</td>\n",
       "      <td>4.049622</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>4.850867</td>\n",
       "      <td>3.796924</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>10.685524</td>\n",
       "      <td>7.604276</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>3.809008</td>\n",
       "      <td>2.863135</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>3.488836</td>\n",
       "      <td>2.659035</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>3.378626</td>\n",
       "      <td>2.559508</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>4.781126</td>\n",
       "      <td>3.238643</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>3.692846</td>\n",
       "      <td>2.825096</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>2.698396</td>\n",
       "      <td>2.043125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>4.207479</td>\n",
       "      <td>3.120822</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>4.074743</td>\n",
       "      <td>3.021358</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>2.865529</td>\n",
       "      <td>2.197308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>3.770600</td>\n",
       "      <td>2.835271</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>3.311975</td>\n",
       "      <td>2.484423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>3.713826</td>\n",
       "      <td>2.833851</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            RMSE       MAE\n",
       "Food    3.043070  2.289695\n",
       "Beer    4.261417  3.160785\n",
       "Smoke   4.254982  3.216801\n",
       "Games   7.789605  5.777839\n",
       "Books   4.389655  3.326886\n",
       "Hshld   3.011533  2.282302\n",
       "Clths   3.600781  2.630440\n",
       "Hlth    3.088892  2.332975\n",
       "Chems   3.030684  2.294720\n",
       "Txtls   5.508709  3.962079\n",
       "Cnstr   3.905479  2.933231\n",
       "Steel   7.290707  5.301983\n",
       "FabPr   4.340823  3.292714\n",
       "ElcEq   5.218373  4.026759\n",
       "Autos   6.529596  4.661341\n",
       "Carry   5.393278  4.049622\n",
       "Mines   4.850867  3.796924\n",
       "Coal   10.685524  7.604276\n",
       "Oil     3.809008  2.863135\n",
       "Util    3.488836  2.659035\n",
       "Telcm   3.378626  2.559508\n",
       "Servs   4.781126  3.238643\n",
       "BusEq   3.692846  2.825096\n",
       "Paper   2.698396  2.043125\n",
       "Trans   4.207479  3.120822\n",
       "Whlsl   4.074743  3.021358\n",
       "Rtail   2.865529  2.197308\n",
       "Meals   3.770600  2.835271\n",
       "Fin     3.311975  2.484423\n",
       "Other   3.713826  2.833851"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "63a26249",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE: 4.4662\n",
      "MAE: 3.3208\n"
     ]
    }
   ],
   "source": [
    "mean_RMSE = np.mean(p['RMSE'])\n",
    "mean_MAE = np.mean(p['MAE'])\n",
    "print(f\"RMSE: {mean_RMSE:.4f}\")\n",
    "print(f\"MAE: {mean_MAE:.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a2202a7d",
   "metadata": {},
   "source": [
    "# 1.4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "2a49aa97",
   "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>Betas</th>\n",
       "      <th>SMB</th>\n",
       "      <th>HML</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Betas  SMB  HML\n",
       "Food     NaN  NaN  NaN\n",
       "Beer     NaN  NaN  NaN\n",
       "Smoke    NaN  NaN  NaN\n",
       "Games    NaN  NaN  NaN\n",
       "Books    NaN  NaN  NaN\n",
       "Hshld    NaN  NaN  NaN\n",
       "Clths    NaN  NaN  NaN\n",
       "Hlth     NaN  NaN  NaN\n",
       "Chems    NaN  NaN  NaN\n",
       "Txtls    NaN  NaN  NaN\n",
       "Cnstr    NaN  NaN  NaN\n",
       "Steel    NaN  NaN  NaN\n",
       "FabPr    NaN  NaN  NaN\n",
       "ElcEq    NaN  NaN  NaN\n",
       "Autos    NaN  NaN  NaN\n",
       "Carry    NaN  NaN  NaN\n",
       "Mines    NaN  NaN  NaN\n",
       "Coal     NaN  NaN  NaN\n",
       "Oil      NaN  NaN  NaN\n",
       "Util     NaN  NaN  NaN\n",
       "Telcm    NaN  NaN  NaN\n",
       "Servs    NaN  NaN  NaN\n",
       "BusEq    NaN  NaN  NaN\n",
       "Paper    NaN  NaN  NaN\n",
       "Trans    NaN  NaN  NaN\n",
       "Whlsl    NaN  NaN  NaN\n",
       "Rtail    NaN  NaN  NaN\n",
       "Meals    NaN  NaN  NaN\n",
       "Fin      NaN  NaN  NaN\n",
       "Other    NaN  NaN  NaN"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "beta1 = pd.DataFrame(np.nan,index=indus,columns=[\"Betas\", \"SMB\", \"HML\"])\n",
    "beta1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "a65ab935",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import linear_model\n",
    "\n",
    "for i in range(len(indus)):\n",
    "    model = linear_model.LinearRegression()\n",
    "    reg1 = model.fit(df[['Mkt-RF','SMB','HML']], pd.DataFrame(df[indus[i]]-df['RF']))\n",
    "    beta1.iloc[i] = reg1.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "c6946d7f",
   "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>Betas</th>\n",
       "      <th>SMB</th>\n",
       "      <th>HML</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>0.747453</td>\n",
       "      <td>-0.140384</td>\n",
       "      <td>0.052259</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>0.866732</td>\n",
       "      <td>0.196442</td>\n",
       "      <td>0.133388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>0.649355</td>\n",
       "      <td>-0.216873</td>\n",
       "      <td>0.096605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>1.287535</td>\n",
       "      <td>0.408923</td>\n",
       "      <td>0.138250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>1.012498</td>\n",
       "      <td>0.372491</td>\n",
       "      <td>0.186158</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>0.906274</td>\n",
       "      <td>-0.088170</td>\n",
       "      <td>-0.035378</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>0.761506</td>\n",
       "      <td>0.422109</td>\n",
       "      <td>-0.060045</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>0.878894</td>\n",
       "      <td>-0.085659</td>\n",
       "      <td>-0.189481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>1.068119</td>\n",
       "      <td>-0.151514</td>\n",
       "      <td>0.026175</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>0.982731</td>\n",
       "      <td>0.563268</td>\n",
       "      <td>0.372973</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>1.118341</td>\n",
       "      <td>0.247742</td>\n",
       "      <td>0.107824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>1.259659</td>\n",
       "      <td>0.232049</td>\n",
       "      <td>0.380399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>1.173377</td>\n",
       "      <td>0.261550</td>\n",
       "      <td>0.111985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>1.295485</td>\n",
       "      <td>-0.035460</td>\n",
       "      <td>-0.000616</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>1.247708</td>\n",
       "      <td>0.055086</td>\n",
       "      <td>0.188627</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>1.097555</td>\n",
       "      <td>0.218124</td>\n",
       "      <td>0.328079</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>0.842647</td>\n",
       "      <td>0.258731</td>\n",
       "      <td>0.145621</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>1.084163</td>\n",
       "      <td>0.485378</td>\n",
       "      <td>0.673339</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>0.878785</td>\n",
       "      <td>-0.179207</td>\n",
       "      <td>0.290080</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>0.755451</td>\n",
       "      <td>-0.166903</td>\n",
       "      <td>0.259715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>0.694991</td>\n",
       "      <td>-0.131654</td>\n",
       "      <td>-0.036739</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>0.832129</td>\n",
       "      <td>0.368626</td>\n",
       "      <td>-0.505840</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>1.121167</td>\n",
       "      <td>0.153322</td>\n",
       "      <td>-0.455735</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>0.952825</td>\n",
       "      <td>-0.057684</td>\n",
       "      <td>0.045355</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>1.038001</td>\n",
       "      <td>0.163473</td>\n",
       "      <td>0.454423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>0.972969</td>\n",
       "      <td>0.550152</td>\n",
       "      <td>0.068217</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>0.979982</td>\n",
       "      <td>0.041639</td>\n",
       "      <td>-0.131479</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>0.896939</td>\n",
       "      <td>0.289515</td>\n",
       "      <td>-0.030568</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>1.121536</td>\n",
       "      <td>-0.057539</td>\n",
       "      <td>0.315218</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>0.999547</td>\n",
       "      <td>0.283097</td>\n",
       "      <td>0.018335</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Betas       SMB       HML\n",
       "Food   0.747453 -0.140384  0.052259\n",
       "Beer   0.866732  0.196442  0.133388\n",
       "Smoke  0.649355 -0.216873  0.096605\n",
       "Games  1.287535  0.408923  0.138250\n",
       "Books  1.012498  0.372491  0.186158\n",
       "Hshld  0.906274 -0.088170 -0.035378\n",
       "Clths  0.761506  0.422109 -0.060045\n",
       "Hlth   0.878894 -0.085659 -0.189481\n",
       "Chems  1.068119 -0.151514  0.026175\n",
       "Txtls  0.982731  0.563268  0.372973\n",
       "Cnstr  1.118341  0.247742  0.107824\n",
       "Steel  1.259659  0.232049  0.380399\n",
       "FabPr  1.173377  0.261550  0.111985\n",
       "ElcEq  1.295485 -0.035460 -0.000616\n",
       "Autos  1.247708  0.055086  0.188627\n",
       "Carry  1.097555  0.218124  0.328079\n",
       "Mines  0.842647  0.258731  0.145621\n",
       "Coal   1.084163  0.485378  0.673339\n",
       "Oil    0.878785 -0.179207  0.290080\n",
       "Util   0.755451 -0.166903  0.259715\n",
       "Telcm  0.694991 -0.131654 -0.036739\n",
       "Servs  0.832129  0.368626 -0.505840\n",
       "BusEq  1.121167  0.153322 -0.455735\n",
       "Paper  0.952825 -0.057684  0.045355\n",
       "Trans  1.038001  0.163473  0.454423\n",
       "Whlsl  0.972969  0.550152  0.068217\n",
       "Rtail  0.979982  0.041639 -0.131479\n",
       "Meals  0.896939  0.289515 -0.030568\n",
       "Fin    1.121536 -0.057539  0.315218\n",
       "Other  0.999547  0.283097  0.018335"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "beta1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ee3ac242",
   "metadata": {},
   "source": [
    "# 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "2f34fa10",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Excess return')"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.scatter(beta1['Betas'], excess)\n",
    "plt.xlabel(\"Beta\")\n",
    "plt.ylabel(\"Excess return\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "0b2a9e1d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Excess return')"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.scatter(beta1['SMB'], excess)\n",
    "plt.xlabel(\"SMB\")\n",
    "plt.ylabel(\"Excess return\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "536c4b53",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Excess return')"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.scatter(beta1['HML'], excess)\n",
    "plt.xlabel(\"HML\")\n",
    "plt.ylabel(\"Excess return\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a23f79b",
   "metadata": {},
   "source": [
    "# 1.6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "eec8f58f",
   "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>RMSE</th>\n",
       "      <th>MAE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       RMSE  MAE\n",
       "Food    NaN  NaN\n",
       "Beer    NaN  NaN\n",
       "Smoke   NaN  NaN\n",
       "Games   NaN  NaN\n",
       "Books   NaN  NaN\n",
       "Hshld   NaN  NaN\n",
       "Clths   NaN  NaN\n",
       "Hlth    NaN  NaN\n",
       "Chems   NaN  NaN\n",
       "Txtls   NaN  NaN\n",
       "Cnstr   NaN  NaN\n",
       "Steel   NaN  NaN\n",
       "FabPr   NaN  NaN\n",
       "ElcEq   NaN  NaN\n",
       "Autos   NaN  NaN\n",
       "Carry   NaN  NaN\n",
       "Mines   NaN  NaN\n",
       "Coal    NaN  NaN\n",
       "Oil     NaN  NaN\n",
       "Util    NaN  NaN\n",
       "Telcm   NaN  NaN\n",
       "Servs   NaN  NaN\n",
       "BusEq   NaN  NaN\n",
       "Paper   NaN  NaN\n",
       "Trans   NaN  NaN\n",
       "Whlsl   NaN  NaN\n",
       "Rtail   NaN  NaN\n",
       "Meals   NaN  NaN\n",
       "Fin     NaN  NaN\n",
       "Other   NaN  NaN"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q = pd.DataFrame(data = np.nan, index = indus, columns = ['RMSE','MAE'])\n",
    "q"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "784976bb",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "kf = KFold(n_splits=10,shuffle=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "be0f605c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE on 10-fold CV on the test data: 3.015118435305405\n",
      "MAE on 10-fold CV on the test data: 2.297275482730651\n"
     ]
    }
   ],
   "source": [
    "for i in range(len(indus)):\n",
    "    err_rmse_test = 0\n",
    "    err_mae_test = 0\n",
    "    X = df[['Mkt-RF', 'SMB', 'HML']].to_numpy()\n",
    "    ri_rf = (df[indus[i]]-df['RF']).to_numpy()  \n",
    "    for train,test in kf.split(X):\n",
    "        lr=linear_model.LinearRegression()\n",
    "        reg=lr.fit(X[test],ri_rf[test])\n",
    "        fama_pred_test =reg.predict(X[test])\n",
    "        e_test = ri_rf[test]-fama_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_test_10cv_model1 = err_rmse_test/10   \n",
    "    mae_test_10cv_model1 = err_mae_test/10\n",
    "    q.iloc[i][0] = rmse_test_10cv_model1\n",
    "    q.iloc[i][1] = mae_test_10cv_model1\n",
    "\n",
    "print('RMSE on 10-fold CV on the test data: {}'.format(rmse_test_10cv_model1))\n",
    "print('MAE on 10-fold CV on the test data: {}'.format(mae_test_10cv_model1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "498a0f32",
   "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>RMSE</th>\n",
       "      <th>MAE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Food</th>\n",
       "      <td>2.228842</td>\n",
       "      <td>1.682840</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beer</th>\n",
       "      <td>4.072157</td>\n",
       "      <td>3.046692</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Smoke</th>\n",
       "      <td>4.241996</td>\n",
       "      <td>3.282766</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Games</th>\n",
       "      <td>4.291913</td>\n",
       "      <td>3.237562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Books</th>\n",
       "      <td>3.348071</td>\n",
       "      <td>2.567700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hshld</th>\n",
       "      <td>2.896211</td>\n",
       "      <td>2.191722</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Clths</th>\n",
       "      <td>3.354859</td>\n",
       "      <td>2.505754</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hlth</th>\n",
       "      <td>2.863366</td>\n",
       "      <td>2.197922</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chems</th>\n",
       "      <td>2.561330</td>\n",
       "      <td>1.962165</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Txtls</th>\n",
       "      <td>3.730187</td>\n",
       "      <td>2.853315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cnstr</th>\n",
       "      <td>2.388686</td>\n",
       "      <td>1.872385</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Steel</th>\n",
       "      <td>3.865325</td>\n",
       "      <td>2.958378</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FabPr</th>\n",
       "      <td>2.525007</td>\n",
       "      <td>1.952199</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElcEq</th>\n",
       "      <td>3.017587</td>\n",
       "      <td>2.359269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Autos</th>\n",
       "      <td>4.113867</td>\n",
       "      <td>3.022697</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Carry</th>\n",
       "      <td>3.770922</td>\n",
       "      <td>2.879420</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mines</th>\n",
       "      <td>4.949669</td>\n",
       "      <td>3.856917</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Coal</th>\n",
       "      <td>7.257943</td>\n",
       "      <td>5.436897</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oil</th>\n",
       "      <td>3.604840</td>\n",
       "      <td>2.773756</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Util</th>\n",
       "      <td>2.963372</td>\n",
       "      <td>2.256085</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Telcm</th>\n",
       "      <td>2.608588</td>\n",
       "      <td>1.993382</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Servs</th>\n",
       "      <td>4.483845</td>\n",
       "      <td>2.979678</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BusEq</th>\n",
       "      <td>2.796519</td>\n",
       "      <td>2.172683</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Paper</th>\n",
       "      <td>2.598360</td>\n",
       "      <td>1.989367</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Trans</th>\n",
       "      <td>2.831683</td>\n",
       "      <td>2.199756</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whlsl</th>\n",
       "      <td>3.100491</td>\n",
       "      <td>2.301708</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rtail</th>\n",
       "      <td>2.691028</td>\n",
       "      <td>2.098727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Meals</th>\n",
       "      <td>3.417245</td>\n",
       "      <td>2.607442</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fin</th>\n",
       "      <td>2.135034</td>\n",
       "      <td>1.624639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>3.015118</td>\n",
       "      <td>2.297275</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           RMSE       MAE\n",
       "Food   2.228842  1.682840\n",
       "Beer   4.072157  3.046692\n",
       "Smoke  4.241996  3.282766\n",
       "Games  4.291913  3.237562\n",
       "Books  3.348071  2.567700\n",
       "Hshld  2.896211  2.191722\n",
       "Clths  3.354859  2.505754\n",
       "Hlth   2.863366  2.197922\n",
       "Chems  2.561330  1.962165\n",
       "Txtls  3.730187  2.853315\n",
       "Cnstr  2.388686  1.872385\n",
       "Steel  3.865325  2.958378\n",
       "FabPr  2.525007  1.952199\n",
       "ElcEq  3.017587  2.359269\n",
       "Autos  4.113867  3.022697\n",
       "Carry  3.770922  2.879420\n",
       "Mines  4.949669  3.856917\n",
       "Coal   7.257943  5.436897\n",
       "Oil    3.604840  2.773756\n",
       "Util   2.963372  2.256085\n",
       "Telcm  2.608588  1.993382\n",
       "Servs  4.483845  2.979678\n",
       "BusEq  2.796519  2.172683\n",
       "Paper  2.598360  1.989367\n",
       "Trans  2.831683  2.199756\n",
       "Whlsl  3.100491  2.301708\n",
       "Rtail  2.691028  2.098727\n",
       "Meals  3.417245  2.607442\n",
       "Fin    2.135034  1.624639\n",
       "Other  3.015118  2.297275"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "947252d7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE: 3.3908\n",
      "MAE: 2.5720\n"
     ]
    }
   ],
   "source": [
    "mean_RMSE = np.mean(q['RMSE'])\n",
    "mean_MAE = np.mean(q['MAE'])\n",
    "print(f\"RMSE: {mean_RMSE:.4f}\")\n",
    "print(f\"MAE: {mean_MAE:.4f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7663e866",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
