Created
March 29, 2019 07:24
-
-
Save MarwenAouiti/dcd235aae39e52a0f0a72d4b2a7aee3f to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
This file contains hidden or 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": 1, | |
"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": 2, | |
"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": 2, | |
"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": 3, | |
"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": 4, | |
"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": 5, | |
"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": "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": 6, | |
"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": 6, | |
"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": 8, | |
"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": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"df[['bore','stroke' ,'compression-ratio','horsepower']].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": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(0, 55640.97488203202)" | |
] | |
}, | |
"execution_count": 10, | |
"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": [ | |
"# 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 0x7f804138bcf8>" | |
] | |
}, | |
"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 0x7f80413046d8>" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEKCAYAAADaa8itAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztvXt4XOV16P1bey6625JtCRzbYDtxYiAtBBQuTY6PS1Ji0hyg30NPoW2gOUlNW/iSnjYp0NNcPkjzQW9J6GmpKaFA28ShbvPhLwdCIcR104MBm0sSxw52ZEDmJtmWrctImste54/9zmgkzUgz0tw0Wr/nGWb2mndfXkbea6/Lu5aoKoZhGIZRCrxqX4BhGIZRP5hSMQzDMEqGKRXDMAyjZJhSMQzDMEqGKRXDMAyjZJhSMQzDMEqGKRXDMAyjZJhSMQzDMEqGKRXDMAyjZISrfQGVZsWKFbp27dpqX4ZhGMaCYt++fcdUtXO2cYtOqaxdu5a9e/dW+zIMwzAWFCLySiHjzP1lGIZhlAxTKoZhGEbJMKViGIZhlAxTKoZhGEbJMKViGIZhlIxFl/21GNh1sI9tu3voHYixpqOZGzatZ/PGrmpflmEYiwCzVOqMXQf7+NzO/fQNjdHeFKFvaIzP7dzProN91b40wzAWAWVXKiISEpHnReTbbvt+ETkiIi+413lOLiJyl4gcFpEfiMj5Wce4XkQOudf1WfILROSHbp+7RETKPZ9aZ9vuHiIhoTkaRiR4j4SEbbt7qn1phmEsAiphqXwKODBF9hlVPc+9XnCyy4EN7rUVuBtARJYBnwcuAi4EPi8iHW6fu93Y9H5byjmRhUDvQIymSGiSrCkS4uhArEpXZBjGYqKsSkVEVgO/CNxbwPArgQc1YA/QLiIrgQ8Bj6vqCVUdAB4HtrjvlqjqU6qqwIPAVeWZycJhTUczo4nUJNloIsXqjuYqXZFhGIuJclsqXwH+APCnyP/Yubi+LCINTrYK6M0ac9TJZpIfzSGfhohsFZG9IrK3v79/zpNZCNywaT2JlBKLJ1EN3hMp5YZN66t9aYZhLALKplRE5CNAn6rum/LVrcBG4L3AMuDm9C45DqNzkE8Xqt6jqt2q2t3ZOWs9tAXN5o1d3HbFOXS1NXJqNEFXWyO3XXGOZX8ZhlERyplS/D7gChH5MNAILBGRf1DVX3ffj4vI3wGfdttHgTVZ+68GXnfyzVPku5x8dY7xi57NG7tMiRiGURXKZqmo6q2qulpV1wLXAE+q6q+7WAguU+sq4Edul53AdS4L7GLglKq+ATwGXCYiHS5AfxnwmPtuSEQudse6Dni4XPMxDMMwZqcaix//UUQ6CdxXLwC/5eSPAB8GDgMx4GMAqnpCRG4HnnXjblPVE+7zbwP3A03Ao+5lGIZhVAkJEqcWD93d3Wr9VAzDMIpDRPapavds42xFvWEYhlEyTKkYhmEYJcOUimEYhlEyTKkYhmEYJcOUimEYhlEyTKkYhmEYJcOUimEYhlEyTKkYhmEYJcOUimEYhlEyrEe9YdQQuw72sW13D70DMdZ0NHPDpvVWHNRYUJilYhg1wq6DfXxu5376hsZob4rQNzTG53buZ9fBvmpfmmEUjFkqdYg97S5Mtu3uIRISmqPBP8vmaJhYPMm23T32+xkLBrNU6gx72l249A7EaIqEJsmaIiGODsSqdEWGUTymVOqM7KddkeA9EhK27e6p9qUZs7Cmo5nRRGqSbDSRYnVHc5WuyDCKx5RKnWFPuwuXGzatJ5FSYvEkqsF7IqXcsGl9tS/NMAqm7EpFREIi8ryIfNttrxORp0XkkIh8U0SiTt7gtg+779dmHeNWJ/+JiHwoS77FyQ6LyC3lnstCwJ52Fy6bN3Zx2xXn0NXWyKnRBF1tjdx2xTkWTzEWFJUI1H8KOAAscdt3Al9W1e0i8jfAx4G73fuAqr5DRK5x435FRM4maEd8DvA24AkReac71l8Bv0DQr/5ZEdmpqj+uwJxqlhs2redzO/cTiydpioQYTaTsaXcBsXljlykRY0FTVktFRFYDvwjc67YFuBTY4YY8QNCnHuBKt437/gNu/JXAdlUdV9UjBO2GL3Svw6rao6pxYLsbu6ixp13DMKpJuS2VrwB/ALS57eXASVVNuu2jwCr3eRXQC6CqSRE55cavAvZkHTN7n94p8otKPYGFiD3tGoZRLcpmqYjIR4A+Vd2XLc4xVGf5rlh5rmvZKiJ7RWRvf3//DFdtGIZhzIdyur/eB1whIi8TuKYuJbBc2kUkbSGtBl53n48CawDc90uBE9nyKfvkk09DVe9R1W5V7e7s7Jz/zAzDMIyclE2pqOqtqrpaVdcSBNqfVNVfA74HXO2GXQ887D7vdNu4759UVXXya1x22DpgA/AM8CywwWWTRd05dpZrPoZhGMbsVKNMy83AdhH5IvA88DUn/xrw9yJymMBCuQZAVfeLyEPAj4EkcKOqpgBE5CbgMSAE3Keq+ys6E8MwDGMSEhgDi4fu7m7du3dvtS/DMAxjQSEi+1S1e7ZxtqLeMAzDKBmmVAzDMIySYUrFMAzDKBmmVAzDMIySYUrFMAzDKBmmVAzDMIySYe2EDcOoOtYCu34wpWIYNcRivLmmW2BHQjKpBfZtUPdzr0fM/WUYNUL65to3NDbp5rrrYF+1L62sWAvs+sKUimHUCIv15motsOsLUyqGUSMs1purtcCuL0ypGHXDroN9XHvPHt5/55Nce8+eBec2Wqw31xs2rSeRUmLxJKrBu7XAXriYUjHqgnqIRyzWm6u1wK4vLPvLqAuy4xEAzdEwsXiSbbt7FszNafPGLm4jmMvRgRirF0n2F1gL7HrClIpRUqqVEts7EKO9KTJJthDjEXZzNRY65v4ySkY1XVCLNR5hGLVG2ZSKiDSKyDMi8qKI7BeR/8fJ7xeRIyLygnud5+QiIneJyGER+YGInJ91rOtF5JB7XZ8lv0BEfuj2uUtEpFzzMWZn2+4e4skUb54a4ydvDfHmqTHiyVRFUmIXazzCMGqNcrq/xoFLVXVYRCLA90XkUffdZ1R1x5TxlxP0n98AXATcDVwkIsuAzwPdgAL7RGSnqg64MVuBPcAjwBbgUYyq8NJbgwyOJfEQQiIkU8rxkTjJ1GDZz72Y4xGGUUuUTalo0Kd42G1G3Gum3sVXAg+6/faISLuIrAQ2A4+r6gkAEXkc2CIiu4AlqvqUkz8IXIUplaqRSAU/r+cFBqMI+L4ST1WmZbXFIwyj+pQ1piIiIRF5AegjUAxPu6/+2Lm4viwiDU62CujN2v2ok80kP5pDnus6torIXhHZ29/fP+95GbmJhj1Q8FVRFF8V1MkNw1gUlPVfu6qmVPU8YDVwoYi8G7gV2Ai8F1gG3OyG54qH6Bzkua7jHlXtVtXuzs7OImdhFMqGrjbaGsMkUj5jCZ9EyqetMcyGrrZqX5phGBWiIo+QqnoS2AVsUdU3NGAc+DvgQjfsKLAma7fVwOuzyFfnkBtV4pL1yzg1liTkCQ1hIeQJp8aSXLJ+WbUvzahxFno1BGOCcmZ/dYpIu/vcBHwQOOjiJLhMrauAH7lddgLXuSywi4FTqvoG8BhwmYh0iEgHcBnwmPtuSEQudse6Dni4XPMxZuepnhN0tkaJhjx8hWjIo7M1ylM9J6p9aUYNUw/VEIwJypn9tRJ4QERCBMrrIVX9tog8KSKdBO6rF4DfcuMfAT4MHAZiwMcAVPWEiNwOPOvG3ZYO2gO/DdwPNBEE6C1IX0V6B2KsaG2gs60xI1PVBbcA0ags9VANwZignNlfPwDek0N+aZ7xCtyY57v7gPtyyPcC757flRqlYk1HM31DY5mbA9gCRGN26qUaghFgaTlGybAFiMZcsGoI9YUpFaNkWLVZYy7Yw0h9YQUljZJiCxCNYrFqCPWFWSqGYdQMlam9YJQTUyqGYVQVSymuL8z9ZZSUavVTMRYullJcX5ilYpQMe+I05kLvQIymSGiSzFKKFy6mVIySkf3EKRK8R0JSkX4qxsLFUorrC1MqNUI91D6yJ05jLlhKcX1hSqUGqBe3kT1xGnPB1jfVFxaorwHqJVB5w6b1fG7nfmLxJE2REKOJlD1xGgVh65vqB7NUaoB6cRvZE6dhGGap1AD1VIjRnjjnh6VkGwsds1RqAAtUGlA/sTVjcWNKpQYwt5EBlpJt1Adlc3+JSCOwG2hw59mhqp8XkXXAdoL+9M8BH1XVuIg0AA8CFwDHgV9R1ZfdsW4FPg6kgE+q6mNOvgX4KhAC7lXVO8o1n3JjbiPD+ooY9UA5LZVx4FJVPRc4D9ji2gTfCXxZVTcAAwTKAvc+oKrvAL7sxiEiZwPXAOcAW4C/FpGQ6yj5V8DlwNnAtW6sYSxILCXbqAfKplQ0YNhtRtxLgUuBHU7+AEGfeoAr3Tbu+w+43vNXAttVdVxVjxC0G77QvQ6rao+qxgmsnyvLNR/DKDcWWzPqgbLGVJxF8QLQBzwO/BQ4qapJN+QosMp9XgX0ArjvTwHLs+VT9sknN4wFicXWjHqgrCnFqpoCzhORduBbwFm5hrl3yfNdPnkuhZizHYOIbAW2ApxxxhmzXLVhVA+LrRkLnYpkf6nqSWAXcDHQLiJpZbYaeN19PgqsAXDfLwVOZMun7JNPnuv896hqt6p2d3Z2lmJKhmEYRg7KplREpNNZKIhIE/BB4ADwPeBqN+x64GH3eafbxn3/pKqqk18jIg0uc2wD8AzwLLBBRNaJSJQgmL+zXPMxDMMwZqec7q+VwAMuS8sDHlLVb4vIj4HtIvJF4Hnga27814C/F5HDBBbKNQCqul9EHgJ+DCSBG51bDRG5CXiMIKX4PlXdX8b5GIZhGLMggTGweOju7ta9e/dW+zIMwzAWFCKyT1W7Zxtntb9qBKv5ZBhGPWBlWmqAXQf7+PSOF3m+d4C3Bsd4vneAT+940Wo+GYax4DClUgPc8egBTsYSqA8hEdSHk7EEdzx6oNqXZhiGURTm/qoBjhyP4Ql4XrAkRwTUV44ct5pPhmEsLMxSMQzDMEqGKZUaYP2KFnwFXxVF8VXxNZAbhmEsJEyp1AA3b9lIR3MEAZIpHwE6miPcvGVjtS/NMAyjKEyp1ACbN3bxp1efy3vO6GDl0ibec0YHf3r1uZZSbBjGgqPgQL2InAlsUNUnXNmVsKoOle/SFhdWSNAwjHqgIEtFRH6ToMfJNidaDfx/5boowzAMY2FSqPvrRuB9wCCAqh4C7LHaMAzDmEShSmXcdVcEMqXpF1fRMMMwDGNWClUq/yYifwg0icgvAP8E/P/luyzDMAxjIVKoUrkF6Ad+CNwAPAL8UbkuyjAMw1iYFJr91UTQr+RvIeg972RWR6REWJViwzDqgUItle8SKJE0TcATpb+cxcmug318bud++obGaG+K0Dc0xud27rcqxYZhLDgKVSqNqjqc3nCfm2faQUTWiMj3ROSAiOwXkU85+RdE5DURecG9Ppy1z60iclhEfiIiH8qSb3GywyJyS5Z8nYg8LSKHROSbrq3wgmPb7h4iIaE5GkYkeI+EhG27e6p9aYZhGEVRqFIZEZHz0xsicgEwOss+SeD3VfUs4GLgRhE52333ZVU9z70eccc8m6CF8DnAFuCvRSTkXG1/BVwOnA1cm3WcO92xNgADwMcLnE9N0TsQoykSmiRrioQ4OmDeRcMwFhaFxlR+F/gnEXndba8EfmWmHVT1DeAN93lIRA4Aq2bY5Upgu6qOA0dcr/oL3XeHVbUHQES2A1e6410K/Kob8wDwBeDuAudUVoqJkazpaKZvaIzm6MTPMZpIsbpjRmPQMAyj5ijIUlHVZ4GNwG8DvwOcpar7Cj2JiKwF3gM87UQ3icgPROQ+EelwslVAb9ZuR50sn3w5cFJVk1Pkuc6/VUT2isje/v7+Qi97zhQbI7lh03oSKSUWT6IavCdSyg2b1pf9Wg3DMErJjEpFRC517/8X8F+AdwIbgP/iZLMiIq3APwO/q6qDBJbE24HzCCyZP08PzbG7zkE+Xah6j6p2q2p3Z2dnIZc9L4qNkWze2MVtV5xDV1sjp0YTdLU1ctsV51j2l2EYC47Z3F//GXiSQKFMRYF/mWlnEYkQKJR/VNV/AVDVt7K+/1vg227zKLAma/fVQNrdlkt+DGgXkbCzVrLHV5XegRjtTZFJstliJFZQ0jCMemBGpaKqnxcRD3hUVR8q5sAiIsDXgAOq+hdZ8pUu3gLwS8CP3OedwNdF5C+AtxFYRM8QWCQbRGQd8BpBMP9XVVVF5HvA1cB24Hrg4WKusVxYjMSoJLbGyaglZo2pqKoP3DSHY78P+Chw6ZT04T8RkR+KyA+Anwf+uzvPfuAh4MfAd4AbVTXlrJCbgMeAA8BDbizAzcDvuaD+cgIlVnUsRmJUClvjZNQaojp7XUgR+SxBCvE3gZG0XFVPlO/SykN3d7fu3bu37OdJPz0eHYix2p4ejTJx7T17plnFsXiSrrZGvrH14ipemVFviMg+Ve2ebVyhKcX/jSCG8jtT5PbonQeLkRiVYC7xO8MoJ4UufjybYAHii8ALwF8SLFI0DKOKrOloZjSRmiSz+J1RTQpVKg8AZwF3ESiUs5zMMIwqYvE7o9Yo1P31LlU9N2v7eyLyYjkuyDAWM8Vmcm3e2MVtYPE7o2YoVKk8LyIXq+oeABG5CPiP8l2WUW9Y2uvspDO5IiGZlMl1G8yqWOz/pVErFOr+ugj43yLysoi8DDwF/Oes1GDDyIulvRaGVas26oFCLZUtZb0Ko67JvlkCNEfDxOJJtu3usSfsLOaayWVWoFFLFKRUVPWVcl+IUb9Y2mthzKUSw1xdZoZRLgp1fxnGnLG018KYSyaXucyMWsOUilF2LO21MOZSrbp3IEYy5dPTP8zBNwfp6R8mmfLNCjSqRqExFaNIzM89gaW9Fk6xmVyt0RCH+0cIiRASIZlSXjs5xjs6W8p4lYaRH1MqZWDXwT4+s+NFhsaSJH2fY0PjfGbHi/zp1ecu2huppb2Wh6AYOEEt73SHIc2SG0aFMfdXGbjzOwcZiCVQIBzyUGAgluDO7xys9qUZdcbQeJJV7Y2EPSHlK2FPWNXeyPB4cvadDaMMmKVSBnqOjeAJeO5pUQRUlJ5jI7PsaRjFkc4YW9/ZmpGlqxQbRjUwS8UwFjCWBGHUGmVTKiKyRkS+JyIHRGS/iHzKyZeJyOMicsi9dzi5iMhdInJYRH4gIudnHet6N/6QiFyfJb/Areo/7PatCUfyuuXN+Aq+r6gqvq/4GsgNo5TMJWPMMMpJOd1fSeD3VfU5EWkD9onI48BvAN9V1TtE5BbgFoIOjpcTtBDeQFAW5m7gIhFZBnwe6Cbo6bJPRHaq6oAbsxXYAzxCsPL/0TLOqSBuufwsPr3jRYbHk6R8JeQJ7Q0Rbrn8rGpfmlGHWBKEUUuUTam4PvRvuM9DInIAWAVcCWx2wx4AdhEolSuBBzVoRblHRNpFZKUb+3i6y6RTTFtEZBewRFWfcvIHgauoAaWyeWMXf3b1uZZCW2dYmrhhzE5FAvUishZ4D/A0cJpTOKjqGyKS/le5CujN2u2ok80kP5pDXhPY02N9YeVQDKMwyh6oF5FW4J+B31XVwZmG5pDpHOS5rmGriOwVkb39/f2zXbJhTMPKoRhGYZRVqYhIhECh/KOq/osTv+XcWrj3dP3zo8CarN1XA6/PIl+dQz4NVb1HVbtVtbuzs3N+kzIWJb0DMZoioUkyK4ppGNMpm/vLZWJ9DTigqn+R9dVO4HrgDvf+cJb8JhHZThCoP+XcY48BX0pniQGXAbeq6gkRGRKRiwncatcRtDo2jIIoJkYylwrCxZ6jEvMwjHJTTkvlfcBHgUtF5AX3+jCBMvkFETkE/ILbhiB7qwc4DPwt8DsALkB/O/Cse92WDtoDvw3c6/b5KTUQpDcWBsU2DpvLepBKNCezBmhGrSFBstXiobu7W/fu3VvtyzCqzLX37JlmeaRXon9j68U590lbBIVm9M3lHHOZx5FjwwyNJYmnfKIhj7bGMOtWtJbsHIYBICL7VLV7tnFWpmWemOuhdijmt+gdiBES6OkfztyMV7RGC4qRFPoYVonmZC+9NcjgWBKPiSrFx0fiJFMz5cQYRvmwMi3zwFwPtUOxv0VbQ5jXTo6RdItTk35QMr61Ifdz1lx+60o0J0ukgooNCd9nPOmT8H18X4mn8qu+XQf7uPaePbz/zie59p499vdqlBRTKgWS6x+ipZnWDsX+Fhm3r2a9suXzPD5Uri5XSiEzHQ2282EPQka5WXTur7lEkPItfBsZT7ByadOksZZmmptyuwmLdTUNx1Osam/k2HA84/46vbWBkXgq5/i5uLIq1ZzME/B18nY+spUjQHM0TCyeZNvuHnPbGiVh0SmVeNLnyLERIiEhGvaIhrzMeziU23DL9w8xkVJGE6mi00wXG5VYjV5sym+xJePnmlJc7soKqjpJoUCgYPJZXJWI8xiLm0Xp/lJV4kmf4bEkJ0bivHlqjFdPxHjl+Aivnxzl2PA4g2MJxhIpVDXvwrdo2LOy4wVQCTdhsa6mco+vFPlcXfnklYjzGIubRalU8pHylbFEisHRBMeGxnn95ChHjo3Q2dpA39AYP+0b4sAbp/hp3xDHR8bZ0NVmZccLoBKr0YstAT+X8Vefv4r+oXEOvDlE/9A4V5+/quq/dTyZ212XT16rytGoHxad+2sunLd6KS/0nszEY5K+z+ipcT7yMys5Z9VS/ubXLyAcEiIhj0ioJlq61BRzdR0VS7GupmLG7zrYx47nXqOzrYEzIiFGEyl2PPcaP7u6vaSKpdjYU8jzUPWDXAMNuoyKk+eiUnEeS7VfvJhSKYB/O3Qsp/y7B/u59qIzp8lDnhB2CiYa8pyyCbZrpI9YRblh03o+t3M/sXiSJndDLsfT8V1PvMS93z/CSDxFSzTEJ96/jk9+8J0lOXYlAtxziT2tW97M4f4RwiJB22qFlOqMDeHKHeexis6LG1MqBdA7ECPsgZf19Of7Pr153DcpX0n5KcYTk+UiQtgTGsJOybgEgXpXNpV4Or7riZf48hOHMtbk4FiSLz9xCKAkimU+iyULZdvuHhKpFMeHJ1bHL2kKz6i4arEh3FzmYdQPplQqiKqSSCmJlD9JnlY2aWsmGp7ISKsXZVPup+O//N7haeni6uSlUCqt0RCH+0cIycTK9ddOjvGOzpZ5HzvNob4hTsUSeJ5kFmQeG4qTSA3l3acWG8LNZR5G/WBKpQDWtDfxyokY+JpxMfgKZ3Y0zb5zAcymbKLhCfdZ2pUWmmkxwiIkkSfdKZ+8WEQE31dSohOxC6WkSj+e9EHAc8cUAV+CTMWZqLWGcHOdh1EfmFIpgK2b3s6djx1kJJ7E9xXPE5ZEI2zd9PaynjefsoHpcZtwyMtYO6ZwSk/f0BjigaZ/CgXxoH9orGTniISEkXiQgZjuQud5EF1gyR+RkDCaAD/rIQwW3jyMuWFKpQAuXL+Mmz+0ke3P9vLm4CinL2nimveu4cL1y6p2TfniNhA8IUbCkxMF0taOMTcSKSVbtyuQ8pmxxlaxdLU1MjCSCLSJ0yrqQ2eeBZm1yjtPW5KjcnKEdStaZ9+5QCy7rHYxpVIgF65fVlUlUgy+KuOJ3IkC2S60enKn/dJ5K/nWC2/klJeC2daDlOImpxpYwaEpmVwLrT1FOtvv9KXhsmT7WXZZbWNKZRERVBLI7dvOdqdFPC9j6UQ8D28BKJwrz1vNYz/uI5ZVu6s5GuLK81bPsFfhJPKEAxJ+6W5yxdYjS1NrT+3lzvaz+mW1TTnbCd8HfAToU9V3O9kXgN8E+t2wP1TVR9x3twIfB1LAJ1X1MSffAnwVCAH3quodTr4O2A4sA54DPqqq8XLNp96ZyZ0W9jwiYSHsBRlpoZDUXPxm2+4eVi5tnNYQq1Q3mrS1IOn/qCturFqyFNpi65FB7T61lzN5wOqX1TbldLLfD2zJIf+yqp7nXmmFcjZwDXCO2+evRSQkIiHgr4DLgbOBa91YgDvdsTYAAwQKySgDSd9nNJ5iaCzB8ZFx+gbHeP3kKK8cH+HlY0G9tP6hcU6NJhgZTzKeTJGaWuWwzPQOxEimfHr6hzn45iA9/cMkU37JbjStDWFCXpDJhMv+CnmB/FDfEMeG4pN6sxwbinOor7gU2rmUUFmM7ResflltUzZLRVV3i8jaAodfCWxX1XHgiIgcBi503x1W1R4AEdkOXCkiB4BLgV91Yx4AvgDcPduJXnpriKv+6j9Y0hShtSFMW2PYvUeyPodpbQzTliVvawz8w/WybqRU+BpkK40lprtoPBHCWdlpIS+I6YS8wOoppZXT1hDmUN8woay1Ea+dHGNDV2mCw594/zq++uRhQt5EqXlfA/m93z9SkhTaubiNFuNTe6UqNBhzoxoxlZtE5DpgL/D7qjoArAL2ZI056mQAvVPkFwHLgZOqmswxfhoishXYChA9/R0MjiUZHEvmG56XkCdTFJFTOg1OCTlF1JqliNKKqTFSPwsZC8WfIYYDE+twAiWTpWycey3s4jyFoC6gHU/qRDqu5C8BXyyf/OA7OXJsmJ0/eJNEKrBIrvjZ0/nkB9/JA0+9XLIU2mLdRpWqq1ZLVKp+mTE3Kq1U7gZuJ3BH3w78OfDfcK7qKSi53XPpe0YueU5U9R7gHoC3n/Wz+j8+chZDY0n3SjA0nmR4LMnQeCALPicYGZ/89J3ylVOjCU6N5gg8zELIk8nKJ48yWjLFSmptDNMYrk+FNLEOZ+ZxIW+ydZO2diJubU445NE/PJ5zRf2x4fGSXOuug33se/UUa5c3Z56O9716il0H+yqSQpuPxfrUXmsLPo0JKqpUVPWt9GcR+Vvg227zKLAma+hq4HX3OZf8GNAuImFnrWSPn5HmhjCb31XYH2PKV4bHJ5TMhMJxymhssjLKyMaTk7KQ0sc6OZrg5BwUUtiTjCKasJCmWEtTttOfG+pAIQVJBEqc/BbPeMLHEyZZNknXt308mSIkhVs9uZgp46jcKbQzYU/tRrlJW+CFUlGlIiIrVTW9mOCXgB+5zzuBr4vIXwBvAzYAzxBYJBtcptdrBMH8X1VVFZHvAVc+ucVaAAAgAElEQVQTZIBdDzxc6usNecLSpghLmyI80zPK9md7eWNwlJUFLH5M+TpJGaVfw1nbw+NJBscSGcU07ORTg5BJXxmIJRiIFa+QBGhpCLOsJUprQ5glTVkxpCxLaapCWtIYpmFKD5RaRVWJhD3GEilSmuWC0kDJvDYwmhkb8gTPrQPxst1vLuYTdt+HPZmUSj1T7KJWbuwLazWLUWp8X/FdJ1BFXTkpzXQCTb9PkucYl95OvwN0NEcLvo5yphR/A9gMrBCRo8Dngc0ich7B3//LwA0AqrpfRB4CfgwkgRtVNeWOcxPwGEFK8X2qut+d4mZgu4h8EXge+Fq55vJMzwm++uQhwp6wpDHM8ZFxvvrkIT7FhryKJeQJS5sjLG2O5Px+JpIpn+HxCcWTSyENOYU1m0JSCKyt8eJjSJGQTHfT5XTbhWlriNDWNOG2i4Yru3r/zGUtvHZyhOHxFImUTyTk0doUZlX75IKPKV9JFXH7TSuhrtYGjo2M0xQJ/smIwGgiyWlLGhkYifOeMzq457oLMgpLEMYSqcB1J1K2tT61mlJcbmptbc5spG/W6TR0ZeLGrVNu7kpQSSG40U9RCgTvvq+Z/WZqH10NpJYuphL8zHnn68OP7y5qn9/75oscHxmf1L1wNJFieUsDf/Er55b6EufFf9/+Av3D40RDHinVTDfLpmiYy84+bZobb3hswnU3VsKCf9Gwl1E4SxrDtDZEpmTVZcWQplhJc1FIz/ScCOqzZZWAb2kIc/OHNpakEsIzPSe4/dv7iSX8TFCvOeLx2Y+cU9DxRWRSIFCyssU8T1xigbDnp8f4+z2v8vqpUVa1N3H9JWfyn97ZiYiQ1kvphlwAn7j/WfqHxycH6uNJOtsaue9j783IPHe+tBtDmDjeVLKPPyELBPO5XUy6abqbJFlPw9nXhkxsp63O9I33Pw4d4//9zkEiIaEx4jGW8EmklFu3bOR9G1ZMO+9cvL+CZOacJvMkj7tmnfh/lT2vXIpiodPRHGVZa8M+Ve2ebaytqC+ANwZHCQn0DoxnnoI7miO8OTg6+84V5s2hMZY0hsm+hbU0hBgaS/LRS6Y3FMsmkfInJSpkXHSjE1bSZMtpwn03PkUhxZM+x5Nxjo8Uvx61Iew5ZVRgDKkhwtBYInhaS9+MSmwY/OTNwYxCgeBmEkv4/OTNwYKUSvpmNCFgwmJyxmW2RdzaEOKtwTG+9OhBPjWeynuOV12fl7cGxyb9bb56YoS+wdIVu6wl7v3+ETyBaMjD94P3lJ/i3u8f4exVS6p9eYseUyoF0BIN88rxETznZ0/6yluD45y5vHS9NErFyiVN06yqsYTP6UtmL9MfCXksa4myrKVw/2maeDLtssty0Y0nGU5vT7GKsjPupqYcjyd9xofjHB+ee4EE8ZUhP8mXHj3AJW9f7uJEkekxpCy33UyB/If2HSXkTW7Tm/J9Htp3lI/+3No5X2c225/tJZlKcTKW5cJrCLH92d68SqUlEuKVEzE8Cdx0yZT721xW3ZTiZ3pOFBWDLIY3BkdZ0jj51tUY8WryIW8xYkqlENLma/Zjara8hrjmvWv46pOHGE2kMq6BpK9c8941s+88D6Jhj2XhuSukSYomj0KaltSQQyGlUYIEh8GxJI/tfyvnmKk0RrxAyeRY/BqLpwILyJ/sqonFUyRT/rwyy9K8cmKEodEEkvXwMjCSIOmP5N9pwmc0YZ0pc/P5lIi5xCCLYT4PTkb5MaVSACOJFKctaWAglshyMUSJzbbAogpcuH4Zn2JDTZXpn41o2GN5awPLWxuK3nc8kWJoPMmv3bsn53qXkMDPb+yaSHzISgmf2sBrLOEzlhinP8/alnz+8cu+8u80RUIZZTQphjTJfRfJyr4LrKTWxnCmskCu5lapWVbmj8ST0/82W6PE4sUnZpSK7c/2EvYkc9NPp1nPZHEVQ7UenIzCMKVSAOknozVZq5RHEym6Woq/CVaChVSmf740REI0REKk8uh3VfjDD0/v166qjCf9rDhRVgxpbMJKSiujnv6RvMoGgr+H0USKvqHiF1s2R0O0NoQZS6TwNXCrpWuM4aoCfO9gX1bGXRBram0M1+TfZrndUwvxwWkxYUqlAOzJqPbJ9yyfTy4iNEZCNEZCdLYVdgP++//9Mg/tO0osnqIp4vGRn1nJZe8+naHxJM+9fJJdL/UxEIvTEg2zvrOF5mg450LZqcU2Y/HUtMWymuVqjSV8bv9fB3JeU0PYI5HyJ8YLRDxh3YoWvv70qxk3XrZCamsM09IQLluF6Uq4pxbTg9NCw5RKAdiTkQHw0Z9bmzMo/0zPCZ44+BZhT1i5tJGxhM/Lx2N86tLpMQRVZSyRO4b049dO8W+H+jNjkyklpcrSpgjJlOZUSFOz7tCgG+XuQ8fYfejYjPNpaQhlXHBtU2JIU7PusguwtjSEMy66XNhD2OLGlEoW2SutIfBpp9cXbHpXJ5ve1ZmRA8gseavBIrj0hnvPeqJMZ+yk1yhk5+anyX5inbZAysnSbhJBJp8za16eCOJNdKpN5/6nz5m9z7Q8hFzV1tLnZvZ8hXzrDyYdzp+YX/b49OKulK/T1g1kX2xIIFdn30q0RS8ma0tEaIqGaIqGmLpU7/J3n85/2tCZ9+ElrZCyExbu+u4hTo0mCHmC7wdKKJEM1ums6mhyKeEJhseTTNFHjIyngvp2g8XNN12lIaNwGieKqKYVz8XrlvP8qwMcG47T2drAVeet4uy3LcFXnVEhFUo5s8uM+bHolEo05LGqoylzM08vKlvo9bFqnbueeIl7v3+EkXiKlmiIT7x/HZ/84DtLdvy3tTfROzDdZ/+29ibWLm8hlV6d7FYqp1TzrlpOK23fn1CaM7X1nVPWVh5mcutkK6TT3HKM0UTgipucRBLBV/jrXzs/s2/QnyWVZR0lsrLqXAxpWvZdMG6qQiq2SsNALMGf/OtP+JN//QmeTCikjJU0pd1Epsr3FLddc0MIT6Ts2WXG/Fh0SkUEGsILo6ZVvXDXEy/x1ScPBwUfveBG+NUnDwOUTLG0REOEXJ+TtGHlSSD3PMErwWrItCWQLnCZdO+JVPFZW6Wi0DVUIkGFgZaGMBS5PtB3CimjjCZV9E7kXIOUTnIYHktOsi99JbOOCYpbnOkJLqHBR9FMq+uQBLGzu548xLXDZ+RMCW+OWi+kSrHolEqpWWg1iKrBvd8/EtyQs2Ti5KVSKsPxFKs7mib1d1/RGp21v3sxpJXT1DqbDWEviG04113gwhMaw8KaZc0ZCynp+xlllK2gVIM1NXMqmVSBNVSeBH2EWhvCnL40f2vjXPiqxMZTOap8TyikTIWGAhRSdh+kxJSUv6GxJH/++Et55kCmkGq2dZSvOV/2QllrzlccplTmwa6DfXxmx4sMjSVJ+j7Hhsb5zI4X+dOrzzXFksXQlJsDBPe+oTk0SsvHmo5mXj4+PEkWT/msXV7+niYz9VOJTFoUObOFPGEB+SSSSsL3SaSCz0k/t9VT62uoPBFa3c165dLi9vVVGclRWPW+7x9hIDbOeNIn5adbOwf9dtqbIwyOTe+FlFZIpWjOl4khTSmsmlFQi7w5nymVeXDndw4yEEtkSqerBv7jO79zsKpKpVTWU6mOk++ZuZT1CC5Zv4xnXj7hCicGCqVvKM617y2/j71U/VTSzciieDClMEHazRZP+SSSvmtu5rNyaRPHh2trnUqp8MRVyW6cXOm79/gID+x5xfXPcTEvX/n1C1dnsvNSvlNIU2JDg2PTY0rZ/ZCGx5LTrNv5NOcLZymkttmUUUN9KCRTKvOg59hIpvorONeHKD3Hig/QlopSlUJfaCXVn+o5QWdrdIq1EOapnhN8ssznrkQ/lUDhBOtqsvndD2zgsw//iKTv0xgOFJoqfOL962hrjGQsn7QVVA8833uKZc0RRuIT2XYt0RDP957io25MyBOWNEVY0lR864lczfmmtp/IrswwPJbKtKGYqpCSJWjON+Gai0yu/O22c8WQqtmcz5RKnTFTh8JibnKlOg4ElkOu+1kp1971DsRY0dpAZ9uEz19VOToQK91JZqBa7W03b+zil4+unpZZ95Hz3jZtrO+nXWpBEkEiFbzKoXDKXVCyoyXKspaJPyBFS7ZiP7s5HxS3YDNbIQ066yiXQhrM0bBv6gLY+TTni4RkIoaUZSnN1JwvbTnNtzlfOZt03Qd8BOhT1Xc72TLgm8BagiZd/1VVByRQqV8FPgzEgN9Q1efcPtcDf+QO+0VVfcDJLwDuJ/jVHwE+pRVuDrNueTOH+0cQf6LboK/wjhXVqxA7U4fCahwHoKMpzPHYdF92R1Pp/vzWdDTTNzQ2ua9IIsXqjtL9FrWYlLHrYB87nnuNzrYGznCutx3PvcbPrm6fdm2eJzR4IRrCwBTvmO8SCNLxnKTvu20l6RRPoSzmgpLZCmnVXBTSDMqomOZ8idT8FNJU5bO8CHdqOS2V+4H/CTyYJbsF+K6q3iEit7jtm4HLCVoIbwAuAu4GLnJK6PNAN4ELfp+I7FTVATdmK7CHQKlsAR4t43ymccvlZ/HJbzzHcDyo2eQJtEZD3HL59FpTlaJUN9eS3qTzmOGlNM/TcY1YPDmnuMZsCqNWkzK27e7h2NAYscREIL854hVtUXqeEM0Tz4HJVk7SxXaSLq4zVeFYQcm5MZ9usYnsbrFZimdwbLIbL1sZpRfRTm3Ol0gpJ0binJhDLyQoo1JR1d0isnaK+EqCFsMADwC7CJTKlcCDztLYIyLtIrLSjX1cVU8AiMjjwBYR2QUsUdWnnPxB4CoqrFQAopEQUec+CHlCtMp93ed7cy31cYBpZn2aUqb7zieuUUj8qFaTMp579ThT1yDGEj7Pv3q8pOeZZOVMIa1k4sng9ebgKG1WULKipLP+iuklnyZXc76pVlI86fM/CzxepWMqp6nqGwCq+oaIpP81rgJ6s8YddbKZ5EdzyCvKtt09LG2KsHLphJk717hDqdi8sYurj56c5mMv9npKGXxO5nGd5JPPlbnGNQqJHwXJF0oiNVFKxhOqmpQBTFMoaUqYrT0r4ZBHOOSRvp+tW9FK39AYjREvU0ooFk/xtvagkkUp2utaQcnCmS2+VUhzvo7maM0qlXzk8oPkqjg1mzz3wUW2ErjKOOOMM+ZyfTkpZdyhVBTjY5+NkgWfK5FTPA96XUvenv7hSQsns39HXxXX7sSVo4ekgkiNTKKGSFu5kHJWro+q8MlLN7B2RQvJlEuJ9ifSo5N+4E6rh37utcQzPSe487GDjLhipAMjce58bISbP7SxbEp5/u3qiuMt59bCvfc5+VEg2yG6Gnh9FvnqHPKcqOo9qtqtqt2dnZ3znkSaNR3N0wJkpQ4OF0v2U7dI8B4JCdt291TtmiLh3H9m+eSVpq0hzGsnx0g6F2bSV147OUZrlq8n7FLVJgp5TpZXi3xnr+ZVbd7YxdXnr6J/aJwDbw7RPzTO1eevyjyghEMeTdEQSxojLG9t4PSljazuaGbtihbWLm9hVUcTXUsaaW+O0tIQJlrF9NiFzj3/3sPgaAIFQiFBgcHRBPf8e/nuB5W2VHYC1wN3uPeHs+Q3ich2gkD9Keceewz4koh0uHGXAbeq6gkRGRKRi4GngeuAv6zkRCB4IvvMjhd5bWCUpO8T9oK1EZ/9xbMrfSkZatF6ypeUV+pkvbkWrdQ8pU6yr685GnI1pyYQgtpi1cTLU525mrpuPtbyTBlqyZSfqbeWnZU2qQabMYnegdi0tXSI0lvG+0E5U4q/QRBoXyEiRwmyuO4AHhKRjwOvAr/shj9CkE58mCCl+GMATnncDjzrxt2WDtoDv81ESvGjVCFID+7+k65yLNX36FQitbZY4rnuejPI58J8ilYOx1Osam+cVDfs9NaGSYkEXW2NDIwkMq4vERBl0rqYqpDOZc8lrxLbdvcQT6Y4Pjx5Iep8Y41B7Cb/96qaqTSQdO61ZKr+Fn/WOuXM/ro2z1cfyDFWgRvzHOc+4L4c8r3Au+dzjfOlFgP1pczaKhX5/jGX8h/5vd8/AqqkMrGOwotWphXx+s6JOmGxeJKuKQspg4q4krmPZ5fDr9YalpZoiJF4MnDJpect1bWgXnprkMGxJB7B/69kSjk+EieZKrJxS5GICNGwEM3jVlVNWzgalLtxGWu50qLrhTXtTbxyIgZT1tKd2VG+NT214dReoPQOxCYtwILqu5o2b+zitivOoautkVOjCbraGrntinOqvkiv3AyPJ0lpVtFeDdxChfT8uGHTehIpJRZPur4jyWmKeDieoqM5TML3GUv6JHyfjuYwI/FUJiW5b2hsUkryroN9M5y1NHxgYycpf6Lkf9DQLJBXi4SzQD1Pgn5FzhdXSst0LogIERfPWdoUYUVrA29rb+LM5S2csayZ05c2srylgdbG+onjbN30dpY0RRAvSDYRD5Y0Rdi66e1lO2etZH8tSGrR1QTVKxlSTcQ9hk29bRVyYygkfbqtIcybp8aIhLzME99ALMmGrka27e4hkZrs7lnSNH93TyG8ORinvSnM4FgyswB3SWOYNwfntnCtFETDHqPxVHATS3vnlLwWRC2QTosOFn5OxCSzy9nE01lrSX/BZKlduH4ZN39oY0XX9JhSmQe16GqC2iwnUm4iXvCEnkteCLMpYnWurnhSJzUBU1UO9Q0xMBLPWAvJVIox97dQbnoHYkSm9EyOhKSq1vKGrjZ+8uYgJ0cTGUXX3hRhQ1db1a5prkTDXk5lOLVqdNIP6qnNuS9OGan0mh5TKvOgEtVpi1UQuw728ekdLwbuIF85NjzOp3e8yJ/VeY+XaDjEeDI5LTsrWqIun8eylAZMuJqOjcSJxVOkFNeeOvgypfkrCZQUVfqHJ+o7+Qr9wwlWt1cvppJuQxDyhIgrJnpqLMkldbRYMV/V6HSyQFrZxLPiNosFUyrzpJyuprnUm7rj0QOcjCUISRAkVR9OxhLc8eiBOlcqHmHXUjcTkPS1ZC6XWDyVs9FYLJ4inkxltrMHpeXlpH9ovCh5JahmG4JqMylZICslWlUZz7jSdFKSQL1hSqWGmUu9qSPHXV66l9XjxVeOHK+eO6QSlNvlMpbH6hiLp4iEPVT9zMLIdOZZyCt/DGE8j4stn7wSVKINwVzXJFULEaExktuySRfnzE6DTqRq05VWCKZUapharTdVi5Tb5ZLvedJnogVCeEq68brl1U3YqBblTmC564mX+Mp3D2V69AyOJfnKdw8Bs69JqjVEhIZw7kKdMLHgM23hJFM+4zUau0lTu+kYRqbelLrIsCokfWbMPFm/ogVfgzFKUEvJ10BezzzVc4K2hhApXxlPBgvd2hpCPNVzYvad58ktl59Fe3OQtplyaZvtzZGqtkCoJoWkaM+Hv9ndM63pm6+BvN4IhzwaIyHaGiMsa4nStaSRNcuaWbu8mdUdzXQtaaSjOUprDZWzMaVSw8yl3tTNWzbS0RxBCJ5yBOhojnDzlo3lvtyqkl5wl77Z+Bo8wR56q7wL7iCIq/3Z1efynjUdnL6kkfes6ahYYkRznlYL+eSVoNxrpfIlQFQkMaJGCGI3Hq0NYTqcslndMaFsTquisjH3Vw3THA0xnvQzCiWdXTTTaunNG7v406vPLWtGWi0yPJ7K+fQ6NF6ZG02pEjaKzfY7Y1kjB9+a7g49Y1l1y8csxrVStUB2okDLlESBdFZauu9NkAJd+kQBUyo1zDtPW8KRY8PTsmjWrWidcb/F+A86nsz9jyOfvFg8csdVSmnqzyXb71B/7uB3PrmxOMmXlZbKxGsmZ6XNJ2ZjSqWGSS+uPH1puKYWV9Yi5W7ZEgl7xJPTqxSXsnz/XLL9KlFXrdZoiniMJqar+KZCV7oaGfKttwEmpT0Xk5pvv0INs1jreM2FaCi3zzifvFjWLW8m5AkNIY/GsEdDyCPkSUkzvHqOjWTKlAuCJ2LZfjloaQjjMVGIWSS4kbXkS6Ey5kQk5NHSEKa9OTopk2827FeocerBleUWmeeUl4qu1ihHT01f8NfVWnzP7lzccvlZkyoVhDyhvWHxZnhVkw1dbbwcGmZwdHKttbXLZ3YLG5XBLBWj7Kxqzx00ziefE55HZ2sk05zKE+hsjSAlWoC4eWMX1118JtGQh68QDXlcd/GZJVX465Y3B+ngzp/t+0E6+GJd75KPGzatJxIKcfrSRt51WhunL20kEgqZW7hGMKVilJ0vXvUzNE/xdzdHPL541c+U7BxrOpqDNrWREJGQ0BQJEQ55JVtwl93N8KzT2+hsa2DHc6+VtLz9XNa75MsDrG4/yvJibuHapiruLxF5GRgCUkBSVbtFZBnwTWAt8DLwX1V1QIIE668SdIaMAb+hqs+541wP/JE77BdV9YFKzsMonOaGMD4TrqPmWfzfxabWplfUe67qQDzl0zcU59r35l9RX8w5tu3uIRKSjG+5ORoueUO29HqXYtLB8yVM1/uKjXpwC9cr1Yyp/LyqHsvavgX4rqreISK3uO2bgcuBDe51EXA3cJFTQp8Huglc9vtEZKeqDlRyEsbsFNshM930KhKSSU2vboO8N5JiixgWe47egRjtTZFJsnI0ZLObpbHQqSX315VA2tJ4ALgqS/6gBuwB2kVkJfAh4HFVPeEUyePAlkpftDE7xXbIzLYKRIL3SEjYNkMZjnQRw/WdrWw8fQnrO1tZ0dpQsnOs6WhmNDH5+b8WGrIZRq1RLaWiwL+KyD4R2epkp6nqGwDuPf24tgrozdr3qJPlk09DRLaKyF4R2dvf31/CaRiFUOwNeS5tmst9jnLXs5orl6zrKEpuGOWmWkrlfap6PoFr60YR2TTD2FyZpzqDfLpQ9R5V7VbV7s7O6vXuXqwUe0Oei1VQ7nPUanD4Gzf83DQFcsm6Dr5xw89V6YqMxU5VYiqq+rp77xORbwEXAm+JyEpVfcO5t9JpNUeBNVm7rwZed/LNU+S7ynzpxhwotkPmXNo0V+oc1VYiuTAFYtQSUuma/CLSAniqOuQ+Pw7cBnwAOJ4VqF+mqn8gIr8I3ESQ/XURcJeqXugC9fuA892hnwMuUNUZa513d3fr3r17yzM5o2SkM7PKWRSzEucwjHpBRPapavds46phqZwGfMuVYg4DX1fV74jIs8BDIvJx4FXgl934RwgUymGClOKPAajqCRG5HXjWjbttNoViLBwqYRXUquVhGAuZilsq1cYsFcMwjOIp1FKppZRiwzAMY4FjSsUwDMMoGaZUDMMwjJJhSsUwDMMoGYsuUC8i/cAr1b6OCrECODbrqPrD5r14WIxzhurM+0xVnXX1+KJTKosJEdlbSLZGvWHzXjwsxjlDbc/b3F+GYRhGyTClYhiGYZQMUyr1zT3VvoAqYfNePCzGOUMNz9tiKoZhGEbJMEvFMAzDKBmmVBYgIhISkedF5Ntu+34ROSIiL7jXeU4uInKXiBwWkR+IyPlZx7heRA651/XVmkuhiMjLIvJDN7+9TrZMRB53c3hcRDqcvN7n/QUReS3r9/5w1vhb3bx/IiIfypJvcbLDrgp4TSMi7SKyQ0QOisgBEbmk3n/vPHNeeL+1qtprgb2A3wO+Dnzbbd8PXJ1j3IeBRwkaml0MPO3ky4Ae997hPndUe16zzPllYMUU2Z8At7jPtwB3LpJ5fwH4dI6xZwMvAg3AOuCnQMi9fgqsB6JuzNnVntss834A+IT7HAXa6/33zjPnBfdbm6WywBCR1cAvAvcWMPxK4EEN2AO0uwZoHwIeV9UTqjpA0NNmS9kuunxcSfAPEfd+VZa8nuedjyuB7ao6rqpHCNpFXOheh1W1R1XjwHY3tiYRkSXAJuBrAKoaV9WT1PHvPcOc81Gzv7UplYXHV4A/APwp8j92pv+XRaTByVYBvVljjjpZPnkto8C/isg+EdnqZKep6hsA7j3dHKXe5w1wk/u970u7gaifea8H+oG/c27eeyVo6FfPv3e+OcMC+61NqSwgROQjQJ+q7pvy1a3ARuC9BKb+zeldchxGZ5DXMu9T1fOBy4EbRWTTDGPrfd53A28HzgPeAP7cja2XeYcJOrrerarvAUYI3F35qId555vzgvutTaksLN4HXCEiLxOYtZeKyD+o6hvO9B8H/o7ABIbgKWVN1v6rgddnkNcsqvq6e+8DvkUwx7ecmwP33ueG1/W8VfUtVU2pqg/8LfX3ex8Fjqrq0257B8ENt55/75xzXoi/tSmVBYSq3qqqq1V1LXAN8KSq/nrWPzQh8DP/yO2yE7jOZcdcDJxyboPHgMtEpMOZ05c5WU0iIi0i0pb+THC9PyKYXzqj53rgYfe5rued/r0dv8Tk3/saEWkQkXXABuAZgpbbG0RknYhECf52dlZqHsWiqm8CvSLyLif6APBj6vj3zjfnhfhbV6NHvVF6/lFEOglM3xeA33LyRwgyYw4DMeBjAKp6QkRuJ/gDBLhNVU9U9pKL4jTgW4HOJAx8XVW/IyLPAg+JyMeBV4FfduPrfd5/L0HauBJkh90AoKr7ReQhghtwErhRVVMAInITwQ01BNynqvsrPZki+b8J/q6jBFlbHyN4CK7n3zvXnO9aaL+1rag3DMMwSoa5vwzDMIySYUrFMAzDKBmmVAzDMIySYUrFMAzDKBmmVAzDMIySYUrFMKqABJWlr672dRhGqTGlYhgLABEJVfsaDKMQTKkYRhGIyFrX7+IBV+Rvh4g0i8gFIvJvrvDjY1lVDn5TRJ4VkRdF5J9FpDnHMW93los3Rb5ZRL4nIl8Hfpjv3G7syyLyJRF5SkT2isj57jp+KiK/NfWchlEuTKkYRvG8C7hHVX8WGARuBP6SoKfNBcB9wB+7sf+iqu9V1XOBA8DHsw8kIn9CUG33Y66+01QuBP6Hqp6d59y/kzW2V1UvAf4d12OHoL/IbfOcr2EUjCkVwyieXlX9D/f5Hwj6drwbeFxEXgD+iKCQH8C7RbgUB1EAAAFCSURBVOTfReSHwK8B52Qd57NAu6reoPlLWzzj+mXkO/f7s75L13j6IUGjqiFV7QfGRKR9DvM0jKKx2l+GUTxTFcAQsN9ZCVO5H7hKVV8Ukd8ANmd99yxwgYgsc3WqLgK2ue8+R2CJjMxy7uztcffuZ31Ob9u/daMimKViGMVzhoikFci1wB6gMy0TkYiIpC2SNuANEYkQWCrZfAe4A/hfItKmqk+r6nnula+y7NRzf79UkzKMUmBKxTCK5wBwvYj8gKAp2l8SxC/uFJEXCSpF/5wb+1ngaYJWtgenHkhV/4mgT8ZOEWmaw7nvnudcDKOkWJViwygCEVkLfFtV372Yzm0YhWKWimEYhlEyzFIxDMMwSoZZKoZhGEbJMKViGIZhlAxTKoZhGEbJMKViGIZhlAxTKoZhGEbJMKViGIZhlIz/A0UzrwuFvYoLAAAAAElFTkSuQmCC\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": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f80412eff60>" | |
] | |
}, | |
"execution_count": 17, | |
"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)" | |
] | |
}, | |
{ | |
"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": 19, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f80411ec3c8>" | |
] | |
}, | |
"execution_count": 19, | |
"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": 21, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f804116aac8>" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEKCAYAAADaa8itAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAH3lJREFUeJzt3X2QXXWd5/H3h06ARmQITZPCBAyauBhhjNBAdsFVIYRORgiziyvomIZhJ6PyEB1nBmJZRlEs2dqRSTKCRol0XDQgo0Ok8kDzJDolkA7EhBCs9EKAPGxoOxDBZIIJ3/3j/G686dx+5Nw+3fTnVXXr3vM9v3Pu93Tdyje/8/D7KSIwMzPLwyFFJ2BmZm8dLipmZpYbFxUzM8uNi4qZmeXGRcXMzHLjomJmZrlxUTEzs9y4qJiZWW5cVMzMLDcjik5goB177LExbty4otMwMxtSVq9e/buIqO+p3bArKuPGjaO1tbXoNMzMhhRJz/emnU9/mZlZblxUzMwsNy4qZmaWGxcVMzPLjYuK9UtHRwfXXnstHR0dRadiZoOIi4r1S3NzM+vWrWPx4sVFp2Jmg4iLivVZR0cHK1asICJYsWKFeytmtl/Vi4qkGklPSro3Ld8u6TlJa9JrUopL0nxJbZLWSjqtbB9NkjamV1NZ/HRJ69I28yWp2sdjWS/ljTfeAGDfvn3urZjZfgPRU5kNbOgU+4eImJRea1JsGjAhvWYBtwJIOgaYC5wFnAnMlTQqbXNralvarrGaB2KZ+++/n7179wKwd+9eWlpaCs7IzAaLqhYVSWOBvwC+34vmM4DFkXkUOFrS8cAFQEtE7IiIl4EWoDGtOyoifh0RASwGLq7OkVi5KVOmMGJENhjDiBEjOP/88wvOyMwGi2r3VP4Z+EfgjU7xG9MprpslHZZiY4AXy9psTrHu4psrxA8iaZakVkmt7e3t/T4YyzQ1NXHIIdlPp6amhpkzZxackZkNFlUrKpI+CrwUEas7rZoDnAycARwDXFfapMJuoh/xg4MRCyOiISIa6ut7HA/NelBXV0djYyOSaGxspK6uruiUzGyQqGZP5WzgIkmbgCXAuZL+T0RsS6e49gA/ILtOAllP44Sy7ccCW3uIj60QtwHQ1NTEqaee6l6KmR2gakUlIuZExNiIGAdcCjwYEX+VroWQ7tS6GHgqbbIUmJnuApsM7IyIbcBKYKqkUekC/VRgZVr3qqTJaV8zgXuqdTx2oLq6OubPn+9eipkdoIih7++QVE92+moN8OkUXwZMB9qAXcAVABGxQ9LXgFWp3Q0RsSN9/gxwO1ALLE8vMzMriLIbp4aPhoaG8HwqZmZ9I2l1RDT01M5P1JuZWW5cVMzMLDcuKmZmlhsXFTMzy42LipmZ5cZFxczMcuOiYmZmuXFRMTOz3LioWL94jnozq8RFxfrFc9SbWSUuKtZnHR0dLF++nIhg+fLl7q2Y2X4uKtZnzc3N+6cT/uMf/+jeipnt56JifdbS0kJpINKI4L777is4IzMbLFxUrM9Gjx7d7bKZDV8uKtZn27dv73bZzIavqhcVSTWSnpR0b1o+SdJjkjZKulPSoSl+WFpuS+vHle1jTor/VtIFZfHGFGuTdH21j8Uy559/PtlkmyCJqVOnFpyRmQ0WA9FTmQ1sKFu+Cbg5IiYALwNXpviVwMsRMR64ObVD0kSy6YjfBzQCt6RCVQN8G5gGTAQuS22typqamhg5ciQAI0eO9Dz1ZrZfVYuKpLHAXwDfT8sCzgXuTk2ayeapB5iRlknrz0vtZwBLImJPRDxHNt3wmenVFhHPRsTrwJLU1qqsrq6OxsZGJDFt2jTPU29m+1W7p/LPwD8Cb6TlOuCViNibljcDY9LnMcCLAGn9ztR+f7zTNl3FbQA0NTVx6qmnupdiZgeoWlGR9FHgpYhYXR6u0DR6WNfXeKVcZklqldTa3t7eTdbWW3V1dcyfP9+9FDM7QDV7KmcDF0naRHZq6lyynsvRkkakNmOBrenzZuAEgLT+z4Ad5fFO23QVP0hELIyIhohoqK+vf/NHZmZmFVWtqETEnIgYGxHjyC60PxgRnwQeAi5JzZqAe9LnpWmZtP7ByJ6wWwpcmu4OOwmYADwOrAImpLvJDk3fsbRax2NmZj0b0XOT3F0HLJH0deBJ4LYUvw34oaQ2sh7KpQARsV7SXcDTwF7gqojYByDpamAlUAMsioj1A3okZmZ2AJWG2xguGhoaorW1teg0zMyGFEmrI6Khp3Z+ot7MzHLjomJmZrlxUTEzs9y4qJiZWW5cVMzMLDcuKmZmlhsXFeuXjo4Orr32Ws9Pb2YHcFGxfmlubmbdunWen97MDlDEE/U2xHV0dLBixQoighUrVjBz5kwPLGkALFiwgLa2tqLTYMuWLQCMGVPswOXjx4/nmmuuKTSHgeaeivVZc3Mzb7yRzWawb98+91Zs0Nm9eze7d+8uOo1hycO0WJ9Nnz6dXbt27V8+4ogjWLZsWYEZmR1o9uzZAMybN6/gTN46PEyLVc2UKVMOmKP+/PPPLzgjMxssXFSszy666CJKPdyI4MILLyw4IzMbLFxUrM+WLl16QE/l5z//ecEZmdlg4aJifXb//fcf0FNpaWkpOCMzGyxcVKzPPvjBD3a7bGbDV9WeU5F0OPAIcFj6nrsjYq6k24EPATtT08sjYo2y8ynzgOnArhR/Iu2rCfhSav/1iGhO8dOB24FaYBkwO4bb7WwF8J94cBosz4gMBqW/Q+kusOFuIJ+XqebDj3uAcyPiNUkjgV9JWp7W/UNE3N2p/TSy+ecnAGcBtwJnSToGmAs0AAGslrQ0Il5ObWYBj5IVlUZgOVZVv/zlLw9YfuSRR5gzZ05B2VhJW1sbG9c/yYlH7is6lcId+sfsJMye5/34wAuv1Qzo91WtqKQew2tpcWR6dfdf3BnA4rTdo5KOlnQ88GGgJSJ2AEhqARolPQwcFRG/TvHFwMW4qFTd6NGj2bRp0wHLNjiceOQ+vnja74tOwwaRbzxx1IB+X1WvqUiqkbQGeImsMDyWVt0oaa2kmyUdlmJjgBfLNt+cYt3FN1eIV8pjlqRWSa3t7e1v+riGu+3bt3e7bGbDV1WLSkTsi4hJwFjgTEmnAHOAk4EzgGOA61JzVdpFP+KV8lgYEQ0R0VBfX9/Ho7DOOj/sOHXq1IIyMbPBZkDu/oqIV4CHgcaI2BaZPcAPgDNTs83ACWWbjQW29hAfWyFuVXbRRRcdsOyHH82spGpFRVK9pKPT51pgCvBMuk5CutvrYuCptMlSYKYyk4GdEbENWAlMlTRK0ihgKrAyrXtV0uS0r5nAPdU6HvsTP/xoZl2p5t1fxwPNkmrIitddEXGvpAcl1ZOdvloDfDq1X0Z2O3Eb2S3FVwBExA5JXwNWpXY3lC7aA5/hT7cUL8cX6QdEpYcfP//5zxeclW3ZsoU/vFoz4BdmbXB7/tUa3pamAhgI1bz7ay3wgQrxc7toH8BVXaxbBCyqEG8FTnlzmVpfTZkyhWXLlrF3715GjBjhASXNbD9P0mV91tTUxIoVKwCoqalh5syZBWdkkE1ItWfvNt9SbAf4xhNHcdgATlbmYVqsz+rq6mhsbEQSjY2NnvXRzPZzT8X6pampiU2bNrmXMsi88JqvqQBs35X9f3n0EW8UnEnxXnithgkD+H0uKtYvdXV1zJ8/v+g0rMz48eOLTmHQeD2N/XXYO/03mcDA/jZcVKxfOjo6+OpXv8rcuXN9+muQGKgBA4cCTydcHBcV65fm5mbWrVvH4sWLfTux7TdYRkoeLKMUD+TowIOFL9Rbn3V0dLBixQoighUrVtDR0VF0SmYHqK2tpba2tug0hiX3VKzPmpub2bcvG15979697q3YfsPtf+V2MPdUrM/uv//+/UVl3759nk7YzPZzUbE+O+eccw5Y9nTCZlbiomJ9VhpM0sysMxcV67PO0wl3Xjaz4ctFxfpsypQpBwx97wElzazERcX67KKLLjpg6HtP0mVmJS4q1meepMvMulLNmR8Pl/S4pN9IWi/pqyl+kqTHJG2UdKekQ1P8sLTcltaPK9vXnBT/raQLyuKNKdYm6fpqHYsdqNIkXWZmUN2eyh7g3Ih4PzAJaEzTBN8E3BwRE4CXgStT+yuBlyNiPHBzaoekicClwPuARuAWSTVpRslvA9OAicBlqa1V2ZQpUxgxIntu1pN0mVm5qhWVyLyWFkemVwDnAneneDPZPPUAM9Iyaf15ae75GcCSiNgTEc+RTTd8Znq1RcSzEfE6sCS1tSpramrikEOyn44n6TKzclW9ppJ6FGuAl4AW4P8Cr0TE3tRkM1CakmwM8CJAWr8TqCuPd9qmq7hVmSfpMrOuVHXsr4jYB0ySdDTwM+C9lZql90pP1EU38UoFMSrEkDQLmAVw4okn9pC19YYn6TKzSgbk7q+IeAV4GJgMHC2pVMzGAlvT583ACQBp/Z8BO8rjnbbpKl7p+xdGRENENNTX1+dxSMNeaZIu91LMrFw17/6qTz0UJNUCU4ANwEPAJalZE3BP+rw0LZPWPxjZLUZLgUvT3WEnkU1k9jiwCpiQ7iY7lOxi/tJqHY+ZmfWsmqe/jgea011ahwB3RcS9kp4Glkj6OvAkcFtqfxvwQ0ltZD2USwEiYr2ku4Cngb3AVem0GpKuBlYCNcCiiFhfxeMxM7MeqPS8wXDR0NAQra2tRadhZjakSFodEQ09tfMT9WZmlhsXFTMzy42nEx6CFixYQFtbW6E5bNmyBYAxY4p/NGj8+PGextZskHBRsX7ZvXt30SmY2SDkojIEDYb/lc+ePRuAefPmFZyJmQ0mvqZiZma5cVExM7PcuKiYmVluel1UJL1T0pT0uVbS26uXlpmZDUW9KiqS/oZsjpPvptBY4N+qlZSZmQ1Nve2pXAWcDfweICI2AsdVKykzMxuaeltU9qTZFYH9Q9MPr0HDzMysR70tKr+Q9EWgVtL5wE+An1cvLTMzG4p6W1SuB9qBdcDfAsuAL1UrKTMzG5p6+0R9Ldl8Jd+DbO75FNtVrcTMzGzo6W1P5QGyIlJSC9yffzpmZjaU9baoHB4Rr5UW0ucjuttA0gmSHpK0QdJ6SbNT/CuStkhak17Ty7aZI6lN0m8lXVAWb0yxNknXl8VPkvSYpI2S7kzTCpuZWUF6W1T+IOm00oKk04GehqndC3whIt4LTAaukjQxrbs5Iial17K0z4lkUwi/D2gEbpFUk061fRuYBkwELivbz01pXxOAl4Ere3k8ZmZWBb29pvI54CeStqbl44GPd7dBRGwDtqXPr0raAHQ3+cYMYElE7AGeS3PVn5nWtUXEswCSlgAz0v7OBT6R2jQDXwFu7eUxmZlZznrVU4mIVcDJwGeAzwLvjYjVvf0SSeOADwCPpdDVktZKWiRpVIqNAV4s22xzinUVrwNeiYi9neKVvn+WpFZJre3t7b1N28zM+qjboiLp3PT+34ALgfcAE4ALU6xHko4E/hX4XET8nqwn8W5gEllP5p9KTStsHv2IHxyMWBgRDRHRUF9f35u0zcysH3o6/fUh4EGygtJZAD/tbmNJI8kKyh0R8VOAiNhetv57wL1pcTNwQtnmY4HS6bZK8d8BR0sakXor5e3NzKwA3RaViJgr6RBgeUTc1ZcdSxJwG7AhIr5VFj8+XW8B+EvgqfR5KfAjSd8C3kHWI3qcrEcyQdJJwBayi/mfiIiQ9BBwCbAEaALu6UuOZmaWrx4v1EfEG5KuBvpUVMgGoPwUsE7SmhT7ItndW5PIejqbyJ7QJyLWS7oLeJrszrGrImIfQPr+lUAN2UOY69P+rgOWSPo68CRZETMzs4L09u6vFkl/D9wJ/KEUjIgdXW0QEb+i8nWPZd1scyNwY4X4skrbpTvCzuwcNzOzYvS2qPw1Wc/is53i78o3HTMzG8p6W1QmkhWUc8iKyy+B71QrKTMzG5p6W1SaySbomp+WL0ux/1GNpMzMbGjqbVH5TxHx/rLlhyT9phoJmZnZ0NXbsb+elDS5tCDpLODfq5OSmZkNVb3tqZwFzJT0Qlo+EdggaR0QEfHnVcnOzMyGlN4WlcaqZmFmZm8JvSoqEfF8tRMxM7Ohr7fXVMzMzHrkomJmZrlxUTEzs9y4qJiZWW5cVMzMLDcuKmZmlhsXFTMzy03VioqkEyQ9JGmDpPWSZqf4MZJaJG1M76NSXJLmS2qTtFbSaWX7akrtN0pqKoufLmld2mZ+mm3SzMwKUs2eyl7gCxHxXmAycJWkicD1wAMRMQF4IC0DTCObQngCMAu4FbIiBMwlGyrmTGBuqRClNrPKtvOT/2ZmBapaUYmIbRHxRPr8KrABGAPMIBs2n/R+cfo8A1gcmUeBoyUdD1wAtETEjoh4GWgBGtO6oyLi1xERwOKyfZmZWQEG5JqKpHHAB4DHgNERsQ2ywgMcl5qNAV4s22xzinUX31whbmZmBal6UZF0JPCvwOci4vfdNa0Qi37EK+UwS1KrpNb29vaeUjYzs36qalGRNJKsoNwRET9N4e3p1BXp/aUU3wycULb5WGBrD/GxFeIHiYiFEdEQEQ319fVv7qDMzKxL1bz7S8BtwIaI+FbZqqVA6Q6uJuCesvjMdBfYZGBnOj22EpgqaVS6QD8VWJnWvSppcvqumWX7MjOzAvR2PpX+OBv4FLBO0poU+yLwTeAuSVcCLwAfS+uWAdOBNmAXcAVAROyQ9DVgVWp3Q0TsSJ8/A9wO1ALL08vMzApStaISEb+i8nUPgPMqtA/gqi72tQhYVCHeCpzyJtI0M7Mc+Yl6MzPLjYuKmZnlxkXFzMxy46JiZma5cVExM7PcuKiYmVluXFTMzCw3LipmZpYbFxUzM8uNi4qZmeXGRcXMzHLjomJmZrmp5ijFbzkLFiygra2t6DQGhdLfYfbs2QVnMjiMHz+ea665pug0zArnotIHbW1trHlqA/uOOKboVAp3yOvZJJurn91ecCbFq9m1o+dGZsOEi0of7TviGHafPL3oNGwQqX1mWdEpmA0avqZiZma5qeZ0woskvSTpqbLYVyRtkbQmvaaXrZsjqU3SbyVdUBZvTLE2SdeXxU+S9JikjZLulHRotY7FzMx6p5o9lduBxgrxmyNiUnotA5A0EbgUeF/a5hZJNZJqgG8D04CJwGWpLcBNaV8TgJeBK6t4LGZm1gtVKyoR8QjQ2yuYM4AlEbEnIp4jm6f+zPRqi4hnI+J1YAkwQ5KAc4G70/bNwMW5HoCZmfVZEddUrpa0Np0eG5ViY4AXy9psTrGu4nXAKxGxt1O8IkmzJLVKam1vb8/rOMzMrJOBLiq3Au8GJgHbgH9KcVVoG/2IVxQRCyOiISIa6uvr+5axmZn12oDeUhwR+x9qkPQ94N60uBk4oazpWGBr+lwp/jvgaEkjUm+lvL2ZmRVkQHsqko4vW/xLoHRn2FLgUkmHSToJmAA8DqwCJqQ7vQ4lu5i/NCICeAi4JG3fBNwzEMdgZmZdq1pPRdKPgQ8Dx0raDMwFPixpEtmpqk3A3wJExHpJdwFPA3uBqyJiX9rP1cBKoAZYFBHr01dcByyR9HXgSeC2ah2LmZn1TtWKSkRcViHc5T/8EXEjcGOF+DLgoEeWI+JZsrvDzMxskPAT9WZmlhsXFTMzy42LipmZ5cZFxczMcuOiYmZmuXFRMTOz3LiomJlZblxUzMwsNy4qZmaWGxcVMzPLjYuKmZnlxkXFzMxy46JiZma5cVExM7PcuKiYmVluqlZUJC2S9JKkp8pix0hqkbQxvY9KcUmaL6lN0lpJp5Vt05Tab5TUVBY/XdK6tM18SZXmrTczswFUzZ7K7UBjp9j1wAMRMQF4IC0DTCObQngCMAu4FbIiRDZj5FlkE3LNLRWi1GZW2Xadv8vMzAZYNWd+fETSuE7hGWRTDAM0Aw+TTQs8A1ic5p5/VNLRaT77DwMtEbEDQFIL0CjpYeCoiPh1ii8GLgaWV+t4ALZs2ULNrp3UPnPQRJQ2jNXs6mDLlr1Fp2E2KAz0NZXREbENIL0fl+JjgBfL2m1Ose7imyvEzcysQFXrqfRRpesh0Y945Z1Ls8hOlXHiiSf2Jz8AxowZw//bM4LdJ0/v9z7sraf2mWWMGTO66DTMBoWB7qlsT6e1SO8vpfhm4ISydmOBrT3Ex1aIVxQRCyOiISIa6uvr3/RBmJlZZQNdVJYCpTu4moB7yuIz011gk4Gd6fTYSmCqpFHpAv1UYGVa96qkyemur5ll+zIzs4JU7fSXpB+TXWg/VtJmsru4vgncJelK4AXgY6n5MmA60AbsAq4AiIgdkr4GrErtbihdtAc+Q3aHWS3ZBfqqXqQ3M7OeVfPur8u6WHVehbYBXNXFfhYBiyrEW4FT3kyOZmaWLz9Rb2ZmuXFRMTOz3LiomJlZblxUzMwsNy4qZmaWm8HyRP2QUbNrh8f+Ag75j98D8MbhRxWcSfFqdu0A/ES9Gbio9Mn48eOLTmHQaGt7FYDx7/I/pjDavw2zxEWlD6655pqiUxg0Zs+eDcC8efMKzsTMBhNfUzEzs9y4qJiZWW5cVMzMLDcuKmZmlhsXFTMzy42LipmZ5cZFxczMcuOiYmZmuSmkqEjaJGmdpDWSWlPsGEktkjam91EpLknzJbVJWivptLL9NKX2GyU1dfV9ZmY2MIrsqXwkIiZFRENavh54ICImAA+kZYBpwIT0mgXcClkRIpui+CzgTGBuqRCZmVkxBtMwLTPI5rQHaAYeBq5L8cVpyuFHJR0t6fjUtqU0Z72kFqAR+PHApj3wFixYQFtbW6E5lL6/NFxLkcaPH+8hdMwGiaJ6KgHcJ2m1pFkpNjoitgGk9+NSfAzwYtm2m1Osq/hBJM2S1Cqptb29PcfDGL5qa2upra0tOg0zG2SK6qmcHRFbJR0HtEh6ppu2qhCLbuIHByMWAgsBGhoaKrYZSvy/cjMbrArpqUTE1vT+EvAzsmsi29NpLdL7S6n5ZuCEss3HAlu7iZuZWUEGvKhIepukt5c+A1OBp4ClQOkOribgnvR5KTAz3QU2GdiZTo+tBKZKGpUu0E9NMTMzK0gRp79GAz+TVPr+H0XECkmrgLskXQm8AHwstV8GTAfagF3AFQARsUPS14BVqd0NpYv2ZmZWDGU3VQ0fDQ0N0draWnQaZmZDiqTVZY+AdMlP1JuZWW5cVMzMLDcuKmZmlhsXFTMzy82wu1AvqR14vug83iKOBX5XdBJmXfDvM1/vjIj6nhoNu6Ji+ZHU2pu7QcyK4N9nMXz6y8zMcuOiYmZmuXFRsTdjYdEJmHXDv88C+JqKmZnlxj0VMzPLjYuKHUTStZI2SLojh319MY+czGxo8OkvO0iaNG1aRDxXFhsREXv7sa/XIuLIXBM0S5QNd66IeKOf2/frd21dc0/FDiDpO8C7gKWSdkpaKOk+YLGkwyX9QNI6SU9K+kja5nJJP5W0QtJGSf8rxb8J1Epak0evxwxA0rjUk74FeAL4lKRfS3pC0k8kHZnafVnSKklPpd+xUvxhSd+Q9AtgdoGH8pbknoodRNImoAG4GrgQOCcidkv6AnBKRFwh6WTgPuA9wKXAl4EPAHuA36ZtXnRPxfImaRzwLPBfyOZZ+ilZz/oPkq4DDouIGyQdU5pjSdIPgbsi4ueSHgaejojPFnIAb3HuqVhPlkbE7vT5HOCHABHxDNlwN+9J6x6IiJ0R8R/A08A7BzxTG06ej4hHgcnARODfJa0hmzW29Nv7iKTHJK0DzgXeV7b9nQOa7TBSxMyPNrT8oeyzumm3p+zzPvzbsuoq/S4FtETEZeUrJR0O3AI0pB7zV4DDK2xvOXNPxfriEeCTAJLeA5xIdqqrO3+UNLLaidmw9ShwtqTxAJKOSL/NUgH5XbrGcklRCQ43LirWF7cANel0wp3A5RGxp4dtFgJrfaHeqiEi2oHLgR9LWktWZE6OiFeA7wHrgH8DVhWW5DDjC/VmZpYb91TMzCw3LipmZpYbFxUzM8uNi4qZmeXGRcXMzHLjomLWT5LeIenunPY1TtJTeeyrbJ+XS3pH2fL3JU3M8zvMOvNTz2b9FBFbGdwP1V0OPAVsBYiI/1loNjYsuKdiw5Kkv5L0eBpB+buSaiS9JulGSb+R9Kik0antu9PyKkk3SHotxff3LroaqTmtm1ppFN1ucutqNOgaSf87xddKuibFDxqNV9IlZIOC3pGOsTaNztuQtrks7ecpSTeVfXfFv4FZb7mo2LAj6b3Ax4GzI2IS2VhlnwTeBjwaEe8nG5Lmb9Im84B5EXEG6X/9XZiU9nsq8HFJJ0g6FvgSMCUiTgNagb/rIcWrACLiVOAyoDmNZTULOAn4QET8OVAapeBfIuKMiDgFqAU+GhF3p+/6ZERMKhsUlHRK7CayQRYnAWdIujit7upvYNYrLio2HJ0HnA6sSiPbnkc2h8zrwL2pzWpgXPr8n4GfpM8/6ma/lUZq7m4U3a50NRr0FOA7pUmlSsO60/1ovJWcATwcEe1pX3cA/zWt6+pvYNYrvqZiw5GA5oiYc0BQ+vv407hF/RlpudJIzV2NonsW8N20+GVgbaf8usr7gHGVejEab1f76cof3+TfwIY591RsOHoAuETScQCSjpHUXe/hUeC/p8+X9vG7Ko6iGxGPpdNSkyJiaadtuhoN+j7g05JGlPKm+9F4XwXeXiGnx4APSTpWUg3ZKbZf9PG4zCpyUbFhJyKeJrvOcV8a2bYFOL6bTT4H/J2kx1O7nX34roqj6PawWVejQX8feIFs1OffAJ/oYTTe24HvlC7Ul+W0DZgDPAT8BngiIu7p7TGZdcejFJv1QNIRwO6ICEmXApdFxIyi8zIbjHy+1KxnpwP/IknAK8BfF5yP2aDlnoqZmeXG11TMzCw3LipmZpYbFxUzM8uNi4qZmeXGRcXMzHLjomJmZrn5/5wcL3qqPhIXAAAAAElFTkSuQmCC\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": 22, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f80410dc208>" | |
] | |
}, | |
"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": [ | |
"# 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": 23, | |
"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": 23, | |
"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": 24, | |
"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": 24, | |
"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": 25, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"fwd 118\n", | |
"rwd 75\n", | |
"4wd 8\n", | |
"Name: drive-wheels, dtype: int64" | |
] | |
}, | |
"execution_count": 25, | |
"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": 26, | |
"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": 26, | |
"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": 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>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": 27, | |
"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": 28, | |
"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": 28, | |
"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": 29, | |
"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": 29, | |
"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": 30, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array(['rwd', 'fwd', '4wd'], dtype=object)" | |
] | |
}, | |
"execution_count": 30, | |
"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": 31, | |
"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": 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>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": 32, | |
"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": 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>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": 33, | |
"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": 34, | |
"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": 34, | |
"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": 35, | |
"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": 35, | |
"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": 36, | |
"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", | |
" </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", | |
"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": 36, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"df_gptest1 = df[['body-style','price']]\n", | |
"grouped_test2 = df_gptest1.groupby(['body-style'],as_index=False).mean()\n", | |
"grouped_test2" | |
] | |
}, | |
{ | |
"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": 37, | |
"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": 38, | |
"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.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": 39, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEqCAYAAAAf20taAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAHmFJREFUeJzt3XmYZGV99vHv3cMaAVlFBBTknYiICzsq+uKGA1FwQYKXCiqKGhQxbmg0GI1JzBV9FRMXjCjggmhcRgUnI4qAsg2CLKIyjgITiAiDiALCzNzvH+dpKYaeqe6u6jldz7k/13Wurnrq1KlfzXT/6qlnlW0iIqI+Y20HEBERMyMJPiKiUknwERGVSoKPiKhUEnxERKWS4CMiKpUEHxFRqST4iIhKJcFHRFRqnbYD6KV1NrDW37jtMIar0pnCj567fdshDN3iG3/fdggzYust/qLtEGbEDT+/6hbbWw1yjbFNtjPL7+57nu+6dYHteYO8VhtmV4Jff2PW2+WFbYcxVCuX39N2CDPijDM/3HYIQ3fwPyxsO4QZcezLdms7hBlx3H47XTfwRZbfzTqPOrjvafde/pktB36tFsyqBB8RsVZJaGxO21HMmCT4iOgwMbbOem0HMWOS4COiu1KDj4iokwDNSYKPiKiPxFhq8BERdUoTTUREjdIGHxFRJyHG1lm37TBmTBJ8RHRXavAREfVKgo+IqJGUYZIRETUSqcFHRNRJY8zJUgURERVSavAREVUSGUUTEVGtJPiIiBplHHxERK2S4CMiqiSJsXUziiYioj5poomIqFcSfEREpcbG1HYIMyYJPiI6SxJKgo+IqNOcOWNthzBjkuAjortEavARETVqVpNMgo+IqJAYUxJ8RER90kQTEVGvJPiIiApJMGedJPiIiCqp4jb4tTIAVNL+kr61Nl4rImKyJDE21v8YVdNK8GrUOzsgIjpDY+p79L2GtL2k70u6RtLVkt5YyjeXtFDSteXnZqVckk6UtFjSFZJ277nWkeX8ayUd2VO+h6Qry3NO1CS+ekw6SUvaoQT/MWAJ8OlS/kZJS8rtnSSdX27Pk/Szcv8Fk32diIi1aRgJHlgOvNn2o4F9gWMk7QIcD5xtey5wdrkPcCAwtxxHAx+H5gMBOAHYB9gbOGH8Q6Gcc3TP8+b1C2qqtfBHAacCTwR2LWVPAW6VtC2wH3CepA2ATwHPLY8/dIqvExEx8wRjUt+jH9s32f5xuX0HcA2wLXAIcEo57RTgeeX2IcCpblwIbCppG+DZwELby2zfBiwE5pXHNrF9gW3T5OHxa63WVBP8dbYvtP2/wEaSNga2B74APJUmmZ8H7Az8yva1JZjPre6Cko6WtEjSIi+/e4rhRERMnxBj64z1PaZ0TWkHYDfgImBr2zdB8yEAPKScti1wQ8/TlpayNZUvnaB8jaaa4P/Yc/sC4BXAz2mS+lNoavY/LI97Mhe0fZLtPW3vqXU2mGI4EREDEJPtZN1yvCJajqMnvJy0EfBfwHG2f7/mV34AT6N8jQYZJnku8N5yXAY8DbjL9u2SfgbsKGkn278EXjzA60REzJhJDpO8xfaefa6zLk1y/7ztr5bi30jaxvZNpZnl5lK+lKb1Y9x2wI2lfP9Vys8p5dtNcP4aDTIS5rwS4Lm2V9B8rTgfwPbdNJ0B3y6drNcN8DoRETOiWWys/9H3Os2nxKeBa2x/qOeh+cD4SJgjgW/0lB9RRtPsC9xemnAWAAdI2qx0rh4ALCiP3SFp3/JaR/Rca7UmXYO3/Wvu61il1MzVc/+AVc7/Dk1bfETE7KSh7ej0ZOBlwJWSLi9l7wT+BThD0lHA9cCLymNnAgcBi4E7aZq7sb1M0vuAS8p577W9rNx+HfBZYEPgrHKsUWayRkSHibEhbPhh+3wmbicHeMYE5xs4ZjXXOhk4eYLyRfRUsicjCT4iOkvDq8HPSknwEdFpWU0yIqJCEsxJgo+IqFMSfEREhYSS4CMiaiTBelNcimCUJMFHRGdJsE5q8BER9RFpg4+IqJPSBh8RUaWmBp82+IiIKqUGHxFRoTEpo2giImo1Z3LrwY+kJPiI6KwsVRARUbEk+IiICmWiU0REpUQ6WSMiqpQ2+IiISmWpgoiIWqUGHxFRp6wHHxFRsST4iIgKjWXDj4iISqUNPiKiTkJZiyYiolZjSfAREfURMKfe/J4EHxEdJhhLG3xERH0ErJst+yIi6pMmmrVot7/clh+d/U9thzFcF3+j7QhmxjVfbzuCobv2rTu3HcKM8Njv2g5hRhw3jItIaaKJiKiRyCiaiIhqpYkmIqJCEqw7J52sERHVSRNNRETFam6iqfe7SUREH0KMqf8xqWtJJ0u6WdJVPWXvkfQ/ki4vx0E9j71D0mJJP5f07J7yeaVssaTje8p3lHSRpGslfUnSev1iSoKPiO4qq0n2Oybps8C8Ccr/n+0nlONMAEm7AIcDjynP+ZikOZLmAP8BHAjsAry4nAvwgXKtucBtwFH9AkqCj4jOatrg+x+TYftcYNkkX/oQ4HTbf7L9K2AxsHc5FtteYvse4HTgEEkCng58pTz/FOB5/V4kCT4iOmt8qYJ+x4BeL+mK0oSzWSnbFrih55ylpWx15VsAv7O9fJXyNUqCj4juEswZ638AW0pa1HMcPclX+DiwE/AE4Cbgg/e98gN4GuVrlFE0EdFZUxgmeYvtPad6fdu/+fNrSZ8CvlXuLgW27zl1O+DGcnui8luATSWtU2rxveevVmrwEdFhzY5O/Y5pX13apufu84HxETbzgcMlrS9pR2AucDFwCTC3jJhZj6Yjdr5tA98HDi3PPxLou9BVavAR0VnDnOgk6YvA/jTNOUuBE4D9JT2Bpjnl18BrAGxfLekM4KfAcuAY2yvKdV4PLADmACfbvrq8xNuB0yX9I3AZ8Ol+MSXBR0RnNUsVDCfB237xBMWrTcK23w+8f4LyM4EzJyhfQjPKZtKS4COi0ypeqSAJPiK6bWzCASp1SIKPiM4SqcFHRFSr4g2dkuAjosOUGnxERJXEYOPcZ7sk+IjotDTRRERUquL8ngQfEd2VLfsiIipWcX5Pgo+Ibqt5xcUk+IjoLJUt+2qVBB8RnZYmmoiICok00UREVEsVV+GT4COiu5SJThERVRIwpP0+ZqUpNT9JOlbSNZI+P8XnnSNpyhvWRkTMNEl9j1E11Rr83wAH2v7VTAQTEbE2NTNZ245i5ky6Bi/pE8AjgfmS7pC0qRq3SjqinHOapGdK2lDS6ZKukPQlYMMZij8iYiCaxDGqJp3gbb8WuBF4GvB54MnAY4AlwFPKafsCFwKvA+60/TiaTWX3GGLMERFDIsbU/xhV0x0Ceh7w1HJ8HHispG2BZbb/UMo/B2D7CuCK1V1I0tGSFkla9Ntbb51mOBER01A2/Oh3jKrpJvhzaWrtTwHOAX4LHEqT+Md5MheyfZLtPW3vudUWW0wznIiIqZONVq7oe4yqaSV42zcAWwJzbS8Bzgfewn0J/lzgJQCSdgUeN3ioERHDJ6/se4yqQWbpXgT8otw+D9iWJtFD02yzkaQrgLcBFw/wOhERM8Tglf2PETWlYZK2d+i5/bKe2z+i58PC9l3A4UOILyJiZnlSrckjKTNZI6K77JGuofeTBB8RnTbKbez9JMFHRIcZVi5vO4gZkwQfEd1l0kQTEVEnw8ok+IiIKqUNPiKiVknwEREVsmGElyLoJwk+IjotTTQREVWqe6LTIGvRRESMviGtRSPpZEk3S7qqp2xzSQslXVt+blbKJelESYvLxki79zznyHL+tZKO7CnfQ9KV5TknahJ7CSbBR0R3eaiLjX0WmLdK2fHA2bbnAmeX+wAHAnPLcTTNAo1I2hw4AdgH2Bs4YfxDoZxzdM/zVn2tB0iCj4jOEsNbLtj2ucCyVYoPAU4pt08BntdTfqobFwKbStoGeDaw0PYy27cBC4F55bFNbF9g28CpPddarbTBR0SHGVbM6CiarW3fBGD7JkkPKeXbAjf0nLe0lK2pfOkE5WuUBB8R3TX5pQq2lLSo5/5Jtk8a4JUnaj/3NMrXKAk+Ijptkk0wt9jecxqX/42kbUrtfRvg5lK+FNi+57ztgBtL+f6rlJ9Tyreb4Pw1Sht8RHTYjO/oNB8YHwlzJPCNnvIjymiafYHbS1POAuAASZuVztUDgAXlsTsk7VtGzxzRc63VSg0+IrptSOPgJX2Rpva9paSlNKNh/gU4Q9JRwPXAi8rpZwIHAYuBO4FXANheJul9wCXlvPfaHu+4fR3NSJ0NgbPKsUZJ8BHRXUNcqsD2i1fz0DMmONfAMau5zsnAyROULwJ2nUpMSfAR0WHGy+9tO4gZkwQfEd1lsthYRESNjPHMjoNvVRJ8RHSXyY5OERF1ynrwERF1cjpZIyIqZZwafEREhTKKJiKiVk4na0RElUyGSUZE1CmjaCIi6pRRNBERtUoNfq25/vJreOODd+9/YrTuQ195fdshDN1dex/adggzYqNrz207hNkro2giIupkjDOKJiKiQqnBR0RUysb33tN2FDMmCT4iOiwTnSIi6pUmmoiICjmLjUVEVCujaCIiamTjFUnwERHVsc3Ke5e3HcaMSYKPiO4yqcFHRNQqCT4iokK2WZn14CMi6pRRNBERNcoomoiIOmUUTURExVamBh8RUaEMk4yIqFTa4CMi6mQyiiYiok42K+9JJ2tERH0MK1ODj4ioj6m7DX6s7QAiIlpj8IoVfY/JkPRrSVdKulzSolK2uaSFkq4tPzcr5ZJ0oqTFkq6QtHvPdY4s518r6chB3l4SfER0mPHKlX2PKXia7SfY3rPcPx442/Zc4OxyH+BAYG45jgY+Ds0HAnACsA+wN3DC+IfCdCTBR0R3lXHw/Y4BHAKcUm6fAjyvp/xUNy4ENpW0DfBsYKHtZbZvAxYC86b74mmDj4jOss2K4Y2iMfDfkgx80vZJwNa2byqvdZOkh5RztwVu6Hnu0lK2uvJpSYKPiA7zZJtgthxvVy9OKgm815Nt31iS+EJJP1vD9TRhMKsvn5Yk+IjorskvVXBLT7v6xJeybyw/b5b0NZo29N9I2qbU3rcBbi6nLwW273n6dsCNpXz/VcrPmUyAE0kbfER0l8Er3PfoR9KDJG08fhs4ALgKmA+Mj4Q5EvhGuT0fOKKMptkXuL005SwADpC0WelcPaCUTUtq8BHRWcbDWk1ya+BrkqDJq1+w/R1JlwBnSDoKuB54UTn/TOAgYDFwJ/AKANvLJL0PuKSc917by6YbVBJ8RHSXwSun3cR932XsJcDjJyi/FXjGBOUGjlnNtU4GTh44KKbQRCNpjqTLJH1rqi8iaQdJV031eRERM8mGFfes6HuMqqnU4N8IXANsMkOxRESsXZ5cG/uomlQNXtJ2wF8B/1nu7y3pq+X2IZLukrSepA0kLSnle0j6iaQLWM1XkYiItq1c4b7HqJpsE82HgbcB470RPwZ2K7efQtNbvBfN9NqLSvlngGNtP3E4oUZEDNnMz2RtVd8EL+k5wM22Lx0vs70cWCzp0TRjPT8EPJUm2Z8n6cHAprZ/UJ5y2hquf7SkRZIW3c3otnVFxOgxsHKl+x6jajJt8E8GDpZ0ELABsImkzwHn0SyYcy/wXeCzwBzgLTSzsSb1r1Jmg50EsJXWH91/yYgYPfZId6L207cGb/sdtrezvQNwOPA92y8FzgWOAy6w/VtgC2Bn4GrbvwNul7RfucxLZiT6iIgBeEgTnWarQcbBX0QzuP/ccv8Kmqac8X+NVwAnS7qTAWZiRUTMmJLgazWlBG/7HMq6CLbvAtbveezoVc69lPsP/H/PNGOMiJghQ5vJOitlJmtEdNeQZrLOVknwEdFZhpEe595PEnxEdJfNyopH0STBR0Rn2anBR0RUa4qbao+UJPiI6C6P9loz/STBR0R3ZRx8RESdzKT3ZB1JSfAR0V02K+5Jgo+IqI4NK50mmoiIKq1Igo+IqI+BivtYk+AjottSg4+IqNBKwz1ZbCwiok5poomIqJBxmmgiImqUTtaIiIolwUdEVMjOKJqIiCqZjKKJiKhS2uAjIiqWJpqIiAo1bfBtRzFzkuAjotNSg4+IqJCBeleDT4KPiA4zziiaiIgaNaNo6k3wY20HEBHRmtLJ2u+YDEnzJP1c0mJJx89s4JOTGnxEdNawavCS5gD/ATwLWApcImm+7Z8OfPEBpAYfEZ02pBr83sBi20ts3wOcDhwyk3FPRmrwEdFZKxnaUgXbAjf03F8K7DOMCw9CnkUdDJJ+C1y3ll5uS+CWtfRaa0uN7wnqfF81vidYu+/rEba3GuQCkr5DE3M/GwB399w/yfZJPdd5EfBs268q918G7G37DYPEN6hZVYMf9D9rKiQtsr3n2nq9taHG9wR1vq8a3xOM3vuyPW9Il1oKbN9zfzvgxiFde9rSBh8RMbhLgLmSdpS0HnA4ML/lmGZXDT4iYhTZXi7p9cACYA5wsu2rWw6r0wn+pP6njJwa3xPU+b5qfE9Q7/vqy/aZwJltx9FrVnWyRkTE8KQNPiKiUknwERGVSoKPiKhUpzpZJe0HzLX9GUlbARvZ/lXbcQ1K0guA/WiW1jjf9tdaDmlgkg60fdYqZa+1/Ym2YhoGSU8CdqDnb8/2qa0FNARlHZatuf97ur69iGJcZzpZJZ0A7Ak8yvZfSnoY8GXbT245tIFI+hjwf4AvlqK/Bn5p+5j2ohqcpB8B77L9vXL/7cD+tg9sN7Lpk3QasBNwObCiFNv2se1FNRhJbwBOAH7DfXtn2Pbj2osqxnUpwV8O7Ab82PZupeyKUf9FlHQ1sKvLf6SkMeBK249pN7LBSNoS+BbwVmAesDNwuO17Ww1sAJKuAXZxRX90khYD+9i+te1Y4oG61AZ/T/nDGk+ED2o5nmH5OfDwnvvbA1e0FMvQ2L4FOJhmCdaHAYeOcnIvrgIe2nYQQ3YDcHvbQcTEutQGf4akTwKbSno18ErgUy3HNAxbANdIurjc3wu4QNJ8ANsHtxbZNEi6g+ZDWOXnesAjgUMl2fYmbcY3oC2Bn5b/qz+NF47a/9EqlgDnSPo2939PH2ovpBjXmQRv+98kPQv4PfAo4O9tL2w5rGH4+7YDGCbbG7cdwwx6T9sBzIDry7FeOWIW6UwbfM0kbU1Tcwe42PbNbcYzDJKeD3zP9u3l/qY0naxfbzeymIikjWk6V//Qdixxn+rb4CXdIen3Exx3SPp92/ENStJhwMXAi4DDgIskHdpuVENxwnhyB7D9O5rRGiNL0r6SLpH0B0n3SFox6r+DknaVdBlN/8LVki6VNNId/DWpvomm8q/8AH8H7DVeay/j+78LfKXVqAY3UeVj1H9f/51mGdkv0wzZPQKY22pEgzsJ+Fvb3weQtD9N39aT2gwqGqP+BzMlknbn/hOCLms5pGEYW6VJ5lbq+Ga2SNKHaEbRGHgDcGm7IQ3O9mJJc2yvAD5TxvuPsgeNJ3cA2+dUNEJt5NWQCCZF0t8Dp9CMOtkS+Kykd7Ub1VB8R9ICSS+X9HLg28BZfZ4zCt4A3AN8iabGezcw0pO3gDvLZhCXS/pXSW8CRj0ZLpH0bkk7lONdwMjPDq9FZzpZyyST3WzfXe5vSDPp6dHtRja4nqUKBJxbw1IFNZL0COBmYF3gTcCDgY/ZXtxqYAOQtBnwD/T8/gHvsX1bq4EF0K0Efxbw4tJZNz4q43O2n9NuZIOR9AHbb+9XNmpKX8LbgMfQbHgMgO2ntxZUxIipvg1e0kdp2nD/RNPLv7DcfxZwfpuxDcmzgFWT+YETlI2az9M0zzwHeC1wJPDbViOaJklXUmZQT2SUl8uQ9E0e+N5uBxYBnxz/xhztqL4GL+nINT1u+5S1FcswSXod8Dc0szx/2fPQxsAPbb+0lcCGRNKltvfoXS9I0g9s/9+2Y5uq0jQD9/UhnFZ+vgS40/Z7135UwyHpI8BW3H+xu/8FNgQ2sf2ytmKLDiT4Wkl6MLAZ8M/A8T0P3WF7WTtRDY+kC23vK2kBcCJwI/AV2zu1HNq0SfrhqquXTlQ2SiSda/upE5VJunrUF70bdV1oojnD9mGr+5o8wl+P59Asu/CAkSWSNq8gyf9j+RB7M/BRYBOajslR9iBJ+9k+H/68Nvyoj6LZStLDx9d/l/RwmlFq0IyCihZVX4OXtI3tm3q+Jt+P7evWdkzDIOlX3Lco18OB28rtTYHrbe/YYngxAUl7ACfTjJ4xTVv1K23/uNXABiDpIOATNM2EAnakaTo8B3i17Q+3F11Un+DHVTza5BPAfNtnlvsHAs+0/eZ2IxuMpEcCHwGeSLORxAXAm2wvaTWwIZC0Cc3fXhXL7Epan2a9fgE/S8fq7NGZiU40o01WNbK7A/XYazy5A5Rt7kauI3ICXwDOoFk//WE0k52+uMZnzHKStpb0aeBLtm+XtIuko9qOawjm0qzQ+jjgMElHtBxPFNUneEmvK+3vO0u6ouf4FRVsjAHcIuldZRbhIyT9Hc1yBaNOtk+zvbwcn2MNQw1HxGeBBTQfWAC/AI5rLZohULMV5kfL8TTgX2k2aolZoPommg6MNtmcZpXFp9IkwHOB947qeyvvB5pJTr8DTqd5X38NrG/7fW3FNihJl9jeS9JlPdtGXm77CW3HNl2l8vR44DLbjy9LV/+n7ee2HFrQgVE05avwHcBjR7VDdXXU7Gb/DttvbDuWIbqU+zqPAV7T85iBkU3wwB8lbcF920buy+hvd3e37ZWSlpe+hZtp5mbELFB9ggcov4A/6R3OVQPbK8rIjGpUPvrnb4H5wE6SfkgzQWjU1+6/pCz78SmaD+c/0OxPELNAJxJ8sQ3NUgUXA38cLxzx/TABLlOz/+qXuf/7+mp7IQ1HGSe+Az2/p7ZPbS2gwe1E07G/PfBCYB9G/29wY5rNZs4BvkMze7WGvq0qVN8GP07ShCNLbP9gbccyTJI+M0Gxbb9yrQczRJJOo0mIlwMrSrFtH9teVIMZX3ZB0n7APwEfBN5pe5+WQ5s2SU+nWUnyKTRNM5fTrGj6kVYDC6BDCR7+vCbIXNvflfQXwBzbd7QdVzxQWd55F1f0CzreuSrpn4ErbX+ht8N1VJW+oL1oRtG8FrjL9s7tRhUw+l8PJ03Sq4Gjgc1paobb0szAe0abcQ1K0gbAUTxwWd2RrsHT7PH5UOCmtgMZov+R9EngmcAHygShkR6qLOlsmuUWLgDOo2f7yGjfSP9yTdExwJNp1m/B9rXAQ1qNaDhOo0mEzwZ+AGwHjOy3EknfLH0KWwI/LbtVzR8/2o5vQIfRjIOfV/Yl2Bx4a7shDewKmjVndqWZ6LRr2UwnZoHONNFIusj2Pj1fk9eh2dFpVBcbA+73tX+8fXddYMGoboyxur6ScaPeZ1IrSRsBrwDeAjzU9vothxR0qIkG+IGkdwIbSnoWzYJI32w5pmG4t/z8naRdadbi3qG9cAYznsAl7QjctMoWi1u3GVs8kKTX03Sw7gFcR7OY2nmtBhV/1qUa/BhNW/UBNJNoFtDMuBvpfwBJrwL+C3gszVT4jYB32/5km3ENStIi4Em27yn316PZyGSvdiOLXpLeSjN7+lLby9uOJ+6vSwn++cCZtv/UdizDVDrqXkhTa1+3FHuUdwmCiafwS/qJ7ce3FVPEqOlSJ+vBwC8knSbpr0obfA2+ARwCLKeZRfgHeiY8jbDfSvrzJDRJhwC3tBhPxMjpTA0eoHRAHkizcNV+wELbr2o3qsFIusr2rm3HMWySdqLZeHt85cWlwMts/3L1z4qIXrXUYifF9r2SzqJZ7GlDmprvSCd44EeSHmv7yrYDGbKVZU/WjWgqIneUjteImKTO1OAlzQMOp5ltdw7wJeC/R7VjqGeP2XVoNlxYAvyJpgPZFQz//LHt3Vcpu9R2VYurRcykLtXgX06ztvhrKulofU7bAcwESTvTzMp9sKQX9Dy0CT0zdSOiv84keNuHtx3DMNW2tn2PR9F8eG0K9G4acQfw6lYiihhRXWqieQHwAZrlCcR9TRmbtBpYTEjSE21f0HYcEaOsSwl+MfBc29e0HUv0V/EiahFrTZfGwf8myX2kVLWIWkQbulSD/whNwvg6zWgToI6dj2pU2yJqEW3oTCcrzSiMO2nWohlnIAl+dqpqEbWINnQmwdt+RdsxxJScJGkz4F00G1VvBLy73ZAiRkuXmmi2Az5Ks+mHgfOBN9pe2mpgMaFaF1GLWJu61Mn6GZqa4MNotuv7ZimL2anWRdQi1pou1eAnWn72AWUxO9S6iFrE2tSlGvwtkl4qaU45Xgrc2nZQsVo/kvTYtoOIGGVdqsE/HPh34Ik0bfA/Ao61fX2rgcX91L6IWsTa1KUEfwpwnO3byv3NgX/LzMjZRdIj1vR4xWvwRAxdZ4ZJAo8bT+4AtpdJ2q3NgOKBksAjhqdLbfBjZVw18OcafJc+4CKiY7qU4D5I03H3FZo23sOA97cbUkTEzOlMGzyApF2Ap9N02J1t+6cthxQRMWM6leAjIrqkS23wERGdkgQfEVGpJPiIiEolwUdEVCoJPiKiUv8f1Y/CedSOFUQAAAAASUVORK5CYII=\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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n", | |
"grouped_test2.head(2)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [], | |
"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": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"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