Skip to content

Instantly share code, notes, and snippets.

@Photon12
Created May 22, 2020 11:46
Show Gist options
  • Select an option

  • Save Photon12/6c20d7795f0a97c9a1f5eecdfe483303 to your computer and use it in GitHub Desktop.

Select an option

Save Photon12/6c20d7795f0a97c9a1f5eecdfe483303 to your computer and use it in GitHub Desktop.
Created on Skills Network 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": {},
"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,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df1=df[['bore','stroke' ,'compression-ratio','horsepower']]\n",
"df1.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": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56333.4642478049)"
]
},
"execution_count": 8,
"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": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 15,
"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": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6c34236b70>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)\n"
]
},
{
"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": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 19,
"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": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6c34201630>"
]
},
"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.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": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 21,
"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": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 22,
"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": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6c386e2748>"
]
},
"execution_count": 23,
"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": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6c3415fd30>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"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": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6c3409eb70>"
]
},
"execution_count": 26,
"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": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6c1c7e1710>"
]
},
"execution_count": 27,
"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": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 34,
"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": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 35,
"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": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 36,
"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": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 37,
"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": 38,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 38,
"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": 39,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 39,
"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": 50,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 51,
"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": 56,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>hatchback</td>\n",
" <td>7603.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>12647.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4wd</td>\n",
" <td>wagon</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>fwd</td>\n",
" <td>hardtop</td>\n",
" <td>8249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>8396.387755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9811.800000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>23949.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>hardtop</td>\n",
" <td>24202.714286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>14337.777778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21711.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 4wd hatchback 7603.000000\n",
"1 4wd sedan 12647.333333\n",
"2 4wd wagon 9095.750000\n",
"3 fwd convertible 11595.000000\n",
"4 fwd hardtop 8249.000000\n",
"5 fwd hatchback 8396.387755\n",
"6 fwd sedan 9811.800000\n",
"7 fwd wagon 9997.333333\n",
"8 rwd convertible 23949.600000\n",
"9 rwd hardtop 24202.714286\n",
"10 rwd hatchback 14337.777778\n",
"11 rwd sedan 21711.833333\n",
"12 rwd wagon 16994.222222"
]
},
"execution_count": 56,
"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": 59,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 59,
"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": 60,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 60,
"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": 62,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"gf= df[['price','body-style']]\n",
"gf1 = gf.groupby(['body-style'], as_index= False).mean()\n",
"gf1"
]
},
{
"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": 63,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAD8CAYAAACFK0QrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAXRElEQVR4nO3dbYxc1Z3n8e+v2+ZhIYQEE+K1PQFNrMwA0vBgOUSsVuwwMzEMihkNkRxpA8ogeYOIFrSjrMK8mNnsiFXyYsksSwLxDiw4mwmx8oSVNZNBJCOCxJNhzaPD0hqS4LWFF5IAVgDT3b99UaezRVHddbu72tX33t9HOupbp8699S8Q/zqce865sk1ERNTb2KgDiIiIxUsyj4hogCTziIgGSDKPiGiAJPOIiAZIMo+IaICByVzSMZIelvS4pKclfb5PG0m6UdKEpCcknbM04UZERD8rKrR5E/h924ckrQTul3S37Qe72lwErC/lw8DN5W9ERBwBA3vm7jhUXq4spXel0WZge2n7IHCipNXDDTUiImZTpWeOpHHgUeCDwJdtP9TTZA3wQtfrfaXuQM91tgJbARhbca6OOXFhUS9XDV1N+7vr1406hKGb2P/qqENYEqec9M9GHcKSeOHZp16yffJirjF2wloz+Ualtn795R/Y3rSYzzvSKiVz21PAWZJOBL4r6UzbT3U1Ub/T+lxnG7ANYOy4k33U6X+6gJCXr+nJw6MOYUns2PU3ow5h6D72+XtGHcKS+LefPHvUISyJa//Fb/9s0ReZfIMVH/pYpaZv7fnvqxb9eUdYpWQ+w/avJP0jsAnoTub7gO7u21pg/6Kji4gYFgmNjY86iiVTZTbLyaVHjqRjgT8AftLTbCdweZnVch7wiu0DREQsG2JsxVGVSh1V6ZmvBu4o4+ZjwA7b35f0aQDbtwC7gIuBCeDXwKeWKN6IiIVpeM98YDK3/QTwjoG4ksRnjg1cPdzQIiKGR4DGW5zMIyIaQWKszT3ziIimaPUwS0REI7R9zDwiogmEGFuxctRhLJkk84hoh/TMIyKaIck8IqLupExNjIioO5GeeURE/WmM8Zou1a8iyTwi2kHpmUdE1J7IbJaIiEZIMo+IqLvMM4+IaIIk84iI2pPE2MrMZomIqLcMs0RENEOSeUREA4yNadQhLJkk84hoBUkoyTwiov7Gx8dGHcKSSTKPiHYQ6ZlHRNRdZ9fEJPOIiJoTY0oyj4iotwyzREQ0Q5J5RETNSTC+Isk8IqL21OAx84GTLiWtk/QjSXslPS3pmj5tLpD0iqQ9pfzl0oQbEbEwkhgbq1bqqErPfBL4c9uPSXoX8Kike2w/09Pux7YvGX6IERHD0eQx84E9c9sHbD9Wjl8D9gJrljqwiIhh05gqlTmvMctohaT3SrpH0nPl73u6zrlO0oSkZyV9tKv+XElPlvduVBkHknS0pG+W+ocknTrou81rbWu54NnAQ33e/oikxyXdLemM+Vw3ImLJCcakSmWAmdGK3wXOA66WdDrwOeBe2+uBe8tryntbgDOATcBXJM1s33gzsBVYX8qmUn8l8EvbHwS+BHxxUFCVk7mk44FvA9fafrXn7ceAD9j+PeC/At+b5RpbJe2WtNuTb1T96IiIRRNibMVYpTKXOUYrNgN3lGZ3AJeW483AnbbftP08MAFslLQaOMH2A7YNbO85Z+Za3wIunOm1z6ZSMpe0kk4i/7rt7/T5cq/aPlSOdwErJa3q026b7Q22N2jFMVU+OiJiOMR8boCumul4lrK17yXfPlpxiu0D0En4wPtKszXAC12n7St1a8pxb/3bzrE9CbwCnDTX1xt4A7T8GtwK7LV9wyxt3g+8aNuSNtL5kXh50LUjIo6keUxNfMn2hgHXettoxRzX7veG56if65xZVZnNcj7wSeBJSXtK3V8AvwVg+xbgMuAqSZPA68CW8r8NERHLQmejrSFdq/9oxYuSVts+UIZQDpb6fcC6rtPXAvtL/do+9d3n7JO0Ang38Iu5YhqYzG3fT/9fie42NwE3DbpWRMTIaDhPGppjtGIncAXwhfL3rq76v5N0A/DP6dzofNj2lKTXJJ1HZ5jmcjr3HLuv9QCdzvIPB3WQswI0IlpCjA3n4RSzjVZ8Adgh6Urg58DHAWw/LWkH8AydmTBX254q510F3A4cC9xdCnR+LL4maYJOj3zLoKCSzCOiFTSknvmA0YoLZznneuD6PvW7gTP71L9B+TGoKsk8IlqjyStAk8wjohUkGE8yj4iovyTziIiaE0oyj4ioOwmOGrBUv86SzCOiFSRYkZ55RES9iYyZR0TUnzJmHhFRe52eecbMIyJqLz3ziIiaG5MymyUiognGq+9nXjtJ5hHRClnOHxHREEnmERE1l0VDERENIHIDNCKi9jJmHhHRAFnOHxHRBOmZR0TUX/Yzj4hoiCTziIiaG8vDKSIiGiBj5hER9SeUvVkiIppgLMk8IqLeBIw3N5cz8G6ApHWSfiRpr6SnJV3Tp40k3ShpQtITks5ZmnAjIhZIMDamSqWOqvTMJ4E/t/2YpHcBj0q6x/YzXW0uAtaX8mHg5vI3ImJZELCywY+NG/jNbB+w/Vg5fg3YC6zpabYZ2O6OB4ETJa0eerQREQs0M8xSpdTRvMbMJZ0KnA081PPWGuCFrtf7St2BnvO3AlsB1q1by3P3/qf5RbvcPXzXqCNYGnu/N+oIhu65z/7OqENYEh771ahDWBLXDuMiqu8QShWV/59D0vHAt4Frbb/a+3afU/yOCnub7Q22N5x80knzizQiYhFEZzZLlVJHlXrmklbSSeRft/2dPk32Aeu6Xq8F9i8+vIiI4anrEEoVVWazCLgV2Gv7hlma7QQuL7NazgNesX1glrYREUecBCvHxyqVOqrSMz8f+CTwpKQ9pe4vgN8CsH0LsAu4GJgAfg18avihRkQs3MwwS1MNTOa276f/mHh3GwNXDyuoiIil0ORhlqwAjYhWEPW9uVlFPQeHIiLmq+yaWKUMvJR0m6SDkp7qqvsPkv6PpD2lXNz13nVlhfyzkj7aVX+upCfLezeWe5RIOlrSN0v9Q2Va+JySzCOiFTpj5tVKBbcDm/rUf8n2WaXsApB0OrAFOKOc8xVJ46X9zXTW3sysoJ+55pXAL21/EPgS8MVBASWZR0QrzCznr1IGsX0f8IuKH70ZuNP2m7afpzNRZGNZJX+C7QfKfcftwKVd59xRjr8FXDjTa59NknlEtINgfKxaAVZJ2t1Vtlb8lM+UzQZvk/SeUjfbCvk15bi3/m3n2J4EXgHmXGmZG6AR0QrznJr4ku0N8/yIm4G/prP6/a+B/wz8GbOvkJ9r5XylVfXdkswjoiWW9klDtl/8zSdJ/w34fnk52wr5feW4t777nH2SVgDvZsCwToZZIqIVlnpvlp6dYv8EmJnpshPYUmaonEbnRufDZZX8a5LOK+PhlwN3dZ1zRTm+DPhhGVefVXrmEdEKneX8w+mZS/oGcAGdsfV9wF8BF0g6i85wyE+BfwNg+2lJO4Bn6Dwf4mrbU+VSV9GZGXMscHcp0NlC5WuSJuj0yLcMiinJPCJaY1ijLLY/0af61jnaXw9c36d+N3Bmn/o3gI/PJ6Yk84hojbG5dyaptSTziGgFMbye+XKUZB4RrdHgBw0lmUdESyg984iI2tMSzzMftSTziGiNDLNERDRAg3N5knlEtEPrHxsXEdEUDc7lSeYR0R5N3owqyTwiWkHlsXFNlWQeEa2RYZaIiJoTGWaJiGiEAY/RrLUk84hoB2XRUERE7QkY0rMplqUk84hojSYPswy8HyDpNkkHJT01y/sXSHpF0p5S/nL4YUZELE5nBWi1UkdVeua3AzcB2+do82PblwwlooiIJVLTPF3JwGRu+z5Jpy59KBERS0mN3ptlWNMuPyLpcUl3SzpjtkaStkraLWn3/3355SF9dEREBeXhFFVKHQ3jBuhjwAdsH5J0MfA9YH2/hra3AdsAzj37LA/hsyMiKpGNpqdGHcaSWXTP3Partg+V413ASkmrFh1ZRMSQydOVSh0tumcu6f3Ai7YtaSOdH4iMoUTEMmOoaaKuYmAyl/QN4AJglaR9wF8BKwFs3wJcBlwlaRJ4HdhiO0MoEbH8NDg1VZnN8okB799EZ+piRMTy5Zb3zCMimqKu4+FVJJlHREsYpidHHcSSSTKPiHYwGWaJiKg/w3SSeURE7WXMPCKiCZLMIyJqzoYGL+dPMo+I1sgwS0RE7WXRUEREMzQ4mQ9rP/OIiOVtZjl/lTJAv8dpSnqvpHskPVf+vqfrveskTUh6VtJHu+rPlfRkee9GlYeUSjpa0jdL/UNVHhCUZB4RrSCGugXu7cCmnrrPAffaXg/cW14j6XRgC3BGOecrksbLOTcDW+k8A2J91zWvBH5p+4PAl4AvDgooyTwiWsIwNVWtDLqSfR/wi57qzcAd5fgO4NKu+jttv2n7eWAC2ChpNXCC7QfKTrPbe86Zuda3gAtneu2zyZh5RLTD/Jbzr5K0u+v1tvKktLmcYvsAgO0Dkt5X6tcAD3a121fq3irHvfUz57xQrjUp6RXgJOCl2T48yTwiWmMeUxNfsr1hWB/bp85z1M91zqwyzBIRLTG8G6CzeLEMnVD+Hiz1+4B1Xe3WAvtL/do+9W87R9IK4N28c1jnbZLMI6I9ljaZ7wSuKMdXAHd11W8pM1ROo3Oj8+EyJPOapPPKePjlPefMXOsy4IeDnuCWYZaIaIchLuef5XGaXwB2SLoS+Dnw8c7H+mlJO4BngEngatszgVxFZ2bMscDdpQDcCnxN0gSdHvmWQTElmUdESxhPvjWcK83+OM0LZ2l/PXB9n/rdwJl96t+g/BhUlWQeEe1gstFWRETdGeMKc8jrKsk8ItrB5ElDERH1l/3MIyLqz8O7AbocJZlHREsYp2ceEVFzmc0SEdEEbvQN0IHL+fttwt7zvsqm6hOSnpB0zvDDjIhYJIOnpiqVOqqyN8vtvHMT9m4X8f83Vt9KZ7P1iIhlpsxmqVJqaOAwi+37BjyyaDOwvWwC86CkEyWtntnXNyJiWchsloF+s4l6MbPB+juSuaStdHrvrFu3tvftiIgllHnmg1TeRL08qWMbwMk62te8O8PrdXDDtz4z6hCG7vWNl406hCVx/HP3jTqE5SuzWQaabeP1iIhlwxi3eTZLBTuBy8uslvOAVzJeHhHLzkzPvK03QGfZhH0lgO1bgF3AxXSeOP1r4FNLFWxExILZ+K3Do45iyVSZzTLbJuwz7xu4emgRRUQsiWYvGsoK0Ihoj5oOoVSRZB4R7eBstBUR0QhNns2SZB4R7WDjqSTziIhas830W5OjDmPJJJlHRDuY9MwjIpogyTwiouZsM13TvcqrSDKPiNbIbJaIiLrLbJaIiPrLbJaIiIaYTs88IqLmMjUxIqIBMmYeEVF/JrNZIiLqz2b6cG6ARkTUm2E6PfOIiHozGTOPiKg/gxu8nH9s1AFERBwZxtPTlcogkn4q6UlJeyTtLnXvlXSPpOfK3/d0tb9O0oSkZyV9tKv+3HKdCUk3StJCv12SeUS0Q5lnXqVU9K9sn2V7Q3n9OeBe2+uBe8trJJ0ObAHOADYBX5E0Xs65GdgKrC9l00K/XpJ5RLSCbaYOT1YqC7QZuKMc3wFc2lV/p+03bT8PTAAbJa0GTrD9gG0D27vOmbck84hoiXkNs6yStLurbH3HxeAfJD3a9d4ptg8AlL/vK/VrgBe6zt1X6taU4976BckN0Ihoh/kt53+pa/ikn/Nt75f0PuAeST+Zo22/cXDPUb8gSeYR0Q4GTy04V779Uvb+8vegpO8CG4EXJa22faAMoRwszfcB67pOXwvsL/Vr+9QvSIZZIqIVjJmemq5U5iLpOEnvmjkG/gh4CtgJXFGaXQHcVY53AlskHS3pNDo3Oh8uQzGvSTqvzGK5vOuceUvPPCLaweDpofTMTwG+W2YRrgD+zvbfS3oE2CHpSuDnwMcBbD8taQfwDDAJXG17ZsL7VcDtwLHA3aUsSKVkLmkT8F+AceBvbX+h5/0L6PyiPF+qvmP7Py40qIiIYbNh6vDiFw3Z/ifg9/rUvwxcOMs51wPX96nfDZy56KCokMzLfMgvA39IZ4znEUk7bT/T0/THti8ZRlAREUNnD23MfDmq0jPfCEyUXyMk3Uln3mRvMo+IWNamG5zMq9wAnW2OZK+PSHpc0t2SzhhKdBERwzL8FaDLSpWeeZW5kI8BH7B9SNLFwPfo3LF9+4U6k+u3AhzPeO/bERFLxsD0cG6ALktVeuazzZH8Dduv2j5UjncBKyWt6r2Q7W22N9jecEySeUQcSTZTh6cqlTqqkswfAdZLOk3SUXQ2jNnZ3UDS+2d2+5K0sVz35WEHGxGxUC6LhqqUOho4zGJ7UtJngB/QmZp4W5k3+eny/i3AZcBVkiaB14EtZeOYiIjlYYgrQJejSvPMy9DJrp66W7qObwJuGm5oERHD5IGrO+ssK0Ajoh2GtwJ0WUoyj4hWMM2eZ55kHhHtYDNd05kqVSSZR0Qr2OmZR0Q0QpWHNddVknlEtIOdnnlERO1lnnlERP2ZeT0DtHaSzCOiHWymDieZR0TUmg3TDd5lJMk8IlpjKsk8IqLeDDT4/meSeUS0R3rmERE1N204nI22IiLqL8MsERE1Z5xhloiIussN0IiIhkgyj4ioOTuzWSIias9kNktERO1lzDwioiEyzBIRUXOdMfNRR7F0kswjojXSM4+IqDkDzd3NPMk8IlrCOLNZIiLqrjObJck8IqLeGn4DdKxKI0mbJD0raULS5/q8L0k3lvefkHTO8EONiFi4mZ55lTLIoJw4CgOTuaRx4MvARcDpwCcknd7T7CJgfSlbgZuHHGdExKJNuVqZS8WceMRV6ZlvBCZs/5Ptw8CdwOaeNpuB7e54EDhR0uohxxoRsWDTdJbzVykDVMmJR1yVMfM1wAtdr/cBH67QZg1woLuRpK10eu4Ab36Vnz01r2jrYRXw0qiDGKavXvbZxn0n+Cw08N8VzfxOAB9a7AVe4vAPvsrPVlVsfoyk3V2vt9neVo6r5MQjrkoyV5+63p+uKm0o/zC2AUjabXtDhc+vlSZ+ryZ+J2jm92rid4LO91rsNWxvGkYsVMx3R1qVYZZ9wLqu12uB/QtoExHRBMsy31VJ5o8A6yWdJukoYAuws6fNTuDyMqvlPOAV2wd6LxQR0QBVcuIRN3CYxfakpM8APwDGgdtsPy3p0+X9W4BdwMXABPBr4FMVPnvb4Ca11MTv1cTvBM38Xk38TrCMvtdsOXHEYSE3eEVURERbVFo0FBERy1uSeUREA4wkmS/HpbCLJek2SQclNWbuvKR1kn4kaa+kpyVdM+qYFkvSMZIelvR4+U6fH3VMwyRpXNL/kvT9UccyLJJ+KulJSXuGMUWxqY74mHlZCvu/gT+kM8XnEeATtp85ooEMmaR/CRyisxL2zFHHMwxlFe9q249JehfwKHBpnf9dSRJwnO1DklYC9wPXlJXLtSfp3wEbgBNsXzLqeIZB0k+BDbabuBhqaEbRM1+WS2EXy/Z9wC9GHccw2T5g+7Fy/Bqwl87qt9oqW04cKi9XltKIWQCS1gJ/DPztqGOJI28UyXy2pf+xjEk6FTgbeGi0kSxeGYrYAxwE7rFd++9U/A3w72neA3UM/IOkR8uWINHHKJL5slwKG7OTdDzwbeBa26+OOp7Fsj1l+yw6K/c2Sqr9sJikS4CDth8ddSxL4Hzb59DZpfDqMqQZPUaRzJflUtjor4wrfxv4uu3vjDqeYbL9K+AfgWHt2TFK5wMfK+PLdwK/L+l/jDak4bC9v/w9CHyXzlBt9BhFMl+WS2HjncrNwluBvbZvGHU8wyDpZEknluNjgT8AfjLaqBbP9nW219o+lc5/Uz+0/a9HHNaiSTqu3HxH0nHAHwGNmTE2TEc8mdueBGaWwu4FdiyHpbCLJekbwAPAhyTtk3TlqGMagvOBT9Lp5e0p5eJRB7VIq4EfSXqCTsfiHtuNmcbXQKcA90t6HHgY+J+2/37EMS1LWc4fEdEAWQEaEdEASeYREQ2QZB4R0QBJ5hERDZBkHhHRAEnmERENkGQeEdEA/w9sx4rJMwWCTgAAAABJRU5ErkJggg==\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": 65,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEmCAYAAABoGYshAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAeYklEQVR4nO3deZRlVX328e9T3UwKjUwidoMQ7GgAB2QQBXw1aGyNEWPQtEsFI4oaVDSJcYhDhhejWXHOC4pxAByAkERxQCQYBIQAjRIQEGlBoQVFBrEdGLrref84u+R2U911q+6tOnX3eT5rnVX37lvn3N/t4Ve7fnufvWWbiIioz1jbAURExOxIgo+IqFQSfEREpZLgIyIqlQQfEVGphW0H0EsLN7c226rtMIar0llKv7d057ZDGLqVN/+i7RBmxY7bPajtEGbFTdd+9zbbOwxyjbFFS8yau/v6Xv/m9rNsLxvk/eba/Erwm23Fpnv8SdthDNX4mnvbDmFWnPbVD7YdwtA99+/ObjuEWfH6l+7ddgiz4g0H7f6jgS+y5m4WPuq5fX3rfZd/avuB32+OzasEHxExpyQ0tqDtKGZNEnxEdJgYW7hp20HMmiT4iOiu9OAjIuokQAuS4CMi6iMxlh58RESdUqKJiKhRavAREXUSYmzhJm2HMWuS4COiu9KDj4ioVxJ8RESNpEyTjIiokUgPPiKiThpjQZYqiIiokNKDj4ioksgsmoiIaiXBR0TUKPPgIyJqlQQfEVElSYxtklk0ERH1SYkmIqJeSfAREZUaG1PbIcyaJPiI6CxJKAk+IqJOCxaMtR3CrEmCj4juEunBR0TUqFlNMgk+IqJCYkxJ8BER9UmJJiKiXknwEREVkmDBwiT4iIgqqeIa/JxMAJX0VElfnov3iojolyTGxvo7RtGMevBqfuTJ9viQ44mImFM11+D77sFL2lXSNZKOA64HPlHaj5F0fXm8u6QLyuNlkr5Xnj9/FmKPiBiYxtTXsdFrSDtL+u+SI6+SdExp31bS2ZKuK1+36TnnrZJWSrpW0jN72veRdGV57cOlQ42kzSSdWtovlrTrVJ9tuiWaRwEnAU8C9iptBwO3S1oMHAScL2lz4OPAH5XXHzbN94mImH2CMamvYwprgL+0/XvAAcDRkvYA3gKcY3spcE55TnltObAnsAw4TtLEspbHA0cBS8uxrLQfCdxp+5HAB4D3ThXUdBP8j2z/j+2fAFtK2grYGfgc8BSaZH4+8GjgBtvX2TbwmQ1dUNJRklZIWuE1d08znIiImRNibOFYX8fG2L7F9rfL49XANcBi4FDgxPJtJwLPK48PBU6xfY/tG4CVwP6SdgIW2b6o5M6T1jtn4lqnA4dM9O43ZLoJ/lc9jy8C/gy4liapH0zTs//WxGfu54K2T7C9r+19tXDzaYYTETEAMZ1B1u0nOqPlOGrSSzalk72Bi4Edbd8CzQ8B4KHl2xYDN/Wctqq0LS6P129f5xzba4C7gO029vEGmSZ5HvD35fgO8DTgN7bvkvQ9YDdJu9v+AfCiAd4nImLWTGOa5G22953iWlsC/w68wfYvNnLtyV7wRto3ds4GDTJN8nya8sx5ttfS/GS5AMD23TQ1pK+UQdYfDfA+ERGzollsrL9jymtJm9Ak98/a/o/S/NNSdqF8vbW0r6LJnxOWADeX9iWTtK9zjqSFwNbAHRuLqe8evO0fcv/AKqVnrp7nf7De93+NphYfETE/aTg7OpVa+CeAa2y/v+elM4AjgPeUr1/saf+cpPcDD6cZTL3E9lpJqyUdQFPiORz4yHrXugg4DPhGqdNvUO5kjYgOE2PD2fDjQOClwJWSLi9tb6NJ7KdJOhK4EXgBgO2rJJ0GXE0zA+foUgkBeA3waWAL4MxyQPMD5GRJK2l67sunCioJPiI6S0Pqwdu+gMlr5ACHbOCcY4FjJ2lfQU+1pKf9bsoPiH4lwUdEp9V8J2sSfER0lgQLkuAjIuqUBB8RUSGhJPiIiBpJsOkUyxCMsiT4iOgsCRamBx8RUR+RGnxERJ2UGnxERJWaHnxq8BERVUoPPiKiQmNSZtFERNRqQf/rwY+cJPiI6KwsVRARUbEk+IiICuVGp4iISokMskZEVCk1+IiISmWpgoiIWqUHHxFRp6wHHxFRsST4iIgKjWXDj4iISqUGHxFRJ6GsRRMRUauxJPiIiPoIWFBvfk+Cj4gOE4ylBh8RUR8Bm2TLvoiI+qREM4f2/t3FXHjOu9sOY7gu+WLbEcyOa77QdgRDd92bHt12CLPCYz9vO4RZ8YZhXERKiSYiokYis2giIqqVEk1ERIUk2GRBBlkjIqqTEk1ERMVSoomIqJBQ1T34eotPERFTKatJ9nNMeSnpk5JulfTdnra/lfRjSZeX49k9r71V0kpJ10p6Zk/7PpKuLK99WGp+AknaTNKppf1iSbtOFVMSfER0VlOD7+/ow6eBZZO0f8D248vxVQBJewDLgT3LOcdJWlC+/3jgKGBpOSaueSRwp+1HAh8A3jtVQEnwEdFZE0sV9HNMxfZ5wB19vvWhwCm277F9A7AS2F/STsAi2xfZNnAS8Lyec04sj08HDpno3W9IEnxEdJdgwVh/B7C9pBU9x1F9vstrJV1RSjjblLbFwE0937OqtC0uj9dvX+cc22uAu4DtNvbGGWSNiM6a5jTJ22zvO823OB74B8Dl6/uAl5e3Xp830s4Ur00qCT4iOmx2d3Sy/dPfvpP0ceDL5ekqYOeeb10C3Fzal0zS3nvOKkkLga2ZoiSUEk1EdNZED76fY0bXb2rqE/4YmJhhcwawvMyM2Y1mMPUS27cAqyUdUOrrhwNf7DnniPL4MOAbpU6/QenBR0RnNUsVDKcHL+nzwFNpavWrgHcBT5X0eJpSyg+BVwHYvkrSacDVwBrgaNtry6VeQzMjZwvgzHIAfAI4WdJKmp778qliSoKPiE4bVoXG9osmaf7ERr7/WODYSdpXAHtN0n438ILpxJQEHxGdNjbp2GUdkuAjorPE8Hrw81ESfER0WsUbOiXBR0SHKT34iIgqaZbnwbctCT4iOi0lmoiISlWc35PgI6K7smVfRETFKs7vSfAR0W01L8iVBB8RnaWyZV+tkuAjotNSoomIqJBIiSYiolpTbGs60pLgI6K7lBudIiKqJGBI+33MS0nwEdFpNZdopjW+IOn1kq6R9NlpnneupOnuRh4RMauaO1n7O0bRdHvwfw48y/YNsxFMRMRcG9Hc3Ze+e/CSPgr8DnCGpNWSHqLG7ZIOL99zsqSnS9pC0imSrpB0Ks3msRER84wYU3/HKOo7wdt+NXAz8DTgs8CBwJ7A9cDB5dsOAP6HZlfwX9t+LM2msvts6LqSjpK0QtKKn91++4w+RETEjJQNP/o5RtFM5/ifDzylHMcDj5G0GLjD9i9L+2cAbF8BXLGhC9k+wfa+tvfdYbvtZhhORMT0yUbja/s6RtFME/x5NL32g4FzgZ8Bh9Ek/gkeKLKIiDkgj/d1jKIZJXjbNwHbA0ttXw9cAPwV9yf484AXA0jaC3js4KFGRAybweP9HSNokGUYLga+Xx6fDyymSfTQlG22lHQF8NfAJQO8T0TE7LH7O0bQtKZJ2t615/FLex5fSM8PC9u/AZYPIb6IiNljj2zvvB+5kzUiOm1U6+v9SIKPiA4zjK9pO4hZkwQfEd1lUqKJiKiTYTwJPiKiSqnBR0TUKgk+IqJCNozoMgT9SIKPiE5LiSYiokq50Skiol4VJ/hB1qKJiBhtHt5iY5I+KelWSd/tadtW0tmSritft+l57a2SVkq6VtIze9r3kXRlee3DKpvGStpM0qml/WJJu04VUxJ8RHSWGOpywZ8Glq3X9hbgHNtLgXPKcyTtQbNe157lnOMkLSjnHA8cBSwtx8Q1jwTutP1I4APAe6cKKAk+IjrMsHZtf8dUV7LPA+5Yr/lQ4MTy+ETgeT3tp9i+p+xxvRLYX9JOwCLbF9k2cNJ650xc63TgkIne/YakBh8R3TW9pQq2l7Si5/kJtk+Y4pwdbd8CYPsWSQ8t7YtptjedsKq03Vcer98+cc5N5VprJN0FbAfctqE3T4KPiE6bxjTJ22zvO6y3naTNG2nf2DkblBJNRHTYrO/o9NNSdqF8vbW0rwJ27vm+JcDNpX3JJO3rnCNpIbA1DywJrSMJPiK6bXYT/BnAEeXxEcAXe9qXl5kxu9EMpl5SyjmrJR1Q6uuHr3fOxLUOA75R6vQblBJNRHTXEJcqkPR54Kk0tfpVwLuA9wCnSToSuBF4QfO2vkrSacDVwBrgaNsTgbyGZkbOFsCZ5QD4BHCypJU0Pfcpd81Lgo+IDjNec99wrmS/aAMvHbKB7z8WOHaS9hXAXpO03035AdGvJPiI6C6TxcYiImpkjPuY4z6qkuAjortMdnSKiKhT1oOPiKiThzfIOh8lwUdEhxmnBx8RUaHMoomIqJUzyBoRUSWTaZIREXXKLJqIiDplFk1ERK3Sg58zN15+Dcds/YS2w4g+vP/017YdwtD9Zv/D2g5hVmx53XlthzB/ZRZNRESdjHFm0UREVCg9+IiIStn4vnvbjmLWJMFHRIflRqeIiHqlRBMRUSFnsbGIiGplFk1ERI1svDYJPiKiOrYZv29N22HMmiT4iOgukx58REStkuAjIipkm/GsBx8RUafMoomIqFFm0URE1CmzaCIiKjaeHnxERIUyTTIiolKpwUdE1MlkFk1ERJ1sxu/NIGtERH0M4+nBR0TUx6QGHxFRJ4MrXqpgrO0AIiLaYzw+3tcxFUk/lHSlpMslrSht20o6W9J15es2Pd//VkkrJV0r6Zk97fuU66yU9GFJmumnS4KPiO4q8+D7Ofr0NNuPt71vef4W4BzbS4FzynMk7QEsB/YElgHHSVpQzjkeOApYWo5lM/14SfAR0Vm2WXvvmr6OGToUOLE8PhF4Xk/7KbbvsX0DsBLYX9JOwCLbF9k2cFLPOdOWBB8RHTatEs32klb0HEc94GLwdUmX9by2o+1bAMrXh5b2xcBNPeeuKm2Ly+P122ckg6wR0V3TW6rgtp7Sy2QOtH2zpIcCZ0v63ka+d7K6ujfSPiNJ8BHRXQavnXH+XPdS9s3l662S/hPYH/ippJ1s31LKL7eWb18F7Nxz+hLg5tK+ZJL2GUmJJiI6y5jxteN9HRsj6cGStpp4DPwB8F3gDOCI8m1HAF8sj88AlkvaTNJuNIOpl5QyzmpJB5TZM4f3nDNt6cFHRHcZPD6UHvyOwH+WGY0Lgc/Z/pqkS4HTJB0J3Ai8AMD2VZJOA64G1gBH256YkP8a4NPAFsCZ5ZiRvhN8mcKzAvix7edM940k/dL2ltM9LyJittiw9t7Bb3SyfT3wuEnabwcO2cA5xwLHTtK+Athr4KCYXg/+GOAaYNEw3jgionX20Grw81FfNXhJS4A/BP61PH+opMvK48dJsqRdyvMfSHqQpN0kXSTpUkn/MFsfICJiEONr3dcxivodZP0g8NfAODSjxMDmkhYBB9OUbg6W9AjgVtu/Bj4EHG97P+AnQ488ImJQw7+TdV6ZMsFLeg5N0r5svZcuBA4EngK8u3w9GDi/vH4g8Pny+OSNXP+oiRsH7qbeRX8iYv4xMD7uvo5R1E8N/kDguZKeDWwOLJL0GeDrNAn9ETTTeN5M8+f15Z5zp/xTsX0CcALADtpsNP8UI2I02UMZZJ2vpuzB236r7SW2d6VZHOcbtl8CnAe8BLjO9jhwB/Bs4Fvl1G+V7wd48bADj4gYlMuNTv0co2jGNzrZ/mF5eF75egHwc9t3lufHAEeXeaBbzzjCiIjZUnmCn9aNTrbPBc7teb5Lz+N309TiJ57fADyp5/T3zDTIiIjZ4SnvUh1luZM1IrpreHeyzktJ8BHRWYaRnePejyT4iOgum/GKZ9EkwUdEZ9npwUdEVKufDbVHVRJ8RHSXR3edmX4kwUdEdw1xR6f5KAk+IjrLTGtP1pGTBB8R3WWz9t4k+IiI6tgw7pRoIiKqtDYJPiKiPgYqHmNNgo+IbksPPiKiQuOGe7PYWEREnVKiiYiokHFKNBERNcoga0RExZLgIyIqZGcWTURElUxm0UREVCk1+IiIiqVEExFRoaYG33YUsycJPiI6LT34iIgKGah3Nfgk+IjoMOPMoomIqFEziyYJPiKiPpUPso61HUBERFsmevD9HFORtEzStZJWSnrL7Ec/tfTgI6LThtGDl7QA+H/AM4BVwKWSzrB99eBXn7kk+IjorHGGtlTB/sBK29cDSDoFOBRoNcHL82iAQdLPgB/N0dttD9w2R+81V2r8TJDPNUrm8jM9wvYOg1xA0tdoYu7H5sDdPc9PsH1Cuc5hwDLbryjPXwo80fZrB4lvUPOqBz/oX9Z0SFphe9+5er+5UONngnyuUTJqn8n2siFdSpNdfkjXnrEMskZEDG4VsHPP8yXAzS3F8ltJ8BERg7sUWCppN0mbAsuBM1qOaX6VaObYCW0HMAtq/EyQzzVKavxMU7K9RtJrgbOABcAnbV/Vcljza5A1IiKGJyWaiIhKJcFHRFQqCT4iolJJ8BERlerULBpJBwFLbX9K0g7AlrZvaDuuQUl6PnAQzY0VF9j+z5ZDGpikZ9k+c722V9v+aFsxDYOkJwO70vN/z/ZJrQU0JGUtlh1Z93Pd2F5EAR2aRSPpXcC+wKNs/66khwP/ZvvAlkMbiKTjgEcCny9Nfwr8wPbR7UU1OEkXAm+3/Y3y/M3AU20/q93IZk7SycDuwOXA2tJs269vL6rBSXod8C7gp9y/QZJtP7a9qAK6leAvB/YGvm1779J2xaj/I5R0FbCXy1+kpDHgStt7thvZYCRtD3wZeBOwDHg0sNz2fa0GNgBJ1wB7uLL/dJJW0qy7cnvbscS6ulSDv7f8x5pIhA9uOZ5huRbYpef5zsAVLcUyNLZvA55LswTrw4HDRjm5F98FHtZ2ELPgJuCutoOIB+pSDf40SR8DHiLplcDLgY+3HNMwbAdcI+mS8nw/4CJJZwDYfm5rkc2ApNU0P4RVvm4K/A5wmCTbXtRmfAPaHri6/F3dM9E4an9Hk7geOFfSV1j3c72/vZACOpTgbf+zpGcAvwAeBbzT9tkthzUM72w7gGGyvVXbMcyiv207gFlyYzk2LUfME52pwddM0o40PXeAS2zf2mY8wyDpj4Fv2L6rPH8IzSDrF9qNLDZE0lY0g6u/bDuWaFRfg5e0WtIvJjlWS/pF2/ENStILgUuAFwAvBC4umw+MundNJHcA2z+nmakxsiQdIOlSSb+UdK+ktZX8G9xL0ndoxhiuknSZpJEe5K9F9SWayn/lB/gbYL+JXnuZ3/9fwOmtRjW4yTofo/7v9V9olpH9N5opu4cDS1uNaDhOAP7C9n8DSHoqzfjWk9sMKkb/P8y0SHoC694Q9J2WQxqGsfVKMrdTx29mKyS9n2YWjYHXAZe1G9LgbK+UtMD2WuBTZb7/qHvwRHIHsH1uRbPURloNiaAvkt4JnEgz62R74NOS3t5uVEPxNUlnSXqZpJcBXwHOnOKcUfA64F7gVJoe793ASN+8Bfy6bAZxuaR/kvRGoIZEeL2kd0jatRxvB0b+DvEadGaQtdxksrftu8vzLWhuevq9diMbXM9SBQLOq2GpghpJegRwK7AJ8EZga+A42ytbDWxAkrYB/o6ef4PA39q+s9XAolMJ/kzgRWWwbmJWxmdsP6fdyAYj6b223zxV26gpYwl/DexJs5s9ALZ/v7WgIkZM9TV4SR+hqeHeQzPCf3Z5/gzggjZjG5JnAOsn82dN0jZqPktTnnkO8GrgCOBnrUY0Q5KupNxBPZkKlsv4Eg/8fHcBK4CPTfzWHHOv+h68pCM29rrtE+cqlmGS9Brgz2nu8vxBz0tbAd+y/ZJWAhsSSZfZ3qd3vSBJ37T9f9qObbpKaQbuH0M4uXx9MfBr238/91ENj6QPATuw7oJ3PwG2ABbZfmlbsXVd9Qm+VpK2BrYB/hF4S89Lq23f0U5UwyPpf2wfIOks4MPAzcDptndvObQZk/St9Vcvnaxt1Eg6z/ZTJmuTdNWoL3w3yrpQojnN9gs39GvyCP96vIBm2YUHzCyRtG0FSf7/lh9ifwl8BFhEMzA5yh4s6SDbF8Bv14avYRbNDpJ2mVj/XdIuNDPVoJkJFS2pvgcvaSfbt/T8mrwO2z+a65iGQdIN3L8o1y7AneXxQ4Abbe/WYngxCUn7AJ+kmT1jmjr1y21/u9XABiTp2cBHaUqFAnajKR+eC7zS9gfbi67bqk/wEyqebfJR4AzbXy3PnwU83fZfthvZYCT9DvAh4Ek0m0hcBLzR9vWtBjYEkhbR/N+rZoldSZvRrNkv4HsZWJ0fOnOjE81sk/WN7O5APfabSO4AZZu7kRuInMTngNNo1k9/OM3NTp/f6BnznKQdJX0CONX2XZL2kHRk23ENyVKaVVofC7xQ0uEtxxN0IMFLek2pvz9a0hU9xw1UsDEGcJukt5c7CB8h6W9olisYdbJ9su015fgMG5lqOCI+DZxF8wML4PvAG1qLZkjUbIf5kXI8Dfgnms1aomXVl2g6MNtkW5pVFp9CkwDPA/5+VD9b+TzQ3OT0c+AUms/1p8Bmtv+hrdgGJelS2/tJ+k7PtpGX235827ENonSgHgd8x/bjyvLV/2r7j1oOrfOqn0VTfhVeDTxmVAdUN0TNTvZvtX1M27EM0WXcP3gM8Kqe1wyMbIIHfiVpO+7fNvIA6tjq7m7b45LWlPGFW2nuz4iWVZ/gAco/vv/tncpVA9try8yMalQ+++cvgDOA3SV9i+bmoBrW7r+0LP3xcZof0L+k2aMgWtaJBF/sRLNUwSXAryYaK9gP8ztq9l/9N9b9XP/RXkjDUeaJ70rPv1PbJ7UW0OB2pxnY3xn4E+CJ1PF/cCuaDWfOBb5Gc/dqDeNbI6/6GvwESZPOLLH9zbmOZZgkfWqSZtt++ZwHM0SSTqZJiJcDa0uzbb++vagGM7HsgqSDgHcD7wPeZvuJLYc2EEm/T7OS5ME0pZnLaVY1/VCrgUV3Ejz8dk2Qpbb/S9KDgAW2V7cdVzxQWd55D1f0D3RicFXSPwJX2v5c74DrKCvjQfvRzKJ5NfAb249uN6qo4dfDvkh6JXAUsC1Nz3Axzd13h7QZ16AkbQ4cyQOX1R3pHjzN/p4PA25pO5Ah+rGkjwFPB95bbg4a+anKks6hWXLhIuB8eraQjHaN/D+uaTgaOJBm/RZsXwc8tNWIhuNkmkT4TOCbwBJgZH8rkfSlMqawPXB12a3qjImj7fgG9EKaefDLyr4E2wJvajekobiCZs2ZvWhudNqrbKgTLetMiUbSxbaf2PNr8kKaHZ1GdbExYJ1f+yfqu5sAZ43qxhgbGiuZMOpjJjWTtCXwZ8BfAQ+zvVnLIXVeZ0o0wDclvQ3YQtIzaBZD+lLLMQ3DfeXrzyXtRbMO967thTOYiQQuaTfglvW2WNyxzdhicpJeSzPAug/wI5oF1c5vNagAutWDH6OpVf8BzU00Z9HcbTfSfwCSXgH8O/AYmlvhtwTeYftjbcY1KEkrgCfbvrc835RmI5P92o0s1ifpTTR3UF9me03b8cT9upTg/xj4qu172o5lmMpA3Z/Q9No3Kc2uYJegB9zCL+l/bT+urZgiRk2XBlmfC3xf0smS/rDU4GvwReBQYA3NHYS/pOeGpxH2M0m/vQlN0qHAbS3GEzFyOtODBygDkM+iWbjqIOBs269oN6rBSPqu7b3ajmPYJO1Os/H2xMqLq4CX2v7Bhs+KiF619GL7Yvs+SWfSLPa0BU3Pd6QTPHChpMfYvrLtQIZsvOzJuiVNR2R1GXiNiD51pgcvaRmwnOZOu3OBU4Gvj+qgUM8eswtpNlu4HriHZgDZFUz//LbtJ6zXdpntqhZXi5hNXerBv4xmbfFXVTLQ+py2A5gNkh5Nc1fu1pKe3/PSInru1I2IqXUmwdte3nYMw1Tb2vY9HkXzw+shQO+GEauBV7YSUcSI6lKJ5vnAe2mWJxD3lzIWtRpYTErSk2xf1HYcEaOsSwl+JfBHtq9pO5aYWsWLqEXMmS7Ng/9pkvtIqWoRtYg2dKkH/yGahPEFmtkmQB07H9WotkXUItrQmUFWmlkYv6ZZi2aCgST4+amqRdQi2tCZBG/7z9qOIablBEnbAG+n2ah6S+Ad7YYUMVq6VKJZAnyEZtMPAxcAx9he1WpgMalaF1GLmEtdGmT9FE1P8OE02/V9qbTF/FTrImoRc6ZLPfjJlp99QFvMD7UuohYxl7rUg79N0kskLSjHS4Db2w4qNuhCSY9pO4iIUdalHvwuwL8AT6KpwV8IvN72ja0GFuuofRG1iLnUpQR/IvAG23eW59sC/5w7I+cXSY/Y2OsVr8ETMXSdmSYJPHYiuQPYvkPS3m0GFA+UBB4xPF2qwY+VedXAb3vwXfoBFxEd06UE9z6agbvTaWq8LwSObTekiIjZ05kaPICkPYDfpxmwO8f21S2HFBExazqV4CMiuqRLNfiIiE5Jgo+IqFQSfEREpZLgIyIq9f8BIWcfq+n+b1cAAAAASUVORK5CYII=\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": 68,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 68,
"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": 69,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-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": 71,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.809574567003656 with a P-value of P = 6.369057428259557e-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": 72,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483639 with a P-value of P = 8.016477466159328e-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": 73,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522675 with a P-value of P = 9.200335510481123e-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": 74,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702844 with a P-value of P = 2.189577238893878e-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": 75,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622198389e-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": 76,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626603 with a P-value of P = 8.049189483935261e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-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": 78,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144477352e-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": 82,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 82,
"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": 83,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
".. ... ... ...\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 83,
"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": 84,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 84,
"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": 85,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/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",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment