Skip to content

Instantly share code, notes, and snippets.

@prafullkotecha
Created February 15, 2019 00:58
Show Gist options
  • Save prafullkotecha/23eba81d618567ea441dd1456194d060 to your computer and use it in GitHub Desktop.
Save prafullkotecha/23eba81d618567ea441dd1456194d060 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/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[[\"bore\", \"stroke\", \"compression-ratio\", \"horsepower\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56255.801622915154)"
]
},
"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": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 13,
"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": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fe442b45400>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"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
},
"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
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f76280c2b70>"
]
},
"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": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f76280acd30>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f75fb3768d0>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f75fb2adc50>"
]
},
"execution_count": 20,
"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": 21,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f75fb376a20>"
]
},
"execution_count": 21,
"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": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 22,
"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": 23,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 23,
"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": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 24,
"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": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 25,
"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": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 26,
"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": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <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": 27,
"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": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>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": 28,
"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": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 29,
"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": 30,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <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": 31,
"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": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 29,
"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": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 30,
"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": 31,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 31,
"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": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_group_two = df[[\"body-style\",\"price\"]].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": 36,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEqCAYAAAAf20taAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAHmFJREFUeJzt3XmYZGV99vHv3cMaAVlFBBTknYiICzsq+uKGA1FwQYKXCiqKGhQxbmg0GI1JzBV9FRMXjCjggmhcRgUnI4qAsg2CLKIyjgITiAiDiALCzNzvH+dpKYaeqe6u6jldz7k/13Wurnrq1KlfzXT/6qlnlW0iIqI+Y20HEBERMyMJPiKiUknwERGVSoKPiKhUEnxERKWS4CMiKpUEHxFRqST4iIhKJcFHRFRqnbYD6KV1NrDW37jtMIar0pnCj567fdshDN3iG3/fdggzYust/qLtEGbEDT+/6hbbWw1yjbFNtjPL7+57nu+6dYHteYO8VhtmV4Jff2PW2+WFbYcxVCuX39N2CDPijDM/3HYIQ3fwPyxsO4QZcezLdms7hBlx3H47XTfwRZbfzTqPOrjvafde/pktB36tFsyqBB8RsVZJaGxO21HMmCT4iOgwMbbOem0HMWOS4COiu1KDj4iokwDNSYKPiKiPxFhq8BERdUoTTUREjdIGHxFRJyHG1lm37TBmTBJ8RHRXavAREfVKgo+IqJGUYZIRETUSqcFHRNRJY8zJUgURERVSavAREVUSGUUTEVGtJPiIiBplHHxERK2S4CMiqiSJsXUziiYioj5poomIqFcSfEREpcbG1HYIMyYJPiI6SxJKgo+IqNOcOWNthzBjkuAjortEavARETVqVpNMgo+IqJAYUxJ8RER90kQTEVGvJPiIiApJMGedJPiIiCqp4jb4tTIAVNL+kr61Nl4rImKyJDE21v8YVdNK8GrUOzsgIjpDY+p79L2GtL2k70u6RtLVkt5YyjeXtFDSteXnZqVckk6UtFjSFZJ277nWkeX8ayUd2VO+h6Qry3NO1CS+ekw6SUvaoQT/MWAJ8OlS/kZJS8rtnSSdX27Pk/Szcv8Fk32diIi1aRgJHlgOvNn2o4F9gWMk7QIcD5xtey5wdrkPcCAwtxxHAx+H5gMBOAHYB9gbOGH8Q6Gcc3TP8+b1C2qqtfBHAacCTwR2LWVPAW6VtC2wH3CepA2ATwHPLY8/dIqvExEx8wRjUt+jH9s32f5xuX0HcA2wLXAIcEo57RTgeeX2IcCpblwIbCppG+DZwELby2zfBiwE5pXHNrF9gW3T5OHxa63WVBP8dbYvtP2/wEaSNga2B74APJUmmZ8H7Az8yva1JZjPre6Cko6WtEjSIi+/e4rhRERMnxBj64z1PaZ0TWkHYDfgImBr2zdB8yEAPKScti1wQ8/TlpayNZUvnaB8jaaa4P/Yc/sC4BXAz2mS+lNoavY/LI97Mhe0fZLtPW3vqXU2mGI4EREDEJPtZN1yvCJajqMnvJy0EfBfwHG2f7/mV34AT6N8jQYZJnku8N5yXAY8DbjL9u2SfgbsKGkn278EXjzA60REzJhJDpO8xfaefa6zLk1y/7ztr5bi30jaxvZNpZnl5lK+lKb1Y9x2wI2lfP9Vys8p5dtNcP4aDTIS5rwS4Lm2V9B8rTgfwPbdNJ0B3y6drNcN8DoRETOiWWys/9H3Os2nxKeBa2x/qOeh+cD4SJgjgW/0lB9RRtPsC9xemnAWAAdI2qx0rh4ALCiP3SFp3/JaR/Rca7UmXYO3/Wvu61il1MzVc/+AVc7/Dk1bfETE7KSh7ej0ZOBlwJWSLi9l7wT+BThD0lHA9cCLymNnAgcBi4E7aZq7sb1M0vuAS8p577W9rNx+HfBZYEPgrHKsUWayRkSHibEhbPhh+3wmbicHeMYE5xs4ZjXXOhk4eYLyRfRUsicjCT4iOkvDq8HPSknwEdFpWU0yIqJCEsxJgo+IqFMSfEREhYSS4CMiaiTBelNcimCUJMFHRGdJsE5q8BER9RFpg4+IqJPSBh8RUaWmBp82+IiIKqUGHxFRoTEpo2giImo1Z3LrwY+kJPiI6KwsVRARUbEk+IiICmWiU0REpUQ6WSMiqpQ2+IiISmWpgoiIWqUGHxFRp6wHHxFRsST4iIgKjWXDj4iISqUNPiKiTkJZiyYiolZjSfAREfURMKfe/J4EHxEdJhhLG3xERH0ErJst+yIi6pMmmrVot7/clh+d/U9thzFcF3+j7QhmxjVfbzuCobv2rTu3HcKM8Njv2g5hRhw3jItIaaKJiKiRyCiaiIhqpYkmIqJCEqw7J52sERHVSRNNRETFam6iqfe7SUREH0KMqf8xqWtJJ0u6WdJVPWXvkfQ/ki4vx0E9j71D0mJJP5f07J7yeaVssaTje8p3lHSRpGslfUnSev1iSoKPiO4qq0n2Oybps8C8Ccr/n+0nlONMAEm7AIcDjynP+ZikOZLmAP8BHAjsAry4nAvwgXKtucBtwFH9AkqCj4jOatrg+x+TYftcYNkkX/oQ4HTbf7L9K2AxsHc5FtteYvse4HTgEEkCng58pTz/FOB5/V4kCT4iOmt8qYJ+x4BeL+mK0oSzWSnbFrih55ylpWx15VsAv7O9fJXyNUqCj4juEswZ638AW0pa1HMcPclX+DiwE/AE4Cbgg/e98gN4GuVrlFE0EdFZUxgmeYvtPad6fdu/+fNrSZ8CvlXuLgW27zl1O+DGcnui8luATSWtU2rxveevVmrwEdFhzY5O/Y5pX13apufu84HxETbzgcMlrS9pR2AucDFwCTC3jJhZj6Yjdr5tA98HDi3PPxLou9BVavAR0VnDnOgk6YvA/jTNOUuBE4D9JT2Bpjnl18BrAGxfLekM4KfAcuAY2yvKdV4PLADmACfbvrq8xNuB0yX9I3AZ8Ol+MSXBR0RnNUsVDCfB237xBMWrTcK23w+8f4LyM4EzJyhfQjPKZtKS4COi0ypeqSAJPiK6bWzCASp1SIKPiM4SqcFHRFSr4g2dkuAjosOUGnxERJXEYOPcZ7sk+IjotDTRRERUquL8ngQfEd2VLfsiIipWcX5Pgo+Ibqt5xcUk+IjoLJUt+2qVBB8RnZYmmoiICok00UREVEsVV+GT4COiu5SJThERVRIwpP0+ZqUpNT9JOlbSNZI+P8XnnSNpyhvWRkTMNEl9j1E11Rr83wAH2v7VTAQTEbE2NTNZ245i5ky6Bi/pE8AjgfmS7pC0qRq3SjqinHOapGdK2lDS6ZKukPQlYMMZij8iYiCaxDGqJp3gbb8WuBF4GvB54MnAY4AlwFPKafsCFwKvA+60/TiaTWX3GGLMERFDIsbU/xhV0x0Ceh7w1HJ8HHispG2BZbb/UMo/B2D7CuCK1V1I0tGSFkla9Ntbb51mOBER01A2/Oh3jKrpJvhzaWrtTwHOAX4LHEqT+Md5MheyfZLtPW3vudUWW0wznIiIqZONVq7oe4yqaSV42zcAWwJzbS8Bzgfewn0J/lzgJQCSdgUeN3ioERHDJ6/se4yqQWbpXgT8otw+D9iWJtFD02yzkaQrgLcBFw/wOhERM8Tglf2PETWlYZK2d+i5/bKe2z+i58PC9l3A4UOILyJiZnlSrckjKTNZI6K77JGuofeTBB8RnTbKbez9JMFHRIcZVi5vO4gZkwQfEd1l0kQTEVEnw8ok+IiIKqUNPiKiVknwEREVsmGElyLoJwk+IjotTTQREVWqe6LTIGvRRESMviGtRSPpZEk3S7qqp2xzSQslXVt+blbKJelESYvLxki79zznyHL+tZKO7CnfQ9KV5TknahJ7CSbBR0R3eaiLjX0WmLdK2fHA2bbnAmeX+wAHAnPLcTTNAo1I2hw4AdgH2Bs4YfxDoZxzdM/zVn2tB0iCj4jOEsNbLtj2ucCyVYoPAU4pt08BntdTfqobFwKbStoGeDaw0PYy27cBC4F55bFNbF9g28CpPddarbTBR0SHGVbM6CiarW3fBGD7JkkPKeXbAjf0nLe0lK2pfOkE5WuUBB8R3TX5pQq2lLSo5/5Jtk8a4JUnaj/3NMrXKAk+Ijptkk0wt9jecxqX/42kbUrtfRvg5lK+FNi+57ztgBtL+f6rlJ9Tyreb4Pw1Sht8RHTYjO/oNB8YHwlzJPCNnvIjymiafYHbS1POAuAASZuVztUDgAXlsTsk7VtGzxzRc63VSg0+IrptSOPgJX2Rpva9paSlNKNh/gU4Q9JRwPXAi8rpZwIHAYuBO4FXANheJul9wCXlvPfaHu+4fR3NSJ0NgbPKsUZJ8BHRXUNcqsD2i1fz0DMmONfAMau5zsnAyROULwJ2nUpMSfAR0WHGy+9tO4gZkwQfEd1lsthYRESNjPHMjoNvVRJ8RHSXyY5OERF1ynrwERF1cjpZIyIqZZwafEREhTKKJiKiVk4na0RElUyGSUZE1CmjaCIi6pRRNBERtUoNfq25/vJreOODd+9/YrTuQ195fdshDN1dex/adggzYqNrz207hNkro2giIupkjDOKJiKiQqnBR0RUysb33tN2FDMmCT4iOiwTnSIi6pUmmoiICjmLjUVEVCujaCIiamTjFUnwERHVsc3Ke5e3HcaMSYKPiO4yqcFHRNQqCT4iokK2WZn14CMi6pRRNBERNcoomoiIOmUUTURExVamBh8RUaEMk4yIqFTa4CMi6mQyiiYiok42K+9JJ2tERH0MK1ODj4ioj6m7DX6s7QAiIlpj8IoVfY/JkPRrSVdKulzSolK2uaSFkq4tPzcr5ZJ0oqTFkq6QtHvPdY4s518r6chB3l4SfER0mPHKlX2PKXia7SfY3rPcPx442/Zc4OxyH+BAYG45jgY+Ds0HAnACsA+wN3DC+IfCdCTBR0R3lXHw/Y4BHAKcUm6fAjyvp/xUNy4ENpW0DfBsYKHtZbZvAxYC86b74mmDj4jOss2K4Y2iMfDfkgx80vZJwNa2byqvdZOkh5RztwVu6Hnu0lK2uvJpSYKPiA7zZJtgthxvVy9OKgm815Nt31iS+EJJP1vD9TRhMKsvn5Yk+IjorskvVXBLT7v6xJeybyw/b5b0NZo29N9I2qbU3rcBbi6nLwW273n6dsCNpXz/VcrPmUyAE0kbfER0l8Er3PfoR9KDJG08fhs4ALgKmA+Mj4Q5EvhGuT0fOKKMptkXuL005SwADpC0WelcPaCUTUtq8BHRWcbDWk1ya+BrkqDJq1+w/R1JlwBnSDoKuB54UTn/TOAgYDFwJ/AKANvLJL0PuKSc917by6YbVBJ8RHSXwSun3cR932XsJcDjJyi/FXjGBOUGjlnNtU4GTh44KKbQRCNpjqTLJH1rqi8iaQdJV031eRERM8mGFfes6HuMqqnU4N8IXANsMkOxRESsXZ5cG/uomlQNXtJ2wF8B/1nu7y3pq+X2IZLukrSepA0kLSnle0j6iaQLWM1XkYiItq1c4b7HqJpsE82HgbcB470RPwZ2K7efQtNbvBfN9NqLSvlngGNtP3E4oUZEDNnMz2RtVd8EL+k5wM22Lx0vs70cWCzp0TRjPT8EPJUm2Z8n6cHAprZ/UJ5y2hquf7SkRZIW3c3otnVFxOgxsHKl+x6jajJt8E8GDpZ0ELABsImkzwHn0SyYcy/wXeCzwBzgLTSzsSb1r1Jmg50EsJXWH91/yYgYPfZId6L207cGb/sdtrezvQNwOPA92y8FzgWOAy6w/VtgC2Bn4GrbvwNul7RfucxLZiT6iIgBeEgTnWarQcbBX0QzuP/ccv8Kmqac8X+NVwAnS7qTAWZiRUTMmJLgazWlBG/7HMq6CLbvAtbveezoVc69lPsP/H/PNGOMiJghQ5vJOitlJmtEdNeQZrLOVknwEdFZhpEe595PEnxEdJfNyopH0STBR0Rn2anBR0RUa4qbao+UJPiI6C6P9loz/STBR0R3ZRx8RESdzKT3ZB1JSfAR0V02K+5Jgo+IqI4NK50mmoiIKq1Igo+IqI+BivtYk+AjottSg4+IqNBKwz1ZbCwiok5poomIqJBxmmgiImqUTtaIiIolwUdEVMjOKJqIiCqZjKKJiKhS2uAjIiqWJpqIiAo1bfBtRzFzkuAjotNSg4+IqJCBeleDT4KPiA4zziiaiIgaNaNo6k3wY20HEBHRmtLJ2u+YDEnzJP1c0mJJx89s4JOTGnxEdNawavCS5gD/ATwLWApcImm+7Z8OfPEBpAYfEZ02pBr83sBi20ts3wOcDhwyk3FPRmrwEdFZKxnaUgXbAjf03F8K7DOMCw9CnkUdDJJ+C1y3ll5uS+CWtfRaa0uN7wnqfF81vidYu+/rEba3GuQCkr5DE3M/GwB399w/yfZJPdd5EfBs268q918G7G37DYPEN6hZVYMf9D9rKiQtsr3n2nq9taHG9wR1vq8a3xOM3vuyPW9Il1oKbN9zfzvgxiFde9rSBh8RMbhLgLmSdpS0HnA4ML/lmGZXDT4iYhTZXi7p9cACYA5wsu2rWw6r0wn+pP6njJwa3xPU+b5qfE9Q7/vqy/aZwJltx9FrVnWyRkTE8KQNPiKiUknwERGVSoKPiKhUpzpZJe0HzLX9GUlbARvZ/lXbcQ1K0guA/WiW1jjf9tdaDmlgkg60fdYqZa+1/Ym2YhoGSU8CdqDnb8/2qa0FNARlHZatuf97ur69iGJcZzpZJZ0A7Ak8yvZfSnoY8GXbT245tIFI+hjwf4AvlqK/Bn5p+5j2ohqcpB8B77L9vXL/7cD+tg9sN7Lpk3QasBNwObCiFNv2se1FNRhJbwBOAH7DfXtn2Pbj2osqxnUpwV8O7Ab82PZupeyKUf9FlHQ1sKvLf6SkMeBK249pN7LBSNoS+BbwVmAesDNwuO17Ww1sAJKuAXZxRX90khYD+9i+te1Y4oG61AZ/T/nDGk+ED2o5nmH5OfDwnvvbA1e0FMvQ2L4FOJhmCdaHAYeOcnIvrgIe2nYQQ3YDcHvbQcTEutQGf4akTwKbSno18ErgUy3HNAxbANdIurjc3wu4QNJ8ANsHtxbZNEi6g+ZDWOXnesAjgUMl2fYmbcY3oC2Bn5b/qz+NF47a/9EqlgDnSPo2939PH2ovpBjXmQRv+98kPQv4PfAo4O9tL2w5rGH4+7YDGCbbG7cdwwx6T9sBzIDry7FeOWIW6UwbfM0kbU1Tcwe42PbNbcYzDJKeD3zP9u3l/qY0naxfbzeymIikjWk6V//Qdixxn+rb4CXdIen3Exx3SPp92/ENStJhwMXAi4DDgIskHdpuVENxwnhyB7D9O5rRGiNL0r6SLpH0B0n3SFox6r+DknaVdBlN/8LVki6VNNId/DWpvomm8q/8AH8H7DVeay/j+78LfKXVqAY3UeVj1H9f/51mGdkv0wzZPQKY22pEgzsJ+Fvb3weQtD9N39aT2gwqGqP+BzMlknbn/hOCLms5pGEYW6VJ5lbq+Ga2SNKHaEbRGHgDcGm7IQ3O9mJJc2yvAD5TxvuPsgeNJ3cA2+dUNEJt5NWQCCZF0t8Dp9CMOtkS+Kykd7Ub1VB8R9ICSS+X9HLg28BZfZ4zCt4A3AN8iabGezcw0pO3gDvLZhCXS/pXSW8CRj0ZLpH0bkk7lONdwMjPDq9FZzpZyyST3WzfXe5vSDPp6dHtRja4nqUKBJxbw1IFNZL0COBmYF3gTcCDgY/ZXtxqYAOQtBnwD/T8/gHvsX1bq4EF0K0Efxbw4tJZNz4q43O2n9NuZIOR9AHbb+9XNmpKX8LbgMfQbHgMgO2ntxZUxIipvg1e0kdp2nD/RNPLv7DcfxZwfpuxDcmzgFWT+YETlI2az9M0zzwHeC1wJPDbViOaJklXUmZQT2SUl8uQ9E0e+N5uBxYBnxz/xhztqL4GL+nINT1u+5S1FcswSXod8Dc0szx/2fPQxsAPbb+0lcCGRNKltvfoXS9I0g9s/9+2Y5uq0jQD9/UhnFZ+vgS40/Z7135UwyHpI8BW3H+xu/8FNgQ2sf2ytmKLDiT4Wkl6MLAZ8M/A8T0P3WF7WTtRDY+kC23vK2kBcCJwI/AV2zu1HNq0SfrhqquXTlQ2SiSda/upE5VJunrUF70bdV1oojnD9mGr+5o8wl+P59Asu/CAkSWSNq8gyf9j+RB7M/BRYBOajslR9iBJ+9k+H/68Nvyoj6LZStLDx9d/l/RwmlFq0IyCihZVX4OXtI3tm3q+Jt+P7evWdkzDIOlX3Lco18OB28rtTYHrbe/YYngxAUl7ACfTjJ4xTVv1K23/uNXABiDpIOATNM2EAnakaTo8B3i17Q+3F11Un+DHVTza5BPAfNtnlvsHAs+0/eZ2IxuMpEcCHwGeSLORxAXAm2wvaTWwIZC0Cc3fXhXL7Epan2a9fgE/S8fq7NGZiU40o01WNbK7A/XYazy5A5Rt7kauI3ICXwDOoFk//WE0k52+uMZnzHKStpb0aeBLtm+XtIuko9qOawjm0qzQ+jjgMElHtBxPFNUneEmvK+3vO0u6ouf4FRVsjAHcIuldZRbhIyT9Hc1yBaNOtk+zvbwcn2MNQw1HxGeBBTQfWAC/AI5rLZohULMV5kfL8TTgX2k2aolZoPommg6MNtmcZpXFp9IkwHOB947qeyvvB5pJTr8DTqd5X38NrG/7fW3FNihJl9jeS9JlPdtGXm77CW3HNl2l8vR44DLbjy9LV/+n7ee2HFrQgVE05avwHcBjR7VDdXXU7Gb/DttvbDuWIbqU+zqPAV7T85iBkU3wwB8lbcF920buy+hvd3e37ZWSlpe+hZtp5mbELFB9ggcov4A/6R3OVQPbK8rIjGpUPvrnb4H5wE6SfkgzQWjU1+6/pCz78SmaD+c/0OxPELNAJxJ8sQ3NUgUXA38cLxzx/TABLlOz/+qXuf/7+mp7IQ1HGSe+Az2/p7ZPbS2gwe1E07G/PfBCYB9G/29wY5rNZs4BvkMze7WGvq0qVN8GP07ShCNLbP9gbccyTJI+M0Gxbb9yrQczRJJOo0mIlwMrSrFtH9teVIMZX3ZB0n7APwEfBN5pe5+WQ5s2SU+nWUnyKTRNM5fTrGj6kVYDC6BDCR7+vCbIXNvflfQXwBzbd7QdVzxQWd55F1f0CzreuSrpn4ErbX+ht8N1VJW+oL1oRtG8FrjL9s7tRhUw+l8PJ03Sq4Gjgc1paobb0szAe0abcQ1K0gbAUTxwWd2RrsHT7PH5UOCmtgMZov+R9EngmcAHygShkR6qLOlsmuUWLgDOo2f7yGjfSP9yTdExwJNp1m/B9rXAQ1qNaDhOo0mEzwZ+AGwHjOy3EknfLH0KWwI/LbtVzR8/2o5vQIfRjIOfV/Yl2Bx4a7shDewKmjVndqWZ6LRr2UwnZoHONNFIusj2Pj1fk9eh2dFpVBcbA+73tX+8fXddYMGoboyxur6ScaPeZ1IrSRsBrwDeAjzU9vothxR0qIkG+IGkdwIbSnoWzYJI32w5pmG4t/z8naRdadbi3qG9cAYznsAl7QjctMoWi1u3GVs8kKTX03Sw7gFcR7OY2nmtBhV/1qUa/BhNW/UBNJNoFtDMuBvpfwBJrwL+C3gszVT4jYB32/5km3ENStIi4Em27yn316PZyGSvdiOLXpLeSjN7+lLby9uOJ+6vSwn++cCZtv/UdizDVDrqXkhTa1+3FHuUdwmCiafwS/qJ7ce3FVPEqOlSJ+vBwC8knSbpr0obfA2+ARwCLKeZRfgHeiY8jbDfSvrzJDRJhwC3tBhPxMjpTA0eoHRAHkizcNV+wELbr2o3qsFIusr2rm3HMWySdqLZeHt85cWlwMts/3L1z4qIXrXUYifF9r2SzqJZ7GlDmprvSCd44EeSHmv7yrYDGbKVZU/WjWgqIneUjteImKTO1OAlzQMOp5ltdw7wJeC/R7VjqGeP2XVoNlxYAvyJpgPZFQz//LHt3Vcpu9R2VYurRcykLtXgX06ztvhrKulofU7bAcwESTvTzMp9sKQX9Dy0CT0zdSOiv84keNuHtx3DMNW2tn2PR9F8eG0K9G4acQfw6lYiihhRXWqieQHwAZrlCcR9TRmbtBpYTEjSE21f0HYcEaOsSwl+MfBc29e0HUv0V/EiahFrTZfGwf8myX2kVLWIWkQbulSD/whNwvg6zWgToI6dj2pU2yJqEW3oTCcrzSiMO2nWohlnIAl+dqpqEbWINnQmwdt+RdsxxJScJGkz4F00G1VvBLy73ZAiRkuXmmi2Az5Ks+mHgfOBN9pe2mpgMaFaF1GLWJu61Mn6GZqa4MNotuv7ZimL2anWRdQi1pou1eAnWn72AWUxO9S6iFrE2tSlGvwtkl4qaU45Xgrc2nZQsVo/kvTYtoOIGGVdqsE/HPh34Ik0bfA/Ao61fX2rgcX91L6IWsTa1KUEfwpwnO3byv3NgX/LzMjZRdIj1vR4xWvwRAxdZ4ZJAo8bT+4AtpdJ2q3NgOKBksAjhqdLbfBjZVw18OcafJc+4CKiY7qU4D5I03H3FZo23sOA97cbUkTEzOlMGzyApF2Ap9N02J1t+6cthxQRMWM6leAjIrqkS23wERGdkgQfEVGpJPiIiEolwUdEVCoJPiKiUv8f1Y/CedSOFUQAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 15,
"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": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.543).</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": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>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": 33,
"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": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>17710.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>18920.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>23875.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16430.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16925.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>20970.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21105.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>24565.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>30760.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>41315.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>36880.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>5151.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6295.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>6575.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>5572.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6377.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>7957.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6229.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>6692.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7609.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8558.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>8921.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>12964.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6479.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>171</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>9988.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>172</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>10898.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>173</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>11248.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>174</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16558.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>175</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>15998.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>176</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>15690.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>177</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>15750.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>178</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7775.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>179</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7975.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>180</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7995.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>181</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8195.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>182</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>183</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>184</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9995.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>185</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>186</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>9980.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>187</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13295.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>188</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>189</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>12290.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>190</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>12940.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>191</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>13415.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>192</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>15985.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16515.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>194</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>18420.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>195</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>18950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
"5 fwd sedan 15250.0\n",
"6 fwd sedan 17710.0\n",
"7 fwd wagon 18920.0\n",
"8 fwd sedan 23875.0\n",
"9 rwd sedan 16430.0\n",
"10 rwd sedan 16925.0\n",
"11 rwd sedan 20970.0\n",
"12 rwd sedan 21105.0\n",
"13 rwd sedan 24565.0\n",
"14 rwd sedan 30760.0\n",
"15 rwd sedan 41315.0\n",
"16 rwd sedan 36880.0\n",
"17 fwd hatchback 5151.0\n",
"18 fwd hatchback 6295.0\n",
"19 fwd sedan 6575.0\n",
"20 fwd hatchback 5572.0\n",
"21 fwd hatchback 6377.0\n",
"22 fwd hatchback 7957.0\n",
"23 fwd hatchback 6229.0\n",
"24 fwd sedan 6692.0\n",
"25 fwd sedan 7609.0\n",
"26 fwd sedan 8558.0\n",
"27 fwd wagon 8921.0\n",
"28 fwd hatchback 12964.0\n",
"29 fwd hatchback 6479.0\n",
".. ... ... ...\n",
"171 fwd hatchback 9988.0\n",
"172 fwd sedan 10898.0\n",
"173 fwd hatchback 11248.0\n",
"174 rwd hatchback 16558.0\n",
"175 rwd hatchback 15998.0\n",
"176 rwd sedan 15690.0\n",
"177 rwd wagon 15750.0\n",
"178 fwd sedan 7775.0\n",
"179 fwd sedan 7975.0\n",
"180 fwd sedan 7995.0\n",
"181 fwd sedan 8195.0\n",
"182 fwd sedan 8495.0\n",
"183 fwd sedan 9495.0\n",
"184 fwd sedan 9995.0\n",
"185 fwd convertible 11595.0\n",
"186 fwd hatchback 9980.0\n",
"187 fwd sedan 13295.0\n",
"188 fwd sedan 13845.0\n",
"189 fwd wagon 12290.0\n",
"190 rwd sedan 12940.0\n",
"191 rwd wagon 13415.0\n",
"192 rwd sedan 15985.0\n",
"193 rwd wagon 16515.0\n",
"194 rwd sedan 18420.0\n",
"195 rwd wagon 18950.0\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 34,
"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": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 35,
"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": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_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 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment