Created
June 1, 2019 11:38
-
-
Save nikhildarade/f42972a8cf4d3b68b932d950d985b388 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
" <a href=\"http://cocl.us/DA0101EN_NotbookLink_Top\">\n", | |
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n", | |
" </a>\n", | |
"</div>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n", | |
"\n", | |
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Exploratory Data Analysis" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Welcome!</h3>\n", | |
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Table of content</h2>\n", | |
"\n", | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
"<ol>\n", | |
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n", | |
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n", | |
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n", | |
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n", | |
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n", | |
" <li><a href=\"#anova\">ANOVA</a></li>\n", | |
"</ol>\n", | |
" \n", | |
"Estimated Time Needed: <strong>30 min</strong>\n", | |
"</div>\n", | |
" \n", | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>What are the main characteristics which have the most impact on the car price?</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Setup</h4>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Import libraries " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" load data and store in dataframe df:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/cognitive_class_DA0101EN_objectstorage\">HERE</a> for free storage" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>symboling</th>\n", | |
" <th>normalized-losses</th>\n", | |
" <th>make</th>\n", | |
" <th>aspiration</th>\n", | |
" <th>num-of-doors</th>\n", | |
" <th>body-style</th>\n", | |
" <th>drive-wheels</th>\n", | |
" <th>engine-location</th>\n", | |
" <th>wheel-base</th>\n", | |
" <th>length</th>\n", | |
" <th>...</th>\n", | |
" <th>compression-ratio</th>\n", | |
" <th>horsepower</th>\n", | |
" <th>peak-rpm</th>\n", | |
" <th>city-mpg</th>\n", | |
" <th>highway-mpg</th>\n", | |
" <th>price</th>\n", | |
" <th>city-L/100km</th>\n", | |
" <th>horsepower-binned</th>\n", | |
" <th>diesel</th>\n", | |
" <th>gas</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>3</td>\n", | |
" <td>122</td>\n", | |
" <td>alfa-romero</td>\n", | |
" <td>std</td>\n", | |
" <td>two</td>\n", | |
" <td>convertible</td>\n", | |
" <td>rwd</td>\n", | |
" <td>front</td>\n", | |
" <td>88.6</td>\n", | |
" <td>0.811148</td>\n", | |
" <td>...</td>\n", | |
" <td>9.0</td>\n", | |
" <td>111.0</td>\n", | |
" <td>5000.0</td>\n", | |
" <td>21</td>\n", | |
" <td>27</td>\n", | |
" <td>13495.0</td>\n", | |
" <td>11.190476</td>\n", | |
" <td>Medium</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>3</td>\n", | |
" <td>122</td>\n", | |
" <td>alfa-romero</td>\n", | |
" <td>std</td>\n", | |
" <td>two</td>\n", | |
" <td>convertible</td>\n", | |
" <td>rwd</td>\n", | |
" <td>front</td>\n", | |
" <td>88.6</td>\n", | |
" <td>0.811148</td>\n", | |
" <td>...</td>\n", | |
" <td>9.0</td>\n", | |
" <td>111.0</td>\n", | |
" <td>5000.0</td>\n", | |
" <td>21</td>\n", | |
" <td>27</td>\n", | |
" <td>16500.0</td>\n", | |
" <td>11.190476</td>\n", | |
" <td>Medium</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1</td>\n", | |
" <td>122</td>\n", | |
" <td>alfa-romero</td>\n", | |
" <td>std</td>\n", | |
" <td>two</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>rwd</td>\n", | |
" <td>front</td>\n", | |
" <td>94.5</td>\n", | |
" <td>0.822681</td>\n", | |
" <td>...</td>\n", | |
" <td>9.0</td>\n", | |
" <td>154.0</td>\n", | |
" <td>5000.0</td>\n", | |
" <td>19</td>\n", | |
" <td>26</td>\n", | |
" <td>16500.0</td>\n", | |
" <td>12.368421</td>\n", | |
" <td>Medium</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>2</td>\n", | |
" <td>164</td>\n", | |
" <td>audi</td>\n", | |
" <td>std</td>\n", | |
" <td>four</td>\n", | |
" <td>sedan</td>\n", | |
" <td>fwd</td>\n", | |
" <td>front</td>\n", | |
" <td>99.8</td>\n", | |
" <td>0.848630</td>\n", | |
" <td>...</td>\n", | |
" <td>10.0</td>\n", | |
" <td>102.0</td>\n", | |
" <td>5500.0</td>\n", | |
" <td>24</td>\n", | |
" <td>30</td>\n", | |
" <td>13950.0</td>\n", | |
" <td>9.791667</td>\n", | |
" <td>Medium</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>2</td>\n", | |
" <td>164</td>\n", | |
" <td>audi</td>\n", | |
" <td>std</td>\n", | |
" <td>four</td>\n", | |
" <td>sedan</td>\n", | |
" <td>4wd</td>\n", | |
" <td>front</td>\n", | |
" <td>99.4</td>\n", | |
" <td>0.848630</td>\n", | |
" <td>...</td>\n", | |
" <td>8.0</td>\n", | |
" <td>115.0</td>\n", | |
" <td>5500.0</td>\n", | |
" <td>18</td>\n", | |
" <td>22</td>\n", | |
" <td>17450.0</td>\n", | |
" <td>13.055556</td>\n", | |
" <td>Medium</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 29 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" symboling normalized-losses make aspiration num-of-doors \\\n", | |
"0 3 122 alfa-romero std two \n", | |
"1 3 122 alfa-romero std two \n", | |
"2 1 122 alfa-romero std two \n", | |
"3 2 164 audi std four \n", | |
"4 2 164 audi std four \n", | |
"\n", | |
" body-style drive-wheels engine-location wheel-base length ... \\\n", | |
"0 convertible rwd front 88.6 0.811148 ... \n", | |
"1 convertible rwd front 88.6 0.811148 ... \n", | |
"2 hatchback rwd front 94.5 0.822681 ... \n", | |
"3 sedan fwd front 99.8 0.848630 ... \n", | |
"4 sedan 4wd front 99.4 0.848630 ... \n", | |
"\n", | |
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n", | |
"0 9.0 111.0 5000.0 21 27 13495.0 \n", | |
"1 9.0 111.0 5000.0 21 27 16500.0 \n", | |
"2 9.0 154.0 5000.0 19 26 16500.0 \n", | |
"3 10.0 102.0 5500.0 24 30 13950.0 \n", | |
"4 8.0 115.0 5500.0 18 22 17450.0 \n", | |
"\n", | |
" city-L/100km horsepower-binned diesel gas \n", | |
"0 11.190476 Medium 0 1 \n", | |
"1 11.190476 Medium 0 1 \n", | |
"2 12.368421 Medium 0 1 \n", | |
"3 9.791667 Medium 0 1 \n", | |
"4 13.055556 Medium 0 1 \n", | |
"\n", | |
"[5 rows x 29 columns]" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n", | |
"df = pd.read_csv(path)\n", | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"To install seaborn we use the pip which is the python package manager." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%%capture\n", | |
"! pip install seaborn" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"%matplotlib inline " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>How to choose the right visualization method?</h4>\n", | |
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"symboling int64\n", | |
"normalized-losses int64\n", | |
"make object\n", | |
"aspiration object\n", | |
"num-of-doors object\n", | |
"body-style object\n", | |
"drive-wheels object\n", | |
"engine-location object\n", | |
"wheel-base float64\n", | |
"length float64\n", | |
"width float64\n", | |
"height float64\n", | |
"curb-weight int64\n", | |
"engine-type object\n", | |
"num-of-cylinders object\n", | |
"engine-size int64\n", | |
"fuel-system object\n", | |
"bore float64\n", | |
"stroke float64\n", | |
"compression-ratio float64\n", | |
"horsepower float64\n", | |
"peak-rpm float64\n", | |
"city-mpg int64\n", | |
"highway-mpg int64\n", | |
"price float64\n", | |
"city-L/100km float64\n", | |
"horsepower-binned object\n", | |
"diesel int64\n", | |
"gas int64\n", | |
"dtype: object\n" | |
] | |
} | |
], | |
"source": [ | |
"# list the data types for each column\n", | |
"print(df.dtypes)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
"<h3>Question #1:</h3>\n", | |
"\n", | |
"<b>What is the data type of the column \"peak-rpm\"? </b>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dtype('float64')" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['peak-rpm'].dtype" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click <b>here</b> for the solution.\n", | |
"\n", | |
"<!-- The answer is below:\n", | |
"\n", | |
"float64\n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>symboling</th>\n", | |
" <th>normalized-losses</th>\n", | |
" <th>wheel-base</th>\n", | |
" <th>length</th>\n", | |
" <th>width</th>\n", | |
" <th>height</th>\n", | |
" <th>curb-weight</th>\n", | |
" <th>engine-size</th>\n", | |
" <th>bore</th>\n", | |
" <th>stroke</th>\n", | |
" <th>compression-ratio</th>\n", | |
" <th>horsepower</th>\n", | |
" <th>peak-rpm</th>\n", | |
" <th>city-mpg</th>\n", | |
" <th>highway-mpg</th>\n", | |
" <th>price</th>\n", | |
" <th>city-L/100km</th>\n", | |
" <th>diesel</th>\n", | |
" <th>gas</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>symboling</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.466264</td>\n", | |
" <td>-0.535987</td>\n", | |
" <td>-0.365404</td>\n", | |
" <td>-0.242423</td>\n", | |
" <td>-0.550160</td>\n", | |
" <td>-0.233118</td>\n", | |
" <td>-0.110581</td>\n", | |
" <td>-0.140019</td>\n", | |
" <td>-0.008245</td>\n", | |
" <td>-0.182196</td>\n", | |
" <td>0.075819</td>\n", | |
" <td>0.279740</td>\n", | |
" <td>-0.035527</td>\n", | |
" <td>0.036233</td>\n", | |
" <td>-0.082391</td>\n", | |
" <td>0.066171</td>\n", | |
" <td>-0.196735</td>\n", | |
" <td>0.196735</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>normalized-losses</th>\n", | |
" <td>0.466264</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.056661</td>\n", | |
" <td>0.019424</td>\n", | |
" <td>0.086802</td>\n", | |
" <td>-0.373737</td>\n", | |
" <td>0.099404</td>\n", | |
" <td>0.112360</td>\n", | |
" <td>-0.029862</td>\n", | |
" <td>0.055563</td>\n", | |
" <td>-0.114713</td>\n", | |
" <td>0.217299</td>\n", | |
" <td>0.239543</td>\n", | |
" <td>-0.225016</td>\n", | |
" <td>-0.181877</td>\n", | |
" <td>0.133999</td>\n", | |
" <td>0.238567</td>\n", | |
" <td>-0.101546</td>\n", | |
" <td>0.101546</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wheel-base</th>\n", | |
" <td>-0.535987</td>\n", | |
" <td>-0.056661</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.876024</td>\n", | |
" <td>0.814507</td>\n", | |
" <td>0.590742</td>\n", | |
" <td>0.782097</td>\n", | |
" <td>0.572027</td>\n", | |
" <td>0.493244</td>\n", | |
" <td>0.158502</td>\n", | |
" <td>0.250313</td>\n", | |
" <td>0.371147</td>\n", | |
" <td>-0.360305</td>\n", | |
" <td>-0.470606</td>\n", | |
" <td>-0.543304</td>\n", | |
" <td>0.584642</td>\n", | |
" <td>0.476153</td>\n", | |
" <td>0.307237</td>\n", | |
" <td>-0.307237</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>length</th>\n", | |
" <td>-0.365404</td>\n", | |
" <td>0.019424</td>\n", | |
" <td>0.876024</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.857170</td>\n", | |
" <td>0.492063</td>\n", | |
" <td>0.880665</td>\n", | |
" <td>0.685025</td>\n", | |
" <td>0.608971</td>\n", | |
" <td>0.124139</td>\n", | |
" <td>0.159733</td>\n", | |
" <td>0.579821</td>\n", | |
" <td>-0.285970</td>\n", | |
" <td>-0.665192</td>\n", | |
" <td>-0.698142</td>\n", | |
" <td>0.690628</td>\n", | |
" <td>0.657373</td>\n", | |
" <td>0.211187</td>\n", | |
" <td>-0.211187</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>width</th>\n", | |
" <td>-0.242423</td>\n", | |
" <td>0.086802</td>\n", | |
" <td>0.814507</td>\n", | |
" <td>0.857170</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.306002</td>\n", | |
" <td>0.866201</td>\n", | |
" <td>0.729436</td>\n", | |
" <td>0.544885</td>\n", | |
" <td>0.188829</td>\n", | |
" <td>0.189867</td>\n", | |
" <td>0.615077</td>\n", | |
" <td>-0.245800</td>\n", | |
" <td>-0.633531</td>\n", | |
" <td>-0.680635</td>\n", | |
" <td>0.751265</td>\n", | |
" <td>0.673363</td>\n", | |
" <td>0.244356</td>\n", | |
" <td>-0.244356</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>height</th>\n", | |
" <td>-0.550160</td>\n", | |
" <td>-0.373737</td>\n", | |
" <td>0.590742</td>\n", | |
" <td>0.492063</td>\n", | |
" <td>0.306002</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.307581</td>\n", | |
" <td>0.074694</td>\n", | |
" <td>0.180449</td>\n", | |
" <td>-0.062704</td>\n", | |
" <td>0.259737</td>\n", | |
" <td>-0.087027</td>\n", | |
" <td>-0.309974</td>\n", | |
" <td>-0.049800</td>\n", | |
" <td>-0.104812</td>\n", | |
" <td>0.135486</td>\n", | |
" <td>0.003811</td>\n", | |
" <td>0.281578</td>\n", | |
" <td>-0.281578</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>curb-weight</th>\n", | |
" <td>-0.233118</td>\n", | |
" <td>0.099404</td>\n", | |
" <td>0.782097</td>\n", | |
" <td>0.880665</td>\n", | |
" <td>0.866201</td>\n", | |
" <td>0.307581</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.849072</td>\n", | |
" <td>0.644060</td>\n", | |
" <td>0.167562</td>\n", | |
" <td>0.156433</td>\n", | |
" <td>0.757976</td>\n", | |
" <td>-0.279361</td>\n", | |
" <td>-0.749543</td>\n", | |
" <td>-0.794889</td>\n", | |
" <td>0.834415</td>\n", | |
" <td>0.785353</td>\n", | |
" <td>0.221046</td>\n", | |
" <td>-0.221046</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>engine-size</th>\n", | |
" <td>-0.110581</td>\n", | |
" <td>0.112360</td>\n", | |
" <td>0.572027</td>\n", | |
" <td>0.685025</td>\n", | |
" <td>0.729436</td>\n", | |
" <td>0.074694</td>\n", | |
" <td>0.849072</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.572609</td>\n", | |
" <td>0.209523</td>\n", | |
" <td>0.028889</td>\n", | |
" <td>0.822676</td>\n", | |
" <td>-0.256733</td>\n", | |
" <td>-0.650546</td>\n", | |
" <td>-0.679571</td>\n", | |
" <td>0.872335</td>\n", | |
" <td>0.745059</td>\n", | |
" <td>0.070779</td>\n", | |
" <td>-0.070779</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>bore</th>\n", | |
" <td>-0.140019</td>\n", | |
" <td>-0.029862</td>\n", | |
" <td>0.493244</td>\n", | |
" <td>0.608971</td>\n", | |
" <td>0.544885</td>\n", | |
" <td>0.180449</td>\n", | |
" <td>0.644060</td>\n", | |
" <td>0.572609</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.055390</td>\n", | |
" <td>0.001263</td>\n", | |
" <td>0.566936</td>\n", | |
" <td>-0.267392</td>\n", | |
" <td>-0.582027</td>\n", | |
" <td>-0.591309</td>\n", | |
" <td>0.543155</td>\n", | |
" <td>0.554610</td>\n", | |
" <td>0.054458</td>\n", | |
" <td>-0.054458</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>stroke</th>\n", | |
" <td>-0.008245</td>\n", | |
" <td>0.055563</td>\n", | |
" <td>0.158502</td>\n", | |
" <td>0.124139</td>\n", | |
" <td>0.188829</td>\n", | |
" <td>-0.062704</td>\n", | |
" <td>0.167562</td>\n", | |
" <td>0.209523</td>\n", | |
" <td>-0.055390</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.187923</td>\n", | |
" <td>0.098462</td>\n", | |
" <td>-0.065713</td>\n", | |
" <td>-0.034696</td>\n", | |
" <td>-0.035201</td>\n", | |
" <td>0.082310</td>\n", | |
" <td>0.037300</td>\n", | |
" <td>0.241303</td>\n", | |
" <td>-0.241303</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>compression-ratio</th>\n", | |
" <td>-0.182196</td>\n", | |
" <td>-0.114713</td>\n", | |
" <td>0.250313</td>\n", | |
" <td>0.159733</td>\n", | |
" <td>0.189867</td>\n", | |
" <td>0.259737</td>\n", | |
" <td>0.156433</td>\n", | |
" <td>0.028889</td>\n", | |
" <td>0.001263</td>\n", | |
" <td>0.187923</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.214514</td>\n", | |
" <td>-0.435780</td>\n", | |
" <td>0.331425</td>\n", | |
" <td>0.268465</td>\n", | |
" <td>0.071107</td>\n", | |
" <td>-0.299372</td>\n", | |
" <td>0.985231</td>\n", | |
" <td>-0.985231</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>horsepower</th>\n", | |
" <td>0.075819</td>\n", | |
" <td>0.217299</td>\n", | |
" <td>0.371147</td>\n", | |
" <td>0.579821</td>\n", | |
" <td>0.615077</td>\n", | |
" <td>-0.087027</td>\n", | |
" <td>0.757976</td>\n", | |
" <td>0.822676</td>\n", | |
" <td>0.566936</td>\n", | |
" <td>0.098462</td>\n", | |
" <td>-0.214514</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.107885</td>\n", | |
" <td>-0.822214</td>\n", | |
" <td>-0.804575</td>\n", | |
" <td>0.809575</td>\n", | |
" <td>0.889488</td>\n", | |
" <td>-0.169053</td>\n", | |
" <td>0.169053</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>peak-rpm</th>\n", | |
" <td>0.279740</td>\n", | |
" <td>0.239543</td>\n", | |
" <td>-0.360305</td>\n", | |
" <td>-0.285970</td>\n", | |
" <td>-0.245800</td>\n", | |
" <td>-0.309974</td>\n", | |
" <td>-0.279361</td>\n", | |
" <td>-0.256733</td>\n", | |
" <td>-0.267392</td>\n", | |
" <td>-0.065713</td>\n", | |
" <td>-0.435780</td>\n", | |
" <td>0.107885</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.115413</td>\n", | |
" <td>-0.058598</td>\n", | |
" <td>-0.101616</td>\n", | |
" <td>0.115830</td>\n", | |
" <td>-0.475812</td>\n", | |
" <td>0.475812</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>city-mpg</th>\n", | |
" <td>-0.035527</td>\n", | |
" <td>-0.225016</td>\n", | |
" <td>-0.470606</td>\n", | |
" <td>-0.665192</td>\n", | |
" <td>-0.633531</td>\n", | |
" <td>-0.049800</td>\n", | |
" <td>-0.749543</td>\n", | |
" <td>-0.650546</td>\n", | |
" <td>-0.582027</td>\n", | |
" <td>-0.034696</td>\n", | |
" <td>0.331425</td>\n", | |
" <td>-0.822214</td>\n", | |
" <td>-0.115413</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.972044</td>\n", | |
" <td>-0.686571</td>\n", | |
" <td>-0.949713</td>\n", | |
" <td>0.265676</td>\n", | |
" <td>-0.265676</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>highway-mpg</th>\n", | |
" <td>0.036233</td>\n", | |
" <td>-0.181877</td>\n", | |
" <td>-0.543304</td>\n", | |
" <td>-0.698142</td>\n", | |
" <td>-0.680635</td>\n", | |
" <td>-0.104812</td>\n", | |
" <td>-0.794889</td>\n", | |
" <td>-0.679571</td>\n", | |
" <td>-0.591309</td>\n", | |
" <td>-0.035201</td>\n", | |
" <td>0.268465</td>\n", | |
" <td>-0.804575</td>\n", | |
" <td>-0.058598</td>\n", | |
" <td>0.972044</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.704692</td>\n", | |
" <td>-0.930028</td>\n", | |
" <td>0.198690</td>\n", | |
" <td>-0.198690</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>price</th>\n", | |
" <td>-0.082391</td>\n", | |
" <td>0.133999</td>\n", | |
" <td>0.584642</td>\n", | |
" <td>0.690628</td>\n", | |
" <td>0.751265</td>\n", | |
" <td>0.135486</td>\n", | |
" <td>0.834415</td>\n", | |
" <td>0.872335</td>\n", | |
" <td>0.543155</td>\n", | |
" <td>0.082310</td>\n", | |
" <td>0.071107</td>\n", | |
" <td>0.809575</td>\n", | |
" <td>-0.101616</td>\n", | |
" <td>-0.686571</td>\n", | |
" <td>-0.704692</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.789898</td>\n", | |
" <td>0.110326</td>\n", | |
" <td>-0.110326</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>city-L/100km</th>\n", | |
" <td>0.066171</td>\n", | |
" <td>0.238567</td>\n", | |
" <td>0.476153</td>\n", | |
" <td>0.657373</td>\n", | |
" <td>0.673363</td>\n", | |
" <td>0.003811</td>\n", | |
" <td>0.785353</td>\n", | |
" <td>0.745059</td>\n", | |
" <td>0.554610</td>\n", | |
" <td>0.037300</td>\n", | |
" <td>-0.299372</td>\n", | |
" <td>0.889488</td>\n", | |
" <td>0.115830</td>\n", | |
" <td>-0.949713</td>\n", | |
" <td>-0.930028</td>\n", | |
" <td>0.789898</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.241282</td>\n", | |
" <td>0.241282</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>diesel</th>\n", | |
" <td>-0.196735</td>\n", | |
" <td>-0.101546</td>\n", | |
" <td>0.307237</td>\n", | |
" <td>0.211187</td>\n", | |
" <td>0.244356</td>\n", | |
" <td>0.281578</td>\n", | |
" <td>0.221046</td>\n", | |
" <td>0.070779</td>\n", | |
" <td>0.054458</td>\n", | |
" <td>0.241303</td>\n", | |
" <td>0.985231</td>\n", | |
" <td>-0.169053</td>\n", | |
" <td>-0.475812</td>\n", | |
" <td>0.265676</td>\n", | |
" <td>0.198690</td>\n", | |
" <td>0.110326</td>\n", | |
" <td>-0.241282</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-1.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>gas</th>\n", | |
" <td>0.196735</td>\n", | |
" <td>0.101546</td>\n", | |
" <td>-0.307237</td>\n", | |
" <td>-0.211187</td>\n", | |
" <td>-0.244356</td>\n", | |
" <td>-0.281578</td>\n", | |
" <td>-0.221046</td>\n", | |
" <td>-0.070779</td>\n", | |
" <td>-0.054458</td>\n", | |
" <td>-0.241303</td>\n", | |
" <td>-0.985231</td>\n", | |
" <td>0.169053</td>\n", | |
" <td>0.475812</td>\n", | |
" <td>-0.265676</td>\n", | |
" <td>-0.198690</td>\n", | |
" <td>-0.110326</td>\n", | |
" <td>0.241282</td>\n", | |
" <td>-1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" symboling normalized-losses wheel-base length \\\n", | |
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n", | |
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n", | |
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n", | |
"length -0.365404 0.019424 0.876024 1.000000 \n", | |
"width -0.242423 0.086802 0.814507 0.857170 \n", | |
"height -0.550160 -0.373737 0.590742 0.492063 \n", | |
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n", | |
"engine-size -0.110581 0.112360 0.572027 0.685025 \n", | |
"bore -0.140019 -0.029862 0.493244 0.608971 \n", | |
"stroke -0.008245 0.055563 0.158502 0.124139 \n", | |
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n", | |
"horsepower 0.075819 0.217299 0.371147 0.579821 \n", | |
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n", | |
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n", | |
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n", | |
"price -0.082391 0.133999 0.584642 0.690628 \n", | |
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n", | |
"diesel -0.196735 -0.101546 0.307237 0.211187 \n", | |
"gas 0.196735 0.101546 -0.307237 -0.211187 \n", | |
"\n", | |
" width height curb-weight engine-size bore \\\n", | |
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n", | |
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n", | |
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n", | |
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n", | |
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n", | |
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n", | |
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n", | |
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n", | |
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n", | |
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n", | |
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n", | |
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n", | |
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n", | |
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n", | |
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n", | |
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n", | |
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n", | |
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n", | |
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n", | |
"\n", | |
" stroke compression-ratio horsepower peak-rpm \\\n", | |
"symboling -0.008245 -0.182196 0.075819 0.279740 \n", | |
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n", | |
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n", | |
"length 0.124139 0.159733 0.579821 -0.285970 \n", | |
"width 0.188829 0.189867 0.615077 -0.245800 \n", | |
"height -0.062704 0.259737 -0.087027 -0.309974 \n", | |
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n", | |
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n", | |
"bore -0.055390 0.001263 0.566936 -0.267392 \n", | |
"stroke 1.000000 0.187923 0.098462 -0.065713 \n", | |
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n", | |
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n", | |
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n", | |
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n", | |
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n", | |
"price 0.082310 0.071107 0.809575 -0.101616 \n", | |
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n", | |
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n", | |
"gas -0.241303 -0.985231 0.169053 0.475812 \n", | |
"\n", | |
" city-mpg highway-mpg price city-L/100km diesel \\\n", | |
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n", | |
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n", | |
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n", | |
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n", | |
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n", | |
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n", | |
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n", | |
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n", | |
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n", | |
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n", | |
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n", | |
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n", | |
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n", | |
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n", | |
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n", | |
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n", | |
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n", | |
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n", | |
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n", | |
"\n", | |
" gas \n", | |
"symboling 0.196735 \n", | |
"normalized-losses 0.101546 \n", | |
"wheel-base -0.307237 \n", | |
"length -0.211187 \n", | |
"width -0.244356 \n", | |
"height -0.281578 \n", | |
"curb-weight -0.221046 \n", | |
"engine-size -0.070779 \n", | |
"bore -0.054458 \n", | |
"stroke -0.241303 \n", | |
"compression-ratio -0.985231 \n", | |
"horsepower 0.169053 \n", | |
"peak-rpm 0.475812 \n", | |
"city-mpg -0.265676 \n", | |
"highway-mpg -0.198690 \n", | |
"price -0.110326 \n", | |
"city-L/100km 0.241282 \n", | |
"diesel -1.000000 \n", | |
"gas 1.000000 " | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
"<h1> Question #2: </h1>\n", | |
"\n", | |
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n", | |
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": 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>bore</th>\n", | |
" <th>stroke</th>\n", | |
" <th>compression-ratio</th>\n", | |
" <th>horsepower</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>bore</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.055390</td>\n", | |
" <td>0.001263</td>\n", | |
" <td>0.566936</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>stroke</th>\n", | |
" <td>-0.055390</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.187923</td>\n", | |
" <td>0.098462</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>compression-ratio</th>\n", | |
" <td>0.001263</td>\n", | |
" <td>0.187923</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.214514</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>horsepower</th>\n", | |
" <td>0.566936</td>\n", | |
" <td>0.098462</td>\n", | |
" <td>-0.214514</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" bore stroke compression-ratio horsepower\n", | |
"bore 1.000000 -0.055390 0.001263 0.566936\n", | |
"stroke -0.055390 1.000000 0.187923 0.098462\n", | |
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n", | |
"horsepower 0.566936 0.098462 -0.214514 1.000000" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"cor_cols=df[['bore','stroke','compression-ratio','horsepower']]\n", | |
"cor_cols.corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click <b>here</b> for the solution.\n", | |
"\n", | |
"<!-- The answer is below:\n", | |
"\n", | |
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Continuous numerical variables:</h2> \n", | |
"\n", | |
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n", | |
"\n", | |
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's see several examples of different linear relationships:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Positive linear relationship</h4>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's find the scatterplot of \"engine-size\" and \"price\" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n", | |
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"(0, 56530.07684213632)" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEKCAYAAADaa8itAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8XNWZ4P3fU5tU2hdbtmzLlmQMBsIubBZjOwkhQNKQBQbIAiHsSd6k3570m2QmS7+kezrp6UkC3QnYLAmQJoSQTvBkQgibLSA2XggGDAbb8iJ5k7WrVKr9zB/3Vrkkl6QqqUrr8+UjSjp169a9qnI9uuc55zlijEEppZTKBsdEH4BSSqnpQ4OKUkqprNGgopRSKms0qCillMoaDSpKKaWyRoOKUkqprNGgopRSKms0qCillMoaDSpKKaWyxjXRBzDeZs2aZWprayf6MJRSasrYtm1bmzFmdjrbzrigUltby9atWyf6MJRSasoQkf3pbqvdX0oppbJGg4pSSqms0aCilFIqazSoKKWUyhoNKkoppbJGg4pSSqms0aCilFIqazSoKKWUyhoNKkoppbJGg4pSSqkhdfvDGW0/48q0KKWUGlkwEqXNFyIYjmb0OA0qSimlEowxdPrDdPeHMcZk/HgNKkoppQDoD0Vp8wUJR2Oj3ocGFaWUmuGiMUN7XxBfIDLmfWlQUUqpGcwXjNDuCxKNZd7VlYoGFaWUmoEi0RhtvhD+0NivTpJpUFFKqRmm2x+m0x8iNopE/Eg0qCil1Awx2mHCmdCgopRS09xYhwlnQoOKUkpNY9kYJpyJnJZpEZF9IvKWiLwhIlvttgoReU5Edtm35Xa7iMi9IrJbRN4UkXOT9nOTvf0uEbkpqf08e/+77cdKLs9HKaWmimjMcKw3yOHu/nELKDA+tb8+aIw52xjTYP/8TeAFY8wS4AX7Z4ArgCX21+3AfWAFIeB7wHJgGfC9eCCyt7k96XGX5/50lFJqcvMFI7R0+ukNZFa3KxsmoqDk1cAj9vePAJ9Ian/UWDYBZSJSDXwUeM4Y02GM6QSeAy637ysxxmw0Vifho0n7UkqpGScSjXGkO0BrTyBr804yleugYoA/i8g2EbndbptjjDkMYN9W2e3zgeakx7bYbcO1t6RoP4GI3C4iW0Vk67Fjx8Z4SkopNfl094dp6ezP+ryTTOU6UX+xMeaQiFQBz4nIzmG2TZUPMaNoP7HRmLXAWoCGhoaJCd9KKZUD4zFMOBM5vVIxxhyyb1uB32HlRI7aXVfYt6325i1ATdLDFwCHRmhfkKJdKaWmPWMMHX0hDnUFJk1AgRwGFREpFJHi+PfAZcDbwDogPoLrJuBp+/t1wI32KLALgG67e+xZ4DIRKbcT9JcBz9r39YrIBfaorxuT9qWUUtNWfyhKS2c/Xf5QzuedZCqX3V9zgN/Zo3xdwOPGmD+JyBbgSRG5BTgAXGtv/0fgSmA34AduBjDGdIjI94Et9nZ3G2M67O/vAn4BeIFn7C+llJqWsllNOF3vHenNaPucBRVjTBNwVor2duDDKdoN8OUh9vUw8HCK9q3AB8Z8sEopNcllu5rwSI72BHjolb08/27ryBsn0Rn1Sik1iYWjMdpzUE14KP5QhF9tbuY321oIRTKfNKlBRSmlJqluf5iOccqbRGOGP751mF/8ZR+dfmvSZGWhhy9eXMtXfpj+fjSoKKXUJBMIW/W6RnOlkCljDJv3dbBmQxP72v0A5LkcXNdQw3Xn1+D1ODPanwYVpZSaJGIxQ6c/RHf/+JRXaTrm474NTWzb3wlYk/8uO30OX7y4jtnFeaPapwYVpZSaBPyhCG29ISKx3F+ddPSFePjVvfzp7SPE8/7nLCzjzpX1LJlTPKZ9a1BRSqkJFInG6OgL4QvmPhEfCEf5zdYWfrXlAIGwFbwWVhRwx8p6LqivIBuF3jWoKKXUBOkJhOnw5WZZ32QxY3j+naM89Mo+jvmCAJR63dx04SI+fmY1Lmf25sFrUFFKqXEWisRo8wUJjEN5lTeau7hv/R52tfoAcDuFT5+7gM8sX0hRXvZDgAYVpZQaJ+O5rG9zh5+1jU28uqc90fbBU2Zz6yV1VJd6c/a8GlSUUmocBMJRjvUOXNZ3c1MHT2xp5nBPP9UlXq4/v4Zl9RVjep5uf5hHN+1n3fZDidn3p1WX8KXVizltXsmY9p0ODSpKKZVD0ZhVTXjwKoybmzq458VduBxCSb6L9r4g97y4i6+xZFSBJRSJ8bu/HuSXr+2nL2h1q1WX5nPbJfWsOnlWVpLw6dCgopRSOTJcva4ntjTjcghetzW50Ot20h+O8sSW5oyCijGGDe8f44GX93K4OwBAYZ6Tzy1fxCfPmY/HNb4L/GpQUUqpLEunXtfhnn5K8gd+BOe7HRzp6U/7ed451MPP1u/hncM9ADgdwlVnzePGCxZRWuAe3cGPkQYVpZTKEmMMPf2RtOp1VZd4ae8LJq5UAALhGHNLRk6iH+7u58GX9/LSe8eXR794cSW3raxnYUXB6E8gCzSoKKVUFmRar+v682u458Vd9Iej5LsdBMIxIjHD9efXDPkYXzDC468d4LevtxCOWkFrSVURd61ezNk1ZVk5j7HSoKKUUmMw2npdy+or+BpLeGJLM0d6+pk7zOivSDTGH948zCMb9yeeZ1aRh1svqefSU6tw5DAJ785wYqQGFaWUGqWx1utaVl8xbFLeGMPGpnbWbGiiudPKteS7HdywbCHXnreAfHdmFYQz4XY6KC1wU5zhBEkNKkoplaHxqNe1u9XHfRv28NcDXQA4BC7/wFxuvqiWyqLRVRBOR3IwGc0wZA0qSimVgVzX6zrWG+ThV/fy5x1HiT/DeYvKuXNVPYtnF+XkOWHswSROg4pSSqUh1/W6+sNRfr2lmSe3NBOwk/2LKgu4c1U9y2qzU0E4FbfTQVmBm6IxBpM4DSpKKTUMYwxd/jBdOarXFY0Z/rzjCA+/uo/2vhAA5QVuvnBRLVeeUY3TMTWCSZwGFaWUGkKqel3ZtG1/J/dv2MOeY30AeFwOrj1vATcsq6HAk5uP53gwKc7PzeRIDSpKKTXIUPW6smVfex9rNjTx2t6ORNulp1Zx64o6qkryc/KcuQ4mcRpUlFIqyXD1usaq0x/ikb/s5w9vHkos43vG/FLuWl3P0rm5qSA8XsEkToOKUkqRXr2u0QpFYjy1rYXHNx/AH7IS/fPLvNy+sp4VJ1XmJAk/3sEkToOKUtPE+p2trGlsornTT025te746qVVE31YU0K3P0ynP/vDhGPG8NLOVh54eS+tvdYyvsX5Lj5/wSKuPntexrPV0zFRwSROg4pS08D6na18d90O3E6hzOumtTfAd9ft4G7QwDKMYCRKmy9EMAfDhN9q6eZnG/bw3pFeAFwO4RPnzONzyxdR4k39gT+WRbvcTgflhZ6cLBGcCQ0qSk0DaxqbcDslMWKowOPCH4qwprFJg0oKuVzW92BnP2tfbuLlXW2JtpVLZnHbJfXMLx+6AvFoF+2aLMEkbnIchVJqTJo7/ZQN+uvX63bS0umfoCOavHI1TLg3EOaxTfv5/V8PEbGz8EvnFnPXqsWcsaB0xMdnumjXZAsmcTk/GhFxAluBg8aYj4tIHfAEUAG8DnzeGBMSkTzgUeA8oB24zhizz97Ht4BbgCjwVWPMs3b75cA9gBN40Bjzg1yfj1KTUU15Aa29gQFzG/rDURaUT+zaGpNJLGZoz8Ew4XA0xrrth3hs4356AlaSv6o4j9suqeeDS2enXUE43UW7JmswiRuPdSa/Bryb9PMPgR8bY5YAnVjBAvu20xhzEvBjeztE5DTgeuB04HLgZyLitIPVT4ErgNOAG+xtlZpx7lhZTzhq8IciGGPdhqOGO1bWT/ShTQp9wQgtnf1ZDSjGGF7Z1cYXf7GVn760h55AhAKPk1tX1PHIzefz4QxL0leXeAmEB149JS/a5XY6qCrJp6aiYNIGFMhxUBGRBcDHgAftnwX4EPCUvckjwCfs76+2f8a+/8P29lcDTxhjgsaYvcBuYJn9tdsY02SMCWFd/Vydy/NRarJavbSKu686narifLr7w1QV53P3VafP+HxKJBrjaE+Aoz2BUZenT+W9I738v09u57vrdnCwqx+HwFVnzeOxW5bxmeULyRtFSfrrz68hEjP0h6MYrNtIzPDZ5QunRDCJy/UR/gT4/4Bi++dKoMsYEx8I3gLMt7+fDzQDGGMiItJtbz8f2JS0z+THNA9qX57tE1Bqqli9tGrGB5Fkuagm3NoT4MFX9vL8u62JtuV1Fdy5qp5FlYVj2vfgRbvmlXq5bWU9V5xRPdbDHlc5Cyoi8nGg1RizTURWx5tTbGpGuG+o9lRXWSnfPSJyO3A7wMKFC4c5aqXUVJeLasL+UIRfbW7mN9taEssF188u5K5VizlvUXnWnmdZfQUrTp5FWcHkzZmMJJdHfTFwlYhcCeQDJVhXLmUi4rKvVhYAh+ztW4AaoEVEXEAp0JHUHpf8mKHaBzDGrAXWAjQ0NORmEQSl1IQyxtDdH6bTn71hwtGY4Y9vHeYXf9lHp9/Kx1QUevjixbV89PS5Wa0g7HE5KC/wUDhFg0lczo7eGPMt4FsA9pXK140xnxWR3wDXYOVAbgKeth+yzv55o33/i8YYIyLrgMdF5EfAPGAJsBnrCmaJPZrsIFYy/zO5Oh+l1OQVCEdp8wUTVxHZsHlvB/dv2MO+dmtYdp7LwXUNNVx3fg1eT/aW8Z0uwSRuIs7iG8ATIvKPwF+Bh+z2h4DHRGQ31hXK9QDGmB0i8iTwDhABvmyMiQKIyFeAZ7GGFD9sjNkxrmeilJpQxljVhLv7szeqq+mYj/s3NLF1fydg/fV62elz+OLFdcwuzt4yvtMtmMRJLhadmcwaGhrM1q1bJ/owlFJj1B+yrk6yNYmxoy/Ez1/dxzNvH05UED5nYRl3rVrMSVXZW8Z3KgYTEdlmjGlIZ9upc1ZKKYWV52jvC+ILZKeacCAc5TfbWnhiczP9dnK/ptzLHavqubA+exWEp2IwGY3pfXZKqWklm2udxIzh+XeO8tAr+zjmsyoIl3rd3HThIj5+ZjWuLFUQninBJG5mnKVSakqLRGO0ZXGtkzeau7hv/R52tfoAcDuFT5+7gM8sX5i1obwzLZjEzayzVWqS0rVQhtbdH6azLzuTGJs7/KxtbOLVPe2Jtg+eMpvbLqlnbml2lvHNczspL3DnbI35yW5mnrVSk0i21kKZboEpFIlxzBfMylon3f4wj27az7rthxJdZ6dVl/Cl1Ys5bV52lvGd6cEkbmafvVKTQDbWQplOi3QZY+jyh+nKwlonoUiM3/31IL98bT99QSs4VZfmc9sl9aw6eVZWkvAaTAbS34JSEywba6FMl0W6srXWiTGGxl1trG1s4nB3AIDCPCefW76IT54zH49r7El4DSap6W9DqQmWjbVQpvoiXbGYocMfoicLkxjfOdTDfRv2sONQDwBOh3DVWfO48YJFlBaMfd32qRZMxrtbdGr8VpSaxu5YWc931+3AH4okVvvLdC2UqbxIlz8Uoa03NObS9Ee6AzzwchMvvXcs0Xbx4kpuX1lPTcXYfw9TLZjAxHSLTp3fjlLT1OqlVdyN1YXV0ulnwSj+msxGYBpv0Zih3RfEF0xvmPDmpg6e2NLM4Z5+qku8XH9+DcvqK/AFIzz+2gF++3oL4aiVg1lSVcRdqxdzdk3ZmI9zKgaTuInoFp16vyWlpqGxroWSjcA0nnoDYTr6QmlPYtzc1ME9L+7C5RBK8l209wX5yQvvs7ypkvXvH0vU/ppV5OHWS+q5NMNVF1OZysEkbiK6Rafub0spNcB4L9I1mr76cNRa66Q/lNkw4Se2NONyCF63E2MM0ZihzRfi6e3Wahf5bgc3LFvItectIH8Uqy4mmw7BJG4iukWn/m9NKTXuMu2rH+taJ4d7+inJd1mjw3yhRI0ugCvPmMvNF9VSWTS2CsLTKZjETUS36PT57Smlxk0mffXZWOuksjCPfe19+JOucPJcDmorC/n6ZaeMer8wPYNJ3ER0i06/36JSKueaO/04xVp7JBSN4XE6mFXkGdBXn41hwv2hKL/e0syu1t5EEt7jFEq8btxOBzdfVDvqfU/nYJJsvLtFp/dvU6kpYqqVWCnOc7Gr1YfTITgdQiRmONgVYIm97khfMEK7b/TDhKMxw593HOHhV/fR3hcCoCjPRZnXTTgapbq0IDH6K1P5biflBZ6srt6ojtOgotQEm4olVhJ5kXh6xL6NxWIc7QnQl+Yw4VS27e/k/g172HOsD7Cq/V573gKuP79mTBV/NZiMDw0qSk2wqVhixReKMr8snzZfKNH9VVXgoTsQGXVA2dfex9rGJjY1dSTaLj21iltW1DGnZPQVhDWYjC8NKkpNsKlYYiU+VLV+dhExY4hEDf5QhLmj+PDv9If4xV/28X/ePL6M7xnzS/nS6sWcMrd41Mfo9Tgp82owGW8aVJSaYFOxxModK+v5ztNvE42FcTuFQDhGJGa4/vyatPcRisR4alsLj28+kBjVNb/My20r67jkpNFXEPZ6rCuTsc5XUaOjQUWpCTYVS6xcsLiSr35oCf/x2gGO9PQzN6lsykhixvDSzlYeeHkvrb3WMr7F+S5uvHARV501D/col/HVYDI5aFBRaoKtXlrFNS1dPPjKXvpCUQo9Tm5dUTcp8ynRmKGjL0RvIMx5teWcV1ue0ePfPtjNz9bvYeeRXgBcDuET58zjc8sXUeIdXQVhDSaTiwYVpSbY+p2tPPX6QWYX57HQvlJ56vWDnLmgbFIFFl8wQrsvmHa9rmQHu/p5oLGJxl1tibaVS2Zx2yX1zC/3prWPwQUlP3/hQq48Y57mTCYZDSpKTbDJPvorHI3R7gvhD2U+qqs3EOaXmw7wu78eJGIHo1PmFnPXqnrOXJB+BeHkgpKlXjfdgRD3vLCbysK8SfE7UsdpUFEqyzKdyDiZR391+8N0+kPEMqzXFY7GWLf9EI9t3E9PwApGVcV53HZJPR9cOjvjCsJPbGnG4xSK8tw4HEKeyzmpAq86ToOKUlk0momMk3H0VzASpc0XIhjOrJqwMYZXdreztrGJg139ABR4nHxm2UI+fe588kaR98h3O2n1Bago8AwYETZZAq8aSIOKUlk0mq6syTT6yxgrEd89inpd7x3p5b4Ne3izpRsAh8DHzqzmCxfVUl7gyXh/yZMWF1UUTrrAq1LToKJUFo2mKytblWTHWj/MH7LqdYWjmdXrOtoT4KFX9vL8u62JtuV1Fdyxqp7aysKM9gWpZ8BPpsCrhqdBRaksGm1X1lgryY6lflimy/rG+UMRfrW5md9sa0mUta+fVcidq+ppqM280GOe20nFEOVUptrKljOZBhWlsmii/qIe7QiynkCYzgyW9QUrCD3z9mF+/uo+Ov1WN1lFoYcvXlzLR0+fi9ORWRI+3RL0413CXY1O2kFFRBYBS4wxz4uIF3AZY3qH2T4faATy7Od5yhjzPRGpA54AKoDXgc8bY0Iikgc8CpwHtAPXGWP22fv6FnALEAW+aox51m6/HLgHcAIPGmN+kNHZK5VlE/UXdabdbqNd1nfLvg7uW7+Hfe3WfvNcDq5rqOG682syni8yU9YzmWnSejVF5DbgdqxAsBhYANwPfHiYhwWBDxljfCLiBl4RkWeAvwN+bIx5QkTuxwoW99m3ncaYk0TkeuCHwHUichpwPXA6MA94XkROtp/jp8BHgBZgi4isM8a8k8H5K5V1E/EXdSbdbt3+MB3+UEbL+jYd83H/hia27u8EQIDLTp/DFy+uY3ZxZsv4ajCZ3tJ9Vb8MLANeAzDG7BKRYf/VGOsd67N/dNtfBvgQ8Bm7/RHgH7CCytX29wBPAf8u1vjBq4EnjDFBYK+I7LaPBWC3MaYJQESesLfVoKJmnHS63UYzTLijL8TPX93HM28fryB8dk0Zd62qZ8mczCoIe1wOKgo9GkymuXRf3aDdRQWAiLg4vjzPkETECWwDTsK6qtgDdBlj4hnBFmC+/f18oBnAGBMRkW6g0m7flLTb5Mc0D2pfPsRx3I51pcXChQtHOmylppzhut2MMXT6w3T3h9O+OgmEo/xmWwu/2nyAQNhKwteUe7ljVT0X1ldmVEHY43JQXuAZ0wJbaupI91XeICL/DfCKyEeALwH/e6QHGWOiwNkiUgb8Djg11Wb2bap3qRmmPVUp05T/Yowxa4G1AA0NDZkXLlJqCkjV7RYIRznWG0x7mHDMGJ5/5ygPvrKXNp+1jG9JvoubLqrlb86sxpVBBWENJjNTuq/2N7FyHm8BdwB/BB5M90mMMV0ish64ACgTEZd9tbIAOGRv1gLUAC32lVAp0JHUHpf8mKHalZrRYjFDhz9ETwaTGN9o7uK+9XvY1Wr1WrudwqfOmc9nly+iKD/9wKDBZGZL91X3Ag8bYx6ARLeWFxhyRpeIzAbCdkDxApdiJd9fAq7BGgF2E/C0/ZB19s8b7ftfNMYYEVkHPC4iP8JK1C8BNmNdwSyxR5MdxErmx3M1Ss1Y/lCEtt4QkVh6VyfNHX7WNjbx6p72RNsHT5nNrZfUUV2aXgVh0AS8sqT76r+AFRTiiXcv8GfgomEeUw08YgcgB/CkMeYPIvIO8ISI/CPwV+Ahe/uHgMfsRHwHVpDAGLNDRJ7ESsBHgC/b3WqIyFeAZ7GGFD9sjNmR5vkolTP3Pv/+CWujfPXSk0d+4BhlOomxuz/MYxv38/T2Q4l5KqdVl/Cl1Ys5bV5J2s+rwUQlk3QSdyLyhjHm7JHapoKGhgazdevWiT4MNU3d+/z73PPibhxi1b6KGevrax86KaeBpTcQpiPNSYyhSIzfv3GQX246kAhA1aX53HZJHatOnp12El6DycwhItuMMQ3pbJvuu6FPRM41xrxuP8F5QP9oD1Cp6erBV/biEHA5rIS2QyASi/HgK3tzElQi0Rhtaa51Yoxhw/ttPPByE4e7AwAU5jn53PJFfPKc+Xhc6SXhNZio4aT7rvhb4DciEk+EVwPX5eaQlJq6+kJRBn82O8Rqz7bufqvESjprnbxzqIf7Nuxhx6EeAJwO4aqz5nHjBYsoLUhvGV9NwKt0pPXuMMZsEZGlwClYCfKdxpjMa2MrNc0VeqyJh8nlr2LGas+WYCRKuy9EII1JjEe6AzzwchMvvXcs0XbR4kpuX1nPwor0ysZrMFGZGPZdIiIfMsa8KCKfGnTXEhHBGPOfOTw2paacW1fUcc+Lu4nEYgNyKreuqBvzvjOZxOgLRnj8tQP89vUWwlFr25OqirhrVT3nLCxP6/k0mKjRGOndsgp4EfibFPcZQIOKUknieZNsj/5Kd62TSDTGH948zCMb9ycW2ppV5OHWFXVcetqctJbx1WCixmLE0V8i4gCuMcY8OT6HlFs6+ktNJZFojI6+0IjDhI0xbGrqYE1jEwc6rOlj+W4HN5y/kGsbFpCfxjK+GkzUULI6+ssYE7Png0yLoKLUVJFuIn53q4/7N+zh9QNdgDUw4PIPzOXmi2qpLBq5grAGE5VN6b6LnhORrwO/BvrijcaYjpwclVIzWLrVhI/1Bnn41b38ecfRRNG7hkXl3LmqnvrZRSM+jw4NVrmQ7rvpi1g5lC8NatcFopXKkljM0OkPJXIhQ+kPR/n1lmae3NJMwF7Gd1FlAXetWsyyupGX8dVgonIp3XfVaVgBZQVWcHkZa5EupdQg63e2sqaxieZOPzVprvzYF7QS8cPV64rGDH/ecYSHX91He59VQbi8wM0XLqrlyjOqR1zGV4OJGg/pvrseAXqAe+2fb7Db/ksuDkqpqWr9zla+u24HbqdQ5nXT2hvgu+t2cDekDCzpzojftr+T+zbsoemY1fvscTm45tz53LBs4Yi5EA0majyl+y47xRhzVtLPL4nI9lwckFJT2ZrGJtxOSXyAF3hc+EMR1jQ2DQgqxhh6+iN0+odPxO9r72PNhiZe23s8fXnpqVXcsqKOOSX5wx6LBhM1EdJ9t/1VRC4wxmwCEJHlwKu5Oyylcm803VQjae70U+YdWPbE63bS0nl8lYhAOEqbL0goMnRXV6c/xCN/2c8f3jyUWMb3jPkl3LV6MUvnDl9BOM/tpKLAgzeLs/iVSle6QWU5cKOIHLB/Xgi8KyJvYS1Hf2ZOjk6pHMm0mypdNeUFtPYGBlwd9IejLCgvIBYztPeF6A0MnYgPRWI8ta2FxzcfwG/XC5tf5uW2lXVcctKsYSsI57udlGswURMs3aByeU6PQqlxlm43VabuWFnPd9ftwB+K4HVbdcDCUcONFy6ipbN/yES8MYYXdx7jwVeaONoTBKA438XnL1jE1WfPwz3MMr4aTNRkkm5Byf25PhA1feWim2ms0ummGo3VS6u4GytotXT6mV/m5bqGGk6ZWzxkQHn7YDc/W7+HnUd6AXA5hE+cM4/PLV9EiXfoCsLazaUmI83gqZzKVTfTWA3XTTVWq5dWsXppFd3+8LCJ+INd/TzwchON77cl2lYumcVtl9Qzv3zoZXw1Aa8mM31XqpzKVTfTWA3VTXXHyrHP5x1pRnxvIMxjm/bz+78eImJn4U+ZW8yXVi3mjAWlQ+5Xg4maCvTdqXIqV91MYzW4m2pBFrrlRpoRH47GWLf9EI9t3E9PwJqXUlWcx62X1PGhpVVDVhDW2lxqKtF3qcqpXHYzjVW8myobhitNb4zh1d3trGls4mCXtQp3gcfJZ5Yt5NPnzidviArCGkzUVKTvVpVTo+lmGpzYv7C+go1NHZMq0R8XjRnafcEhS9O/d6SX+zbs4c2WbsCqIPyxM6u56cJaKgo9KR/jdjooL/RQpMFETUH6rlU5lWk30+DE/r52H5v3dTC7yMOsorxJk+gHKzfS0RciGjsxEd/aE+ChV/fx3DtHE23L6iq4c1U9tZWFKffndjooK3BTnJ/emvFKTUYaVFTOZdLNNDix39MfwSHQG4gwuzj/hET/RAxXDkdjtPmC9IdOTMT7QxF+tbmZ32xrScyYr59dyF2rFnPeotTL+GowUdOJBhU1qQxO7Iei1lrvoaRcRTzRP97DlY0x1sJZ/hPXiI/GDM+8fZifv7pVDXR4AAAgAElEQVSPTr+VqK8o9HDLxbVcdvrclBWE3U4HpQVuivNcw86UV2oq0aCiJpXBiX2P00EoGsOTNKM8nugfr+HK63e2ct/6Pezv6GNuiZfrz69hWf3xdUs27+3g/g172NdujWjLczm4rqGG686vSTkxUYOJms40qKhJZXBiv8TrorU3RHG+C2PMgET/t59+O+fDlV989yjfeXoHDrHKprT3BbnnxV18jSXMKvZw/4Ymtu7vBECAy06fwxcvrmN28YnL+GowUTOBBhU1qQxO7NdWFnHD+dbor8GJ/prGsQ1Xvvf593nwlb30haIUepzcuqKOr156cuJ+fyjCv724G4dYwQqsW18wwr/8+T26/KFEBeGza8q4a1U9S+YUn/A8LoeDskINJmpm0KCiJp1Uif2vpthuLLPi733+fe6xA4bLYQWje17cDcCXP7QkMUz4UHc/JfnWP5OYMXT6w3T4Q8RTKgvKvdy5qp4L6ytPCBguh3VlUpKvwUTNHBpU1JQ1llnxD76y1w4oVq7GIRCJxXjg5SauPmd+YphwdYmXNl+ASNTQ1hdKlFVxOoQvrV7M35xZjWtQBWENJmomy1lQEZEa4FFgLhAD1hpj7hGRCuDXQC2wD/gvxphOsf713QNcCfiBLxhjXrf3dRPwbXvX/2iMecRuPw/4BeAF/gh8zQwelqOmtdHOiu8LRXElxQJjDIKhLxQdMO9kWV05P//LPsLR422FHidf/8gprFo6e8A+nQ6hzOuhxKvBRM1cubxSiQD/1RjzuogUA9tE5DngC8ALxpgfiMg3gW8C3wCuAJbYX8uB+4DldhD6HtAAGHs/64wxnfY2twObsILK5cAzOTwnNU0UeqzuMsEKFgaImeO5k+YOP2sbm3h1T3viMfkuB3WzCrnpwtoBo7+cDqHU66Yk340jxdBhpWaSnAUVY8xh4LD9fa+IvAvMB64GVtubPQKsxwoqVwOP2lcam0SkTESq7W2fM8Z0ANiB6XIRWQ+UGGM22u2PAp9Ag4pKw60r6vjJC7swYhABY6ygctWZ1fz7i7t5evuhxBXLadUl3LW6ntPnDawg7BArmJR6rWAyGdeNUWq8jUtORURqgXOA14A5dsDBGHNYROL/6uYDzUkPa7HbhmtvSdGu1LCiMcP1yxfS2RfiyW0t9Iej5LscnDavhHVvHaYvaM2Ury7N57ZL6lh18uwB3VkOEUrsYBKf1DhZ141RarzlPKiISBHwW+BvjTE9w/Q1p7rDjKI91THcjtVNxsKFC0c6ZDWN+YIR2n1BojHD5y+q5XMXLmLD+2088HITW/d3AVCY5+SzyxfxqXPm40lKvKQKJnGTdd0YpcZbToOKiLixAsp/GGP+024+KiLV9lVKNdBqt7cANUkPXwAcsttXD2pfb7cvSLH9CYwxa4G1AA0NDZrIH0fDdQkNdV8uupFS1et651AP923Yw45DPYA1Auyqs+Zx04W1lBYcn1QpIpTkuygr8KQstwKTd90YpcZbLkd/CfAQ8K4x5kdJd60DbgJ+YN8+ndT+FRF5AitR320HnmeB/yEi8Wp8lwHfMsZ0iEiviFyA1a12I/BvuTofNVA6H/zDdQkBKe+7pqWLp14/mLVuJGMMXf4wXf3H63Ud6Q7wwMtNvPTescR2Fy2u5PZL6llYeXziZDrBJG4yrxuj1HiSXI3AFZEVwMvAW1hDigH+G1YAeBJYCBwArrUDhAD/jjWCyw/cbIzZau/ri/ZjAf7JGPNzu72B40OKnwH+n5GGFDc0NJitW7dm6zRnpORgkTzp8O6rTh/wwX/D2k3sa/fR0x9J1O8q8boo83o42NWPPxQlz+VgVlEeJV43/lCEw10BYsYQNQaP08Hs4jycDqGqOJ9f3X5BRscZCEc51htMLJzlC0Z4/LUD/Pb1lsQQ4ZOqirhrVT3nLDxeQVhEKM53UeZ1nzAHZbjfydef2o4vGCEaMzgdQlGei3+95izt/lJTnohsM8Y0pLNtLkd/vULqvAfAh1Nsb4AvD7Gvh4GHU7RvBT4whsNUo7CmsYlwNEq7b2CwGJw/2NXaS7c/jMMhOB1CJGZo7QlypDuYSH5FQ1HraocCwOAPR/E4j29/qCtAdWleRt1IsZihwx+ix17WNxoz/OHNQ/ziL/sTS/3OKvJwy4o6PnLanMQyviJWICgvSD+YJBMAY10dYWTIN79S05nOqFcZSxUs2npDhKO9A7YLRWIgJH1oQ3wOoWCNqjBYw3mPdPcjDsEhIPH/BGIYjvYEB1xJDJbcFTev1Ms1582nobYCYwybmjpY09jEgQ4rKOW7Hdxw/kKubVhAvj0nJR5MygrcuEcRTMAKtCVeN3NLvYk2TdSrmUiDispYqmARE5NYlCrO7RT6w9aVQ3wuyPH7HAPWSAlGDY6YobLQTVd/BGLYjzFEjOHC+gpuWLspZVL/u+t24HJYExoPd/fz4+d3ce25C3hlTxuvH7BGdDkELv/AXG6+qJbKouMVhIvyXZQXeEYdTOI0Ua+URYOKythQwcLjHNjhc/KcEva2+egNHO8mC0aH7hMVwOV0MK/US5svSCgas/IpBZ4hk/f3b9hj1fByOjAGXA6hvS/EvS/tTuz3vEXl3LmqnsWzixJt1pWJZ8CQ4bHQRL1SFg0qKmOpgkVxvpu6WUUDtotXEZ5b6kok9A90+IlGTSJ5HidYwanNF2JhRQF1swoTAwAKPU5C0dgJc0B+tn4PBzr6cIjVfRaMmAETlRZVFnDnqnqW1VYkJi8WeFyUF7rJc524eNZY3LGynr9/ajsHO/uJxGK4HA6K811852OnZfV5lJrsNKjMYKOdD5IqWKQqOZ+qivDVZ83jsU37OeYLDdjW5bBzKMbgdgi7Wn0A1M8qpLU3QHVSrsLY2xzo6MPrdrKv3X/CrNdZhR4evLEhMRS4wGPlTOJ5lFwwAGLlaJAhZuIqNc1pUJmhxlJW5M2WLo71BugPxxCsNUW+f/UHhn1c/AP2zAVl/M9ryrj5kS0YY+U6nCK4nA6isRixGOxp60sM+d1zzIcB3M4gs4vzicYMkViM/lCUQo+L/R0nBhQAp8Mq9Oj1OCkv8IwqmGQSdNc0NlHqdQ8IfpqoVzNRdjqU1ZQTHxZ8pDvAe0d7OdIdIByNsqaxadjHxRe3isQMeS7B5RQOdQd4s6XrhG3jgau1NzAgcAGcUlWEyyG4HQ6cDiEWM0SihhgQjhoEq0ssFDVEo4Y2X5Ce/hDhaJSe/jCtvUH2tPUl1jcZrN0XYl6Zl+pS76gDSqpjX7+zNeX2zZ3+RIXjOE3Uq5lIg8oMtau1l7Zea9Gp5GHBu1p7h31c8uJWDnHYt1b7YMn1sESsW7dTWNPYxDevOJWyAjfigKgxiAOcSYn++HBjsGfOGijKc9PS2c+RniDBQSPNBovCmLq61jQ2EYoMDLqhyNBBt6a8gP5wdECbJurVTKRBZYZKHhYsiDU8WDhhWPBgfaEogyuWOMRqH2y4v95XL63iX685i3Nqyplbks85NeWUDhqSmywG7Gvvoz9sHd/8Mi//cNVpQ76BnUMMMVu/s5Ub1m5ixQ9f5Ia1m4a88nj/aA+tvUH8IStf5A9Fae0NsutoT8rt71hZb28XwRjrNt2ljZWaTjSnMoEmcv2NdIcFD1bocdIXihCNDQwiXveJH+8jDbMdvGrjDWs30eZrP2E/YK110heKUpzv4vMXLOLqs+fhdjqom1VAU5vVxRQvXS3ASbOLTthHJnkkfyhKcs9afJJmquAZP5fRLm2s1HSiQWWCTPT6G+kOCx7sw0tn87s3Dp/QLmItUpV87PFRYv5QJOUoscFB9cL6CjY2pQ4qAJ8+dz6fv2ARJV5rFFd5gYfvfPz0lDW3vnnFqSc8PpPy9PFcjcT/Z6zAMlQOB0a/tLFS04l2f02Q4fIN4+GOlfV4XE7mluZzypxi5pbm43E5R+yuOdITwpWiYm8kGjvh2FcvreLuq06nqjif7v4wVcX5iaKTgxPhR3r6eWJLM7OKPCdMjvQ4hVPnFvPlD55EVUk+1aVe5pV58XqcKbvRhirimEky3SGCy2HN6sdYty7H8SoCSqnU9Eplgkx0WY/Rdtc0dx4fwpv88RqKmpRJ/qH+eo8HVa/bSSRmcCD0BCL4gpHENnkuB6X5LpxOB7euqKO61Aok6TxHqq7FTGa9188qZFerD7dTEt2D0ZihflbhsL8fpWY6DSoTZDKU9RhNd01NeQGHuvqtH+JRxY4yIyX5kzV3+inOcxGMROnyh2nvCyVyGPF134PhCPPLrIDw0TOq09734DL0bb4gX39qOzdesIinXj84ZHdcsm9cvpS/f2o7vYEIkag1Q768wM03Ll867PPqGvVqptOgMkFGyjdMVnesrGeTnfdILhDpdIyc5I8LRqLMLvJwoKOfnkA4MdFRgLkl+Tz8hQaK8t2UF3ooysv8LfqDZ96lyx/GKYJTBBODLn+YP751mLuvOj2tq7PVS6v4n9eclfaV3ETnyJSaLDSoTJDJMloo07+uVy+tYuncYna39hK/MMlzOSgrGDnJH1/nZOu+Drr8Edr7jpdqKfQ4Kcxz8XcfOZkFFQUU5w89vHikc9h9zIdDBIfjeBVlEzPsbfdndHWWyba6Rr1SFg0qWTSaD+hsfeCMputltH9df+PypSlXfhzuKssXjPDuoR7WvtzEc+8cTbSX5LvwOIWaikJuXVHHlWdWJ4o/pnveg88hEgOnGMZYzT4jE50jU2qy0KCSJRPZ/THa5x7tX9eZXGU9v+MI//bSbna3+vCHookkf/3sQu5cWc/y+krKvB5KvK5EMMm05tbgc/A4hXDUEDPH5+DEDCyZnbske015ATuPdNPdHyFm1zQr9bpYOrc0Z8+p1GSkQSVLJrL7Y7TPPZa/rke6yorFDE+/cZB/+N876A1EEkl4h8Anz57Plz54Eu8e7uEbT71JS1d/IngAGQXI5k4/ToGmY77EfJsyr5u2vhACaSfZx2puiYeNTcdHrsUMdPojzC3x5Ow5lZqMNKhkyUR2f4z2ueMj0CJ2wcb4oli1FWMbgeYLRvjTW4f59u/fJmAnXgQoL3Dj9TjZ3+Fnf1sf//LseycEj0KPk3A0Srvv+KTMEq9ryABZnOdiV6sPZ9LSxh3+MBWFHkKRGOGQweNy8PkLFuU0uL+w8xhOOT7z3q56wws7j+XsOZWajHTyY5ZMZEHB0T73HSvr6e4Pc7Crn3A0Zv9lb2jvCw1ZE2s4wUiUl3cd4+afb+brT72ZCCgl+S5qZxUwpySfMq+boz0BHnhlb8rJn7tbfRkVujTxIWjm+JcxhjZfKDGk2BeM8MDLTaM6p3T1haK4nEKey0m+20mey4nLKUOWdVFqutKgkiUTWVBwtM+9emkVs4vycDnEXrPEwYJyLyVe97Az+wcXZXzxnaPsPNzDf31yOzc9vJkt+zoBa8neOcV5zCvzUuhx4XI6CERiLCgvGHJ2e8SYjApd+kJR5pfl43IKUWNwOSUx1DmWdNsbjPLt372Z3i90FAo9TgZXcIkZq12pmUS7v7JkIocIj+W5W3sDOB1C1J4rYszwXWfxQQGhiLWuyaHOfjbvbUdEEnWxasq93LGqngKXkx+/sItwNIbL4RwQ7NY0NqWc/Bmf6pJuoct4F159UgHJtw52A3aJFZsxcLAnOOLvY7RuXVFnrzMTwyFWQIkZq12pmUSDSg5MxDKyoxmevH5nK75glJgxOEWIRA2HuvupjHiGnHOyprGJ3kCITv/xpHQ8kVDgcXLLijquPW8BVSX55LudVBTlDRnsUk3+XFJVTKc/lHahy1STSIdicvjCfPXSkwFrXZm+UJRCj5NbV9Ql2pWaKcTk8l/aJNTQ0GC2bt2a9f0mD+tN/pCMF1CcjK74SSPvt/YStXuWBGt0lsvpYM3nzkt53Od9/8+094VT7q+2ooD/87VLKExzFnx86HBywAFS/h6vOXc+G5s6Ug4zHryf1w90EozETqgwXOBx8s7dl2f2S1JKISLbjDEN6WyrVypZMtVmVK/f2crOI70DrqoMEDVQ6HKccMzGGN5o7qLLnzqgABzuCaQdUGDoq6vBXXkX1lfw1OsHhxxmPHg/9z7/Pj95YZeV40gaynznJC+Bo9R0oEElS6bajOof/mln2t10LZ1+fvzcLn7315YTktHJwtH0C0oOJ9XiXZkMM9auKKUmjgaVLKkpL2Bfu4+e/oEffLWVw9fDmihNbX1D3hdPivf0h1nb2MQv/rJvQEn6ocSMdZWQ7Q/vXa29dPvDOJLmorT1hghHUw8zBiuwaBBRavzpkOIsubC+gtbeEKGoNfonFI3R2hviwvqKiT60IQ1VYauy0MPjr+3noz9p5N9f2o0vGEmUHZlfmj/k4wB+un5P1o8zFIllNMxYKTVxNKhkycamDmYXefA4HcQMeJwOZhd52NjUMdGHllJdZcGQweH91j7+2+/e5nB3AIfAJ86ex+yiPOaXeakoymPhMDPugzn4oHfbV06xmMEYQ8zug0u31L5SavzkLKiIyMMi0ioibye1VYjIcyKyy74tt9tFRO4Vkd0i8qaInJv0mJvs7XeJyE1J7eeJyFv2Y+6VTErb5kBzp59ZRXnUzy5i6dwS6mcXMasob9LmVL55xankuVL/yuJpk4sWV/LLW5fzz586k/rZRYmAUeJNvyx9Npw8p4SiPCfhWIxAJEY4FqMoz8mSOSXjehxKqZHl8krlF8Dg8ZvfBF4wxiwBXrB/BrgCWGJ/3Q7cB1YQAr4HLAeWAd+LByJ7m9uTHjehY0UnskzLaLzZ0kV/ZPhU/dobG7ho8Sy8HucJs/YzNXgWfiYlUy6sr6AnEMXpEPJcVl6lJxCd1F2LSs1UOQsqxphGYHDfz9XAI/b3jwCfSGp/1Fg2AWUiUg18FHjOGNNhjOkEngMut+8rMcZsNNYn3KNJ+5oQE1mmBawP7St+0sgp336GU779DJf/eMOwH9xrG0fOfSSvurh6aRV3X3U6VcX5HOnuz/jYvrtuB629gQFDgtMNLBubOijJdxKNGYIRQzRmKMl3TtquRaVmsvHOqcwxxhwGsG/j40HnA81J27XYbcO1t6RoT0lEbheRrSKy9dix3FSNTf7Q7e4PU1WcP24TH9fvbOXvn9rOe0d6CUZiBCMxdh718aX/2HbCB3d/KMJvtjbjC2We+1i9tIo7VtZTkDd095fbcWKX2prGJsLRKEe6A7x3tJcj3QHC0eiw9cWS7WrtxReI4nY6yHc7cDsd+ALRIYtMKqUmzmQZUpyqc9+Moj0lY8xaYC1YM+pHc4DpyOZKjplY09hEhz/E4DDhD8f4ztNv8/LSDxGMRHmtqYMfP/8+fz3QNeI+i/NS/70RDxDx+laDnVR14hDq0QwJTpY8+gusml4xMTr6S6lJaLyDylERqTbGHLa7sOJ/RrcANUnbLQAO2e2rB7Wvt9sXpNh+Rhi8MuKupFIrgzV39rPjUDf/9sJunt1xJBF5PU4hFB06vg5VsT0eIIaaBFnmPfEtNdag4HYK/eH0i0wqpSbOeHd/rQPiI7huAp5Oar/RHgV2AdBtd489C1wmIuV2gv4y4Fn7vl4RucAe9XVj0r6mtVT5id7A8BMTP/2zv/AnO6Asqijgh586g8pCD7MKh/6bYqihwfEAMZTX7LL3ycY6JFhHfyk1deTsSkVEfoV1lTFLRFqwRnH9AHhSRG4BDgDX2pv/EbgS2A34gZsBjDEdIvJ9YIu93d3GmHh29i6sEWZe4Bn7a9pLVWOsvMDNkWHKugciMcoL3HzholqubVhAVXE+v3/jEHvbfMDIM+WTxa8ahpLqCubkOSXsbfOlXXl4sAvrK9i8rwOnQ3Db3W46+kupySlnQcUYc8MQd304xbYG+PIQ+3kYeDhF+1bgA2M5xqko1ZrsIy0E9ZllNdx0US2LKgvJtxfGumNlPbc8smXIxwx1CRsPEMMFscHi5ennlroGVB5Od2RcfGLpwKDkYmNTB19N+yiUUuNBZ9RPMcV5Lg52BQYst9vqCw37mG9ccSqnzC1JBJS4YVIqVBSmHuF1x8p6PK7MVjMc68i4qTaxVKmZbLKM/lIjWL+zlR888y47j/oAiMQMLhk2vZFQmmIG/A//tHPYx/T0p+4Wi68y+YVfpL7KGep4xjIyLr664+BVIifrxFKlZjINKlPA+p2tfP2p7SesZTLChPgBj08eLXbHynrePzr8cN7QMDXuVy+toqbcS3PniZMgF5R70zuoDKRa3XE8J5YqpdKn3V9TwJrGJqtS8Cgfn2o2+3BdXzDyFdD3r/4ABYNyOQUeJ9+/OvtpromcWKqUyoxeqUwBBzr6CIRHP9Ev1YqUI6ks8oy4TYHHScxYZVOcDjkhyGTTRE0sVUplRq9UJrFAOMrh7n4C4SFmIqbJOyhBP/jnweKVVoarzbWmsYlSr5slVcUsnVvCkqpiSr3utEuvKKWmJw0qk1AwYtfJOtLDj/78Pu19w0wMGYFAyurJw6kpLxgxQDR3+lMGKx2RpdTMpt1fk0goEqPLH6LTH2Ld9kM8tnE/PSPMlh/J/LL8RPXk5CT3grJ8DnYFTiiYlucUSrxujDHDBggdkaWUSkWDyiQQicbo9Ifp6Q/x6u521jQ2cbDLGllV4HHiH6oQ1wgcAv/4iTMAq7uqpdPPAnv0F8DXn9qOLxghaOdrRGBuqTV6a6QAoSOylFKpaFCZIOt3tnL/hj3s7/AzpySfFYtn0bj7GG+2dANWQPjYmdV84aJaPn3fxoz37xT42oeXJJLbqZLc/3rNWaxpbGJXay+9gQjlBW6K811prQUTn68yOFhpMl2pmU2DShpSzfMYy4fni+8c5TvrduAQyHMJ7x/t5Y3m4+Xol9VVcOeqemorC/FmMKIqXo7eIdYVzpkLyobdPnlEVfwcMwkQOiJLKTWYBpURxKsCu50yYJ7H3aT+63840Zihuz/MvS/tBgx9wSid/nAir5HvdnD3VafTUFuB0yFUFHoozk9/PXi3w5EoDd8fjvGDZ95N+xg1QCilskGDyghSVQX2hyKsaWxK+0M4ZgeT7v4w4WiMPcd8+ENRovasdadDqCx0I0BDbQXF+W4qCj047bG9JfmutBL2Dsfx9UpMzLC3XUdiKaXGlw4pHsFYhs7GYobOvhAHOvx0+kNsamrntke30huIEI0ZBKgocFNXUUCey8m8sgLmlXmZXZyXCCgAt66oG/I5dJkqpdRkolcqIxjN0Fljjl+ZRGOGpmM+7t/QxNb91gJWgtXVVVbgoSjPSSAcI2bgqx866YRKwgBfvfRkntzazKHuwAnrlcR/FCBmjq+MGDOwZHbhGM9eKaUyo1cqI7hjZX1inocxZtiRUcYYuv1hDnT46egLcaw3yP/68/vc/ti2REA5u6aM+z93Lt/7+OnMKc7HF4wwr8zLP33iA3zw1DlDHsc/fuIMFpQXsHh2IbOL3IlZ7wUeJ588u5pZRR4Ea3iyAOUFbr5x+dIc/EaUUmpoeqUygnSGzhpj6AlE6PaHicRiBMJRntrWwq82Nydmry8o93LHynouWlyJiOB0CB87qzrtRHzycYQiMZbXlQw4jtGM3lJKqWwTa9HFmaOhocFs3bo1K/syxtAbtIJJOBojZgzPv9vKQy/v5ZjPWhmxJN/FTRfV8jdnVuNyWheGgxPxSik1mYnINmNMQzrb6pXKKPUGwnTZwQRge3MX923Yw/v2Ilpup/Cpc+bz2eWLKMp32W0OZhfnpcybKKXUdKBBJUODg0lzh5+1jU28uqc9sc3qk2dz28o6qu2SJyJCqddNeYEbEb06UUpNXxpU0jQ4mHT3h3ls436e3n4oMd/ktOpi7lq9mNPnlSYe5/U4qSzMw+PSMRFKqelPg8oIfMEInX2hRDAJRWL8/o2D/HLTAXxBa0JidWk+t11Sx6qTZyeuREYzI14ppaY6DSpDGBxMjDE07mpjbWMTh7sDABTmOfns8kV86pz5A65EivPdVBZ6EjPclVJqptCgMogvGKHLHyIUOb5877uHe7hv/R7ePtQDWAUbrzprHjddWEtpwfErEY/LwawiTcQrpWYuDSq2wVcmAEd6Ajz48l5eTFpW96LFldy+sp6FFcdn1DtEKC/wDAgwSik1E834oJIqmPiCER5/7QC/fb2FcNRKwp80u4i7VtdzzsLyAY8vzHNRWehJzEFRSqmZbMYGlVTBJBoz/OHNQzzyl/109Vvrws8q8nDLijo+ctocHEnDgV0OB7OKPQNqgiml1Ew34z4RY8bQ3OEfEEyMMWxq6mBNYxMHOqzqw/luBzecv5BrGxackCOx5pxoIl4ppQabcUElHDUDAsqeVh/3bdjD6weslRcFuOIDc7n54loqi/IGPDbP7WRWkYc8lybilVIqlSkfVETkcuAewAk8aIz5QTqPa/MFefiVfTy740iifPx5i8q5c1U9i2cXDdjWIUJ5oYdSrybilVJqOFM6qIiIE/gp8BGgBdgiIuuMMe8M9ZiYMTzyl338ekszAXvY8KLKAu5cVc+y2ooTyqhoIl4ppdI3pYMKsAzYbYxpAhCRJ4CrgSGDyr62Ph7ZuB+AMq+bmy+u5cozqk+oGOxyOKgs8lCYN9V/RUopNX6m+ifmfKA56ecWYPlwD4jEDG6ncO15C7hh2cKUQUMT8UopNTpTPaik+tQ/YYEYEbkduN3+0bf7f3zsvX+GWf8MbTk9uslhFtP/PPUcp4+ZcJ5T8RwXpbvhVA8qLUBN0s8LgEODNzLGrAXWJreJyNZ0F52ZymbCeeo5Th8z4Tyn+zlO9ezzFmCJiNSJiAe4Hlg3wceklFIz1pS+UjHGRETkK8CzWEOKHzbG7Jjgw1JKqRlrSgcVAGPMH4E/juKha0feZFqYCeep5zh9zITznNbnKMackNdWSimlRmWq51SUUkpNIjMmqIjIPhF5S0TeEJGtdluFiDwnIrvs2/KR9jOZiDlxsYoAAAZTSURBVMjDItIqIm8ntaU8J7HcKyK7ReRNETl34o48M0Oc5z+IyEH79XxDRK5Muu9b9nm+JyIfnZijzoyI1IjISyLyrojsEJGv2e3T5vUc5hyn22uZLyKbRWS7fZ7/v91eJyKv2a/lr+3BRYhInv3zbvv+2ok8/jEzxsyIL2AfMGtQ278A37S//ybww4k+zgzPaSVwLvD2SOcEXAk8gzW35wLgtYk+/jGe5z8AX0+x7WnAdiAPqAP2AM6JPoc0zrEaONf+vhh43z6XafN6DnOO0+21FKDI/t4NvGa/Rk8C19vt9wN32d9/Cbjf/v564NcTfQ5j+ZoxVypDuBp4xP7+EeATE3gsGTPGNAIdg5qHOqergUeNZRNQJiLV43OkYzPEeQ7lauAJY0zQGLMX2I1VzmdSM8YcNsa8bn/fC7yLVTFi2ryew5zjUKbqa2mMMT77R7f9ZYAPAU/Z7YNfy/hr/BTwYRlchHAKmUlBxQB/FpFt9gx7gDnGmMNgveGBqgk7uuwZ6pxSlbQZ7h/0VPAVu+vn4aSuyyl/nnb3xzlYf+FOy9dz0DnCNHstRcQpIm8ArcBzWFdZXcaYiL1J8rkkztO+vxuoHN8jzp6ZFFQuNsacC1wBfFlEVk70AY2ztEraTCH3AYuBs4HDwP+y26f0eYpIEfBb4G+NMT3DbZqibUqcZ4pznHavpTEmaow5G6vKxzLg1FSb2bdT9jxTmTFBxRhzyL5tBX6H9UIfjXcZ2LetE3eEWTPUOaVV0maqMMYctf/hxoAHON4tMmXPU0TcWB+2/2GM+U+7eVq9nqnOcTq+lnHGmC5gPVZOpUxE4nMDk88lcZ72/aWk39076cyIoCIihSJSHP8euAx4G6uky032ZjcBT0/MEWbVUOe0DrjRHjV0AdAd71aZigblDz6J9XqCdZ7X2yNq6oAlwObxPr5M2X3oDwHvGmN+lHTXtHk9hzrHafhazhaRMvt7L3ApVv7oJeAae7PBr2X8Nb4GeNHYWfspaaJHCozHF1CPNYpkO7AD+O92eyXwArDLvq2Y6GPN8Lx+hdVdEMb6a+eWoc4J6xL7p1h9u28BDRN9/GM8z8fs83gT6x9lddL2/90+z/eAKyb6+NM8xxVYXR5vAm/YX1dOp9dzmHOcbq/lmcBf7fN5G/iu3V6PFRR3A78B8uz2fPvn3fb99RN9DmP50hn1SimlsmZGdH8ppZQaHxpUlFJKZY0GFaWUUlmjQUUppVTWaFBRSimVNRpUlMoxEZknIk+NvOWYnuOP8bkRSk0kHVKslFIqa/RKRalhiMjn7LUx3hCRNXahQJ+I/JO9XsYmEZljb7vY/nmLiNwtIj67vVbstWBE5Asi8p8i8id7XY1/SXquy0Rko4i8LiK/sWtkDT6eahFptI/nbRG5xG7fJyKzROTOpHVJ9orIS+nuW6ls0KCi1BBE5FTgOqxipGcDUeCzQCGwyRhzFtAI3GY/5B7gHmPM+Qxfo+pse79nANeJtXjVLODbwKXGKny6Ffi7FI/9DPCsfTxnYc1KTzDG3G/fdz5W9YEfZbBvpcbMNfImSs1YHwbOA7bYy1t4sQo6hoA/2NtsAz5if38hx9fIeBz41yH2+4IxphtARN4BFgFlWItSvWo/lwfYmOKxW4CH7cKMvzfGvJFiG7AC3Ivm/7Z3h7xRRFEYht/PViKwGNJUNqlAYOppgqCiTRANuoKQGgx/AEWCaagBBL51bRrsgoEg+BFgQBEEOYi5hXZhm05625r3STaZ3blzzx0xOZk5mzlVe0lWzji3dG4mFWm2AC+r6vGJH5Ot+luM/MX46+jnse2j4wMcVNX6VKxbwHb7+qSqdlvbhjvA6yRPq+rV1DEbDIlq89h5/DO3dBF8/CXNdgisJrkOf/rF3zhl/AS417bXRsaaALeT3Gyx5pLMV9W7qlpsn90W/0tVvWB44++J3vRJloAt4H4Nr5KfOffI9UlnYlKRZqiqzwy1iP0knxg6+J3Wsvch8CjJ+zbu+4hYX4EN4E2LNQEW/jN0GfiY5ANDAns2tX8TuAa8bcX6nRFzS+fmX4qlTpLMAT+qqpKsAetVdfeq1yVdJmsqUj9LwPPWjOob8OCK1yNdOu9UJEndWFORJHVjUpEkdWNSkSR1Y1KRJHVjUpEkdWNSkSR18xtPsptryMOk+gAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# Engine size as potential predictor variable of price\n", | |
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n", | |
"plt.ylim(0,)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>engine-size</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>engine-size</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.872335</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>price</th>\n", | |
" <td>0.872335</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" engine-size price\n", | |
"engine-size 1.000000 0.872335\n", | |
"price 0.872335 1.000000" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df[[\"engine-size\", \"price\"]].corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Highway mpg is a potential predictor variable of price " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f15cc16d828>" | |
] | |
}, | |
"execution_count": 12, | |
"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": [ | |
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>highway-mpg</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>highway-mpg</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.704692</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>price</th>\n", | |
" <td>-0.704692</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" highway-mpg price\n", | |
"highway-mpg 1.000000 -0.704692\n", | |
"price -0.704692 1.000000" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df[['highway-mpg', 'price']].corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Weak Linear Relationship</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f15cc083128>" | |
] | |
}, | |
"execution_count": 14, | |
"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": [ | |
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>peak-rpm</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>peak-rpm</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.101616</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>price</th>\n", | |
" <td>-0.101616</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" peak-rpm price\n", | |
"peak-rpm 1.000000 -0.101616\n", | |
"price -0.101616 1.000000" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df[['peak-rpm','price']].corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
"<h1> Question 3 a): </h1>\n", | |
"\n", | |
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n", | |
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>stroke</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>stroke</th>\n", | |
" <td>1.00000</td>\n", | |
" <td>0.08231</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>price</th>\n", | |
" <td>0.08231</td>\n", | |
" <td>1.00000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" stroke price\n", | |
"stroke 1.00000 0.08231\n", | |
"price 0.08231 1.00000" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute\n", | |
"df[['stroke','price']].corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click <b>here</b> for the solution.\n", | |
"\n", | |
"<!-- The answer is below:\n", | |
"\n", | |
"#The correlation is 0.0823, the non-diagonal elements of the table.\n", | |
"#code:\n", | |
"df[[\"stroke\",\"price\"]].corr() \n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
"<h1>Question 3 b):</h1>\n", | |
"\n", | |
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n", | |
"<p>Verify your results using the function \"regplot()\".</p>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n", | |
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"(0, 47436.15466888818)" | |
] | |
}, | |
"execution_count": 18, | |
"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": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"sns.regplot(x='stroke',y='price', data=df)\n", | |
"plt.ylim(0,)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click <b>here</b> for the solution.\n", | |
"\n", | |
"<!-- The answer is below:\n", | |
"\n", | |
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n", | |
"\n", | |
"#Code: \n", | |
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Categorical variables</h3>\n", | |
"\n", | |
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's look at the relationship between \"body-style\" and \"price\"." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f15c05e8a20>" | |
] | |
}, | |
"execution_count": 22, | |
"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": [ | |
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f15c0237668>" | |
] | |
}, | |
"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": [ | |
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's examine \"drive-wheels\" and \"price\"." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f15c04df668>" | |
] | |
}, | |
"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": [ | |
"# drive-wheels\n", | |
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n", | |
"\n", | |
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n", | |
"\n", | |
"This will show:\n", | |
"<ul>\n", | |
" <li>the count of that variable</li>\n", | |
" <li>the mean</li>\n", | |
" <li>the standard deviation (std)</li> \n", | |
" <li>the minimum value</li>\n", | |
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n", | |
" <li>the maximum value</li>\n", | |
"<ul>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can apply the method \"describe\" as follows:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>symboling</th>\n", | |
" <th>normalized-losses</th>\n", | |
" <th>wheel-base</th>\n", | |
" <th>length</th>\n", | |
" <th>width</th>\n", | |
" <th>height</th>\n", | |
" <th>curb-weight</th>\n", | |
" <th>engine-size</th>\n", | |
" <th>bore</th>\n", | |
" <th>stroke</th>\n", | |
" <th>compression-ratio</th>\n", | |
" <th>horsepower</th>\n", | |
" <th>peak-rpm</th>\n", | |
" <th>city-mpg</th>\n", | |
" <th>highway-mpg</th>\n", | |
" <th>price</th>\n", | |
" <th>city-L/100km</th>\n", | |
" <th>diesel</th>\n", | |
" <th>gas</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>count</th>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.00000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>197.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" <td>201.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>mean</th>\n", | |
" <td>0.840796</td>\n", | |
" <td>122.00000</td>\n", | |
" <td>98.797015</td>\n", | |
" <td>0.837102</td>\n", | |
" <td>0.915126</td>\n", | |
" <td>53.766667</td>\n", | |
" <td>2555.666667</td>\n", | |
" <td>126.875622</td>\n", | |
" <td>3.330692</td>\n", | |
" <td>3.256904</td>\n", | |
" <td>10.164279</td>\n", | |
" <td>103.405534</td>\n", | |
" <td>5117.665368</td>\n", | |
" <td>25.179104</td>\n", | |
" <td>30.686567</td>\n", | |
" <td>13207.129353</td>\n", | |
" <td>9.944145</td>\n", | |
" <td>0.099502</td>\n", | |
" <td>0.900498</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>std</th>\n", | |
" <td>1.254802</td>\n", | |
" <td>31.99625</td>\n", | |
" <td>6.066366</td>\n", | |
" <td>0.059213</td>\n", | |
" <td>0.029187</td>\n", | |
" <td>2.447822</td>\n", | |
" <td>517.296727</td>\n", | |
" <td>41.546834</td>\n", | |
" <td>0.268072</td>\n", | |
" <td>0.319256</td>\n", | |
" <td>4.004965</td>\n", | |
" <td>37.365700</td>\n", | |
" <td>478.113805</td>\n", | |
" <td>6.423220</td>\n", | |
" <td>6.815150</td>\n", | |
" <td>7947.066342</td>\n", | |
" <td>2.534599</td>\n", | |
" <td>0.300083</td>\n", | |
" <td>0.300083</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>min</th>\n", | |
" <td>-2.000000</td>\n", | |
" <td>65.00000</td>\n", | |
" <td>86.600000</td>\n", | |
" <td>0.678039</td>\n", | |
" <td>0.837500</td>\n", | |
" <td>47.800000</td>\n", | |
" <td>1488.000000</td>\n", | |
" <td>61.000000</td>\n", | |
" <td>2.540000</td>\n", | |
" <td>2.070000</td>\n", | |
" <td>7.000000</td>\n", | |
" <td>48.000000</td>\n", | |
" <td>4150.000000</td>\n", | |
" <td>13.000000</td>\n", | |
" <td>16.000000</td>\n", | |
" <td>5118.000000</td>\n", | |
" <td>4.795918</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25%</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>101.00000</td>\n", | |
" <td>94.500000</td>\n", | |
" <td>0.801538</td>\n", | |
" <td>0.890278</td>\n", | |
" <td>52.000000</td>\n", | |
" <td>2169.000000</td>\n", | |
" <td>98.000000</td>\n", | |
" <td>3.150000</td>\n", | |
" <td>3.110000</td>\n", | |
" <td>8.600000</td>\n", | |
" <td>70.000000</td>\n", | |
" <td>4800.000000</td>\n", | |
" <td>19.000000</td>\n", | |
" <td>25.000000</td>\n", | |
" <td>7775.000000</td>\n", | |
" <td>7.833333</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>50%</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>122.00000</td>\n", | |
" <td>97.000000</td>\n", | |
" <td>0.832292</td>\n", | |
" <td>0.909722</td>\n", | |
" <td>54.100000</td>\n", | |
" <td>2414.000000</td>\n", | |
" <td>120.000000</td>\n", | |
" <td>3.310000</td>\n", | |
" <td>3.290000</td>\n", | |
" <td>9.000000</td>\n", | |
" <td>95.000000</td>\n", | |
" <td>5125.369458</td>\n", | |
" <td>24.000000</td>\n", | |
" <td>30.000000</td>\n", | |
" <td>10295.000000</td>\n", | |
" <td>9.791667</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>75%</th>\n", | |
" <td>2.000000</td>\n", | |
" <td>137.00000</td>\n", | |
" <td>102.400000</td>\n", | |
" <td>0.881788</td>\n", | |
" <td>0.925000</td>\n", | |
" <td>55.500000</td>\n", | |
" <td>2926.000000</td>\n", | |
" <td>141.000000</td>\n", | |
" <td>3.580000</td>\n", | |
" <td>3.410000</td>\n", | |
" <td>9.400000</td>\n", | |
" <td>116.000000</td>\n", | |
" <td>5500.000000</td>\n", | |
" <td>30.000000</td>\n", | |
" <td>34.000000</td>\n", | |
" <td>16500.000000</td>\n", | |
" <td>12.368421</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>max</th>\n", | |
" <td>3.000000</td>\n", | |
" <td>256.00000</td>\n", | |
" <td>120.900000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>59.800000</td>\n", | |
" <td>4066.000000</td>\n", | |
" <td>326.000000</td>\n", | |
" <td>3.940000</td>\n", | |
" <td>4.170000</td>\n", | |
" <td>23.000000</td>\n", | |
" <td>262.000000</td>\n", | |
" <td>6600.000000</td>\n", | |
" <td>49.000000</td>\n", | |
" <td>54.000000</td>\n", | |
" <td>45400.000000</td>\n", | |
" <td>18.076923</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" symboling normalized-losses wheel-base length width \\\n", | |
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n", | |
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n", | |
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n", | |
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n", | |
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n", | |
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n", | |
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n", | |
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n", | |
"\n", | |
" height curb-weight engine-size bore stroke \\\n", | |
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n", | |
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n", | |
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n", | |
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n", | |
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n", | |
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n", | |
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n", | |
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n", | |
"\n", | |
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n", | |
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n", | |
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n", | |
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n", | |
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n", | |
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n", | |
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n", | |
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n", | |
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n", | |
"\n", | |
" price city-L/100km diesel gas \n", | |
"count 201.000000 201.000000 201.000000 201.000000 \n", | |
"mean 13207.129353 9.944145 0.099502 0.900498 \n", | |
"std 7947.066342 2.534599 0.300083 0.300083 \n", | |
"min 5118.000000 4.795918 0.000000 0.000000 \n", | |
"25% 7775.000000 7.833333 0.000000 1.000000 \n", | |
"50% 10295.000000 9.791667 0.000000 1.000000 \n", | |
"75% 16500.000000 12.368421 0.000000 1.000000 \n", | |
"max 45400.000000 18.076923 1.000000 1.000000 " | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.describe()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": { | |
"collapsed": false, | |
"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>make</th>\n", | |
" <th>aspiration</th>\n", | |
" <th>num-of-doors</th>\n", | |
" <th>body-style</th>\n", | |
" <th>drive-wheels</th>\n", | |
" <th>engine-location</th>\n", | |
" <th>engine-type</th>\n", | |
" <th>num-of-cylinders</th>\n", | |
" <th>fuel-system</th>\n", | |
" <th>horsepower-binned</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>count</th>\n", | |
" <td>201</td>\n", | |
" <td>201</td>\n", | |
" <td>201</td>\n", | |
" <td>201</td>\n", | |
" <td>201</td>\n", | |
" <td>201</td>\n", | |
" <td>201</td>\n", | |
" <td>201</td>\n", | |
" <td>201</td>\n", | |
" <td>200</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>unique</th>\n", | |
" <td>22</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>5</td>\n", | |
" <td>3</td>\n", | |
" <td>2</td>\n", | |
" <td>6</td>\n", | |
" <td>7</td>\n", | |
" <td>8</td>\n", | |
" <td>3</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>top</th>\n", | |
" <td>toyota</td>\n", | |
" <td>std</td>\n", | |
" <td>four</td>\n", | |
" <td>sedan</td>\n", | |
" <td>fwd</td>\n", | |
" <td>front</td>\n", | |
" <td>ohc</td>\n", | |
" <td>four</td>\n", | |
" <td>mpfi</td>\n", | |
" <td>Low</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>freq</th>\n", | |
" <td>32</td>\n", | |
" <td>165</td>\n", | |
" <td>115</td>\n", | |
" <td>94</td>\n", | |
" <td>118</td>\n", | |
" <td>198</td>\n", | |
" <td>145</td>\n", | |
" <td>157</td>\n", | |
" <td>92</td>\n", | |
" <td>115</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" make aspiration num-of-doors body-style drive-wheels \\\n", | |
"count 201 201 201 201 201 \n", | |
"unique 22 2 2 5 3 \n", | |
"top toyota std four sedan fwd \n", | |
"freq 32 165 115 94 118 \n", | |
"\n", | |
" engine-location engine-type num-of-cylinders fuel-system \\\n", | |
"count 201 201 201 201 \n", | |
"unique 2 6 7 8 \n", | |
"top front ohc four mpfi \n", | |
"freq 198 145 157 92 \n", | |
"\n", | |
" horsepower-binned \n", | |
"count 200 \n", | |
"unique 3 \n", | |
"top Low \n", | |
"freq 115 " | |
] | |
}, | |
"execution_count": 29, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.describe(include=['object'])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Value Counts</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"fwd 118\n", | |
"rwd 75\n", | |
"4wd 8\n", | |
"Name: drive-wheels, dtype: int64" | |
] | |
}, | |
"execution_count": 30, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['drive-wheels'].value_counts()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can convert the series to a Dataframe as follows :" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>drive-wheels</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>fwd</th>\n", | |
" <td>118</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>rwd</th>\n", | |
" <td>75</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4wd</th>\n", | |
" <td>8</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" drive-wheels\n", | |
"fwd 118\n", | |
"rwd 75\n", | |
"4wd 8" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['drive-wheels'].value_counts().to_frame()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>value_counts</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>fwd</th>\n", | |
" <td>118</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>rwd</th>\n", | |
" <td>75</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4wd</th>\n", | |
" <td>8</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" value_counts\n", | |
"fwd 118\n", | |
"rwd 75\n", | |
"4wd 8" | |
] | |
}, | |
"execution_count": 32, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n", | |
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n", | |
"drive_wheels_counts" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Now let's rename the index to 'drive-wheels':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>value_counts</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>drive-wheels</th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>fwd</th>\n", | |
" <td>118</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>rwd</th>\n", | |
" <td>75</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4wd</th>\n", | |
" <td>8</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" value_counts\n", | |
"drive-wheels \n", | |
"fwd 118\n", | |
"rwd 75\n", | |
"4wd 8" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"drive_wheels_counts.index.name = 'drive-wheels'\n", | |
"drive_wheels_counts" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can repeat the above process for the variable 'engine-location'." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>value_counts</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>engine-location</th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>front</th>\n", | |
" <td>198</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>rear</th>\n", | |
" <td>3</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" value_counts\n", | |
"engine-location \n", | |
"front 198\n", | |
"rear 3" | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# engine-location as variable\n", | |
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n", | |
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n", | |
"engine_loc_counts.index.name = 'engine-location'\n", | |
"engine_loc_counts.head(10)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n", | |
"\n", | |
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array(['rwd', 'fwd', '4wd'], dtype=object)" | |
] | |
}, | |
"execution_count": 36, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['drive-wheels'].unique()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n", | |
"\n", | |
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"df_group_one = df[['drive-wheels','body-style','price']]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can then calculate the average price for each of the different categories of data." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>drive-wheels</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>4wd</td>\n", | |
" <td>10241.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>fwd</td>\n", | |
" <td>9244.779661</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>rwd</td>\n", | |
" <td>19757.613333</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" drive-wheels price\n", | |
"0 4wd 10241.000000\n", | |
"1 fwd 9244.779661\n", | |
"2 rwd 19757.613333" | |
] | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# grouping results\n", | |
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n", | |
"df_group_one" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n", | |
"\n", | |
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>drive-wheels</th>\n", | |
" <th>body-style</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>4wd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>7603.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>4wd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>12647.333333</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>4wd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>9095.750000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>fwd</td>\n", | |
" <td>convertible</td>\n", | |
" <td>11595.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hardtop</td>\n", | |
" <td>8249.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>8396.387755</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>9811.800000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>fwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>9997.333333</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>rwd</td>\n", | |
" <td>convertible</td>\n", | |
" <td>23949.600000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>rwd</td>\n", | |
" <td>hardtop</td>\n", | |
" <td>24202.714286</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>rwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>14337.777778</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>21711.833333</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>rwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>16994.222222</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" drive-wheels body-style price\n", | |
"0 4wd hatchback 7603.000000\n", | |
"1 4wd sedan 12647.333333\n", | |
"2 4wd wagon 9095.750000\n", | |
"3 fwd convertible 11595.000000\n", | |
"4 fwd hardtop 8249.000000\n", | |
"5 fwd hatchback 8396.387755\n", | |
"6 fwd sedan 9811.800000\n", | |
"7 fwd wagon 9997.333333\n", | |
"8 rwd convertible 23949.600000\n", | |
"9 rwd hardtop 24202.714286\n", | |
"10 rwd hatchback 14337.777778\n", | |
"11 rwd sedan 21711.833333\n", | |
"12 rwd wagon 16994.222222" | |
] | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# grouping results\n", | |
"df_gptest = df[['drive-wheels','body-style','price']]\n", | |
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n", | |
"grouped_test1" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n", | |
"\n", | |
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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 tr th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead tr:last-of-type th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr>\n", | |
" <th></th>\n", | |
" <th colspan=\"5\" halign=\"left\">price</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>body-style</th>\n", | |
" <th>convertible</th>\n", | |
" <th>hardtop</th>\n", | |
" <th>hatchback</th>\n", | |
" <th>sedan</th>\n", | |
" <th>wagon</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>drive-wheels</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>4wd</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7603.000000</td>\n", | |
" <td>12647.333333</td>\n", | |
" <td>9095.750000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>fwd</th>\n", | |
" <td>11595.0</td>\n", | |
" <td>8249.000000</td>\n", | |
" <td>8396.387755</td>\n", | |
" <td>9811.800000</td>\n", | |
" <td>9997.333333</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>rwd</th>\n", | |
" <td>23949.6</td>\n", | |
" <td>24202.714286</td>\n", | |
" <td>14337.777778</td>\n", | |
" <td>21711.833333</td>\n", | |
" <td>16994.222222</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price \\\n", | |
"body-style convertible hardtop hatchback sedan \n", | |
"drive-wheels \n", | |
"4wd NaN NaN 7603.000000 12647.333333 \n", | |
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n", | |
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n", | |
"\n", | |
" \n", | |
"body-style wagon \n", | |
"drive-wheels \n", | |
"4wd 9095.750000 \n", | |
"fwd 9997.333333 \n", | |
"rwd 16994.222222 " | |
] | |
}, | |
"execution_count": 40, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n", | |
"grouped_pivot" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": { | |
"collapsed": false, | |
"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 tr th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead tr:last-of-type th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr>\n", | |
" <th></th>\n", | |
" <th colspan=\"5\" halign=\"left\">price</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>body-style</th>\n", | |
" <th>convertible</th>\n", | |
" <th>hardtop</th>\n", | |
" <th>hatchback</th>\n", | |
" <th>sedan</th>\n", | |
" <th>wagon</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>drive-wheels</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>4wd</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>7603.000000</td>\n", | |
" <td>12647.333333</td>\n", | |
" <td>9095.750000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>fwd</th>\n", | |
" <td>11595.0</td>\n", | |
" <td>8249.000000</td>\n", | |
" <td>8396.387755</td>\n", | |
" <td>9811.800000</td>\n", | |
" <td>9997.333333</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>rwd</th>\n", | |
" <td>23949.6</td>\n", | |
" <td>24202.714286</td>\n", | |
" <td>14337.777778</td>\n", | |
" <td>21711.833333</td>\n", | |
" <td>16994.222222</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price \\\n", | |
"body-style convertible hardtop hatchback sedan \n", | |
"drive-wheels \n", | |
"4wd 0.0 0.000000 7603.000000 12647.333333 \n", | |
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n", | |
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n", | |
"\n", | |
" \n", | |
"body-style wagon \n", | |
"drive-wheels \n", | |
"4wd 9095.750000 \n", | |
"fwd 9997.333333 \n", | |
"rwd 16994.222222 " | |
] | |
}, | |
"execution_count": 41, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n", | |
"grouped_pivot" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
"<h1>Question 4:</h1>\n", | |
"\n", | |
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>body-style</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>body-style</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>convertible</td>\n", | |
" <td>21890.500000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>hardtop</td>\n", | |
" <td>22208.500000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>hatchback</td>\n", | |
" <td>9957.441176</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>sedan</td>\n", | |
" <td>14459.755319</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>wagon</td>\n", | |
" <td>12371.960000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" body-style price\n", | |
"body-style \n", | |
"0 convertible 21890.500000\n", | |
"1 hardtop 22208.500000\n", | |
"2 hatchback 9957.441176\n", | |
"3 sedan 14459.755319\n", | |
"4 wagon 12371.960000" | |
] | |
}, | |
"execution_count": 43, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"avg_group= df[['body-style', 'price']]\n", | |
"avg_group = avg_group.groupby(['body-style'], as_index=False).mean()\n", | |
"avg_group.index.name='body-style'\n", | |
"avg_group" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click <b>here</b> for the solution.\n", | |
"\n", | |
"<!-- The answer is below:\n", | |
"\n", | |
"# grouping results\n", | |
"df_gptest2 = df[['body-style','price']]\n", | |
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n", | |
"grouped_test_bodystyle\n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If you did not import \"pyplot\" let's do it again. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's use a heat map to visualize the relationship between Body Style vs Price." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#use the grouped results\n", | |
"plt.pcolor(grouped_pivot, cmap='RdBu')\n", | |
"plt.xlabel('body-style')\n", | |
"plt.ylabel('price')\n", | |
"plt.title('Body Style vs Price')\n", | |
"plt.colorbar()\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n", | |
"\n", | |
"<p>The default labels convey no useful information to us. Let's change that:</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 48, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig, ax = plt.subplots()\n", | |
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n", | |
"\n", | |
"#label names\n", | |
"row_labels = grouped_pivot.columns.levels[1]\n", | |
"col_labels = grouped_pivot.index\n", | |
"\n", | |
"#move ticks and labels to the center\n", | |
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n", | |
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n", | |
"\n", | |
"#insert labels\n", | |
"ax.set_xticklabels(row_labels, minor=False)\n", | |
"ax.set_yticklabels(col_labels, minor=False)\n", | |
"\n", | |
"#rotate label if too long\n", | |
"plt.xticks(rotation=90)\n", | |
"\n", | |
"fig.colorbar(im)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n", | |
"\n", | |
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n", | |
"\n", | |
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n", | |
"\n", | |
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n", | |
"\n", | |
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p3>Pearson Correlation</p>\n", | |
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n", | |
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n", | |
"<ul>\n", | |
" <li><b>1</b>: Total positive linear correlation.</li>\n", | |
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n", | |
" <li><b>-1</b>: Total negative linear correlation.</li>\n", | |
"</ul>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>symboling</th>\n", | |
" <th>normalized-losses</th>\n", | |
" <th>wheel-base</th>\n", | |
" <th>length</th>\n", | |
" <th>width</th>\n", | |
" <th>height</th>\n", | |
" <th>curb-weight</th>\n", | |
" <th>engine-size</th>\n", | |
" <th>bore</th>\n", | |
" <th>stroke</th>\n", | |
" <th>compression-ratio</th>\n", | |
" <th>horsepower</th>\n", | |
" <th>peak-rpm</th>\n", | |
" <th>city-mpg</th>\n", | |
" <th>highway-mpg</th>\n", | |
" <th>price</th>\n", | |
" <th>city-L/100km</th>\n", | |
" <th>diesel</th>\n", | |
" <th>gas</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>symboling</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.466264</td>\n", | |
" <td>-0.535987</td>\n", | |
" <td>-0.365404</td>\n", | |
" <td>-0.242423</td>\n", | |
" <td>-0.550160</td>\n", | |
" <td>-0.233118</td>\n", | |
" <td>-0.110581</td>\n", | |
" <td>-0.140019</td>\n", | |
" <td>-0.008245</td>\n", | |
" <td>-0.182196</td>\n", | |
" <td>0.075819</td>\n", | |
" <td>0.279740</td>\n", | |
" <td>-0.035527</td>\n", | |
" <td>0.036233</td>\n", | |
" <td>-0.082391</td>\n", | |
" <td>0.066171</td>\n", | |
" <td>-0.196735</td>\n", | |
" <td>0.196735</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>normalized-losses</th>\n", | |
" <td>0.466264</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.056661</td>\n", | |
" <td>0.019424</td>\n", | |
" <td>0.086802</td>\n", | |
" <td>-0.373737</td>\n", | |
" <td>0.099404</td>\n", | |
" <td>0.112360</td>\n", | |
" <td>-0.029862</td>\n", | |
" <td>0.055563</td>\n", | |
" <td>-0.114713</td>\n", | |
" <td>0.217299</td>\n", | |
" <td>0.239543</td>\n", | |
" <td>-0.225016</td>\n", | |
" <td>-0.181877</td>\n", | |
" <td>0.133999</td>\n", | |
" <td>0.238567</td>\n", | |
" <td>-0.101546</td>\n", | |
" <td>0.101546</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>wheel-base</th>\n", | |
" <td>-0.535987</td>\n", | |
" <td>-0.056661</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.876024</td>\n", | |
" <td>0.814507</td>\n", | |
" <td>0.590742</td>\n", | |
" <td>0.782097</td>\n", | |
" <td>0.572027</td>\n", | |
" <td>0.493244</td>\n", | |
" <td>0.158502</td>\n", | |
" <td>0.250313</td>\n", | |
" <td>0.371147</td>\n", | |
" <td>-0.360305</td>\n", | |
" <td>-0.470606</td>\n", | |
" <td>-0.543304</td>\n", | |
" <td>0.584642</td>\n", | |
" <td>0.476153</td>\n", | |
" <td>0.307237</td>\n", | |
" <td>-0.307237</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>length</th>\n", | |
" <td>-0.365404</td>\n", | |
" <td>0.019424</td>\n", | |
" <td>0.876024</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.857170</td>\n", | |
" <td>0.492063</td>\n", | |
" <td>0.880665</td>\n", | |
" <td>0.685025</td>\n", | |
" <td>0.608971</td>\n", | |
" <td>0.124139</td>\n", | |
" <td>0.159733</td>\n", | |
" <td>0.579821</td>\n", | |
" <td>-0.285970</td>\n", | |
" <td>-0.665192</td>\n", | |
" <td>-0.698142</td>\n", | |
" <td>0.690628</td>\n", | |
" <td>0.657373</td>\n", | |
" <td>0.211187</td>\n", | |
" <td>-0.211187</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>width</th>\n", | |
" <td>-0.242423</td>\n", | |
" <td>0.086802</td>\n", | |
" <td>0.814507</td>\n", | |
" <td>0.857170</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.306002</td>\n", | |
" <td>0.866201</td>\n", | |
" <td>0.729436</td>\n", | |
" <td>0.544885</td>\n", | |
" <td>0.188829</td>\n", | |
" <td>0.189867</td>\n", | |
" <td>0.615077</td>\n", | |
" <td>-0.245800</td>\n", | |
" <td>-0.633531</td>\n", | |
" <td>-0.680635</td>\n", | |
" <td>0.751265</td>\n", | |
" <td>0.673363</td>\n", | |
" <td>0.244356</td>\n", | |
" <td>-0.244356</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>height</th>\n", | |
" <td>-0.550160</td>\n", | |
" <td>-0.373737</td>\n", | |
" <td>0.590742</td>\n", | |
" <td>0.492063</td>\n", | |
" <td>0.306002</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.307581</td>\n", | |
" <td>0.074694</td>\n", | |
" <td>0.180449</td>\n", | |
" <td>-0.062704</td>\n", | |
" <td>0.259737</td>\n", | |
" <td>-0.087027</td>\n", | |
" <td>-0.309974</td>\n", | |
" <td>-0.049800</td>\n", | |
" <td>-0.104812</td>\n", | |
" <td>0.135486</td>\n", | |
" <td>0.003811</td>\n", | |
" <td>0.281578</td>\n", | |
" <td>-0.281578</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>curb-weight</th>\n", | |
" <td>-0.233118</td>\n", | |
" <td>0.099404</td>\n", | |
" <td>0.782097</td>\n", | |
" <td>0.880665</td>\n", | |
" <td>0.866201</td>\n", | |
" <td>0.307581</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.849072</td>\n", | |
" <td>0.644060</td>\n", | |
" <td>0.167562</td>\n", | |
" <td>0.156433</td>\n", | |
" <td>0.757976</td>\n", | |
" <td>-0.279361</td>\n", | |
" <td>-0.749543</td>\n", | |
" <td>-0.794889</td>\n", | |
" <td>0.834415</td>\n", | |
" <td>0.785353</td>\n", | |
" <td>0.221046</td>\n", | |
" <td>-0.221046</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>engine-size</th>\n", | |
" <td>-0.110581</td>\n", | |
" <td>0.112360</td>\n", | |
" <td>0.572027</td>\n", | |
" <td>0.685025</td>\n", | |
" <td>0.729436</td>\n", | |
" <td>0.074694</td>\n", | |
" <td>0.849072</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.572609</td>\n", | |
" <td>0.209523</td>\n", | |
" <td>0.028889</td>\n", | |
" <td>0.822676</td>\n", | |
" <td>-0.256733</td>\n", | |
" <td>-0.650546</td>\n", | |
" <td>-0.679571</td>\n", | |
" <td>0.872335</td>\n", | |
" <td>0.745059</td>\n", | |
" <td>0.070779</td>\n", | |
" <td>-0.070779</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>bore</th>\n", | |
" <td>-0.140019</td>\n", | |
" <td>-0.029862</td>\n", | |
" <td>0.493244</td>\n", | |
" <td>0.608971</td>\n", | |
" <td>0.544885</td>\n", | |
" <td>0.180449</td>\n", | |
" <td>0.644060</td>\n", | |
" <td>0.572609</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.055390</td>\n", | |
" <td>0.001263</td>\n", | |
" <td>0.566936</td>\n", | |
" <td>-0.267392</td>\n", | |
" <td>-0.582027</td>\n", | |
" <td>-0.591309</td>\n", | |
" <td>0.543155</td>\n", | |
" <td>0.554610</td>\n", | |
" <td>0.054458</td>\n", | |
" <td>-0.054458</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>stroke</th>\n", | |
" <td>-0.008245</td>\n", | |
" <td>0.055563</td>\n", | |
" <td>0.158502</td>\n", | |
" <td>0.124139</td>\n", | |
" <td>0.188829</td>\n", | |
" <td>-0.062704</td>\n", | |
" <td>0.167562</td>\n", | |
" <td>0.209523</td>\n", | |
" <td>-0.055390</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.187923</td>\n", | |
" <td>0.098462</td>\n", | |
" <td>-0.065713</td>\n", | |
" <td>-0.034696</td>\n", | |
" <td>-0.035201</td>\n", | |
" <td>0.082310</td>\n", | |
" <td>0.037300</td>\n", | |
" <td>0.241303</td>\n", | |
" <td>-0.241303</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>compression-ratio</th>\n", | |
" <td>-0.182196</td>\n", | |
" <td>-0.114713</td>\n", | |
" <td>0.250313</td>\n", | |
" <td>0.159733</td>\n", | |
" <td>0.189867</td>\n", | |
" <td>0.259737</td>\n", | |
" <td>0.156433</td>\n", | |
" <td>0.028889</td>\n", | |
" <td>0.001263</td>\n", | |
" <td>0.187923</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.214514</td>\n", | |
" <td>-0.435780</td>\n", | |
" <td>0.331425</td>\n", | |
" <td>0.268465</td>\n", | |
" <td>0.071107</td>\n", | |
" <td>-0.299372</td>\n", | |
" <td>0.985231</td>\n", | |
" <td>-0.985231</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>horsepower</th>\n", | |
" <td>0.075819</td>\n", | |
" <td>0.217299</td>\n", | |
" <td>0.371147</td>\n", | |
" <td>0.579821</td>\n", | |
" <td>0.615077</td>\n", | |
" <td>-0.087027</td>\n", | |
" <td>0.757976</td>\n", | |
" <td>0.822676</td>\n", | |
" <td>0.566936</td>\n", | |
" <td>0.098462</td>\n", | |
" <td>-0.214514</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.107885</td>\n", | |
" <td>-0.822214</td>\n", | |
" <td>-0.804575</td>\n", | |
" <td>0.809575</td>\n", | |
" <td>0.889488</td>\n", | |
" <td>-0.169053</td>\n", | |
" <td>0.169053</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>peak-rpm</th>\n", | |
" <td>0.279740</td>\n", | |
" <td>0.239543</td>\n", | |
" <td>-0.360305</td>\n", | |
" <td>-0.285970</td>\n", | |
" <td>-0.245800</td>\n", | |
" <td>-0.309974</td>\n", | |
" <td>-0.279361</td>\n", | |
" <td>-0.256733</td>\n", | |
" <td>-0.267392</td>\n", | |
" <td>-0.065713</td>\n", | |
" <td>-0.435780</td>\n", | |
" <td>0.107885</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.115413</td>\n", | |
" <td>-0.058598</td>\n", | |
" <td>-0.101616</td>\n", | |
" <td>0.115830</td>\n", | |
" <td>-0.475812</td>\n", | |
" <td>0.475812</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>city-mpg</th>\n", | |
" <td>-0.035527</td>\n", | |
" <td>-0.225016</td>\n", | |
" <td>-0.470606</td>\n", | |
" <td>-0.665192</td>\n", | |
" <td>-0.633531</td>\n", | |
" <td>-0.049800</td>\n", | |
" <td>-0.749543</td>\n", | |
" <td>-0.650546</td>\n", | |
" <td>-0.582027</td>\n", | |
" <td>-0.034696</td>\n", | |
" <td>0.331425</td>\n", | |
" <td>-0.822214</td>\n", | |
" <td>-0.115413</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.972044</td>\n", | |
" <td>-0.686571</td>\n", | |
" <td>-0.949713</td>\n", | |
" <td>0.265676</td>\n", | |
" <td>-0.265676</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>highway-mpg</th>\n", | |
" <td>0.036233</td>\n", | |
" <td>-0.181877</td>\n", | |
" <td>-0.543304</td>\n", | |
" <td>-0.698142</td>\n", | |
" <td>-0.680635</td>\n", | |
" <td>-0.104812</td>\n", | |
" <td>-0.794889</td>\n", | |
" <td>-0.679571</td>\n", | |
" <td>-0.591309</td>\n", | |
" <td>-0.035201</td>\n", | |
" <td>0.268465</td>\n", | |
" <td>-0.804575</td>\n", | |
" <td>-0.058598</td>\n", | |
" <td>0.972044</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.704692</td>\n", | |
" <td>-0.930028</td>\n", | |
" <td>0.198690</td>\n", | |
" <td>-0.198690</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>price</th>\n", | |
" <td>-0.082391</td>\n", | |
" <td>0.133999</td>\n", | |
" <td>0.584642</td>\n", | |
" <td>0.690628</td>\n", | |
" <td>0.751265</td>\n", | |
" <td>0.135486</td>\n", | |
" <td>0.834415</td>\n", | |
" <td>0.872335</td>\n", | |
" <td>0.543155</td>\n", | |
" <td>0.082310</td>\n", | |
" <td>0.071107</td>\n", | |
" <td>0.809575</td>\n", | |
" <td>-0.101616</td>\n", | |
" <td>-0.686571</td>\n", | |
" <td>-0.704692</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.789898</td>\n", | |
" <td>0.110326</td>\n", | |
" <td>-0.110326</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>city-L/100km</th>\n", | |
" <td>0.066171</td>\n", | |
" <td>0.238567</td>\n", | |
" <td>0.476153</td>\n", | |
" <td>0.657373</td>\n", | |
" <td>0.673363</td>\n", | |
" <td>0.003811</td>\n", | |
" <td>0.785353</td>\n", | |
" <td>0.745059</td>\n", | |
" <td>0.554610</td>\n", | |
" <td>0.037300</td>\n", | |
" <td>-0.299372</td>\n", | |
" <td>0.889488</td>\n", | |
" <td>0.115830</td>\n", | |
" <td>-0.949713</td>\n", | |
" <td>-0.930028</td>\n", | |
" <td>0.789898</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-0.241282</td>\n", | |
" <td>0.241282</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>diesel</th>\n", | |
" <td>-0.196735</td>\n", | |
" <td>-0.101546</td>\n", | |
" <td>0.307237</td>\n", | |
" <td>0.211187</td>\n", | |
" <td>0.244356</td>\n", | |
" <td>0.281578</td>\n", | |
" <td>0.221046</td>\n", | |
" <td>0.070779</td>\n", | |
" <td>0.054458</td>\n", | |
" <td>0.241303</td>\n", | |
" <td>0.985231</td>\n", | |
" <td>-0.169053</td>\n", | |
" <td>-0.475812</td>\n", | |
" <td>0.265676</td>\n", | |
" <td>0.198690</td>\n", | |
" <td>0.110326</td>\n", | |
" <td>-0.241282</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>-1.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>gas</th>\n", | |
" <td>0.196735</td>\n", | |
" <td>0.101546</td>\n", | |
" <td>-0.307237</td>\n", | |
" <td>-0.211187</td>\n", | |
" <td>-0.244356</td>\n", | |
" <td>-0.281578</td>\n", | |
" <td>-0.221046</td>\n", | |
" <td>-0.070779</td>\n", | |
" <td>-0.054458</td>\n", | |
" <td>-0.241303</td>\n", | |
" <td>-0.985231</td>\n", | |
" <td>0.169053</td>\n", | |
" <td>0.475812</td>\n", | |
" <td>-0.265676</td>\n", | |
" <td>-0.198690</td>\n", | |
" <td>-0.110326</td>\n", | |
" <td>0.241282</td>\n", | |
" <td>-1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" symboling normalized-losses wheel-base length \\\n", | |
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n", | |
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n", | |
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n", | |
"length -0.365404 0.019424 0.876024 1.000000 \n", | |
"width -0.242423 0.086802 0.814507 0.857170 \n", | |
"height -0.550160 -0.373737 0.590742 0.492063 \n", | |
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n", | |
"engine-size -0.110581 0.112360 0.572027 0.685025 \n", | |
"bore -0.140019 -0.029862 0.493244 0.608971 \n", | |
"stroke -0.008245 0.055563 0.158502 0.124139 \n", | |
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n", | |
"horsepower 0.075819 0.217299 0.371147 0.579821 \n", | |
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n", | |
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n", | |
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n", | |
"price -0.082391 0.133999 0.584642 0.690628 \n", | |
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n", | |
"diesel -0.196735 -0.101546 0.307237 0.211187 \n", | |
"gas 0.196735 0.101546 -0.307237 -0.211187 \n", | |
"\n", | |
" width height curb-weight engine-size bore \\\n", | |
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n", | |
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n", | |
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n", | |
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n", | |
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n", | |
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n", | |
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n", | |
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n", | |
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n", | |
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n", | |
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n", | |
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n", | |
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n", | |
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n", | |
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n", | |
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n", | |
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n", | |
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n", | |
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n", | |
"\n", | |
" stroke compression-ratio horsepower peak-rpm \\\n", | |
"symboling -0.008245 -0.182196 0.075819 0.279740 \n", | |
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n", | |
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n", | |
"length 0.124139 0.159733 0.579821 -0.285970 \n", | |
"width 0.188829 0.189867 0.615077 -0.245800 \n", | |
"height -0.062704 0.259737 -0.087027 -0.309974 \n", | |
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n", | |
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n", | |
"bore -0.055390 0.001263 0.566936 -0.267392 \n", | |
"stroke 1.000000 0.187923 0.098462 -0.065713 \n", | |
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n", | |
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n", | |
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n", | |
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n", | |
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n", | |
"price 0.082310 0.071107 0.809575 -0.101616 \n", | |
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n", | |
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n", | |
"gas -0.241303 -0.985231 0.169053 0.475812 \n", | |
"\n", | |
" city-mpg highway-mpg price city-L/100km diesel \\\n", | |
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n", | |
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n", | |
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n", | |
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n", | |
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n", | |
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n", | |
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n", | |
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n", | |
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n", | |
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n", | |
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n", | |
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n", | |
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n", | |
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n", | |
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n", | |
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n", | |
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n", | |
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n", | |
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n", | |
"\n", | |
" gas \n", | |
"symboling 0.196735 \n", | |
"normalized-losses 0.101546 \n", | |
"wheel-base -0.307237 \n", | |
"length -0.211187 \n", | |
"width -0.244356 \n", | |
"height -0.281578 \n", | |
"curb-weight -0.221046 \n", | |
"engine-size -0.070779 \n", | |
"bore -0.054458 \n", | |
"stroke -0.241303 \n", | |
"compression-ratio -0.985231 \n", | |
"horsepower 0.169053 \n", | |
"peak-rpm 0.475812 \n", | |
"city-mpg -0.265676 \n", | |
"highway-mpg -0.198690 \n", | |
"price -0.110326 \n", | |
"city-L/100km 0.241282 \n", | |
"diesel -1.000000 \n", | |
"gas 1.000000 " | |
] | |
}, | |
"execution_count": 49, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" sometimes we would like to know the significant of the correlation estimate. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<b>P-value</b>: \n", | |
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n", | |
"\n", | |
"By convention, when the\n", | |
"<ul>\n", | |
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n", | |
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n", | |
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n", | |
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n", | |
"</ul>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can obtain this information using \"stats\" module in the \"scipy\" library." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 50, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from scipy import stats" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Wheel-base vs Price</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 51, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n", | |
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h5>Conclusion:</h5>\n", | |
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Horsepower vs Price</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n", | |
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h5>Conclusion:</h5>\n", | |
"\n", | |
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Length vs Price</h3>\n", | |
"\n", | |
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 53, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n", | |
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h5>Conclusion:</h5>\n", | |
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Width vs Price</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 54, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n", | |
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##### Conclusion:\n", | |
"\n", | |
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Curb-weight vs Price" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 55, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n", | |
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h5>Conclusion:</h5>\n", | |
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Engine-size vs Price</h3>\n", | |
"\n", | |
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 57, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n", | |
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h5>Conclusion:</h5>\n", | |
"\n", | |
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Bore vs Price</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 58, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n", | |
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h5>Conclusion:</h5>\n", | |
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can relate the process for each 'City-mpg' and 'Highway-mpg':" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>City-mpg vs Price</h3>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 59, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n", | |
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h5>Conclusion:</h5>\n", | |
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Highway-mpg vs Price</h3>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 60, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n", | |
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##### Conclusion:\n", | |
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"anova\">6. ANOVA</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>ANOVA: Analysis of Variance</h3>\n", | |
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n", | |
"\n", | |
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n", | |
"\n", | |
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n", | |
"\n", | |
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Drive Wheels</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n", | |
"\n", | |
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's see if different types 'drive-wheels' impact 'price', we group the data." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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>drive-wheels</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>rwd</td>\n", | |
" <td>13495.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>rwd</td>\n", | |
" <td>16500.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>fwd</td>\n", | |
" <td>13950.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>4wd</td>\n", | |
" <td>17450.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>fwd</td>\n", | |
" <td>15250.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>136</th>\n", | |
" <td>4wd</td>\n", | |
" <td>7603.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" drive-wheels price\n", | |
"0 rwd 13495.0\n", | |
"1 rwd 16500.0\n", | |
"3 fwd 13950.0\n", | |
"4 4wd 17450.0\n", | |
"5 fwd 15250.0\n", | |
"136 4wd 7603.0" | |
] | |
}, | |
"execution_count": 62, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n", | |
"grouped_test2.head(2)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 63, | |
"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>drive-wheels</th>\n", | |
" <th>body-style</th>\n", | |
" <th>price</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>rwd</td>\n", | |
" <td>convertible</td>\n", | |
" <td>13495.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>rwd</td>\n", | |
" <td>convertible</td>\n", | |
" <td>16500.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>rwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>16500.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>13950.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>4wd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>17450.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>15250.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>17710.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>fwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>18920.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>23875.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>16430.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>16925.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>20970.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>21105.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>24565.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>30760.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>41315.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>36880.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>5151.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>6295.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>6575.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>5572.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>6377.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>22</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>7957.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>6229.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>6692.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>7609.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>26</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>8558.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27</th>\n", | |
" <td>fwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>8921.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>28</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>12964.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>29</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>6479.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>171</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>9988.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>172</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>10898.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>173</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>11248.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>174</th>\n", | |
" <td>rwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>16558.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>175</th>\n", | |
" <td>rwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>15998.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>176</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>15690.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>177</th>\n", | |
" <td>rwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>15750.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>178</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>7775.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>179</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>7975.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>180</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>7995.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>181</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>8195.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>182</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>8495.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>183</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>9495.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>184</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>9995.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>185</th>\n", | |
" <td>fwd</td>\n", | |
" <td>convertible</td>\n", | |
" <td>11595.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>186</th>\n", | |
" <td>fwd</td>\n", | |
" <td>hatchback</td>\n", | |
" <td>9980.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>187</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>13295.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>188</th>\n", | |
" <td>fwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>13845.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>189</th>\n", | |
" <td>fwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>12290.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>190</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>12940.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>191</th>\n", | |
" <td>rwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>13415.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>192</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>15985.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>193</th>\n", | |
" <td>rwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>16515.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>194</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>18420.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>195</th>\n", | |
" <td>rwd</td>\n", | |
" <td>wagon</td>\n", | |
" <td>18950.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>196</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>16845.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>197</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>19045.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>198</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>21485.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>199</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>22470.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>200</th>\n", | |
" <td>rwd</td>\n", | |
" <td>sedan</td>\n", | |
" <td>22625.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>201 rows × 3 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" drive-wheels body-style price\n", | |
"0 rwd convertible 13495.0\n", | |
"1 rwd convertible 16500.0\n", | |
"2 rwd hatchback 16500.0\n", | |
"3 fwd sedan 13950.0\n", | |
"4 4wd sedan 17450.0\n", | |
"5 fwd sedan 15250.0\n", | |
"6 fwd sedan 17710.0\n", | |
"7 fwd wagon 18920.0\n", | |
"8 fwd sedan 23875.0\n", | |
"9 rwd sedan 16430.0\n", | |
"10 rwd sedan 16925.0\n", | |
"11 rwd sedan 20970.0\n", | |
"12 rwd sedan 21105.0\n", | |
"13 rwd sedan 24565.0\n", | |
"14 rwd sedan 30760.0\n", | |
"15 rwd sedan 41315.0\n", | |
"16 rwd sedan 36880.0\n", | |
"17 fwd hatchback 5151.0\n", | |
"18 fwd hatchback 6295.0\n", | |
"19 fwd sedan 6575.0\n", | |
"20 fwd hatchback 5572.0\n", | |
"21 fwd hatchback 6377.0\n", | |
"22 fwd hatchback 7957.0\n", | |
"23 fwd hatchback 6229.0\n", | |
"24 fwd sedan 6692.0\n", | |
"25 fwd sedan 7609.0\n", | |
"26 fwd sedan 8558.0\n", | |
"27 fwd wagon 8921.0\n", | |
"28 fwd hatchback 12964.0\n", | |
"29 fwd hatchback 6479.0\n", | |
".. ... ... ...\n", | |
"171 fwd hatchback 9988.0\n", | |
"172 fwd sedan 10898.0\n", | |
"173 fwd hatchback 11248.0\n", | |
"174 rwd hatchback 16558.0\n", | |
"175 rwd hatchback 15998.0\n", | |
"176 rwd sedan 15690.0\n", | |
"177 rwd wagon 15750.0\n", | |
"178 fwd sedan 7775.0\n", | |
"179 fwd sedan 7975.0\n", | |
"180 fwd sedan 7995.0\n", | |
"181 fwd sedan 8195.0\n", | |
"182 fwd sedan 8495.0\n", | |
"183 fwd sedan 9495.0\n", | |
"184 fwd sedan 9995.0\n", | |
"185 fwd convertible 11595.0\n", | |
"186 fwd hatchback 9980.0\n", | |
"187 fwd sedan 13295.0\n", | |
"188 fwd sedan 13845.0\n", | |
"189 fwd wagon 12290.0\n", | |
"190 rwd sedan 12940.0\n", | |
"191 rwd wagon 13415.0\n", | |
"192 rwd sedan 15985.0\n", | |
"193 rwd wagon 16515.0\n", | |
"194 rwd sedan 18420.0\n", | |
"195 rwd wagon 18950.0\n", | |
"196 rwd sedan 16845.0\n", | |
"197 rwd sedan 19045.0\n", | |
"198 rwd sedan 21485.0\n", | |
"199 rwd sedan 22470.0\n", | |
"200 rwd sedan 22625.0\n", | |
"\n", | |
"[201 rows x 3 columns]" | |
] | |
}, | |
"execution_count": 63, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df_gptest" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can obtain the values of the method group using the method \"get_group\". " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 72, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"4 17450.0\n", | |
"136 7603.0\n", | |
"140 9233.0\n", | |
"141 11259.0\n", | |
"144 8013.0\n", | |
"145 11694.0\n", | |
"150 7898.0\n", | |
"151 8778.0\n", | |
"Name: price, dtype: float64" | |
] | |
}, | |
"execution_count": 72, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"grouped_test2.get_group('4wd')['price']" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 73, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n" | |
] | |
} | |
], | |
"source": [ | |
"# ANOVA\n", | |
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n", | |
" \n", | |
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Separately: fwd and rwd" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 74, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n" | |
] | |
} | |
], | |
"source": [ | |
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n", | |
" \n", | |
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's examine the other groups " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### 4wd and rwd" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 75, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n" | |
] | |
} | |
], | |
"source": [ | |
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n", | |
" \n", | |
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>4wd and fwd</h4>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 76, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n" | |
] | |
} | |
], | |
"source": [ | |
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n", | |
" \n", | |
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Conclusion: Important Variables</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n", | |
"\n", | |
"Continuous numerical variables:\n", | |
"<ul>\n", | |
" <li>Length</li>\n", | |
" <li>Width</li>\n", | |
" <li>Curb-weight</li>\n", | |
" <li>Engine-size</li>\n", | |
" <li>Horsepower</li>\n", | |
" <li>City-mpg</li>\n", | |
" <li>Highway-mpg</li>\n", | |
" <li>Wheel-base</li>\n", | |
" <li>Bore</li>\n", | |
"</ul>\n", | |
" \n", | |
"Categorical variables:\n", | |
"<ul>\n", | |
" <li>Drive-wheels</li>\n", | |
"</ul>\n", | |
"\n", | |
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h1>Thank you for completing this notebook</h1>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
"\n", | |
" <p><a href=\"https://cocl.us/DA0101EN_NotbookLink_Top_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n", | |
"</div>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>About the Authors:</h3>\n", | |
"\n", | |
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n", | |
"\n", | |
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>\n", | |
"<p>Copyright © 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>" | |
] | |
} | |
], | |
"metadata": { | |
"anaconda-cloud": {}, | |
"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.6.8" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment