Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Elliottba/168ffc9a8aa3386f1bfd8ac5b49b94b4 to your computer and use it in GitHub Desktop.
Save Elliottba/168ffc9a8aa3386f1bfd8ac5b49b94b4 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/DA0101EN_edx_link_Notebook_link_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": {},
"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/edx_DA0101EN_objectstorage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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,
"jupyter": {
"outputs_hidden": 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,
"jupyter": {
"outputs_hidden": 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": [
"float64"
]
},
{
"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,
"jupyter": {
"outputs_hidden": 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": {},
"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()\n"
]
},
{
"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": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56354.36577640383)"
]
},
"execution_count": 9,
"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": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 10,
"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": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f54ffdcd518>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEGCAYAAABcolNbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de3xc1Xno/d+z5z66y5Z8N7axjQyEEDAOFx9wbJKQNM3tQAJpG9qSQnMpOW9PWkh6mlBO877htG+T0LQJNKQhl0IoTQppQ1Js4RgSGzAXA47kC/L9NrIl6zqjmdl7nT/2HmkkjzQjS6MZyc/389HH0prZo6WNmEdrrWc9S4wxKKWUUsVilboDSimlZjYNNEoppYpKA41SSqmi0kCjlFKqqDTQKKWUKip/qTtQbmbPnm2WLFlS6m4opdS08tJLL500xjTkekwDzQhLlixh+/btpe6GUkpNKyJyYLTHdOpMKaVUUWmgUUopVVQaaJRSShWVBhqllFJFpYFGKaVUUWnW2STZ3BrjgS1tHOrsZ1FdlDuuXca6psZSd0sppUpORzSTYHNrjC8+uZNYT4LaSIBYT4IvPrmTza2xUndNKaVKTgPNJHhgSxsBnxAN+hFx/w34hAe2tJW6a0opVXIaaCbBoc5+IgHfsLZIwMfhzv4S9UgppcqHBppJsKguSjxlD2uLp2wW1kVL1COllCofGmgmwR3XLiNlG/qTaYxx/03ZhjuuXVbqrimlVMlpoJkE65oauff9F9FYFaYrnqKxKsy9779Is86UUgpNb54065oaNbAopVQOOqJRSilVVBpolFJKFZUGGqWUUkWlgUYppVRRaaBRSilVVBpolFJKFZWmNytAq08rpYpHRzRKq08rpYpKRzSTZDqPCLKrTwNEg376k2ke2NI2bX4GpVT50hHNJJjuIwKtPq2UKiYNNJNgup9Ho9WnlVLFVPJAIyI+EXlFRP7D+7peRJ4WkT3ev3VZz/28iOwVkV0i8u6s9stF5HXvsftFRLz2kIj8yGt/XkSWFONnmO4jAq0+rZQqppIHGuCzQEvW13cDm4wxK4BN3teIyIXAzcBFwA3AP4pI5t39m8DtwArv4wav/Tag0xizHPgqcF8xfoDpPiLQ6tNKqWIqaTKAiCwEfgv4MvCnXvMHgHXe5w8Dm4G7vPZHjTEDwD4R2QusEZH9QLUxZqv3mt8DPgg85V1zj/dajwPfEBExxpjJ/DnuuHYZX3xyJ/3JNJGAj3jKnnYjAq0+rZQqllKPaL4G/DngZLXNMcYcA/D+zbz7LQAOZT3vsNe2wPt8ZPuwa4wxaaALmDWyEyJyu4hsF5Ht7e3t4/4hdESglFKjK9mIRkTeB8SMMS+JyLpCLsnRZsZoH+ua4Q3GPAg8CLB69eqzGu3oiEAppXIr5dTZNcD7ReS9QBioFpEfACdEZJ4x5piIzAMyOcKHgUVZ1y8EjnrtC3O0Z19zWET8QA3QUawfSCml1JlKNnVmjPm8MWahMWYJ7iJ/szHmd4EngVu9p90KPOF9/iRws5dJthR30f8Fb3qtR0Su9LLNPj7imsxr3eh9j0ldn1FKKTW2cqwM8BXgMRG5DTgI3ARgjNkpIo8BvwHSwKeNMZlUr08C3wUiuEkAT3ntDwHf9xIHOnADmlJKqSkk+gf+cKtXrzbbt28vdTeUUmpaEZGXjDGrcz1W6qwzpZRSM1w5Tp2pGWg6Fx1VSk2MBpoZopzfyDNFRwM+GVZ09F4omz4qpYpHp85mgHKvHj3di44qpSZGA80MUO5v5NO96KhSamJ06myKFHNq61BnP7WRwLC2cnojX1QXJdaTGDxYDaZX0VGl1MToiGYKTMbU1ubWGLc8uI219zVzy4Pbhl1b7tWj9RgCpc5tGmimwESntvIFqnJ/I9eio0qd23TqbAoUMrU11tRadqACiAb99CfTPLClbbCY573e8w539rOwzLLOQIuOKnUu00AzBfKtUeRL/y0kUOkbuVKqXOnU2RTIN7WVb2qt3NdglFJqLDqimQL5prYOdfbjE2hr7yVpOwR9FrMrg4Mjlplwgmc5byhVShWXBpopMtbUVlXIz55YLz5L8FlC2jEcOZ1gRWPl4LXlvgYzFq0MoNS5TQNNGRisoJ0ppG1GtDO912DyJTMopWY2XaMpA71JmwW1Yfw+wTYGv09YUBumL2nnv3ga0MoASp3bdERTBjJZacsaKgfb+pNpGqvCJezV5NHKAEqd23REUwbKfcPlRM30n08pNTYd0ZSBQhb7p3PW1rqmRm48fJpvP7ePvqRNRdDHJ9YunTb9V0pNjAaaMjHWYv90z9ra3Brj8ZeP0FAVYrGXnv34y0e4ZGHttOi/UmpidOpsGij3YwDyme79V0pNjI5opoFyPwYgn3wbUpVSM5uOaKaB6V6Cpirk58jpBGnHDNuQWhnSv3OUOhdooJkGpnvW1rANqZkPhm9IVUrNXPon5TQwFSVoipnVltmQerI3OTh1NrcyNGM2pCqlxqaBZpooZgmaYme1zfQNqUqpsZVs6kxEwiLygojsEJGdIvJXXnu9iDwtInu8f+uyrvm8iOwVkV0i8u6s9stF5HXvsftFRLz2kIj8yGt/XkSWTPXPOR0UOytsuk/9KaUmppRrNAPAemPMW4FLgRtE5ErgbmCTMWYFsMn7GhG5ELgZuAi4AfhHEckU0PomcDuwwvu4wWu/Deg0xiwHvgrcNxU/2HRT7FpkepSzUue2kk2dGXcluNf7MuB9GOADwDqv/WFgM3CX1/6oMWYA2Ccie4E1IrIfqDbGbAUQke8BHwSe8q65x3utx4FviIiYMVahHWNIpGzCI954Z7KpqEU2natPK6UmpqRZZyLiE5FXgRjwtDHmeWCOMeYYgPdv5t1pAXAo6/LDXtsC7/OR7cOuMcakgS5gVo5+3C4i20Vke3t7O0dPxznc2U9PInVOZEbp1JZSqphKGmiMMbYx5lJgIe7o5OIxni65XmKM9rGuGdmPB40xq40xq2fNbgAgmXZo7xngYEc/nX1JbGfmBhyd2lJKFVNZZJ0ZY06LyGbctZUTIjLPGHNMRObhjnbAHaksyrpsIXDUa1+Yoz37msMi4gdqgI7x9M12DJ39SU7HU1SEfFSHAzNyWk2ntpRSxVLKrLMGEan1Po8A1wOtwJPArd7TbgWe8D5/ErjZyyRbirvo/4I3vdYjIld62WYfH3FN5rVuBJrHWp8ZizGG3kR6cFqtO5HCmcGjnMl2/8bdXHLPLzj/Cz/jknt+wf0bd5e6S0qpKVLKEc084GEvc8wCHjPG/IeIbAUeE5HbgIPATQDGmJ0i8hjwGyANfNoYk9nx90ngu0AENwngKa/9IeD7XuJAB27W2oQl0w4newbokCSVYT/V4QBBvxZZGM39G3fz9ea9WAJ+y000+HrzXgDuvH5liXunlCo2ORcWu8fj0ssuNz/+xS/HfV0k6KMmEhiWuaVcl9zzC+IpG781FIzTjkMk4OO1e949xpVKqelCRF4yxqzO9Zi+K06SeNImnrQJ+CyqIwGqQn4sK1cuwrmnL2kzcsBnCVqCRqlzhM73TLKU7XCq181WO9U7QMp2St2lkqsI+hi5nOUYt10pNfNpoCkSxxi64ikOdfRzvCtBfzJd6i6VzCfWLsUx7nSZYxzvX7ddKTXz6dTZCPGkjTEGr1zapOhPpulPpt1ptXCAqvC5Na2WWfD/9nP76EvaVAR9fGLtUk0EUOocockAI4TmrTCX3fkt1jc1cv2qRs6bVTHp30NEqAz5qY74Cfl1+kgpNf2NlQyggWaE0LwVZt6tXxv8enlDJetXNbKhqZGGqtCkf79wwEd1JEBF0DepoyillJpKGmjGYdVbLjUfvvf7bGqJcbw7MdguwCULa9iwag7XrphNdSQwqd/Xb1lUhf1Uhf34fTNv6ayYB6sppUpPA804ZPbRGGPYebSbTa0xNu9qpyueGnyO3xLWLK1nQ1MjV50/a1JL0ogIFUF3lDNTSt1kH6wWCfiIp2xSttF6akrNIBpoxiHXhs207bD9QCfNrTGe23uSRGooZTkS8LF2xWyuX9XIZYvr8E3iIn/Q7+7JqQxO7+SBWx7cdsYxBJkTNh+5/coS9kwpNVl0w+YE+X0WVy6bxZXLZhFP2Wx78xQbW2K8sL+DeMrm6d+c4OnfnKAuGuC6lQ1sWNXIhfOqJ7zmkl3qxp1Wm56lbg519lM7YqpxMg9WU0qVNw004xQJ+HhHUyPvaGqkK55iy+52NrbEeP1IF539Kf791aP8+6tHmVcTnrTMtcyenK54imjQzVabTqVuFtVF2X+ql+54mqTtEPRZVEf8LJlVWequKaWmwPR5typDNZEAv/3W+fz2W+dzojvBM60xNrbGaGvv41hXgh8+f5AfPn9wUjPXsvfkZEY5kzldVwxXLavnhf0dWOKWnknaDrGeJLdcUV/qrimlpoCu0YxwtkU1s+072Udza2yMzLVGrl3RMCmZayJCVdjPqwc7eei5/WWZ1XXLg9vYd7KXnsTQiKYq7Gfp7Epdo1FqhtBkgHGYjECTMVWZay+0dfD15j0EfUJFyM9A2imrrK619zVTGwkMW7My3nTgs3etL2HPlFKTRZMBSkREuHhBDRcvqOHT687npYOdbGoZylz79Zun+PWbpwYz1zY0NXL5eePPXHv0xUP4LSHk95G2DX7LwnFsvvXLN8si0Cyqi56RdRZP2Sysi5awV0qpqaKBZor4fRZvXzqLty+dRSJl8+s3T7EpR+ZabSTAdRc0cP04MteOdcepDg/9pzTG4PcJB0710dmXLPkm0DuuXcYXn9xJfzI9bB/NHdcuK1mflFJTRwPNCH5LWFAXIZ606U/aDKQdJnt6MRzwsb6pkfVe5tovd7fT3BrjtcNdnI6neOLVozyRlbm2YVUjS8bIXJtXHeFU3wCRrOm3RMphTnWEzv4kp+Opkm4CXdfUyL3AA1vaONzZz8IyW0NSShWXBpocQn4fIb+P2ig4jqE/ZQ8ebJZ2Jvd8mZpIgPe/dT7vz5O5dn5DBRtWzWH9BQ00VoeHvcbNVyzi6817iKdswgGLRMoh7RhuvmIR4I5wegfS9A6kBzeBVoX8JamtdrYhW0vYKDV9aTLACKtXrzbbt28f9fGBtF3U0U7GeDPXXmjr4NEXD3G8O87c6gg3X7GINctGTx/2WUJVOED1FEyrTbQEjZawUar8adbZOOQLNNkcxxBPuUGnGKMdGMpca/Yy106PyFy7Ykk9G1Y1cvVZZq5NRW21iZagueXBbaNu+NT0aKXKg2adFYlluenEFSH3NhZjtJOdufapdefz8sHTbGqN8dyek8RTNlvbTrG17RThgMXa5bPZsKqR1efVF5y5lj2tFgr4qA77qcwxrTaRqauJlqDZE+uhqz+FZQk+S0g7hpM9SVJ2T0HXK6VKSwPNJBq5tjPZox2/z2LN0nrWLK0ncb2budbcGuOFfR0kUg4bW2JsbImdVeYawEDKpj1l09mXoirspzriVh3InrqqjQSI9ST44pM7uRcKCjYTTW9Oph0QsLyfQwQcMW67UqrsaaApkmKPdrIz17rjKbbscWuujZa5tr6pkaWzC6u5lnacoWy1kI9v/vJNAj4ZDBTRoJ/+ZJoHtrQVFGgmmt4c8AnxlBu8RSBz64K+oQB6/8bdelS0UmVKA80UKeZopzoS4H2XzOd9l8wn1p2geVc7m1pO8GauzDUv6IzMXMvFGENvIs3+U33URgLYjhmckhvP1NdE05tXzqnOUcImwNLZblHO+zfu5uvNe7EE/JY7Wvp6814ADTZKlQFNBhhhPMkAk6VYmWz7T/WxqSVGc2uMY12JYY9dsrCGDU2NXLcyf821P/3RjsF9OiKCJW6f51RHpmQxPl/W2SX3/IJ4ysZvDWXPpR2HSMDHa/e8u+j9U0qNnQxQsu3iIrJIRJ4RkRYR2Skin/Xa60XkaRHZ4/1bl3XN50Vkr4jsEpF3Z7VfLiKve4/dL96ihIiERORHXvvzIrJkqn/OQrgjnSDzayOcVx9lTnWYqnBg2Bvn2Vgyq4Lb1i7lB7et4e9vuZQPXjp/cFH+tcNdfHXjHm781lb+4idv0NwaI5Gyc77OzVcsIu2Nwhzj0DuQJp5y+OjqhcSTua+ZTOuaGrn3/RfRWBWmK56isSo8LLW5L2kzMvfBErddKVV6JRvRiMg8YJ4x5mURqQJeAj4I/D7QYYz5iojcDdQZY+4SkQuBR4A1wHxgI7DSGGOLyAvAZ4FtwM+A+40xT4nIp4BLjDF/LCI3Ax8yxnx0rH6VYkQzlsxoJ56ySaQmPtqxHcNLBzqHZa5lZGeuXb64btj+mrH26QR8Q5tAS3ESqI5olCq9skxvNsYcA455n/eISAuwAPgAsM572sPAZuAur/1RY8wAsE9E9gJrRGQ/UG2M2QogIt/DDVhPedfc473W48A3RETMNJovHFzbYXLWdnxe1eh8mWs1kQDrvNNCL5pfPXh9rhuXsh1O9Q7Q2ZekIuSnJjK1J4F+Yu1Svt68l7TjYAk4xv34xNqlU9YHpdToyiIZwJvSehvwPDDHC0IYY46JSGbFeAHuiCXjsNeW8j4f2Z655pD3WmkR6QJmASeL8oMUWa5MtkTSoT+VPqvRTq7MtU0tMXYc7qIrnuKJHUd5YsdR6qIBkrZDVchPddjPqb4Bvt68h8+yYlj1AccYehIpehIpwgF3E2hF0Ff0UjeZBX/NOlOqPJU80IhIJfBvwP8wxnSP8aaU6wEzRvtY14zsw+3A7QCLFy/O1+WykRnt1BCY8Gin9VgPzS3tHO9OcOHcas6bFWVPrJe97b109rvVCPoGbDr6U1SH/AT8wqMvHhq1zE0iZZPwprOqwn4e/vU+vvOr/UULBHdev1IDi1JlquBAIyLnASuMMRtFJAL4jTET2potIgHcIPNDY8yPveYTIjLPG83MA2Je+2FgUdblC4GjXvvCHO3Z1xwWET9QA3SM7Icx5kHgQXDXaCbyM5XKREY7mYPT/JZQHfbTM5Di1cOn+ez6FTTWhPiTf3mFgbRbqDOZdjiZTgJwsjfJT3cc5dqVDdSMkrmWdhzu37ibh7cdwBLwSe70Yy2aqdTMVdBEuoj8Ee4axwNe00Lg3yfyjb3MsIeAFmPM32U99CRwq/f5rcATWe03e5lkS4EVwAveNFuPiFzpvebHR1yTea0bgebptD4zESG/j5pogHk1+TPZHn3xEGnb5mTvAPtO9nGyd4C0bfPoi4dYMquCFY1VzK0OsaguQm0kgM8bdaZsM5i59oWfvM6mltiw5IKMx146DAZsB5I2pG2DcQzffm4fMJS+HOtJDKs8sLk1Nvgam1tj3PLgNtbe18wtD24b9pgqPr3/aiIKHdF8Gjfb63kAY8yerLWTs3UN8HvA6yLyqtf2BeArwGMichtwELjJ+547ReQx4DdAGvi0MSbzrvZJ4LtABDcJ4Cmv/SHg+17iQAdw8wT7PC2NHO0k0467b8cb7Rzo6KMnnkIswfJqiXX2pUg7fcDQMQR+gYaqIJUhH31Jm6WzKmg53kM8ZbOtrYNtbR0IUBsN8IG3zudjb1+M32fRn7SHzVca76MnkaYrnuJbv3yTlG1zqnd40cxM5YGJlsBRE6P3X01UoYFmwBiTlMFaU+Ln7I8WAcAY8xy511AANoxyzZeBL+do3w5cnKM9gReo1JCg3yLotwbXdtL2mbXE7KxaYmuW1fNZVgxLb/6Ml96cSNl8f+sBfvzKEXezKdDZn+K7Ww/wry8d5vpVc0bthwic6h1g14keeuKjF818YEvbhErglIPpPDU4E+6/Kq1CA80vReQLQERE3gl8Cvhp8bqlpoplCUG/RX/KJukFCnA3PGbXEluzrD7nwn844KPlWA+NVSGCPouegTQ9iRTxlENf0uaJHUfPuCYj4L1+pmimiGCM+9eHYSjQTbT6cyGKGQim+4hgKu6/mtkK3exwN9AOvA7cgbsp8n8Vq1NqajVWhTEOg+NLcd/pmVMdZn5thNpokMAYh6Md644TDlj4LPeNdFFdlCWzIlSFfCxvqBz1uswIKhNwHMdgjMF23HDnt9w9Oovqomes/Yyn+nM+hawRTUT2iEDE/TfgEx7Y0jYpr19sxb7/auYrNNBEgO8YY24yxtwIfMdrUzOAMcYd2VgWYb9F0LIGd/iHAz7qK4Isqo+yqD7KrMrQ4BtmxrzqCInU8HRq24HzG6p48OOXEx5l3BxPOXz20VepDGVO+hQcY/B7f/kvrq/kUEc/N12+kIG0Q38yjTGG/mT6jOrP+Rarx3q82IHgUGc/aduhrb2X1uPdtLX3kradaTMiuOPaZaRsM+b9V2oshQaaTQwPLBHcEjBqBuhN2iyoDeP3Cbb3Rr+gNnxGrbCAz6ImEmBuTZgls6LMrQlTEwnwu1cupr0nwe5Y7+BHe0+Cm69ws9HNqEtx8PqRLg6fjtPRn8YAsytD1FcECfh9g9dfuriWz6xbTnU4QEdfkobK0LBaZ5tbY/zZ4zt45WAnx7vivHKwkz97fMdgMMk3YjnU2U9kxOmikzk1VBXyc+R0grRX/TrtGI6cTlAZKvk2toLkqzWnVD6F/qaHjTG9mS+MMb0iouPmGSJzMNmyrGmuzFHLo8n85R8N+vnV3nYS6eG5IYm0YWPLcdYsqx+cChvJErh+1Rye9WquJVIOx1MDACybHcXBTVTI1FwzBmxjSKQdTvenSKRswgEf9/28lc7+FD5L8PssjHETEu77eSvrmhp5YEvbmFltEz2YLZ/BjPrMbTAj2qeBdU2NGljUWSt0RNMnIpdlvhCRy4F4cbqkptpEp0ae2HEsZ/um1nZC3tECPhlKMRTcjZs+S7j7PU18/oYmaiMBIoGhX8e2k/184SdvcNMD2/jCj1/nb/5rFyd7E24JnN4B7vtFK//+8hGOnI7zZnsvxhhStsNAyiFlO4Ch7aSbnr0n1sPJnuSwEcXJniR7Yj2T8vPnU+iIUamZqtARzf8A/lVEMilE84AxqyCr6aOQg8nGysoaZcCCARbURjh/dgV7Yr3uor93QqbjGBZ5I4Yfv3KEqrCfxkAI2zH0DqQ5HU8xkHboiqfYts8t5pCpXFAV9uO3hkrgOMZgj9iokzYg4jbmOwp6ogez5XM2I0alZpKCAo0x5kURaQIuwP2DtNUYkypqz9SUGmtqZKLpuXe/ZxV/9vgOehJpUrbjBoxIgE9edz7gZq1VexkDPkuoiQSojvg53Z/iw5ct5KHn9pF2DGnH0NGfoqM/RdBv0dmf5Hh3YnCUkpH5LJOdXchR0MWcGproUdZKTXdjTp2JyHrv3w8Dvw2sxC398ttemzoHTDQra11TI7935Xnu0QEihAI+br16CTddsYhF9VEW10UHRx0ZiZTDgtooH71iERfPr2FudYj6aICANbT3pnfA5mP/9DwpO/eQymcJJ3sHWN5YxayK4LCpq1kVQVbMqc553WTTxXR1rss3orkOaMYNMiMZ4Mc52tUMM9ENe5tbYzz+8hEaqkIs9v6if/zlI1yysJZ1TY18+h3L+eKTO0nbDmG/j/6Uje2YwayzTAmcipCf+ooA3Qmb3oE0lgi9A+lRp+5A6I6n+NClC7i/eQ+NVSGiQR+JtDPlIwpdTFfnsjEDjTHmSyJiAU8ZYx6boj6pMjPRrKx8JUxGWyNZu2I2/SnbfYMWePQFtwTO/Br3hM/Ll9Tx8sFO/uLHr5POEWwSKZttbadYfV4dd653S+ic6I6zoC7KJ687X9/4lZoieddojDGOiHwG0EAzg4212J9vjcEH5MqfyuxMKWRENNpf/NU+i+pwgI9esYj3Xzp/8LwdN7MMrlhSTyjgI50jg8s28IWfvEF12M+6Cxr5w7VLuHB+9WBSwPGuBFVhP9EpOJxNqXNZoVlnT4vI54AfAX2ZRmPMGWe7qOkn32J/vqwssYAc56yJtwI4GftUsvftgLtG059M05+0CfgEvwWCuBlljsHBzTKzHUN3Is2TO47y5I6jzKkOsb6pkQ1NjSxrqKQ/mcZnCTsOneaHzx/kyOn4tCt6qVS5KzTQ/CHumsynRrRr2swMMJ7qvLmWQ3yWhTFuQU5j3PRh8drBHRF97vEdHDkdx/b2slSG/Pzlb1141n12K1AHqY1C09xq2k72Dma1BfwWFUEfC+sq+Px7m3hmV4yNLTH2xno50T3AIy8c4pEXDrFsdgXrmxqZVRHke9sO4LeEaMDHsa44f/nEG/xvLj5ngs10ri6tyl+hgeZC3CCzFve95lngW8XqlJpahzr78Qm0tfcO7pyfXRkcnNrKN+JZ5u2T8VsymD5sO4ZlsysGv0dmM6XBPfgs5B/fUdNjvRH+8XXn87nHdwwGQce4I5rfeftiGqpCfGT1Ij6yehEHTvXR3OoGnWNdCdpO9tHmHb4W9FvUhgMEfRZBn0Xcsfn75r28fdksIkFf7k7NENO9urQqf4VWBngYWAXcD/y99/nDxeqUmlr5anHlS2++64YmogGLlO2Q8HbmRwMWd93QBMB9P2+lb8Am6LcIB9yzcPoGbO77eWtB/SukurLA4HBLEHwiNFSFWFgXpb4iSDjg47xZFfzBNUv5wW1r+IePvY0Pv20BdVF37SiZdoj1DvDmyT6OnI6TtB0OdfZxrCvOoY5+Tvcn3XN7zlI5n1A53atLq/JXaKC5wBjzCWPMM97H7bibN9UMMKwWV+Yjq72QopNpM1QhwPF25me0nezD8nbmC4IlgiUMlojJJ98b4QNb2rAdQ9J2SDuQtB1sx/DAljZ3pBINMr82wnmzKmioClEVDnDR/Bo+s345j91xFctmVxAN+vC26NCXtDnRPcDJ3iRf/s8Wnt3TTqw7waHOOMe7EvQOpMdVp6zYxxBMVLGLiipVaKB5RUSuzHwhIm8HflWcLqmplq8WV77zSP7yiTfoH5H11Z+0+csn3piU/uV7I9x5tIuO/tTQoWkGOvpT7DzaNewanyVUhQM0Voc5z6s+XRsN8sfXLaMmEmBeTZi51aHBmmuOgU2tMb7wkze48Vtb+erTu3m+7RTHu+Ic7OinvWeARCp/vbJyHzHoeTOq2Apdo3k78HEROeh9vRhoEZHXAWOMuaQovVNTIpLXgIkAACAASURBVF8trnzpzYc6c9dXzbQvnRVlb3sfklUCxjGwfHZhb2T5stYyAXHkGGOsopXZWWwfuWIxtZEgDz7bxpHOfi6YU8373zqfvmSaTa0xdhw6PSxzLeATrjl/Nr975WKWNVQS8FlUhf1UhvyDlaaH34fyPqFSS+SoYis00NxQ1F6oksr3RjPRopN3v2cVn3t8B70D6cGss9pQgLvfs2pS+jfaMQSjtefyrovn8q6L5wJDqdN9SZvfumQeT+88wTc27yXhfd+Ubdi8u53Nu9sHM9fWr2pkbnWYaNBPZdhPRdbenGIfQzBRxS4qqlShRTUPFLsjqnQKeaN57fBpdh7toi9p0xVP8drh0wW/Ea1rauRvb3zrWb+R5eufz5KcQcVnDW3CHE/6bnbqdNp22NhygvpogJA/TDLt0J1I0Z1Ik3bMYObat5/bx8Xzq9mwag7rVjZQVxEkGvJRFQpMixGDlshRxTQ9jvhTRTfWG839G3fz9ea9WAJ+y/1r/OvNewG48/qVE379iV4f9AnxHIEmU525kPTd0QKR32dxrDsxOPXl91mEAj7qK2w6+lOsu6CRZ1pjdPaneONoN28c7eYbz+zliiV1bGhq5OrzZ7O0oYLPvXMlP3j+IMe64jpiUOccDTQqr28/t88LMu76gyWQdhy+/dw+7rx+JVUhHz0DZ66HVIWmZv9JwGeR8PboZIjXDu5IqDeR4nQ8hWPc/tdGAoMbUjNHQfck0qQdh5M9A/zZ4zv4mxvfesYJnJkD2/oGbJbNruT/uX4ln7zufP7m560072on7Rhsx7CtrYNtbR2E/RZXL5/NhqZG/vqDFxEO+KkI+aiYJsc4KzUZ9Ldd5dWXtLEwDKTtwZ3/PhlabL94QS2tx7voiqcH38hrIn6a5tZMSf8CPsHvEyyGNow6mMERzc6jXXQn0gi5s9LyHQWda+or7cBn3rGcRfVR/u4XrTzdEjsjGcESSKQdmltjNLfG8FlC0CcsqI3yh9csYe2KhsGgEw7M7E2h+Whlgpmt0PRmdQ4L+S1SjndgmPdGnnLcdnAX66vCQZbOruDi+dUsnV1BVTg4ZWsQK+dUj3nezGD2mWR9ZLXn2+eT7zyZbz+3P2dpnoAl/M93ruT8BrdCgu0Y4imHve29/OUTb/DFJ97glYOdHD0d5+Cpfk71FpYuPdOU+z4jNXEaaFRe9RF34JupZWZGtJf6YK87rl1G0O9jbk2YC+ZUMbcmTNDvGwx0jrd+Y8zQR3Z7ITLJEEe7Euw82sVrh08PPtY/SnAYsA3//fKFVIUC1Efd46czbAObd7fzie+9xG0Pb+d7W/ez63jPYNA5eQ4FnXLfZ6QmrqRTZyLyHeB9QMwYc7HXVo9bJXoJsB/4iDGm03vs88BtuFXp7zTG/MJrvxz4LhABfgZ81hhjRCQEfA+4HDgFfNQYs3+KfryZw7JoqAxwqm9ojWNWRQCxhv5OKWXWUr6stKqwn+5E+ozrqrzjo5fOirI71kvSHnpjtwRWNrojkfs37uZrm/YMVj7oTqT52qY9QP5kiPm1EQ519tEdT2NZQtAvOI7BdtwpSMfAvpN9fHtY5loj61Y2UhMN4LPcN96KkI9IYGYeZ1Du+4zUxJV6jea7wDdwg0HG3cAmY8xXRORu7+u7RORC4GbgImA+sFFEVhpjbOCbwO3ANtxAcwPwFG5Q6jTGLBeRm4H7gI9OyU82g2QWw+fWDO37yN7QWQ7GCnQbmhr4yavHcrYDrJpXReuJ3mGPOcZtB/jWL9twzLCTpnGM215I1l3KNoglXpVrg2UJ4BYv/Zub3sqmlhj/9ZsT9A6kBzPX/r55L1csqef6VW7mWiTow2cJkaCPiuDMOkOn3PcZqYkraaAxxmwRkSUjmj8ArPM+fxjYDNzltT9qjBkA9onIXmCNiOwHqo0xWwFE5HvAB3EDzQeAe7zXehz4hoiIGU+hKjUp+0BKudjberzXTQLIahOvHeAXO3OvBWTaM1NjI39pRpsyGyngE+Ipd6ouk6wAEA5YXLKwlp54mubWE/gtsB33+zgGnt/XwfP7hjLXrl/VyOrz6uhNuMdYR4M+oiE/0YDPC17TUzGOkVDlpdQjmlzmGGOOARhjjolI5t1oAe6IJeOw15byPh/ZnrnmkPdaaRHpAmYBJ7O/oYjcjjsiYvHixZP6w8wEE905Xuoy9HtjvXh5DGQijvHaYfSAkWkfGaQyCn1rXzmnOmdW3gVza1hUH+U7v2rjdPzMqb1o0OdWxM7KXKsO+7nuggY2NDVy8YIaegfS3rqGj6g32pmOQSdTfdsYA0YKvrdqeijHQDOaXL97Zoz2sa4Z3mDMg8CDAKtXr9bRTg4TWYMZz8FqxZDODCEyvw1e5EgXOLAN+ISkfeZzA176tCVDlauzZd7vr1pWz/P7Tg2rbt0VT3PVsnoA9rbnrmIdT9o88elr2LKnnU2tMV496NZc++mOY/x0xzEaq7zTQlc1cn5DJX0DaU5KkkjA56ZNT5Og88CWNqojAebWRAbbpvL3QxVfOQaaEyIyzxvNzAMy8xqHgUVZz1sIHPXaF+Zoz77msIj4gRpAj5+eYqVe7PWJe2zByLjiK/A9uCrsp6MvdcbUW7WXTLCysYLWE2cGi0wywc9ePwZmaGSU+ev9Z68f487rV+YMUt5TqI0Gee9b5vHet8yjvWeAzbtibGqNsftEL7GeAR598RCPvniIpbMr2NDUyPqmRubWhOlPukEnHLDcZIKgL2fBz3JQ6t8PVXzlGGieBG4FvuL9+0RW+7+IyN/hJgOsAF4wxtgi0uMdY/A88HHcw9myX2srcCPQrOszU6/Ui73LGyrZfaJ38KidzFaa5VnVqseyck41+7yjojMnkFaF/Syd7V6/72TuN8RM+75T/fh9Mni0NYDtOOw7lf+NdPGsKPGkTU8ihYhw0+pF3LR6EQc7+mlucYPOkdPxnJlr161soDYaJJ60eaqtg8deOsTxrgSL6qN88rrzy2a0UOrfD1V8pU5vfgR34X+2iBwGvoQbYB4TkduAg8BNAMaYnSLyGPAbIA182ss4A/gkQ+nNT3kfAA8B3/cSBzpws9bUFCt1Ucm737OKOx95md7kUGWDyqBv3NWj59b4c/Z/IMe02sh2xxjSWZUVLAFfgVljkaCPSNBH2nboSaTpSaRZXB/l969Zwq1Xn8euEz38cNtBnt/XQdoxWTXX3uTy8+pYOivKf7x2lL6ke0Lo0a4Evznaxf/7obfwzovmlrwqQal/PyB/sopWLpiYUmed3TLKQxtGef6XgS/naN8OXJyjPYEXqFTplEMZ+mDAR9CrQ+azhOA43lzXNTVy4+HTfPu5ffQlbSqCPj6xdmnB/W+sCg07sydzHs+8mtC4fga/z6KuIkhdRZC+gTTdiRTxpE13f5q2k33MrQ5hcMvnxJM2tmN4YV8HL+w7c7a4Z8Dmyz9r4aIFNfgtix9u28+/vHCQvqRNZcjPJ9YuLbhg6kSV+vcjX627za2xYcdcnOwd4HOP7+BvvcdVfuU4daZmoFJu6HxgS5t3gubZLTZvbo3x+MtHaKgKsdj7i/vxl49wycLagq43jjOu9kJUhPxUhPykbIc/f/w1Aj4h7HeDZ0XQT18yTcCyWFgf5bm9J3O+xvHuARxj+Ofn2vju1gODa1DdiTRf3bgHYwyffefUnNheyt+PfLXuvvJUC6f7U/hE8IlgHDjdn+IrT7VooClQea4OKjWJ8h0Fnc8DW9pI2TbHuxLsOtHD8a4EKdseLJEyWmJXpr29L4Xfcr8Wr91vue0TFfBZHO9OUOWd7pnZxBkN+kikbe79wEVjXv+xf3qe7207cEYqpgG++cs2jncl6IqnSNlnHxTLXb5ad/tO9buPW4KIYFnu44WssRVqc2uMWx7cxtr7mrnlwW0zrs6bjmjUjLeoLsr+U710x4cW86sjfpbMchfzszdRZsssoeyJ9dDVn8KyBJ8lpB3DyZ4kKbsHcN/sB9JnvhEHsrK8LJFhX9sTGM3k+vkGjzGwBMcYegfSw9KFRxPrGRj1sYR30mh/Ms0p3J/H3a/jJxywZkxlglIr9T6zqaAjGjXjXbWsnlhPkqTtYAkkbYdYT3JwH8uCmtyldDLtybQDI/7iRbx2Rg8amfZlsytwjJsQYDA4xuAYt30y3HHtMlK2oT+ZxhhDIuUmHdy5fjmzKsZeB/r4VeeN+fjp/uTg5ynboSue4lhXnAOn+jnRnaA7kSI9BaOdYv7Fv3RW1P3v4xiMMTiO+99n6Sw3663Y//3KoahosUdUGmjUjLe1rYOGyiBBn4VjIOizaKgMsrXNXST/6w++heqQb3CqyxKoDvn46w++BRjamJn9RgRDJ3j6LAufDJ8acw9Ic//3uuuGJuqiAQT3aGgB6qIB7rqhCRi9wkCh44XRqmevXzWHmmhgzGt//+olYz5+47e2cvePX2djywniyaEKCo4x7gbRngEOdvRzuLOfjr5kUSpOZxbrXznYyfGuOK8c7OTPHt8xaW+Gd79nFbXRAGKBbQxiQW00MJiVmO+/30RNdGp3oqbimAadOlMz3qHOfmZXhmjIKgJqjBn8H3ldUyP333LZqFlPuffRBAb30SydFWVvex9+GTp4zTZm8C/idU2N/M2Nbx319f2We77PSP5x/BlYrMV0xzCYuRbyW1x9/iw2rGrkiiX1w6YCk2mHZDrJ6X4Gi39GAr7B6byJyLdYP1Hrmhr52zH+++T77zdRpd5HNBWVOzTQqBmvkP+Rx3qjzreP5u73rBqW/uqzhNpQYNg+nbFevzriHsEwUk1k7NFIoSwg1+RW9nHXo7nnty9kU2uMbW2nGEg7PLOrnWd2tbs111Y2sGGVW3PNylqvsR1DbyJNbyINDBD0W/xw6wF+8PyBs0qfzl6sB29NTczgYv1kyBeoi5kVV+p9RFNRmUEDjZrxJvo/cr59NPn+Is4nX+WBifrApfNyHpPwwUvnsah+7L+ar13ZwLUrG9iyq52HfrWPE90JkrZxa669doyfvpZVc62pkWUNFWckCTy0JX/69Lm8IbLU+4imYkSlgUbNeJNRfTrfPpqJ/MWbb8RUaB9He6M+3p2kNuIe/papHl0d9nO8O5nnVV0vtHXwwLNt+C3hvFlR+gZsegbS1IQDHD4dH1ZzbcmsKBtWNbKhaQ5zvWSKR148NGr69EfWLObl/Z185eetBP1WzqyrzNSkZB2z4BhYPnvmlKgp9j6isX4/pmJEpYFGnRPKufp0sY9hOOS9ZvZII3uN6qqldWzd13nG675tYTUAj754CL8lgwvWlSF33WVWRYgvf+himlvdmmuHO+PsP9XPQ8/t56Hn9nPR/Go2NDWSyJH6DW76dDxp80/P7gPAb1nYjiHs92HM0P0tZGpSjS7f78dUjKg00CiVx1TMYRczEOabGnnkjqu55YFfDws2Vy2t45E7rqZvIM3xngRVoeFZUeGAxfHuOIvqo9x69RI+ftV57D7Ry8aWEzyzq52OviQ7j3az82h33v4f645THfZjjME2YGPwWRYHTvXRnUixdsXsCU1NnusK+UOp2CMqDTRK5VHqrKB88gXCQqZGHrnj6pyvXRHys3RWBSe644T8FrZxT41LpBzmVg9tCBURLphbxQVzq/jj685nx6HTbGyJ8eyedvqSuVOeGyvdPs+rjnCqb2BYim8iZdNYFeakt6F0+ZxK/uF3LiMa9JW8COh0Uw7HMOg+GqXyGLkhsj+ZnvLqwmNZVBclPmL/SnYgHG2fTaF/wd5x7TLSjrvRNWAJSdvBdgw3X7Eo5/N9lnDZeXX8+Q0X8G+fvJrfWbM459k/vQMOX316N2uW1pOyHeIpG4MhnrJJj3j9ZNrhdH+So6fjHDjVR6w7QU8ihT3aYT5qUL7fj6kgejzLcKtXrzbbt28vdTdUmcksppbj1E32HHz2iGU8waSQ7zHy57/y/Fl0x1P0JW3yvY+80NbBD54/wMGOfhwDfQPpYQkCNZEAIZ+FbRwW1ka5Zc1i1niVG/IJBXxEA+5RCjraOdNU/H4AiMhLxpjVOR/TQDOcBho1HZUyEGafk5MusIbbyd4BntnVTnNLjF0neoY9dt6sKBua3COq5xVQry2b37IIB91TRSMB34Q3i84UU/H7oYFmHDTQKHV2jDH0eaeBxkdZl8nlUEf/sMy1bBfOc08LXXdBA3XR4Lj7pKOdqaOBZhw00Cg1ccm0Q3ciRW8ijVPge4wxht0netnUeoJnWts51Te0z8cSWH1eHetXzWHt8lnDEjMKZYkQ9U4rnYzSOGo4DTTjoIFGqcnjOIaegTTd4zzTxnbMqJlrY9VcG49QwEeFF3hCfh3tTJQGmnHQQKNUccS9abVCkgeyJdMO29pO0dwaY2vbKVL20LVVmZprTY28ZeHwmmvj4bcsb6TjFgO1dLQzbhpoxkEDjVLFlbYduhPps0pP7k2keXZPO82tMV45dJrsyxsqQ6xvamDDqjmcn6PmWqFEhHDAIhrwEwn6CI6njPY5TAPNOGigUWpqGO8k0O5EmoGzOMfmlJe5tqk1xq7juTPX1jc1Mr92fJlrIwV8w0c7erJobhpoxkEDjVJTL5GyC96Tk8vhzn42tRQncy2bJUI44BsMPGe7PjQTaaAZBw00SpXO2ezJyWaMYU+sl00tMZpbY5OeuTZSZrQTCejajgaacdBAo1TpZfbkdMVTZzWtBl7m2uHTbGqJsWVPO30DwzPXrlrmZq6tWXr2mWvZMms7kcC5mcmmgWYcNNAoVV4mOq0Gbuba8/s62NR6gq1vFidzbaRzrUrBOR9oROQG4OuAD/i2MeYroz1XA41S5Wki2WrZegfSPLvnJM0tJ4qWuZZLyJteiwZ9hPzWjEsqOKcDjYj4gN3AO4HDwIvALcaY3+R6vgYapcqbMUObQJOjHKpWqDEz1+q900LPouZaPtlJBZHAzEihPtcDzVXAPcaYd3tffx7AGPP/5Xq+Bhqlpo940qY7kaJvID3h1zrc6dZc29hS3My1XDIbRjOBZzpOs53rgeZG4AZjzCe8r38PeLsx5jNZz7kduB1g8eLFlx84cKAkfVVKnZ2U7dAdT9Ezjtpqo8mXuXb5eXVsaGpk7YrZk5K5lst0LAZ6rgeam4B3jwg0a4wxf5Lr+TqiUWr6OtvaaqPJZK41t8T45YjMtaDf4upJzlzLZbqUxxkr0JwLRzkfBrKPAlwIHC1RX5RSRWRZQk0kQE0kQH8yTXc8TX/y7KfVfJZw2eI6Lltcx50bVriZay0n2Np2imTaYfPudjbvbqcq7OfaFQ1sWNXIJZOYuQaQdhx6Eg49iRQiQshvDVahni4p1OfCiMaPmwywATiCmwzwMWPMzlzP1xGNUjPL2RxZkM9YmWuzK4Osb2pkQ1Mjyxsri5pd5rNkcF2n1EcfnNNTZwAi8l7ga7jpzd8xxnx5tOdqoFFqZnIcQ08iTXdicqbVMjKZa82tMVpzZK6tX+UGnYnWXCtEKdd2zvlAMx4aaJSa+foG0nTFUyTOsurAaMbOXKtifdMc1l3QQH3F5GeujZQZ7UzVhlENNOOggUapc8dA2i1z0zdw9lUHchmWubYrxqne4Zlrly2u4/pVjVyzfDYVoalZKi/2aEcDzThooFHq3GM7ZjA9+myKeeZ77dcOn2ZTa4wtu0/Sm7XnJztz7Yol9VO2cdNnyWBNtkjAh39yar1poCmUBhqlzl0TPSMnn2Ta4YV9HWwcpeZasTLX8gn6rcGEgnDg7MrjaKAZBw00SinwinkmJn9aLaN3IM1ze07S3Brj5YOdJctcG0lkaLQznjN3NNCMgwYapVS2Yk6rZXT0JXlmV4xNLWdmri2u904LXdXIginIXBsp4HP37eQb7WigGQcNNEqpXIo9rZZxpDPOptYTbGqJcWhE5tqqeVVsmMLMtZHGOmFUA804aKBRSuUzGWfk5JMvcy1Tc20qM9dGyh7tREN+DTSF0kCjlCpU5ujp7gmekZNPvsy1q5bN4vopzlwb6fzGKg00hdJAo5Qar6maVoOhzLVNrbHBmmsZpcxc00AzDhpolFITUexstWx9A2me23uSTS25M9fecYF7cNuKKchc00AzDhpolFKTwXYMPYkU3fHiZatlKyhzramRBXXFyVzTQDMOGmiUUpOtb8Bdx4knizutljFW5lrT3CquX9XIugsaJzVzTQPNOGigUUoVS+bIgp5EuujTalBYzbUNqxpZOwmZaxpoxkEDjVKq2KZ6Wi3zPcfKXLtyWT3XN81hzdKzy1zTQDMOGmiUUlPFGENf0q0gXexstWxjZa5Vhvxcu3I2G5oauWRhbcHHC2igGQcNNEqpUshsAs0eaUyFsTLXZlUGWV9g5poGmnHQQKOUKqWU7QzWVpuso6cL1dGXZPOuGJtaY7QcG565tqguwvWr5oyauaaBZhw00CilyoHjGHoG0nTHJ/fo6UKNN3NNA804aKBRSpWbeNLdBNpfxNpqozHGsDfWy6bWGM2tMU6OyFx722K35tqn168YNdCUphKbUkqpgkWCbsXktO3QnUjTU+TaatlEhBVzqlgxp4o/+m/LeP1IF5taYvxydzu9A2leOtDJSwc6x3wNDTRKKTVN+H0W9RVB6qKBKautls1nCZcuquXSRbX8yfrlvLi/g00tMX7ddmrM6zTQKKXUNCMiVIUDVIUDDKTd9OipqK2WLei3uGb5bK5ZPpu+gTSXfHn052qgUUqpaSzk99FY5cOucDeB9iTSU548kK+qgAYapZSaAXyWUBsNUhsN0jeQpiueIjGF02pj0UCjlFIzTEXIT0XIX7JptZFKchSbiNwkIjtFxBGR1SMe+7yI7BWRXSLy7qz2y0Xkde+x+8XboioiIRH5kdf+vIgsybrmVhHZ433cOlU/n1JKlQN3Wi3MoroIddFgweVkJltpzvyEN4APA1uyG0XkQuBm4CLgBuAfRcTnPfxN4HZghfdxg9d+G9BpjFkOfBW4z3uteuBLwNuBNcCXRKSuiD+TUkqVJb/Poq4iyOL6KLOrQlN+3HNJAo0xpsUYsyvHQx8AHjXGDBhj9gF7gTUiMg+oNsZsNe7473vAB7Ouedj7/HFggzfaeTfwtDGmwxjTCTzNUHBSSqlzjohQHQ6wsC7KvJoI0eDUrJ6U2xrNAmBb1teHvbaU9/nI9sw1hwCMMWkR6QJmZbfnuEYppc5pmU2gmTNyeotYW61ogUZENgJzczz0F8aYJ0a7LEebGaP9bK8Z/k1FbsedlmPx4sWjdE0ppWaeoN9idmWIumiwaGfkFC3QGGOuP4vLDgOLsr5eCBz12hfmaM++5rCI+IEaoMNrXzfims2j9PVB4EFwa52dRb+VUmpay6RH10QCk35GTqmSAUbzJHCzl0m2FHfR/wVjzDGgR0Su9NZfPg48kXVNJqPsRqDZW8f5BfAuEanzkgDe5bUppZQahYhQGfKzoDbC/NoIlSH/mOfQFKIkazQi8iHg74EG4D9F5FVjzLuNMTtF5DHgN0Aa+LQxJhNSPwl8F4gAT3kfAA8B3xeRvbgjmZsBjDEdIvK/gRe9591rjOko/k+nlFIzQzjgIxyYeDFPPSZgBD0mQCmlchvrjJyxzqMpt6wzpZRSZcqyhJpIgJpIgP6kW+Ymnsy/jqOBRiml1LhFg36iQT/JtENXPDXmc8stGUAppdQ0EvRbNFSFxnyOBhqllFJFpYFGKaVUUWmgUUopVVQaaJRSShWVBhqllFJFpYFGKaVUUWmgUUopVVQaaJRSShWVBhqllFJFpUU1RxCRduDAGE+ZDZycou6cDe3fxGj/Jkb7NzHTuX/nGWMacj2ggWacRGT7aBVKy4H2b2K0fxOj/ZuYmdo/nTpTSilVVBpolFJKFZUGmvF7sNQdyEP7NzHav4nR/k3MjOyfrtEopZQqKh3RKKWUKioNNEoppYpKA80YROQ7IhITkTey2u4RkSMi8qr38d4S9W2RiDwjIi0islNEPuu114vI0yKyx/u3rsz6Vy73LywiL4jIDq9/f+W1l8v9G61/ZXH/svrpE5FXROQ/vK/L4v6N0b+yuX8isl9EXvf6sd1rK5v7N0r/zur+6RrNGETkWqAX+J4x5mKv7R6g1xjztyXu2zxgnjHmZRGpAl4CPgj8PtBhjPmKiNwN1Blj7iqj/n2E8rh/AlQYY3pFJAA8B3wW+DDlcf9G698NlMH9yxCRPwVWA9XGmPeJyP+hDO7fGP27hzK5fyKyH1htjDmZ1VY292+U/t3DWdw/HdGMwRizBegodT9yMcYcM8a87H3eA7QAC4APAA97T3sY9829nPpXFoyr1/sy4H0Yyuf+jda/siEiC4HfAr6d1VwW9w9G7V+5K5v7N5k00Jydz4jIa97UWkmnBgBEZAnwNuB5YI4x5hi4b/ZAY+l65hrRPyiT++dNq7wKxICnjTFldf9G6R+Uyf0Dvgb8OeBktZXN/SN3/6B87p8B/ktEXhKR2722crp/ufoHZ3H/NNCM3zeB84FLgWPA/1/KzohIJfBvwP8wxnSXsi+55Ohf2dw/Y4xtjLkUWAisEZGLS9WXXEbpX1ncPxF5HxAzxrxUiu+fzxj9K4v757nGGHMZ8B7g095UfTnJ1b+zun8aaMbJGHPCewNwgH8C1pSqL97c/b8BPzTG/NhrPuGtj2TWSWLl1L9yun8ZxpjTwGbc9Y+yuX8Z2f0ro/t3DfB+bx7/UWC9iPyA8rl/OftXRvcPY8xR798Y8BOvL+Vy/3L272zvnwaaccr8Eng+BLwx2nOL3A8BHgJajDF/l/XQk8Ct3ue3Ak9Mdd9g9P6V0f1rEJFa7/MIcD3QSvncv5z9K5f7Z4z5vDFmoTFmCXAz0GyM+V3K5P6N1r9yuX8iUuElySAiFcC7vL6Uxf0brX9ne//8k9/FmUNEHgHWAbNF5DDwJWCdiFyKO3+5H7ijRN27Bvg94HVvHh/gC8BXePWBdAAAA8JJREFUgMdE5DbgIHBTmfXvljK5f/OAh0XEh/sH12PGmP8Qka2Ux/0brX/fL5P7N5py+f0bzf8pk/s3B/iJ+/cYfuBfjDE/F5EXKY/7N1r/zur3T9OblVJKFZVOnSmllCoqDTRKKaWKSgONUkqpotJAo5RSqqg00CillCoqDTRKFUhElkhWJe+s9ntF5Po8194jIp8rXu+UKl+6j0apCTLGfLHUfVCqnOmIRqnx8YnIP4l7Rsx/iUhERL4rIjcCiMh7RaRVRJ4TkfvFOwfFc6GIbBaRNhG503v+n2d9/lURafY+3+CVdEFEviki22X4uTQbROQnmRcWkXeKyI8ZQUR+X0T+XUR+KiL7ROQzIvKn4p7Rsk1E6r3nbRaRr4nIr0XkDRFZ47U3iHsuyssi8oCIHBCR2UW5s2rG0kCj1PisAP7BGHMRcBr475kHRCQMPAC8xxizFmgYcW0T8G7c+lBf8mrBbQH+m/f4aqDSa18LPOu1/4UxZjVwCXCdiFwCNAOrRCTzPf4A+OdR+nwx8DHv+34Z6DfGvA3YCnw863kVxpirgU8B3/HavoRbvuUy3HpXi/PcH6XOoIFGqfHZZ4zJlNR5CViS9VgT0GaM2ed9/ciIa//TGDPgHSQVwy3z8RJwuVdXagD3zX81bvDJBJqPiMjLwCvARcCFxi3p8X3gd72aaFcBT43S52eMMT3GmHagC/ip1/76iP4/AoPnMFV7r7sWtyglxpifA51j3BulctI1GqXGZyDrcxuIZH0t47zWb4xJeRWG/wD4NfAa8A7cUuwtIrIU+BxwhTGmU0S+C4S91/hn3KCRAP7VGJMWkQ/hjkIAPpHj+zpZXzsMfw8YWY/KFPAzKZWXjmiUmjytwDJxD3oD+GiB123BDSZbcEcxfwy86o1aqoE+oEtE5uCeDQIMlnE/Cvwv4Lte20+MMZd6H9vH2f+PAojIWqDLGNOFe4T0R7z2dwElP+hPTT86olFqkhhj4iLyKeDnInISeKHAS58F/gLYaozpE5GE14YxZoeIvALsBNqAX4249odAgzHmN5PwI3SKyK9xg9sfem1/BTwiIh8Ffol72FXPJHwvdQ7R6s1KTSIRqTTG9Hrn8fwDsMcY89Uifr9vAK8YYx6a4OtsBj43chQkIiHA9qblrgK+6Z36qVTBdESj1OT6IxG5FQjiLt4/UKxvJCIv4U6r/c9ifQ/cLLPHRMQCksAfFfF7qRlKRzRKKaWKSpMBlFJKFZUGGqWUUkWlgUYppVRRaaBRSilVVBpolFJKFdX/BU1Z9QvY74J3AAAAAElFTkSuQmCC\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": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 12,
"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": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f54ffd36128>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 14,
"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": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f54ffca82b0>"
]
},
"execution_count": 16,
"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": [
"#no\n",
"# 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": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f54ffbb5240>"
]
},
"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": [
"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": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f54ffaded30>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"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": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f54ffa50e10>"
]
},
"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": [
"# 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": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 20,
"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": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 21,
"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": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 22,
"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": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 23,
"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": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 24,
"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": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 25,
"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": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 26,
"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": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 27,
"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": 28,
"metadata": {},
"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": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 29,
"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": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 30,
"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": 31,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 31,
"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": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 32,
"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": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_group_two = df[['body-style','price']]\n",
"df_group_two = df_group_two.groupby(['body-style'],as_index=False).mean()\n",
"df_group_two"
]
},
{
"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": 34,
"metadata": {},
"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": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"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": 39,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
".. ... ... ...\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". "
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/DA0101EN_edx_link_Notebook_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 &copy; 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",
"language": "python",
"name": "conda-env-python-py"
},
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment