Skip to content

Instantly share code, notes, and snippets.

@saidmrad
Created September 29, 2020 22:45
Show Gist options
  • Save saidmrad/05e140057d39aeff84cd824354bcf9fd to your computer and use it in GitHub Desktop.
Save saidmrad/05e140057d39aeff84cd824354bcf9fd 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": [
"<center>\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/Logos/organization_logo/organization_logo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Data Analysis with Python\n",
"\n",
"Estaimted time needed: **30** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"- Explore features or charecteristics to predict price of car\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries \n"
]
},
{
"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:\n"
]
},
{
"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\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"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>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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager.\n"
]
},
{
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"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": {},
"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",
"\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"float64"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\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\":\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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>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.\n"
]
},
{
"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>\n"
]
},
{
"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",
"df[['bore','stroke' ,'compression-ratio','horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" \n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 56149.980799190336)"
]
},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"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>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": 9,
"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 \n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', ylabel='price'>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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>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": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', ylabel='price'>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 \n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"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>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": 13,
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->\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>\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='stroke', ylabel='price'>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"# weak relationship cannot expect linear"
]
},
{
"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",
"-->\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>\n"
]
},
{
"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",
"\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:\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'.\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"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>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"drive-wheels \n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'.\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"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>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data.\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"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>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"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>4wd</td>\n",
" <td>hatchback</td>\n",
" <td>7603.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>12647.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4wd</td>\n",
" <td>wagon</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>fwd</td>\n",
" <td>hardtop</td>\n",
" <td>8249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>8396.387755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9811.800000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>23949.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>hardtop</td>\n",
" <td>24202.714286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>14337.777778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21711.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 4wd hatchback 7603.000000\n",
"1 4wd sedan 12647.333333\n",
"2 4wd wagon 9095.750000\n",
"3 fwd convertible 11595.000000\n",
"4 fwd hardtop 8249.000000\n",
"5 fwd hatchback 8396.387755\n",
"6 fwd sedan 9811.800000\n",
"7 fwd wagon 9997.333333\n",
"8 rwd convertible 23949.600000\n",
"9 rwd hardtop 24202.714286\n",
"10 rwd hatchback 14337.777778\n",
"11 rwd sedan 21711.833333\n",
"12 rwd wagon 16994.222222"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 36,
"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>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle"
]
},
{
"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",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. \n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price.\n"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEmCAYAAABoGYshAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAeSElEQVR4nO3daZRkVZnu8f+TVQgoFCKTSKEgliLigCCCDI3SauGEA9rlRaEVRW1UtPs6Lr222qi4rnO3AzYq4kjbtuKAyIVWRoFCaZlESkApQRFExKGAqnzuh7MDooqsysjMyDwV+zy/tc7KiB0RJ96oynxz57v32Vu2iYiI+oy1HUBERMyOJPiIiEolwUdEVCoJPiKiUknwERGVmt92AP00fyNrw03bDmO4Kp2l9PBF27cdwtAtu/6PbYcwK7bZ4t5thzArrrvy0ptsbzWTc4wtWGhWrhjouf7rzafaXjyT95tr61eC33BT7rXL89oOY6jGV97Rdgiz4qTvfrjtEIbuWe88re0QZsVrX7xb2yHMitftu9MvZ3ySlSuY/7BnDfTUOy/+7JYzfr85tl4l+IiIOSWhsXltRzFrkuAjosPE2Px7tR3ErEmCj4juSg8+IqJOAjQvCT4ioj4SY+nBR0TUKSWaiIgapQYfEVEnIcbmb9B2GLMmCT4iuis9+IiIeiXBR0TUSMo0yYiIGon04CMi6qQx5mWpgoiICik9+IiIKonMoomIqFYSfEREjTIPPiKiVknwERFVksTYBplFExFRn5RoIiLqlQQfEVGpsTG1HcKsSYKPiM6ShJLgIyLqNG/eWNshzJok+IjoLpEefEREjZrVJJPgIyIqJMaUBB8RUZ+UaCIi6pUEHxFRIQnmzU+Cj4iokiquwc/JBFBJB0j69ly8V0TEoCQxNjbYMYqm1YNX8ytPtseHHE9ExJyquQY/cA9e0g6SrpD0ceBq4PjSfrSkq8vtnSSdXW4vlvSzcv+5sxB7RMSMaUwDHes8h7S9pP8uOfIySUeX9vtJOk3SVeXr5n2veYukZZKulPTUvvbdJV1SHvto6VAjaUNJXy3t50vaYbLPNtUSzcOAzwN7A7uWtv2AmyVtB+wLnCVpI+DTwDPL4/ef4vtERMw+wZg00DGJlcA/2X44sBdwlKRdgDcDp9teBJxe7lMeWwI8AlgMfFxSb1nLTwBHAovKsbi0HwHcYvshwIeAYycLaqoJ/pe2f2T7N8AmkjYFtge+BOxPk8zPAnYGrrF9lW0DX1jbCSUdKWmppKVeuWKK4URETJ8QY/PHBjrWxfYNtn9cbt8GXAFsBxwMnFCedgLw7HL7YOArtm+3fQ2wDNhT0rbAAtvnldz5+TVe0zvX14ADe737tZlqgv9z3+3zgJcAV9Ik9f1oevbn9D7zICe0fZztPWzvofkbTTGciIgZEFMZZN2y1xktx5ETnrIpnewGnA9sY/sGaH4JAFuXp20HXNf3suWlbbtye8321V5jeyVwK7DFuj7eTKZJngm8qxw/AZ4I/NX2rZJ+BuwoaSfbvwBeOIP3iYiYNVOYJnmT7T0mOdcmwH8Cr7P9x3Wce6IHvI72db1mrWYyTfIsmvLMmbZX0fxmORvA9gqaGtJ3yiDrL2fwPhERs6JZbGywY9JzSRvQJPcv2v56af5tKbtQvt5Y2pfT5M+ehcD1pX3hBO2rvUbSfGAz4PfrimngHrzta7l7YJXSM1ff/aes8fzv0dTiIyLWTxrOjk6lFn48cIXtD/Y9dDJwOPC+8vWbfe1fkvRB4AE0g6kX2F4l6TZJe9GUeA4DPrbGuc4DDgHOKHX6tcqVrBHRYWJsOBt+7AO8GLhE0sWl7a00if0kSUcAvwKeD2D7MkknAZfTzMA5qlRCAF4FfA7YGDilHND8AjlR0jKanvuSyYJKgo+IztKQevC2z2biGjnAgWt5zTHAMRO0L6WvWtLXvoLyC2JQSfAR0Wk1X8maBB8RnSXBvCT4iIg6JcFHRFRIKAk+IqJGEtxrkmUIRlkSfER0lgTz04OPiKiPSA0+IqJOSg0+IqJKTQ8+NfiIiCqlBx8RUaExKbNoIiJqNW/w9eBHThJ8RHRWliqIiKhYEnxERIVyoVNERKVEBlkjIqqUGnxERKWyVEFERK3Sg4+IqFPWg4+IqFgSfEREhcay4UdERKVSg4+IqJNQ1qKJiKjVWBJ8RER9BMyrN78nwUdEhwnGUoOPiKiPgA2yZV9ERH1SoplDuz10O849/T1thzFcF3yz7QhmxxXfaDuCobvqDTu3HcKs8Ngf2g5hVrxuGCeRUqKJiKiRyCyaiIhqpUQTEVEhCTaYl0HWiIjqpEQTEVGxlGgiIiokVHUPvt7iU0TEZMpqkoMck55K+oykGyVd2tf2z5J+Lenicjyt77G3SFom6UpJT+1r313SJeWxj0rNbyBJG0r6amk/X9IOk8WUBB8RndXU4Ac7BvA5YPEE7R+y/ZhyfBdA0i7AEuAR5TUflzSvPP8TwJHAonL0znkEcIvthwAfAo6dLKAk+IjorN5SBYMck7F9JvD7Ad/6YOArtm+3fQ2wDNhT0rbAAtvn2TbweeDZfa85odz+GnBgr3e/NknwEdFdgnljgx3AlpKW9h1HDvgur5b001LC2by0bQdc1/ec5aVtu3J7zfbVXmN7JXArsMW63jiDrBHRWVOcJnmT7T2m+BafAN4NuHz9APDS8tZr8jrameSxCSXBR0SHze6OTrZ/e9c7SZ8Gvl3uLge273vqQuD60r5wgvb+1yyXNB/YjElKQinRRERn9XrwgxzTOn9TU+95DtCbYXMysKTMjNmRZjD1Ats3ALdJ2qvU1w8Dvtn3msPL7UOAM0qdfq3Sg4+IzmqWKhhOD17Sl4EDaGr1y4F3AAdIegxNKeVa4BUAti+TdBJwObASOMr2qnKqV9HMyNkYOKUcAMcDJ0paRtNzXzJZTEnwEdFpw6rQ2H7hBM3Hr+P5xwDHTNC+FNh1gvYVwPOnElMSfER02tiEY5d1SIKPiM4Sw+vBr4+S4COi0yre0CkJPiI6TOnBR0RUSbM8D75tSfAR0Wkp0UREVKri/J4EHxHdlS37IiIqVnF+T4KPiG6reUGuJPiI6CyVLftqlQQfEZ2WEk1ERIVESjQREdWaZFvTkZYEHxHdpVzoFBFRJQFD2u9jvZQEHxGdVnOJZkrjC5JeK+kKSV+c4uuulbTl1EKLiJhdzZWsgx2jaKo9+H8ADrJ9zWwEExEx10Y0dw9k4B68pE8CDwZOlmQ17itpXNL+5TlnSXqIpC0kfV/STyR9irr/DSNiZIkxDXaMooETvO1XAtcDTwROBXYB9gUuAvaTtCGw0PYymt3Ez7a9G3Ay8MC1nVfSkZKWSlr6u5tvnv4niYiYqrLhxyDHKJruHP+zgP3L8V6aRP844MLy+P7AFwBsfwe4ZW0nsn2c7T1s77HVFltMM5yIiKmTjcZXDXSMopkk+P2APYHvAvcFDgDO7HuOZxJYRMRckMcHOkbRdBP8+cATgHHbK4CLgVfQJH5oEv2hAJIOAjafWZgREbPB4PHBjhE0rQRv+3bgOuBHpeksYFPgknL/ncD+kn4MPAX41QzjjIiYHfZgxwia0jRJ2zv03d6v7/aXgC/13b+ZJrH3vH76IUZEzBJ7ZHvng8iVrBHRaaNaXx9EEnxEdJhhfGXbQcyaJPiI6C6TEk1ERJ0M40nwERFVSg0+IqJWSfARERWyYUSXIRhEEnxEdFpKNBERVcqFThER9ao4wU93sbGIiNHn4S02Jukzkm6UdGlf2/0knSbpqvJ1877H3iJpmaQrJT21r313SZeUxz6qsmmspA0lfbW0ny9ph8liSoKPiM4SQ10u+HPA4jXa3gycbnsRcHq5j6RdgCXAI8prPi5pXnnNJ4AjgUXl6J3zCOAW2w8BPgQcO1lASfAR0WGGVasGOyY7k30m8Ps1mg8GTii3TwCe3df+Fdu3lz2ulwF7StoWWGD7PNsGPr/Ga3rn+hpwYK93vzapwUdEd01tqYItJS3tu3+c7eMmec02tm8AsH2DpK1L+3bcvdw6wPLSdme5vWZ77zXXlXOtlHQrsAVw09rePAk+IjptCtMkb7K9x7DedoI2r6N9Xa9Zq5RoIqLDZn1Hp9+Wsgvl642lfTmwfd/zFgLXl/aFE7Sv9hpJ84HNuGdJaDVJ8BHRbbOb4E8GDi+3Dwe+2de+pMyM2ZFmMPWCUs65TdJepb5+2Bqv6Z3rEOCMUqdfq5RoIqK7hrhUgaQvAwfQ1OqXA+8A3gecJOkImq1Ln9+8rS+TdBJwObASOMp2L5BX0czI2Rg4pRwAxwMnSlpG03NfMllMSfAR0WHGK+8czpnsF67loQPX8vxjgGMmaF8K7DpB+wrKL4hBJcFHRHeZLDYWEVEjYzzAHPdRlQQfEd1lsqNTRESdsh58RESdPLxB1vVREnxEdJhxevARERXKLJqIiFo5g6wREVUymSYZEVGnzKKJiKhTZtFERNQqPfg586uLr+DozR7bdhgxgA9+7dVthzB0f93zkLZDmBWbXHVm2yGsvzKLJiKiTsY4s2giIiqUHnxERKVsfOcdbUcxa5LgI6LDcqFTRES9UqKJiKiQs9hYRES1MosmIqJGNl6VBB8RUR3bjN+5su0wZk0SfER0l0kPPiKiVknwEREVss141oOPiKhTZtFERNQos2giIuqUWTQRERUbTw8+IqJCmSYZEVGp1OAjIupkMosmIqJONuN3ZJA1IqI+hvH04CMi6mNSg4+IqJPBFS9VMNZ2ABER7TEeHx/omIykayVdIuliSUtL2/0knSbpqvJ1877nv0XSMklXSnpqX/vu5TzLJH1Ukqb76ZLgI6K7yjz4QY4BPdH2Y2zvUe6/GTjd9iLg9HIfSbsAS4BHAIuBj0uaV17zCeBIYFE5Fk/34yXBR0Rn2WbVHSsHOqbpYOCEcvsE4Nl97V+xfbvta4BlwJ6StgUW2D7PtoHP971mypLgI6LDplSi2VLS0r7jyHucDL4v6aK+x7axfQNA+bp1ad8OuK7vtctL23bl9prt05JB1ojorqktVXBTX+llIvvYvl7S1sBpkn62judOVFf3OtqnJQk+IrrL4FXTzp+rn8q+vny9UdJ/AXsCv5W0re0bSvnlxvL05cD2fS9fCFxf2hdO0D4tKdFERGcZM75qfKBjXSTdR9KmvdvAU4BLgZOBw8vTDge+WW6fDCyRtKGkHWkGUy8oZZzbJO1VZs8c1veaKUsPPiK6y+DxofTgtwH+q8xonA98yfb3JF0InCTpCOBXwPMBbF8m6STgcmAlcJTt3oT8VwGfAzYGTinHtAyc4MsUnqXAr20/Y6pvJOlPtjeZ6usiImaLDavumPmFTravBh49QfvNwIFrec0xwDETtC8Fdp1xUEytB380cAWwYBhvHBHROntoNfj10UA1eEkLgacD/17uby3ponL70ZIs6YHl/i8k3VvSjpLOk3ShpHfP1geIiJiJ8VUe6BhFgw6yfhh4IzAOzSgxsJGkBcB+NKWb/SQ9CLjR9l+AjwCfsP044DfDDjwiYsaGfyXremXSBC/pGTRJ+6I1HjoX2AfYH3hP+bofcFZ5fB/gy+X2ies4/5G9CwdWUO+iPxGx/jEwPu6BjlE0SA1+H+BZkp4GbAQskPQF4Ps0Cf1BNNN43kTz7/XtvtdO+q9i+zjgOICttOFo/itGxGiyhzLIur6atAdv+y22F9regWZxnDNsvwg4E3gRcJXtceD3wNOAc8pLzynPBzh02IFHRMyUy4VOgxyjaNoXOtm+ttw8s3w9G/iD7VvK/aOBo8o80M2mHWFExGypPMFP6UIn2z8AftB3/4F9t99DU4vv3b8G2Lvv5e+bbpAREbPDk16lOspyJWtEdNfwrmRdLyXBR0RnGUZ2jvsgkuAjortsxiueRZMEHxGdZacHHxFRrUE21B5VSfAR0V0e3XVmBpEEHxHdNcQdndZHSfAR0VlmSnuyjpwk+IjoLptVdyTBR0RUx4Zxp0QTEVGlVUnwERH1MVDxGGsSfER0W3rwEREVGjfckcXGIiLqlBJNRESFjFOiiYioUQZZIyIqlgQfEVEhO7NoIiKqZDKLJiKiSqnBR0RULCWaiIgKNTX4tqOYPUnwEdFp6cFHRFTIQL2rwSfBR0SHGWcWTUREjZpZNEnwERH1qXyQdaztACIi2tLrwQ9yTEbSYklXSlom6c2zH/3k0oOPiE4bRg9e0jzg34AnA8uBCyWdbPvymZ99+pLgI6KzxhnaUgV7AstsXw0g6SvAwUCrCV5ejwYYJP0O+OUcvd2WwE1z9F5zpcbPBPlco2QuP9ODbG81kxNI+h5NzIPYCFjRd/8428eV8xwCLLb9snL/xcDjbb96JvHN1HrVg5/pf9ZUSFpqe4+5er+5UONngnyuUTJqn8n24iGdShOdfkjnnrYMskZEzNxyYPu++wuB61uK5S5J8BERM3chsEjSjpLuBSwBTm45pvWrRDPHjms7gFlQ42eCfK5RUuNnmpTtlZJeDZwKzAM+Y/uylsNavwZZIyJieFKiiYioVBJ8RESlkuAjIiqVBB8RUalOzaKRtC+wyPZnJW0FbGL7mrbjmilJjwX2pbmw4hzbP245pBmTdJDtU9Zoe6XtT7YV0zBIegKwA30/e7Y/31pAQ1LWYtmG1T/Xr9qLKKBDs2gkvQPYA3iY7YdKegDwH7b3aTm0GZH0f4DnA18vTc+m+Vz/0lpQQyDpXOBtts8o998EHGD7oHYjmz5JJwI7ARcDq0qzbb+2taCGQNJrgHcAv+XuDZJs+1HtRRXQrQR/MbAb8GPbu5W2n476N6GkK4DdbK8o9zem+YwPbzeymZG0JfBt4A3AYmBnYIntO1sNbAbK/9UuruyHTtIymnVXbm47llhdl2rwd5QfLANIuk/L8QzLtTSLIPVsCPyinVCGx/ZNwLNolmB9AHDIKCf34lLg/m0HMQuuA25tO4i4py7V4E+S9CngvpJeDrwU+HTLMQ3D7cBlkk6j+eX1ZOBsSR8FGLU//yXdRvM5VL7eC3gwcIgk217QZnwztCVwuaQLaP7fALD9rPZCGoqrgR9I+g6rf64PthdSQIdKNACSngw8hSZ5nGr7tJZDmjFJh6/rcdsnzFUssW6S/maidts/nOtYhqmMb92D7XfOdSyxuk4l+FqVxY0eWu5eWUEpA0nPAc6wfWu5f1+aQdZvtBlXrJ2kTWkGV//UdizRqD7B9/3Jf4+HaL4ZR/lPfiQdAJxAU4sXzZKlh9s+s72oZk7SxbYfs0bbT3oD5KNI0l7Ax4CH05Se5gF/ruB7cFfgROB+pekm4LD1YbGtrqu+Bm9707ZjmGUfAJ5i+0oASQ8Fvgzs3mpUMzfRBIBR/379V5plZP+DZsruYcCiViMajuOAf7T933BXp+PTwBNajCkY/R+YKVnjgqCzbf+k5ZCGYYNecgew/XNJG7QZ0JAslfRBmlk0Bl4DXNRuSDNne5mkebZXAZ8t8/1H3X16yR3A9g8qmqU20jozTbJcEHQCsAXNbIbPSXpbu1ENxVJJx0s6oByfpoJESJPQ7wC+StPjXQEc1WpEM/eXMl5ysaT3S3o9UEMivFrS2yXtUI63ASN/hXgNqq/B91R8QdCGNIlvX5oa/JnAv9m+o9XA4h4kPQi4EdgAeD2wGfBx28taDWyGJG0OvJPVvwf/2fYtrQYWnUrwpwAvtP2Hcv++wBdsP6PNuGZK0tG2PzJZ26gpawW9EXgEfRdy2X5Sa0FFjJjqa/CSPkZTw53wgqA2YxuSw4E1k/nfT9A2ar5IU555BvBKms/5u1YjmiZJlzDxTC4AKlgu41vc8/PdCiwFPtX7qznmXvU9+FovBJL0QuB/0fxZfFbfQ5sCq2z/bSuBDYmki2zv3r9ekKQf2p7wYqH1WSnNwN1jCCeWr4cCf7H9rrmPangkfQTYimb2FsDfAb8BNgYW2H5xW7F1XfU9+FFN4AM4F7iBZsD4A33ttwE/bSWi4epdrHWDpKcD1wMLW4xn2mz/EkDSPmusXvpmSecAI53gaca29u+7/y1JZ9reX1Lmwreo+gQv6STbL1jbn8mj+udxSRq/BPZuO5ZZ8i+SNgP+iebioAU0A5Oj7D6S9rV9Nty1NnwNs2i2kvTA3vrvkh5I0/GAZiZUtKQLJZptbd/Q92fyanq9q1Gzjit0ARj1qyNrJGl34DM0s2dMU6d+6ahv0CLpacAnaVYxFbAj8A/AD4CX2/5wa8F1XPUJvkfSsbbfNFnbqJH0Lpp654k0P1yHApvafn+rgc2QpAfTDBTvTbOJxHnA621f3WpgQyBpAc3PXjVL7JbpujvTfA/+LAOr64cuJfgf237sGm01bPhxvu3HT9Y2aiT9iOYq1t7A3RLgNaP8uSRtA7wHeIDtgyTtAuxt+/iWQ5uxsh7NLqw+pXXktyIcddVfySrpVaX+vrOkn/Yd11DHYOQqSYdKmidpTNKh3L0d3CiT7RNtryzHF1hHSWpEfA44lWYDE4CfA69rK5hhKcsFf6wcTwTeT7NZS7Ss+h58GajbHHgv8Oa+h26z/ft2ohoeSTvQlDL2oWy6DbzO9rUthjVtknorEr4R+APwFZrP9XfAhrbf3VJoMybpQtuP618Vc6JVM0dN6UA9GviJ7UeXv1T+3fYzWw6t86qfRWP71jIg+chRHVBdGzU72R9l++C2Yxmii7h7RyeAV/Q9ZmBkEzzwZ0lbcPe2kXtRx1Z3K2yPS1pZxhdupNmFK1pWfYIHKN98/9M/lasGtleVmRnVsL1j2zHMon8ETgZ2KvPftwIOaTekobiwLP3RW+juT8AFrUYUQEcSfLEtzVIFFwB/7jVWsB/mTySdTLPiYv/n+np7IQ1HmSe+A33fpyM+cLcTcBDNpizPAx5PHT+DmwLPp5kW+T2aq1drGN8aedXX4Hsq3g/zsxM02/ZL5zyYIZJ0Ik1CvJi7B409apuI9+vN2pK0L81smg8Abx3lmUEAkp5Es2TGfjSlmYuBM0d9wbsadCbBw11rgiyy/f8k3RuYZ/u2tuOKeyrLO+/iir5Be4Orkt4LXGL7S6O+DWFPGQ96HM0smlcCf7W9c7tRRQ1/Hg5E0suBI2n2jdwJ2I7m6rsD24xrpiRtBBzBPZfVHekePHApcH+a9XZq8WtJnwL+Fji2XBw08lOVJZ1Os+TCeTQL3z3O9o3tRhVQwTfXFBxFM5XwjwC2rwK2bjWi4TiRJhE+FfghzYJcI/tXiaRvlTGFLYHLJZ0q6eTe0XZ8M/QCmnnwi8u+BPcD3tBqRMPxU5o1Z3YFHgXsWjbUiZZ1pkTTu7qz78/k+TQ7Oo36lay9z9Or724AnDqqG2OsbaykZ9THTGomaRPgJcD/Bu5ve8OWQ+q8zpRogB9KeiuwsaQn0yyG9K2WYxqG3rK6fyiXi/+GZubJSOolcEk7AjesscXiNm3GFhOT9GqaAdbdaVY4/Qyr71EQLelSD36Mplb9FJqLaE6ludpupP8BJL0M+E/gkTSXwm8CvN32p9qMa6YkLQWe0NtbVs1m1efYfly7kcWaJL2BZh/Wi2yvbDueuFuXEvxzgO/avr3tWIapDNQ9j6bXvkFpdgW7BN3jEn5J/2P70S2FFDFyujTI+izg55JOlPT0UoOvwTeBg4GVNFcQ/om+C55G2O8k3XURmqSDgZtajCdi5HSmBw9QBiAPolm4al/gNNsvazeqmZF0qe1d245j2CTtRLPxdm/lxeXAi23/or2oIkZLLb3Ygdi+U9IpNIs9bUzT8x3pBA+cK+mRti9pO5AhG7e9V5mZIdu3lYHXiBhQZ3rwkhbTbBrxRJo1M74KfH9UB4X69pidDywCrgZupxlAdgXTPyfaoOUi21UtrhYxm7rUg/97mrXFX1HJQOsz2g5gNkjameaq3M0kPbfvoQX0XakbEZPrTIK3vaTtGIaptrXt+zyM5pfXfYH+DSNuA17eRkARo6pLJZrnAsfSLE8g7i5lLGg1sJiQpL1tn9d2HBGjrEsJfhnwTNtXtB1LTK7iRdQi5kyX5sH/Nsl9pFS1iFpEG7rUg/8ITcL4Bs1sE6COnY9qVNsiahFt6MwgK80sjL/QrEXTYyAJfv1U1SJqEW3oTIK3/ZK2Y4gpOU7S5sDbaDaq3gR4e7shRYyWLpVoFgIfo9n0w8DZwNG2l7caWEyo1kXUIuZSlwZZP0vTE3wAzXZ93yptsX6qdRG1iDnTpR78RMvP3qMt1g+1LqIWMZe61IO/SdKLJM0rx4uAm9sOKtbqXEmPbDuIiFHWpR78A4F/BfamqcGfC7zW9q9aDSxWU/siahFzqUsJ/gTgdbZvKffvB/zfXBm5fpH0oHU9XvEaPBFD15lpksCjeskdwPbvJe3WZkBxT0ngEcPTpRr8WJlXDdzVg+/SL7iI6JguJbgP0AzcfY2mxvsC4Jh2Q4qImD2dqcEDSNoFeBLNgN3pti9vOaSIiFnTqQQfEdElXarBR0R0ShJ8RESlkuAjIiqVBB8RUan/D8tnM2IAuFOfAAAAAElFTkSuQmCC\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"\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>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"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>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": 40,
"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. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"\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",
"\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library.\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. \n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.369057428260101e-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>\n"
]
},
{
"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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522673 with a P-value of P = 9.200335510481646e-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 &lt; 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-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>\n"
]
},
{
"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':\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935489e-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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-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",
"\n",
"Since the p-value is &lt; 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.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data.\n"
]
},
{
"cell_type": "code",
"execution_count": 51,
"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>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": 51,
"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": 52,
"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": 52,
"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\". \n"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"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": 53,
"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>.\n"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"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? \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"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 \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"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>\n"
]
},
{
"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",
"\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>\n",
"\n",
"Bahare Talayian\n",
"\n",
"Eric Xiao\n",
"\n",
"Steven Dong\n",
"\n",
"Parizad\n",
"\n",
"Hima Vasudevan\n",
"\n",
"<a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ---------------------------------- |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"\n",
"<hr>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment