Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save salouri/cc911f3ec60d815290657de3922a213d to your computer and use it in GitHub Desktop.
Save salouri/cc911f3ec60d815290657de3922a213d to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"http://cocl.us/DA0101EN_NotbookLink_Top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/cognitive_class_DA0101EN_objectstorage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke', 'compression-ratio', 'horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"text/plain": [
"(0, 56551.70568425259)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 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 "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff7a41dfa20>"
]
},
"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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff7a4140f60>"
]
},
"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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 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>"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff78180f320>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff7a62f2f98>"
]
},
"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": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff78174b780>"
]
},
"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=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff7816c6c50>"
]
},
"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": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</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>price</th>\n",
" <th>city-L/100km</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\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",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</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>13207.129353</td>\n",
" <td>9.944145</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</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>7947.066342</td>\n",
" <td>2.534599</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</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>5118.000000</td>\n",
" <td>4.795918</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.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>7775.000000</td>\n",
" <td>7.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</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>10295.000000</td>\n",
" <td>9.791667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</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>16500.000000</td>\n",
" <td>12.368421</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</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>45400.000000</td>\n",
" <td>18.076923</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" wheel-base length width height bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 98.797015 0.837102 0.915126 53.766667 3.330692 3.256904 \n",
"std 6.066366 0.059213 0.029187 2.447822 0.268072 0.319256 \n",
"min 86.600000 0.678039 0.837500 47.800000 2.540000 2.070000 \n",
"25% 94.500000 0.801538 0.890278 52.000000 3.150000 3.110000 \n",
"50% 97.000000 0.832292 0.909722 54.100000 3.310000 3.290000 \n",
"75% 102.400000 0.881788 0.925000 55.500000 3.580000 3.410000 \n",
"max 120.900000 1.000000 1.000000 59.800000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm price city-L/100km \n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 13207.129353 9.944145 \n",
"std 4.004965 37.365700 478.113805 7947.066342 2.534599 \n",
"min 7.000000 48.000000 4150.000000 5118.000000 4.795918 \n",
"25% 8.600000 70.000000 4800.000000 7775.000000 7.833333 \n",
"50% 9.000000 95.000000 5125.369458 10295.000000 9.791667 \n",
"75% 9.400000 116.000000 5500.000000 16500.000000 12.368421 \n",
"max 23.000000 262.000000 6600.000000 45400.000000 18.076923 "
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"drive-wheels \n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 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>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",
" </tbody>\n",
"</table>\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"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]\n",
"df_group_one.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one_ = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 37,
"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\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_mini = df[['body-style','price']]\n",
"avg_df = df_mini.groupby([\"body-style\"], as_index = False).mean()\n",
"avg_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAD8CAYAAACFK0QrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAXRElEQVR4nO3dbYxc1Z3n8e+v2+ZhIYQEE+K1PQFNrMwA0vBgOUSsVuwwMzEMihkNkRxpA8ogeYOIFrSjrMK8mNnsiFXyYsksSwLxDiw4mwmx8oSVNZNBJCOCxJNhzaPD0hqS4LWFF5IAVgDT3b99UaezRVHddbu72tX33t9HOupbp8699S8Q/zqce865sk1ERNTb2KgDiIiIxUsyj4hogCTziIgGSDKPiGiAJPOIiAZIMo+IaICByVzSMZIelvS4pKclfb5PG0m6UdKEpCcknbM04UZERD8rKrR5E/h924ckrQTul3S37Qe72lwErC/lw8DN5W9ERBwBA3vm7jhUXq4spXel0WZge2n7IHCipNXDDTUiImZTpWeOpHHgUeCDwJdtP9TTZA3wQtfrfaXuQM91tgJbARhbca6OOXFhUS9XDV1N+7vr1406hKGb2P/qqENYEqec9M9GHcKSeOHZp16yffJirjF2wloz+Ualtn795R/Y3rSYzzvSKiVz21PAWZJOBL4r6UzbT3U1Ub/T+lxnG7ANYOy4k33U6X+6gJCXr+nJw6MOYUns2PU3ow5h6D72+XtGHcKS+LefPHvUISyJa//Fb/9s0ReZfIMVH/pYpaZv7fnvqxb9eUdYpWQ+w/avJP0jsAnoTub7gO7u21pg/6Kji4gYFgmNjY86iiVTZTbLyaVHjqRjgT8AftLTbCdweZnVch7wiu0DREQsG2JsxVGVSh1V6ZmvBu4o4+ZjwA7b35f0aQDbtwC7gIuBCeDXwKeWKN6IiIVpeM98YDK3/QTwjoG4ksRnjg1cPdzQIiKGR4DGW5zMIyIaQWKszT3ziIimaPUwS0REI7R9zDwiogmEGFuxctRhLJkk84hoh/TMIyKaIck8IqLupExNjIioO5GeeURE/WmM8Zou1a8iyTwi2kHpmUdE1J7IbJaIiEZIMo+IqLvMM4+IaIIk84iI2pPE2MrMZomIqLcMs0RENEOSeUREA4yNadQhLJkk84hoBUkoyTwiov7Gx8dGHcKSSTKPiHYQ6ZlHRNRdZ9fEJPOIiJoTY0oyj4iotwyzREQ0Q5J5RETNSTC+Isk8IqL21OAx84GTLiWtk/QjSXslPS3pmj5tLpD0iqQ9pfzl0oQbEbEwkhgbq1bqqErPfBL4c9uPSXoX8Kike2w/09Pux7YvGX6IERHD0eQx84E9c9sHbD9Wjl8D9gJrljqwiIhh05gqlTmvMctohaT3SrpH0nPl73u6zrlO0oSkZyV9tKv+XElPlvduVBkHknS0pG+W+ocknTrou81rbWu54NnAQ33e/oikxyXdLemM+Vw3ImLJCcakSmWAmdGK3wXOA66WdDrwOeBe2+uBe8tryntbgDOATcBXJM1s33gzsBVYX8qmUn8l8EvbHwS+BHxxUFCVk7mk44FvA9fafrXn7ceAD9j+PeC/At+b5RpbJe2WtNuTb1T96IiIRRNibMVYpTKXOUYrNgN3lGZ3AJeW483AnbbftP08MAFslLQaOMH2A7YNbO85Z+Za3wIunOm1z6ZSMpe0kk4i/7rt7/T5cq/aPlSOdwErJa3q026b7Q22N2jFMVU+OiJiOMR8boCumul4lrK17yXfPlpxiu0D0En4wPtKszXAC12n7St1a8pxb/3bzrE9CbwCnDTX1xt4A7T8GtwK7LV9wyxt3g+8aNuSNtL5kXh50LUjIo6keUxNfMn2hgHXettoxRzX7veG56if65xZVZnNcj7wSeBJSXtK3V8AvwVg+xbgMuAqSZPA68CW8r8NERHLQmejrSFdq/9oxYuSVts+UIZQDpb6fcC6rtPXAvtL/do+9d3n7JO0Ang38Iu5YhqYzG3fT/9fie42NwE3DbpWRMTIaDhPGppjtGIncAXwhfL3rq76v5N0A/DP6dzofNj2lKTXJJ1HZ5jmcjr3HLuv9QCdzvIPB3WQswI0IlpCjA3n4RSzjVZ8Adgh6Urg58DHAWw/LWkH8AydmTBX254q510F3A4cC9xdCnR+LL4maYJOj3zLoKCSzCOiFTSknvmA0YoLZznneuD6PvW7gTP71L9B+TGoKsk8IlqjyStAk8wjohUkGE8yj4iovyTziIiaE0oyj4ioOwmOGrBUv86SzCOiFSRYkZ55RES9iYyZR0TUnzJmHhFRe52eecbMIyJqLz3ziIiaG5MymyUiognGq+9nXjtJ5hHRClnOHxHREEnmERE1l0VDERENIHIDNCKi9jJmHhHRAFnOHxHRBOmZR0TUX/Yzj4hoiCTziIiaG8vDKSIiGiBj5hER9SeUvVkiIppgLMk8IqLeBIw3N5cz8G6ApHWSfiRpr6SnJV3Tp40k3ShpQtITks5ZmnAjIhZIMDamSqWOqvTMJ4E/t/2YpHcBj0q6x/YzXW0uAtaX8mHg5vI3ImJZELCywY+NG/jNbB+w/Vg5fg3YC6zpabYZ2O6OB4ETJa0eerQREQs0M8xSpdTRvMbMJZ0KnA081PPWGuCFrtf7St2BnvO3AlsB1q1by3P3/qf5RbvcPXzXqCNYGnu/N+oIhu65z/7OqENYEh771ahDWBLXDuMiqu8QShWV/59D0vHAt4Frbb/a+3afU/yOCnub7Q22N5x80knzizQiYhFEZzZLlVJHlXrmklbSSeRft/2dPk32Aeu6Xq8F9i8+vIiI4anrEEoVVWazCLgV2Gv7hlma7QQuL7NazgNesX1glrYREUecBCvHxyqVOqrSMz8f+CTwpKQ9pe4vgN8CsH0LsAu4GJgAfg18avihRkQs3MwwS1MNTOa276f/mHh3GwNXDyuoiIil0ORhlqwAjYhWEPW9uVlFPQeHIiLmq+yaWKUMvJR0m6SDkp7qqvsPkv6PpD2lXNz13nVlhfyzkj7aVX+upCfLezeWe5RIOlrSN0v9Q2Va+JySzCOiFTpj5tVKBbcDm/rUf8n2WaXsApB0OrAFOKOc8xVJ46X9zXTW3sysoJ+55pXAL21/EPgS8MVBASWZR0QrzCznr1IGsX0f8IuKH70ZuNP2m7afpzNRZGNZJX+C7QfKfcftwKVd59xRjr8FXDjTa59NknlEtINgfKxaAVZJ2t1Vtlb8lM+UzQZvk/SeUjfbCvk15bi3/m3n2J4EXgHmXGmZG6AR0QrznJr4ku0N8/yIm4G/prP6/a+B/wz8GbOvkJ9r5XylVfXdkswjoiWW9klDtl/8zSdJ/w34fnk52wr5feW4t777nH2SVgDvZsCwToZZIqIVlnpvlp6dYv8EmJnpshPYUmaonEbnRufDZZX8a5LOK+PhlwN3dZ1zRTm+DPhhGVefVXrmEdEKneX8w+mZS/oGcAGdsfV9wF8BF0g6i85wyE+BfwNg+2lJO4Bn6Dwf4mrbU+VSV9GZGXMscHcp0NlC5WuSJuj0yLcMiinJPCJaY1ijLLY/0af61jnaXw9c36d+N3Bmn/o3gI/PJ6Yk84hojbG5dyaptSTziGgFMbye+XKUZB4RrdHgBw0lmUdESyg984iI2tMSzzMftSTziGiNDLNERDRAg3N5knlEtEPrHxsXEdEUDc7lSeYR0R5N3owqyTwiWkHlsXFNlWQeEa2RYZaIiJoTGWaJiGiEAY/RrLUk84hoB2XRUERE7QkY0rMplqUk84hojSYPswy8HyDpNkkHJT01y/sXSHpF0p5S/nL4YUZELE5nBWi1UkdVeua3AzcB2+do82PblwwlooiIJVLTPF3JwGRu+z5Jpy59KBERS0mN3ptlWNMuPyLpcUl3SzpjtkaStkraLWn3/3355SF9dEREBeXhFFVKHQ3jBuhjwAdsH5J0MfA9YH2/hra3AdsAzj37LA/hsyMiKpGNpqdGHcaSWXTP3Partg+V413ASkmrFh1ZRMSQydOVSh0tumcu6f3Ai7YtaSOdH4iMoUTEMmOoaaKuYmAyl/QN4AJglaR9wF8BKwFs3wJcBlwlaRJ4HdhiO0MoEbH8NDg1VZnN8okB799EZ+piRMTy5Zb3zCMimqKu4+FVJJlHREsYpidHHcSSSTKPiHYwGWaJiKg/w3SSeURE7WXMPCKiCZLMIyJqzoYGL+dPMo+I1sgwS0RE7WXRUEREMzQ4mQ9rP/OIiOVtZjl/lTJAv8dpSnqvpHskPVf+vqfrveskTUh6VtJHu+rPlfRkee9GlYeUSjpa0jdL/UNVHhCUZB4RrSCGugXu7cCmnrrPAffaXg/cW14j6XRgC3BGOecrksbLOTcDW+k8A2J91zWvBH5p+4PAl4AvDgooyTwiWsIwNVWtDLqSfR/wi57qzcAd5fgO4NKu+jttv2n7eWAC2ChpNXCC7QfKTrPbe86Zuda3gAtneu2zyZh5RLTD/Jbzr5K0u+v1tvKktLmcYvsAgO0Dkt5X6tcAD3a121fq3irHvfUz57xQrjUp6RXgJOCl2T48yTwiWmMeUxNfsr1hWB/bp85z1M91zqwyzBIRLTG8G6CzeLEMnVD+Hiz1+4B1Xe3WAvtL/do+9W87R9IK4N28c1jnbZLMI6I9ljaZ7wSuKMdXAHd11W8pM1ROo3Oj8+EyJPOapPPKePjlPefMXOsy4IeDnuCWYZaIaIchLuef5XGaXwB2SLoS+Dnw8c7H+mlJO4BngEngatszgVxFZ2bMscDdpQDcCnxN0gSdHvmWQTElmUdESxhPvjWcK83+OM0LZ2l/PXB9n/rdwJl96t+g/BhUlWQeEe1gstFWRETdGeMKc8jrKsk8ItrB5ElDERH1l/3MIyLqz8O7AbocJZlHREsYp2ceEVFzmc0SEdEEbvQN0IHL+fttwt7zvsqm6hOSnpB0zvDDjIhYJIOnpiqVOqqyN8vtvHMT9m4X8f83Vt9KZ7P1iIhlpsxmqVJqaOAwi+37BjyyaDOwvWwC86CkEyWtntnXNyJiWchsloF+s4l6MbPB+juSuaStdHrvrFu3tvftiIgllHnmg1TeRL08qWMbwMk62te8O8PrdXDDtz4z6hCG7vWNl406hCVx/HP3jTqE5SuzWQaabeP1iIhlwxi3eTZLBTuBy8uslvOAVzJeHhHLzkzPvK03QGfZhH0lgO1bgF3AxXSeOP1r4FNLFWxExILZ+K3Do45iyVSZzTLbJuwz7xu4emgRRUQsiWYvGsoK0Ihoj5oOoVSRZB4R7eBstBUR0QhNns2SZB4R7WDjqSTziIhas830W5OjDmPJJJlHRDuY9MwjIpogyTwiouZsM13TvcqrSDKPiNbIbJaIiLrLbJaIiPrLbJaIiIaYTs88IqLmMjUxIqIBMmYeEVF/JrNZIiLqz2b6cG6ARkTUm2E6PfOIiHozGTOPiKg/gxu8nH9s1AFERBwZxtPTlcogkn4q6UlJeyTtLnXvlXSPpOfK3/d0tb9O0oSkZyV9tKv+3HKdCUk3StJCv12SeUS0Q5lnXqVU9K9sn2V7Q3n9OeBe2+uBe8trJJ0ObAHOADYBX5E0Xs65GdgKrC9l00K/XpJ5RLSCbaYOT1YqC7QZuKMc3wFc2lV/p+03bT8PTAAbJa0GTrD9gG0D27vOmbck84hoiXkNs6yStLurbH3HxeAfJD3a9d4ptg8AlL/vK/VrgBe6zt1X6taU4976BckN0Ihoh/kt53+pa/ikn/Nt75f0PuAeST+Zo22/cXDPUb8gSeYR0Q4GTy04V779Uvb+8vegpO8CG4EXJa22faAMoRwszfcB67pOXwvsL/Vr+9QvSIZZIqIVjJmemq5U5iLpOEnvmjkG/gh4CtgJXFGaXQHcVY53AlskHS3pNDo3Oh8uQzGvSTqvzGK5vOuceUvPPCLaweDpofTMTwG+W2YRrgD+zvbfS3oE2CHpSuDnwMcBbD8taQfwDDAJXG17ZsL7VcDtwLHA3aUsSKVkLmkT8F+AceBvbX+h5/0L6PyiPF+qvmP7Py40qIiIYbNh6vDiFw3Z/ifg9/rUvwxcOMs51wPX96nfDZy56KCokMzLfMgvA39IZ4znEUk7bT/T0/THti8ZRlAREUNnD23MfDmq0jPfCEyUXyMk3Uln3mRvMo+IWNamG5zMq9wAnW2OZK+PSHpc0t2SzhhKdBERwzL8FaDLSpWeeZW5kI8BH7B9SNLFwPfo3LF9+4U6k+u3AhzPeO/bERFLxsD0cG6ALktVeuazzZH8Dduv2j5UjncBKyWt6r2Q7W22N9jecEySeUQcSTZTh6cqlTqqkswfAdZLOk3SUXQ2jNnZ3UDS+2d2+5K0sVz35WEHGxGxUC6LhqqUOho4zGJ7UtJngB/QmZp4W5k3+eny/i3AZcBVkiaB14EtZeOYiIjlYYgrQJejSvPMy9DJrp66W7qObwJuGm5oERHD5IGrO+ssK0Ajoh2GtwJ0WUoyj4hWMM2eZ55kHhHtYDNd05kqVSSZR0Qr2OmZR0Q0QpWHNddVknlEtIOdnnlERO1lnnlERP2ZeT0DtHaSzCOiHWymDieZR0TUmg3TDd5lJMk8IlpjKsk8IqLeDDT4/meSeUS0R3rmERE1N204nI22IiLqL8MsERE1Z5xhloiIussN0IiIhkgyj4ioOTuzWSIias9kNktERO1lzDwioiEyzBIRUXOdMfNRR7F0kswjojXSM4+IqDkDzd3NPMk8IlrCOLNZIiLqrjObJck8IqLeGn4DdKxKI0mbJD0raULS5/q8L0k3lvefkHTO8EONiFi4mZ55lTLIoJw4CgOTuaRx4MvARcDpwCcknd7T7CJgfSlbgZuHHGdExKJNuVqZS8WceMRV6ZlvBCZs/5Ptw8CdwOaeNpuB7e54EDhR0uohxxoRsWDTdJbzVykDVMmJR1yVMfM1wAtdr/cBH67QZg1woLuRpK10eu4Ab36Vnz01r2jrYRXw0qiDGKavXvbZxn0n+Cw08N8VzfxOAB9a7AVe4vAPvsrPVlVsfoyk3V2vt9neVo6r5MQjrkoyV5+63p+uKm0o/zC2AUjabXtDhc+vlSZ+ryZ+J2jm92rid4LO91rsNWxvGkYsVMx3R1qVYZZ9wLqu12uB/QtoExHRBMsy31VJ5o8A6yWdJukoYAuws6fNTuDyMqvlPOAV2wd6LxQR0QBVcuIRN3CYxfakpM8APwDGgdtsPy3p0+X9W4BdwMXABPBr4FMVPnvb4Ca11MTv1cTvBM38Xk38TrCMvtdsOXHEYSE3eEVURERbVFo0FBERy1uSeUREA4wkmS/HpbCLJek2SQclNWbuvKR1kn4kaa+kpyVdM+qYFkvSMZIelvR4+U6fH3VMwyRpXNL/kvT9UccyLJJ+KulJSXuGMUWxqY74mHlZCvu/gT+kM8XnEeATtp85ooEMmaR/CRyisxL2zFHHMwxlFe9q249JehfwKHBpnf9dSRJwnO1DklYC9wPXlJXLtSfp3wEbgBNsXzLqeIZB0k+BDbabuBhqaEbRM1+WS2EXy/Z9wC9GHccw2T5g+7Fy/Bqwl87qt9oqW04cKi9XltKIWQCS1gJ/DPztqGOJI28UyXy2pf+xjEk6FTgbeGi0kSxeGYrYAxwE7rFd++9U/A3w72neA3UM/IOkR8uWINHHKJL5slwKG7OTdDzwbeBa26+OOp7Fsj1l+yw6K/c2Sqr9sJikS4CDth8ddSxL4Hzb59DZpfDqMqQZPUaRzJflUtjor4wrfxv4uu3vjDqeYbL9K+AfgWHt2TFK5wMfK+PLdwK/L+l/jDak4bC9v/w9CHyXzlBt9BhFMl+WS2HjncrNwluBvbZvGHU8wyDpZEknluNjgT8AfjLaqBbP9nW219o+lc5/Uz+0/a9HHNaiSTqu3HxH0nHAHwGNmTE2TEc8mdueBGaWwu4FdiyHpbCLJekbwAPAhyTtk3TlqGMagvOBT9Lp5e0p5eJRB7VIq4EfSXqCTsfiHtuNmcbXQKcA90t6HHgY+J+2/37EMS1LWc4fEdEAWQEaEdEASeYREQ2QZB4R0QBJ5hERDZBkHhHRAEnmERENkGQeEdEA/w9sx4rJMwWCTgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 60,
"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": 58,
"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": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". "
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>."
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/DA0101EN_NotbookLink_Top_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment