Skip to content

Instantly share code, notes, and snippets.

@fdoperezi
Created July 22, 2020 00:12
Show Gist options
  • Save fdoperezi/1dc2216cdfc7d466e29755fdc859d6bf to your computer and use it in GitHub Desktop.
Save fdoperezi/1dc2216cdfc7d466e29755fdc859d6bf to your computer and use it in GitHub Desktop.
ml_factor_investing.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"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.7.6"
},
"colab": {
"name": "ml_factor_investing.ipynb",
"provenance": [],
"include_colab_link": true
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/jus-tinian/94f091bd342cab75d65b64bbba5e7ef6/ml_factor_investing.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6oWpiuf3g_jO",
"colab_type": "text"
},
"source": [
"# Applied Machine Learning Project:"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "18oPQBcog_jP",
"colab_type": "text"
},
"source": [
"## Machine Learning for Factor Investing"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "bzrBaV-Dg_jQ",
"colab_type": "text"
},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DgmE0B4Tg_jY",
"colab_type": "text"
},
"source": [
"## Phase 1 Tasks\n",
"\n",
"- Define the Objective\n",
"- Data Acquisition\n",
"- Detailed description of dataset\n",
"- Exploratory Data Analysis\n",
"- Algorithm selection"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4mJgzD7eg_ja",
"colab_type": "text"
},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "O35qUijHg_jb",
"colab_type": "text"
},
"source": [
"## The Objective\n",
"\n",
"The project objective is to use machine learning and the Python programming language to model returns on public equity investments across four labels: 1, 3, 6, and 12 month timeframes. Performance measures in the context of this notebook are in reference to machine learning performance measures, and not performance measures on portfolios or individual equities. This project will likely not attempt to create portfolios from our ML models, as portfolio contstruction is beyond the scope of this course. \n",
"\n",
"Mainly, the text _Machine Learning for Factor Investing_ (MLFI) by Tony Guida and Dr. Guillaume Coqueret will be used as a guide for developing our models. MLFI will primarily be supplemented by Dr. Yves Hilpisch's _Python for Finance 2d ed_ (PyFi) chapter 13. Finally, Dr. Marcos Lopez de Prado's _Advances in Financial Machine Learning_ (AFML) will be used to aid in hyperparameter tuning with cross validation. AFML will also be referenced for our work with Random Forests. \n",
"\n",
"MLFI is written in the R programming language, PyFi is written in Python 3, and AFML is written in Python 2; this project will translate R to Python code, and use Python 3 and scikit-learn (SKL) machine learning library. Additional libraries to be used are: Pandas, Numpy, and Matplotlib.\n",
"\n",
"_Main References:_\n",
"- Machine Learning for Factor Investing, Tony Guida and Guillaume Coqueret: http://www.mlfactor.com/\n",
"- Machine Learning for Asset Managers, Dr. Marcos Lopez de Prado\n",
"- Advances in Financial Machine Learning, Dr. Marcos Lopez de Prado\n",
"- Python for Finance, 2d ed., Dr. Yves Hilpisch\n",
"- Scikit-learn: https://scikit-learn.org/stable/\n",
"\n",
"_Supplemental References:_\n",
"- Machine Learning for Finance, Dixon et al\n",
"- Quantum Finance, Raymond S.T. Lee\n",
"- Machine Learning for Financial Market Prediction — Time Series Prediction With Sklearn and Keras\n",
" - https://alphaarchitect.com/2018/06/05/machine-learning-financial-market-prediction-time-series-prediction-sklearn-keras/\n",
"- Machine Learning Classification Methods and Factor Investing\n",
" - https://alphaarchitect.com/2018/12/21/machine-learning-classification-methods-and-factor-investing/\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NIk3QGbtg_jc",
"colab_type": "text"
},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Tv8ePBklg_jc",
"colab_type": "text"
},
"source": [
"## The Data\n",
"\n",
"**_Acquisition_** <br>\n",
"\n",
"The original data was retrieved from https://github.com/shokru/mlfactor.github.io/blob/master/material/data_ml.RData as an RData file and converted to CSV. The data has been placed onto Kaggle for use by other students and machine learning enthusiasts: https://www.kaggle.com/jgoheen/machine-learning-for-factor-investing\n",
"\n",
"**_Description_** <br>\n",
"\n",
"The data consists of 99 columns - including the stock ID (company) and date, partitioned into the metric-families shown below:\n",
"\n",
"* valuation (earning yields, accounting ratios)\n",
"* profitability and quality (return on equity)\n",
"* momentum and technical analysis (past returns, relative strength index)\n",
"* risk (volatilities)\n",
"* estimates (earnings-per-share) \n",
"* volume and liquidity (share turnover)\n",
"\n",
"There are 1207 companies covered across 21 years, from November 1998 to March 2019. Not all 1207 have data available across the entire 245 month span, as shown in the below plot.\n",
"\n",
"The first 2 columns are stock_id and date, and are not used as features.\n",
"\n",
"Columns 3 - 95 are the model features. \n",
"\n",
"Columns 96-99 are the target variables (labels). The label names are:\n",
"\n",
"* R1M_Usd: return forward 1 month <br>\n",
"* R3M_Usd: return forward 3 months <br>\n",
"* R6M_Usd: return forward 6 months <br>\n",
"* R12M_Usd: return forward 12 months <br>\n",
"\n",
"The raw data comprises of 268336 rows.\n",
"\n",
"The features are all continuous data. There are no initial categorical features. The stock_id column is a cardinal ID of the firm's name. The firm name is not included in the dataset; meaning no investment strategies can be developed directly from this dataset.\n",
"\n",
"The features data was scaled by the authors using uniformization. \n",
"\n",
"> uniformization: $\\tilde{x}_i=F_X(x_i)$, where $F_X$ is the empirical cumulative distribution function of $X$. In this case, the vector $\\tilde{X}$ is defined to follow a uniform distribution over [0,1]\n",
"\n",
"The labels appear to have not been scaled (shown in EDA section).\n",
"\n",
"A data dictionary is provided in the Preprocessing and EDA section of this notebook and a full description of columns (dates, identifiers, features, and labels) can be found at: http://www.mlfactor.com/data-description.html"
]
},
{
"cell_type": "code",
"metadata": {
"id": "YH-r1Nfqg_je",
"colab_type": "code",
"colab": {}
},
"source": [
"# generic imports\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "oaTkgBtEg_jj",
"colab_type": "code",
"colab": {}
},
"source": [
"# set option to display all rows for certain EDA methods\n",
"pd.set_option('display.max_rows', 100)\n",
"pd.set_option('max_colwidth', 500)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "gYuM_gfMg_jo",
"colab_type": "code",
"colab": {}
},
"source": [
"# get data\n",
"df = pd.read_csv('mlfi.csv', index_col=\"Unnamed: 0\")"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "S4TJcyavg_jt",
"colab_type": "code",
"colab": {},
"outputId": "29d7af70-0873-467c-8a72-a7ca0b8d2d3a"
},
"source": [
"# plot assets over time\n",
"df.groupby('date').count()['stock_id'].plot(kind='bar', figsize=(14, 8))\n",
"plt.xticks([])\n",
"plt.title(\"Assets Over Time: Grouped by Month\")\n",
"plt.xlabel(\"November 1998 - March 2019, Monthly\")\n",
"plt.ylabel(\"Stock IDs in Month\");"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x576 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "a7v-hmy_g_jz",
"colab_type": "text"
},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rwEZDLvZg_jz",
"colab_type": "text"
},
"source": [
"## Preprocessing and Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-3kCEk06g_j0",
"colab_type": "text"
},
"source": [
"**_Preprocessing_**\n",
"\n",
"An amount of preprocessing and filtering was necessary prior to exploratory data analysis, as certain tasks - plotting a scatter matrix or histogram of all columns - proved intensive for a DataFrame of 99 columns. \n",
"\n",
"The first step in preprocessing was to download the file from Github, and convert from an RData file to a CSV file so the data-file could be used with Python programs.\n",
"\n",
"The data does not contain any missing values. As mentioned above, the features are all continuous data and there are no categorical text features. \n",
"\n",
"I've decided to drop the stock_ids which do not have data for all 21 years. The max available months when grouped-by stock_id is 245 months. The below shown code reduces the data to those stock IDs which have 245 available months. Resulting in 372 stocks being available for the project.\n",
"\n",
"The text supplies a short list of features to use: \n",
"\n",
"* \"Div_Yld\": divdend yield\n",
"* \"Eps\": earnings per share\n",
"* \"Mkt_Cap_12M_Usd\": 12 month market capitilization, reported in U.S. Dollars\n",
"* \"Mom_11M_Usd\": price momentum 12 - 1 months in USD\n",
"* \"Ocf\": operating cash flow\n",
"* \"Pb\": price to book ratio\n",
"* \"Vol1Y_Usd\": volatility of returns over one year\n",
"\n",
"We will use this list object - features_short - for our EDA in this notebook. Given features_short focuses on features which provide data aggregated for 11 or 12 months, the label we will use in our initial univariate models will be 'R12M_Usd': return forward 12 months.\n",
"\n",
"Given the amount of columns, we refrain from printing to screen a full .info or .describe and instead filter on select columns for brevity. Multiple Pandas EDA methods have been combined into this DataFrame: info() as dtypes.values, describe(), and null counts."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4ibR7NKBg_j1",
"colab_type": "text"
},
"source": [
"- - -\n",
"Define lists for non-features, features, features_short, and labels; and filter the DataFrame"
]
},
{
"cell_type": "code",
"metadata": {
"id": "xmwMl5teg_j1",
"colab_type": "code",
"colab": {}
},
"source": [
"# lists for filtering\n",
"non_features = ['date', 'stock_id']\n",
"labels = ['R1M_Usd', 'R3M_Usd', 'R6M_Usd', 'R12M_Usd']\n",
"features = [i for i in df.columns if i not in non_features+labels]\n",
"features_short = [\"Div_Yld\", \"Eps\", \"Mkt_Cap_12M_Usd\", \"Mom_11M_Usd\", \"Ocf\", \"Pb\", \"Vol1Y_Usd\"]\n",
"labels_short = ['R12M_Usd']\n",
"eda_columns = non_features + features_short + labels_short\n",
"eda_features_label = features_short + labels_short"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "G4wdSoy4g_j6",
"colab_type": "code",
"colab": {},
"outputId": "6458b58d-8790-4c97-e4ce-0331d5d70ccd"
},
"source": [
"# get filtered list of stock_ids; print max number of months available and the number of unique stock IDs after filtering\n",
"max_time_view = df.groupby('stock_id').count().sort_values('date', ascending=False)\n",
"print('-The maximum number of available months is: ', max_time_view['date'].max())\n",
"max_time_view = max_time_view.loc[max_time_view.date == 245, :]\n",
"# get list of stock_ids with 245 months available\n",
"max_time_view_stock_ids = max_time_view.index.tolist()\n",
"max_time_view_stock_ids.sort()\n",
"print('-There will %d stocks covered after filtering' %len(max_time_view_stock_ids))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"-The maximum number of available months is: 245\n",
"-There will 372 stocks covered after filtering\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "aG9qgflug_j9",
"colab_type": "code",
"colab": {}
},
"source": [
"# filter to stock_ids with 245 available months\n",
"df = df[eda_columns].loc[df.stock_id.isin(max_time_view_stock_ids), :].reset_index().drop('index', axis= 1).sort_values('stock_id')"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "5dhuSWMzg_kC",
"colab_type": "text"
},
"source": [
"---\n",
"\n",
"**_Exploratory Data Analysis_**\n",
"\n",
"**Data Dictionary**\n",
"\n",
"Multiple Pandas EDA methods have been combined into this DataFrame: info() as dtypes.values, describe(), and null counts.\n",
"\n",
"The data was described above in the description section, and we refrain from repeating here."
]
},
{
"cell_type": "code",
"metadata": {
"id": "gBgFqMcHg_kC",
"colab_type": "code",
"colab": {},
"outputId": "baf9d472-2c8b-41c1-aeff-3e2b014d1ce0"
},
"source": [
"# get data description\n",
"data_dictionary = pd.read_csv('mlfactor_data_desc.csv')\n",
"# filter to EDA columns\n",
"data_dictionary = data_dictionary.loc[data_dictionary['Column Name'].isin(eda_columns), :]\n",
"# get dtypes\n",
"data_dictionary['_dtypes'] = df.dtypes.values\n",
"# get notnull values counts\n",
"data_dictionary['non-null'] = df.notnull().count().values\n",
"# call describe() and join to data_dictionary\n",
"data_dictionary = data_dictionary.join(df.describe(include='all').T, on='Column Name')\n",
"# get null count\n",
"data_dictionary['null_count'] = data_dictionary['non-null'] - data_dictionary['count']\n",
"# drop unwanted columns\n",
"data_dictionary = data_dictionary.drop(['unique', 'top', 'freq'], axis=1)\n",
"# show data_dictionary\n",
"data_dictionary"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"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>Column Name</th>\n",
" <th>Short Description</th>\n",
" <th>_dtypes</th>\n",
" <th>non-null</th>\n",
" <th>count</th>\n",
" <th>mean</th>\n",
" <th>std</th>\n",
" <th>min</th>\n",
" <th>25%</th>\n",
" <th>50%</th>\n",
" <th>75%</th>\n",
" <th>max</th>\n",
" <th>null_count</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>stock_id</td>\n",
" <td>security id</td>\n",
" <td>object</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>569.18</td>\n",
" <td>347.389</td>\n",
" <td>3</td>\n",
" <td>277</td>\n",
" <td>534</td>\n",
" <td>836.25</td>\n",
" <td>1210</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>date</td>\n",
" <td>date of the data</td>\n",
" <td>int64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Div_Yld</td>\n",
" <td>dividend yield</td>\n",
" <td>float64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>0.533511</td>\n",
" <td>0.296181</td>\n",
" <td>0.01</td>\n",
" <td>0.27</td>\n",
" <td>0.56</td>\n",
" <td>0.8</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Eps</td>\n",
" <td>earnings per share</td>\n",
" <td>float64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>0.472142</td>\n",
" <td>0.263564</td>\n",
" <td>0.01</td>\n",
" <td>0.26</td>\n",
" <td>0.46</td>\n",
" <td>0.68</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>Mkt_Cap_12M_Usd</td>\n",
" <td>average market capitalization over 12 months in USD</td>\n",
" <td>float64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>0.304373</td>\n",
" <td>0.184114</td>\n",
" <td>0.01</td>\n",
" <td>0.15</td>\n",
" <td>0.29</td>\n",
" <td>0.44</td>\n",
" <td>0.98</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>Mom_11M_Usd</td>\n",
" <td>price momentum 12 - 1 months in USD</td>\n",
" <td>float64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>0.496133</td>\n",
" <td>0.28209</td>\n",
" <td>0.01</td>\n",
" <td>0.26</td>\n",
" <td>0.49</td>\n",
" <td>0.74</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>Ocf</td>\n",
" <td>operating cash flow</td>\n",
" <td>float64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>0.33644</td>\n",
" <td>0.191539</td>\n",
" <td>0.01</td>\n",
" <td>0.18</td>\n",
" <td>0.32</td>\n",
" <td>0.48</td>\n",
" <td>0.99</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>72</th>\n",
" <td>Pb</td>\n",
" <td>price to book</td>\n",
" <td>float64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>0.428903</td>\n",
" <td>0.264067</td>\n",
" <td>0.01</td>\n",
" <td>0.21</td>\n",
" <td>0.41</td>\n",
" <td>0.62</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>93</th>\n",
" <td>Vol1Y_Usd</td>\n",
" <td>volatility of returns over one year</td>\n",
" <td>float64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>0.506152</td>\n",
" <td>0.276881</td>\n",
" <td>0.01</td>\n",
" <td>0.27</td>\n",
" <td>0.5</td>\n",
" <td>0.74</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>R12M_Usd</td>\n",
" <td>return forward 12 months (LABEL)</td>\n",
" <td>float64</td>\n",
" <td>91140</td>\n",
" <td>91140</td>\n",
" <td>0.131113</td>\n",
" <td>0.664709</td>\n",
" <td>-0.968</td>\n",
" <td>-0.092</td>\n",
" <td>0.067</td>\n",
" <td>0.269</td>\n",
" <td>72.24</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Column Name Short Description \\\n",
"0 stock_id security id \n",
"1 date date of the data \n",
"14 Div_Yld dividend yield \n",
"21 Eps earnings per share \n",
"42 Mkt_Cap_12M_Usd average market capitalization over 12 months in USD \n",
"45 Mom_11M_Usd price momentum 12 - 1 months in USD \n",
"60 Ocf operating cash flow \n",
"72 Pb price to book \n",
"93 Vol1Y_Usd volatility of returns over one year \n",
"98 R12M_Usd return forward 12 months (LABEL) \n",
"\n",
" _dtypes non-null count mean std min 25% 50% 75% \\\n",
"0 object 91140 91140 569.18 347.389 3 277 534 836.25 \n",
"1 int64 91140 91140 NaN NaN NaN NaN NaN NaN \n",
"14 float64 91140 91140 0.533511 0.296181 0.01 0.27 0.56 0.8 \n",
"21 float64 91140 91140 0.472142 0.263564 0.01 0.26 0.46 0.68 \n",
"42 float64 91140 91140 0.304373 0.184114 0.01 0.15 0.29 0.44 \n",
"45 float64 91140 91140 0.496133 0.28209 0.01 0.26 0.49 0.74 \n",
"60 float64 91140 91140 0.33644 0.191539 0.01 0.18 0.32 0.48 \n",
"72 float64 91140 91140 0.428903 0.264067 0.01 0.21 0.41 0.62 \n",
"93 float64 91140 91140 0.506152 0.276881 0.01 0.27 0.5 0.74 \n",
"98 float64 91140 91140 0.131113 0.664709 -0.968 -0.092 0.067 0.269 \n",
"\n",
" max null_count \n",
"0 1210 0 \n",
"1 NaN 0 \n",
"14 1 0 \n",
"21 1 0 \n",
"42 0.98 0 \n",
"45 1 0 \n",
"60 0.99 0 \n",
"72 1 0 \n",
"93 1 0 \n",
"98 72.24 0 "
]
},
"metadata": {
"tags": []
},
"execution_count": 8
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xlz100Btg_kF",
"colab_type": "text"
},
"source": [
"--- \n",
"**Correlation Matrix**\n",
"\n",
"Based on highest positive correlation with our label (R12M_Usd), the feature `Vol1Y_Usd` appears promising. Based on lowest negative correlation with the label, the feature `Mkt_Cap_12M_Usd` also appears promising. Meaning, we should expect those stock_ids with the lowest market cap, and highest volatility to perform best.\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "47_Obdpcg_kG",
"colab_type": "code",
"colab": {},
"outputId": "4009cf63-72da-437e-afaa-5a91641e9919"
},
"source": [
"# plot correlation matrix for filtered dataframe\n",
"# we can ignore stock_id\n",
"# the label is R12M_Usd\n",
"df[eda_features_label].corr().style.background_gradient().set_precision(4)"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<style type=\"text/css\" >\n",
" #T_327f8612_c888_11ea_a2ce_acde48001122row0_col0 {\n",
" background-color: #023858;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row0_col1 {\n",
" background-color: #a2bcda;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row0_col2 {\n",
" background-color: #d9d8ea;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row0_col3 {\n",
" background-color: #f8f1f8;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row0_col4 {\n",
" background-color: #cacee5;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row0_col5 {\n",
" background-color: #fff7fb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row0_col6 {\n",
" background-color: #fff7fb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row0_col7 {\n",
" background-color: #f7f0f7;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row1_col0 {\n",
" background-color: #94b6d7;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row1_col1 {\n",
" background-color: #023858;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row1_col2 {\n",
" background-color: #89b1d4;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row1_col3 {\n",
" background-color: #e6e2ef;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row1_col4 {\n",
" background-color: #8bb2d4;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row1_col5 {\n",
" background-color: #ede8f3;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row1_col6 {\n",
" background-color: #f7f0f7;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row1_col7 {\n",
" background-color: #fef6fa;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row2_col0 {\n",
" background-color: #b7c5df;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row2_col1 {\n",
" background-color: #75a9cf;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row2_col2 {\n",
" background-color: #023858;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row2_col3 {\n",
" background-color: #eee9f3;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row2_col4 {\n",
" background-color: #0771b1;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row2_col5 {\n",
" background-color: #a4bcda;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row2_col6 {\n",
" background-color: #e8e4f0;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row2_col7 {\n",
" background-color: #fff7fb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row3_col0 {\n",
" background-color: #d1d2e6;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row3_col1 {\n",
" background-color: #c2cbe2;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row3_col2 {\n",
" background-color: #e0deed;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row3_col3 {\n",
" background-color: #023858;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row3_col4 {\n",
" background-color: #dcdaeb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row3_col5 {\n",
" background-color: #d6d6e9;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row3_col6 {\n",
" background-color: #d9d8ea;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row3_col7 {\n",
" background-color: #fdf5fa;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row4_col0 {\n",
" background-color: #a8bedc;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row4_col1 {\n",
" background-color: #76aad0;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row4_col2 {\n",
" background-color: #0872b1;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row4_col3 {\n",
" background-color: #ece7f2;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row4_col4 {\n",
" background-color: #023858;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row4_col5 {\n",
" background-color: #e8e4f0;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row4_col6 {\n",
" background-color: #e9e5f1;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row4_col7 {\n",
" background-color: #f8f1f8;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row5_col0 {\n",
" background-color: #dad9ea;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row5_col1 {\n",
" background-color: #cdd0e5;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row5_col2 {\n",
" background-color: #91b5d6;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row5_col3 {\n",
" background-color: #d6d6e9;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row5_col4 {\n",
" background-color: #d9d8ea;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row5_col5 {\n",
" background-color: #023858;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row5_col6 {\n",
" background-color: #b3c3de;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row5_col7 {\n",
" background-color: #fbf3f9;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row6_col0 {\n",
" background-color: #fff7fb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row6_col1 {\n",
" background-color: #fff7fb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row6_col2 {\n",
" background-color: #fff7fb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row6_col3 {\n",
" background-color: #fff7fb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row6_col4 {\n",
" background-color: #fff7fb;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row6_col5 {\n",
" background-color: #e3e0ee;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row6_col6 {\n",
" background-color: #023858;\n",
" color: #f1f1f1;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row6_col7 {\n",
" background-color: #e7e3f0;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row7_col0 {\n",
" background-color: #cacee5;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row7_col1 {\n",
" background-color: #dedcec;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row7_col2 {\n",
" background-color: #f1ebf4;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row7_col3 {\n",
" background-color: #faf3f9;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row7_col4 {\n",
" background-color: #e8e4f0;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row7_col5 {\n",
" background-color: #f7f0f7;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row7_col6 {\n",
" background-color: #b1c2de;\n",
" color: #000000;\n",
" } #T_327f8612_c888_11ea_a2ce_acde48001122row7_col7 {\n",
" background-color: #023858;\n",
" color: #f1f1f1;\n",
" }</style><table id=\"T_327f8612_c888_11ea_a2ce_acde48001122\" ><thead> <tr> <th class=\"blank level0\" ></th> <th class=\"col_heading level0 col0\" >Div_Yld</th> <th class=\"col_heading level0 col1\" >Eps</th> <th class=\"col_heading level0 col2\" >Mkt_Cap_12M_Usd</th> <th class=\"col_heading level0 col3\" >Mom_11M_Usd</th> <th class=\"col_heading level0 col4\" >Ocf</th> <th class=\"col_heading level0 col5\" >Pb</th> <th class=\"col_heading level0 col6\" >Vol1Y_Usd</th> <th class=\"col_heading level0 col7\" >R12M_Usd</th> </tr></thead><tbody>\n",
" <tr>\n",
" <th id=\"T_327f8612_c888_11ea_a2ce_acde48001122level0_row0\" class=\"row_heading level0 row0\" >Div_Yld</th>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row0_col0\" class=\"data row0 col0\" >1</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row0_col1\" class=\"data row0 col1\" >0.1784</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row0_col2\" class=\"data row0 col2\" >0.04487</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row0_col3\" class=\"data row0 col3\" >-0.06765</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row0_col4\" class=\"data row0 col4\" >0.1083</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row0_col5\" class=\"data row0 col5\" >-0.1256</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row0_col6\" class=\"data row0 col6\" >-0.4179</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row0_col7\" class=\"data row0 col7\" >-0.03717</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_327f8612_c888_11ea_a2ce_acde48001122level0_row1\" class=\"row_heading level0 row1\" >Eps</th>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row1_col0\" class=\"data row1 col0\" >0.1784</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row1_col1\" class=\"data row1 col1\" >1</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row1_col2\" class=\"data row1 col2\" >0.3289</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row1_col3\" class=\"data row1 col3\" >0.04931</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row1_col4\" class=\"data row1 col4\" >0.3228</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row1_col5\" class=\"data row1 col5\" >0.008932</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row1_col6\" class=\"data row1 col6\" >-0.3383</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row1_col7\" class=\"data row1 col7\" >-0.08585</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_327f8612_c888_11ea_a2ce_acde48001122level0_row2\" class=\"row_heading level0 row2\" >Mkt_Cap_12M_Usd</th>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row2_col0\" class=\"data row2 col0\" >0.04487</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row2_col1\" class=\"data row2 col1\" >0.3289</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row2_col2\" class=\"data row2 col2\" >1</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row2_col3\" class=\"data row2 col3\" >0.0006681</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row2_col4\" class=\"data row2 col4\" >0.6864</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row2_col5\" class=\"data row2 col5\" >0.3026</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row2_col6\" class=\"data row2 col6\" >-0.2158</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row2_col7\" class=\"data row2 col7\" >-0.09762</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_327f8612_c888_11ea_a2ce_acde48001122level0_row3\" class=\"row_heading level0 row3\" >Mom_11M_Usd</th>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row3_col0\" class=\"data row3 col0\" >-0.06765</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row3_col1\" class=\"data row3 col1\" >0.04931</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row3_col2\" class=\"data row3 col2\" >0.0006681</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row3_col3\" class=\"data row3 col3\" >1</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row3_col4\" class=\"data row3 col4\" >0.02168</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row3_col5\" class=\"data row3 col5\" >0.1274</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row3_col6\" class=\"data row3 col6\" >-0.1229</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row3_col7\" class=\"data row3 col7\" >-0.08353</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_327f8612_c888_11ea_a2ce_acde48001122level0_row4\" class=\"row_heading level0 row4\" >Ocf</th>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row4_col0\" class=\"data row4 col0\" >0.1083</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row4_col1\" class=\"data row4 col1\" >0.3228</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row4_col2\" class=\"data row4 col2\" >0.6864</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row4_col3\" class=\"data row4 col3\" >0.02168</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row4_col4\" class=\"data row4 col4\" >1</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row4_col5\" class=\"data row4 col5\" >0.03291</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row4_col6\" class=\"data row4 col6\" >-0.2204</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row4_col7\" class=\"data row4 col7\" >-0.04586</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_327f8612_c888_11ea_a2ce_acde48001122level0_row5\" class=\"row_heading level0 row5\" >Pb</th>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row5_col0\" class=\"data row5 col0\" >-0.1256</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row5_col1\" class=\"data row5 col1\" >0.008932</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row5_col2\" class=\"data row5 col2\" >0.3026</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row5_col3\" class=\"data row5 col3\" >0.1274</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row5_col4\" class=\"data row5 col4\" >0.03291</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row5_col5\" class=\"data row5 col5\" >1</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row5_col6\" class=\"data row5 col6\" >0.0596</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row5_col7\" class=\"data row5 col7\" >-0.06619</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_327f8612_c888_11ea_a2ce_acde48001122level0_row6\" class=\"row_heading level0 row6\" >Vol1Y_Usd</th>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row6_col0\" class=\"data row6 col0\" >-0.4179</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row6_col1\" class=\"data row6 col1\" >-0.3383</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row6_col2\" class=\"data row6 col2\" >-0.2158</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row6_col3\" class=\"data row6 col3\" >-0.1229</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row6_col4\" class=\"data row6 col4\" >-0.2204</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row6_col5\" class=\"data row6 col5\" >0.0596</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row6_col6\" class=\"data row6 col6\" >1</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row6_col7\" class=\"data row6 col7\" >0.06601</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_327f8612_c888_11ea_a2ce_acde48001122level0_row7\" class=\"row_heading level0 row7\" >R12M_Usd</th>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row7_col0\" class=\"data row7 col0\" >-0.03717</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row7_col1\" class=\"data row7 col1\" >-0.08585</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row7_col2\" class=\"data row7 col2\" >-0.09762</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row7_col3\" class=\"data row7 col3\" >-0.08353</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row7_col4\" class=\"data row7 col4\" >-0.04586</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row7_col5\" class=\"data row7 col5\" >-0.06619</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row7_col6\" class=\"data row7 col6\" >0.06601</td>\n",
" <td id=\"T_327f8612_c888_11ea_a2ce_acde48001122row7_col7\" class=\"data row7 col7\" >1</td>\n",
" </tr>\n",
" </tbody></table>"
],
"text/plain": [
"<pandas.io.formats.style.Styler at 0x7fe7fa008590>"
]
},
"metadata": {
"tags": []
},
"execution_count": 9
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WnclQdcWg_kL",
"colab_type": "text"
},
"source": [
"---\n",
"**Histograms**\n",
"\n",
"As we can see below, the authors of the dataset have already scaled the dataset so as to prepare for machine learning problems. It should be noted the features are all on scale of 0 to 1 and the label is of a scale not bounded by 1. Additionally, there appears to be an extreme outlier in the label, as the data appears heavily positively skewed.\n",
"\n",
"The book (MLFI) states the data has been 'uniformized'. On further reading, the authors have scaled the data with uniformization (Ch 5 Section 4). The equivalent sklearn scaling method appears to be sklearn.preprocessing.quantile_transform (https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.quantile_transform.html).\n",
"\n",
"Some features appears to remain positively skewed. Further reading of the references is required so as to determine proper methods of handling skewness with respect to this specific type of financial data."
]
},
{
"cell_type": "code",
"metadata": {
"id": "qoC4nxHig_kL",
"colab_type": "code",
"colab": {},
"outputId": "df1ae5b7-00d6-4802-e649-e28dd01c57be"
},
"source": [
"# plot a histogram for each numerical attribute to get a feel of data\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"df[eda_features_label].hist(bins=50, figsize=(14,14))\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x1008 with 9 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "SFf0_YDGg_kN",
"colab_type": "text"
},
"source": [
"---\n",
"**Scatter Matrix**\n",
"\n",
"Dividend Yield and Earnings Per Share show negative correlations - implying the lower the dividend-yield or EPS, the higher the return.\n",
"\n",
"All other features Mkt_Cap_12M_Usd, Mom_11M_Usd, Ocf, and Pb all share similar appearance or correlations as dividend yield and EPS; however these results are less intuitive than dividend yield and EPS, and explanations are saved for Phase 2 of the project.\n",
"\n",
"Vol1Y_Usd exhibits the only positive relationship. However, higher volatility means an increase in risk. Where risk is defined as losses. Risk averse investors may consider this universe of stock_ids as not desirable given the correlation of high risk with higher returns."
]
},
{
"cell_type": "code",
"metadata": {
"id": "UQ04xrGpg_kO",
"colab_type": "code",
"colab": {},
"outputId": "b0ef524e-0184-433b-d6d0-64bba90dbf92"
},
"source": [
"# gather plots in object\n",
"axes = pd.plotting.scatter_matrix(df[eda_features_label], figsize=(20, 20));\n",
"\n",
"# filter through and hide all but label's row\n",
"for i in range(len(axes)):\n",
" # condition if y variable is price\n",
" # hide the plot for (x=price, y=price)\n",
" if i == len(axes)-1:\n",
" for j in range(len(axes)):\n",
" if j == len(axes)-1:\n",
" axes[i,j].set_visible(False)\n",
" # hide all other (x=sm_data[0:-1], y=other index values)\n",
" elif i != len(axes)-1:\n",
" for j in range(len(axes)):\n",
" # hide the plot\n",
" axes[i,j].set_visible(False)"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x1440 with 64 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "15ur3a2Pg_kU",
"colab_type": "text"
},
"source": [
"---\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5L1hWFxmg_kV",
"colab_type": "text"
},
"source": [
"## Algorithm Selection"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cqTNGIPwg_kV",
"colab_type": "text"
},
"source": [
"**_Algorithm Selection_**\n",
"\n",
"Our algorithm selection will be limited to supervised learning algorithms. Additionally, our models are multivariate regressors. According to the MLFI text \"The original labels (future returns) are numerical and will be used for regression exercises, that is, when the objective is to predict a scalar real number\". Meaning, if we are to create classifiers, we must create categorical features based on buy, hold (or no position), or sell (short the stock) cardinal indicators (-1 -> short, 0 -> no position, 1 -> long [buy]). \n",
"\n",
"The book, Machine Learning for Factor Investing, covers the following supervised machine learning algorithm types in depth, devoting a chapter to each: tree based networks, neural networks, support vector machines, and bayseian methods. Python for Finance covers Decision Tree classifiers, Logistic Regression, and Gaussian Naive Bayes classification. We will use the following algorithms, where our initial focus are multivariate regression models:\n",
"\n",
"* Random Forests:\n",
" * MLFI: http://www.mlfactor.com/trees.html\n",
" * SKL: \n",
" - Regression: https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html\n",
"\n",
"* Support Vector Machines: \n",
" * MLFI: http://www.mlfactor.com/svm.html\n",
" * SKL:\n",
" - Regression: https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html\n",
"* Bayesian Methods: \n",
" * MLFI: http://www.mlfactor.com/bayes.html\n",
" * SKL: \n",
" - Regression: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.BayesianRidge.html#sklearn.linear_model.BayesianRidge\n",
"* Logistic Regression\n",
" * SKL:\n",
" - Regression: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html"
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment