Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save syamdev/28da45d5013a130a3bc94afacba11412 to your computer and use it in GitHub Desktop.
Save syamdev/28da45d5013a130a3bc94afacba11412 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": [
{
"data": {
"text/plain": [
"(0, 56226.54073329264)"
]
},
"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 0x7f63dd9e5668>"
]
},
"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 0x7f63dd942240>"
]
},
"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": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f63dd8c4e48>"
]
},
"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 0x7f63dd835f60>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de5hddX3v8fcnyTSEUm6ZAcMMGkpiMVCNTUrxeCkSEwhewAoSH5XxNMd4KBJaWj1iPRXP0zyVthqfiQUFwQyghIC3iBlJDCDYxsRBYiABm1GijInJTLgYzMVcvueP9dvOnsnO3PasvWeSz+t59jNrf9f6rfVba/be3/1ba+3fTxGBmZnZYI2qdgXMzGxkcyIxM7OyOJGYmVlZnEjMzKwsTiRmZlaWMdWuQKXV1tbGxIkTq10NM7MR5bHHHuuMiLpS8466RDJx4kRaW1urXQ0zsxFF0i8ON8+ntszMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEYmZmZXEiMTOzsuT+OxJJo4FW4FcR8TZJNwAfBDrSIh+PiOVp2euBucABYH5EPJDi04DFwDhgOXBtRISkscAdwDRgB3BFRGzOe5/MzAaqqamJtra2AZVpb28HoKGhYcDbmzRpEvPnzx9wucGoRIvkWuCpHrGFETE1PQpJZAowBzgbuAi4KSUhgJuBecDk9LgoxecCz0fEJGAhcGOue2JmVkG7d+9m9+7d1a5Gn3JtkUhqAN4KLACu62PxS4AlEbEXeEZSG3CupM3A8RGxOq3zDuBSoCWVuSGVvw/4vCSFR+sys2FmMK2DQpmmpqahrs6QyrtF8jngo8DBHvEPS1ov6XZJJ6VYPfBs0TLtKVafpnvGu5WJiP3Ai8D4npWQNE9Sq6TWjo6OnrPNzKwMuSUSSW8DtkfEYz1m3QycCUwFtgKfKRQpsZroJd5bme6BiFsiYnpETK+rK9nnmJmZDVKeLZLXA+9Ip6aWABdIuisitkXEgYg4CNwKnJuWbwdOLyrfAGxJ8YYS8W5lJI0BTgCey2d3zMyslNwSSURcHxENETGR7CL6gxHxPkkTihZ7J/Bkml4GzJE0VtIZZBfV10bEVmCnpPMkCbgS+FZRmcY0fVnahq+PmJlVUDW6kf9XSVPJTkFtBj4EEBEbJC0FNgL7gasj4kAqcxVdt/+2pAfAbcCd6cL8c2QJy8zMKqgiiSQiHgYeTtPv72W5BWR3ePWMtwLnlIjvAS4fqnqamdnA+ZftZmZWFicSMzMrixOJmZmVxYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmw0BnZyfXXHMNO3bsqHZVzAbMicRsGGhubmb9+vU0NzdXuypmA+ZEYlZlnZ2dLF++nIhg+fLlbpXYiONEYlZlzc3N7N+/H4B9+/a5VWIjjhOJWZWtWLGCwugHEcEDDzxQ5RqZDYwTiVmVnXrqqb0+NxvunEjMqmzbtm29Pjcb7pxIzKps1qxZZIN/giQuvPDCKtfIbGByTySSRkt6XNL96fnJklZK2pT+nlS07PWS2iT9VNKFRfFpkp5I85rSkLukYXnvSfE1kibmvT9mQ62xsZGamhoAampqaGxs7KOE2fBSiRbJtcBTRc8/BqyKiMnAqvQcSVPIhso9G7gIuEnS6FTmZmAe2Tjuk9N8gLnA8xExCVgI3JjvrpgNvdraWmbPno0kLr74YsaPH1/tKpkNSK6JRFID8FbgS0XhS4DC/Y3NwKVF8SURsTcingHagHMlTQCOj4jVkd3ackePMoV13QfMKLRWzEaSxsZGXv3qV7s1YiNS3i2SzwEfBQ4WxU6NiK0A6e8pKV4PPFu0XHuK1afpnvFuZSJiP/AicMjXOUnzJLVKau3o6Ch3n8yGXG1tLYsWLXJrxEak3BKJpLcB2yPisf4WKRGLXuK9lekeiLglIqZHxPS6urp+VsfMzPpjTI7rfj3wDkkXA8cAx0u6C9gmaUJEbE2nrban5duB04vKNwBbUryhRLy4TLukMcAJwHN57ZCZmR0qtxZJRFwfEQ0RMZHsIvqDEfE+YBlQOBHcCHwrTS8D5qQ7sc4gu6i+Np3+2inpvHT948oeZQrruixt45AWiZmZ5SfPFsnhfBpYKmku8EvgcoCI2CBpKbAR2A9cHREHUpmrgMXAOKAlPQBuA+6U1EbWEplTqZ0wM7NMRRJJRDwMPJymdwAzDrPcAmBBiXgrcE6J+B5SIjIzs+rwL9vNzKwsTiRmZlYWJxIzMyuLE4mZmZXFicTMzMriRGI2DHR2dnLNNdd4vHYbkZxIzIaB5uZm1q9f7/HabUSqxg8SjxhNTU20tbUNuFx7e9YHZUNDQx9Ldjdp0iTmz58/4O3Z8NbZ2UlLSwsRQUtLC42Nje680UYUt0iqYPfu3ezevbva1bBhorm5mULPPgcPHnSrxEYct0jKMNjWQaFcU1PTUFbHRqiVK1eyb98+APbt28eKFSu47rrrqlwrs/5zi8SsymbOnNltzPZZs2ZVuUZmA+NEYlZlb3/7239/aisieMc73lHlGpkNjBOJWZV9+9vf7tYiWbZsWZVrZDYwTiRmVbZy5cpuLZIVK1ZUuUZmA+NEYlZlb3zjG7s9f9Ob3lSlmpgNTp5jth8jaa2kn0jaIOlTKX6DpF9JWpceFxeVuV5Sm6SfSrqwKD5N0hNpXlMaKZE0muI9Kb5G0sS89sfMzErLs0WyF7ggIl4DTAUuknRemrcwIqamx3IASVPIRjg8G7gIuEnS6LT8zcA8suF3J6f5AHOB5yNiErAQuDHH/THLxaOPPtrt+SOPPFKlmpgNTp5jtkdEvJSe1qRHb+OpXwIsiYi9EfEM0AacK2kCcHxErE7jsd8BXFpUpvDrrfuAGYXWitlIMXPmTMaMyX7SNWbMGN/+ayNOrtdIJI2WtA7YDqyMiDVp1oclrZd0u6STUqweeLaoeHuK1afpnvFuZSJiP/AicEjfEpLmSWqV1NrR0TFEe2c2NBobG39/19aoUaNobGysco3MBibXRBIRByJiKtBA1ro4h+w01Zlkp7u2Ap9Ji5dqSUQv8d7K9KzHLRExPSKm19XVDXAvzPJVW1tLfX323ei0005zP1s24lTkrq2IeAF4GLgoIralBHMQuBU4Ny3WDpxeVKwB2JLiDSXi3cpIGgOcADyX026Y5aKzs5MtW7KX9JYtW9yVvI04ed61VSfpxDQ9DngL8HS65lHwTuDJNL0MmJPuxDqD7KL62ojYCuyUdF66/nEl8K2iMoXzAJcBD0bhhnyzEaK408aIcKeNNuLk2SKZADwkaT3wI7JrJPcD/5pu5V0PvBn4O4CI2AAsBTYC3wWujogDaV1XAV8iuwD/M6AlxW8DxktqA64DPpbj/pjlolSnjWYjSW69/0bEeuC1JeLv76XMAmBBiXgrcE6J+B7g8vJqalZdM2fOZPny5ezbt4+amhrftWUjjn/ZblZlvmvLRjonErMqq62tZfbs2Uhi9uzZvmvLRhwPbGU2DDQ2NrJ582a3RmxEciIxGwZqa2tZtGhRtathNihOJGZmA9TU1ERbW1vu29m0aRMw+GG9B2rSpEmD2pYTiZnZALW1tbHhiac48dhTct3Owd9lN2H86mf5/0j1hV3bB13WicTMbBBOPPYU3nzWnGpXY8g89PSSQZd1IjEbYoM57dHenvVL2tDQ0MeShxrs6QizoeJEYjYM7N69u9pVMBs0JxKzITaY1kGhTFNT01BXxyx3/kGimZmVxYnEzMzK4kRiZmZlcSIxM7Oy+GJ7UqlfqkJlf63qW0PNLG9OJElbWxuPP7GRg8eenPu29LtsNLzHfvbrXLczapdHHTaz/OWWSCQdAzwCjE3buS8iPinpZOAeYCKwGXh3RDyfylwPzAUOAPMj4oEUnwYsBsYBy4FrIyIkjQXuAKYBO4ArImLzYOt88NiT2TPlbYMtPuwcs/H+alfBzI4CeV4j2QtcEBGvAaYCF0k6j2w43FURMRlYlZ4jaQowBzgbuAi4SdLotK6bgXlk47hPTvMhSzrPR8QkYCFwY477Y2ZmJeSWSCLzUnpakx4BXAI0p3gzcGmavgRYEhF7I+IZsvHZz5U0ATg+IlZHRJC1QIrLFNZ1HzBDhaHmzMysInK9a0vSaEnrgO3AyohYA5waEVsB0t9C95n1wLNFxdtTrD5N94x3KxMR+4EXgUOGl5M0T1KrpNaOjo6h2j0zMyPnRBIRByJiKtBA1ro4p5fFS7Ukopd4b2V61uOWiJgeEdPr6ur6qraZmQ1ARX5HEhEvAA+TXdvYlk5Xkf4WOsFvB04vKtYAbEnxhhLxbmUkjQFOAHyrkplZBeWWSCTVSToxTY8D3gI8DSwDCgNTNwLfStPLgDmSxko6g+yi+tp0+munpPPS9Y8re5QprOsy4MF0HcXMzCokzxbJBOAhSeuBH5FdI7kf+DQwU9ImYGZ6TkRsAJYCG4HvAldHxIG0rquAL5FdgP8Z0JLitwHjJbUB15HuADOzkauzs5NrrrmGHTvyHxXQhkZuvyOJiPXAa0vEdwAzDlNmAbCgRLwVOOT6SkTsAS4vu7JmNmw0Nzezfv16mpubue6666pdHesH97VlZsNGZ2cnLS0tRAQtLS1ulYwQTiRmNmw0NzdTuMx58OBBmpub+yhhw4ETiZkNGytXrmTfvn0A7Nu3jxUrVlS5RtYfTiRmNmzMnDmTmpoaAGpqapg1a1aVa2T94URiZsNGY2MjhV6ORo0aRWNjYx8lbDhwIjGzYaO2tpbZs2cjidmzZzN+/CE9Htkw5PFIzGxYaWxsZPPmzW6NjCD9TiSSXgFMjojvpV+qj4mInflVzcyORrW1tSxatKja1bAB6NepLUkfJOum/Ysp1AB8M69KmZnZyNHfayRXA68HfgMQEZvo6v7dzMyOYv1NJHsj4neFJ6mnXXeOaGZm/U4k35f0cWCcpJnAvcC386uWmZmNFP1NJB8DOoAngA8By4FP5FUpMzMbOfp719Y44PaIuBWyIXRTbFdeFTMzs5Ghvy2SVWSJo2Ac8L2hr46ZmY00/U0kx0TES4UnafrY3gpIOl3SQ5KekrRB0rUpfoOkX0lalx4XF5W5XlKbpJ9KurAoPk3SE2leUxopkTSa4j0pvkbSxP7vupmZDYX+JpLfSvqzwhNJ04DdfZTZD/x9RLwKOA+4WtKUNG9hRExNj+VpnVOAOcDZZGO735ROoQHcDMwjG353cpoPMBd4PiImAQuBG/u5P2ZmNkT6e43kb4F7JW1JzycAV/RWII21vjVN75T0FFDfS5FLgCURsRd4Jg2fe66kzcDxEbEaQNIdwKVkw+1eAtyQyt8HfF6SPG67mVnl9KtFEhE/As4iGzv9b4BXRcRj/d1IOuX0WmBNCn1Y0npJt0s6KcXqgWeLirWnWH2a7hnvViYi9gMvAof08iZpnqRWSa0dHR39rbaZmfVDr4lE0gXp718BbwdeSXZq6e0p1idJxwFfA/42In5DdprqTGAqWYvlM4VFSxSPXuK9lekeiLglIqZHxPS6urr+VNvMzPqpr1Nbfwk8SJZEegrg670VllRDlkS+EhFfB4iIbUXzbwXuT0/bgdOLijcAW1K8oUS8uEx7+rX9CcBzfeyTmZkNoV4TSUR8UtIooCUilg5kxenOqtuApyLis0XxCen6CcA7gSfT9DLgq5I+C5xG1vJZGxEHJO2UdB7ZqbErgUVFZRqB1cBlwIO+PmJmVll9XmyPiIOSPgwMKJGQdfL4fuAJSetS7OPAeyRNJWvRbCb7pTwRsUHSUmAj2R1fV0fEgVTuKmAx2e9XWtIDskR1Z7ow/xzZXV9mZlZB/b1ra6WkfwDuAX5bCEbEYU8jRcQPKH0NY3kvZRYAC0rEW4FzSsT3AJf3WnMzM8tVfxPJX5O1IP6mR/yPh7Y6ZmY20vQ3kUwhSyJvIEsojwJfyKtSZmY2cvQ3kTSTDWrVlJ6/J8XenUelzMxs5OhvIvmTiHhN0fOHJP0kjwqZmdnI0t++th5Pt98CIOkvgP/Mp0pmZjaS9DeR/AXwX5I2p76vVgN/mXrkXZ9b7eyI19nZyTXXXMOOHTuqXRUzG6T+ntq6qO9FzAauubmZ9evX09zczHXXXVft6pjZIPS308Zf9PbIu5J2ZOrs7KSlpYWIoKWlxa0SsxGqv6e2zIZcc3MzhR5tDh48SHNzc5VrZGaD4URiVbNy5Ur27dsHwL59+1ixYkWVa2Rmg+FEYlUzc+ZMampqAKipqWHWrFlVrpGZDYYTiVVNY2MjWSfRMGrUKBobG6tcIzMbDCcSq5ra2lpmz56NJGbPns348YcMbmlmI0B/b/81y0VjYyObN292a8RsBHMisaqqra1l0aJFfS9oZsOWT22ZmVlZckskkk6X9JCkpyRtkHRtip8saaWkTenvSUVlrpfUJumnki4sik9L3bG0SWpKw/giaayke1J8jaSJee2PmZmVlmeLZD/w9xHxKuA84GpJU4CPAasiYjKwKj0nzZsDnE3WJctNkkandd0MzCMbx30yXV22zAWej4hJwELgxhz3x8zMSsgtkUTE1oj4cZreCTwF1AOXkI1lQvp7aZq+BFgSEXsj4hmgDThX0gTg+IhYHdnPoO/oUaawrvuAGYXWipmZVUZFLranU06vBdYAp0bEVsiSjaRT0mL1wA+LirWn2L403TNeKPNsWtd+SS8C44HOHtufR9ai4eUvf/lQ7ZYVaWpqoq2tbcDl2tuzf21DQ8OAyk2aNIn58+cPeHtmQ6G9vZ0Xd+3koaeXVLsqQ+aFXduJ9t2DKpv7xXZJxwFfA/42In7T26IlYtFLvLcy3QMRt0TE9IiYXldX11eVrYJ2797N7t2De/Ga2fCQa4tEUg1ZEvlKRHw9hbdJmpBaIxOA7SneDpxeVLwB2JLiDSXixWXaJY0BTgCey2VnrFeDbR0UyjU1NfWxpNnw0dDQgPbu4M1nzal2VYbMQ08vob5hcD8KzvOuLQG3AU9FxGeLZi0DCr8+awS+VRSfk+7EOoPsovradBpsp6Tz0jqv7FGmsK7LgAej0J2smZlVRJ4tktcD7weekLQuxT4OfBpYKmku8EvgcoCI2CBpKbCR7I6vqyPiQCp3FbAYGAe0pAdkiepOSW1kLZEj5+uB2RFgMNfOBnvdDHztrFpySyQR8QNKX8MAmHGYMguABSXircA5JeJ7SInIzI4MvmY28riLFDPLzWBaB75uNvK4ixQzMyuLE4mZmZXFp7bMejHYH1oO1KZNm4DB30Y9UL4obUPJicSsF21tbTy+4XE4MecNHcz+PP6rx3PeEPBC/puwo4sTiVlfToSD5x+sdi2GzKiHfUbbhpZfUWZmVha3SJL29nZG7XqRYzbeX+2qDJlRu3bQ3r6/2tUwsyOcWyRmZlYWt0iShoYGtu0dw54pb6t2VYbMMRvvp6HhZdWuhpkd4dwiMTOzsjiRmJlZWZxIzMysLE4kZmZWFl9sN7N+cXcxdji5JRJJtwNvA7ZHxDkpdgPwQaAjLfbxiFie5l0PzAUOAPMj4oEUn0bXoFbLgWsjIiSNBe4ApgE7gCsiYnNe+2N2tGtra+PpdevI+z7AwmmSF9at63W5ofDr3LdwdMizRbIY+DzZh32xhRHx78UBSVPIRjc8GzgN+J6kV6YREm8G5gE/JEskF5GNkDgXeD4iJkmaA9wIXJHf7pjZy4C5hx2vbuS5DY/MPRRyu0YSEY+QDX/bH5cASyJib0Q8A7QB50qaABwfEavTWOx3AJcWlWlO0/cBM9KY7mZmVkHVuNj+YUnrJd0u6aQUqweeLVqmPcXq03TPeLcyEbEfeBEYX2qDkuZJapXU2tHRUWoRMzMbpEonkpuBM4GpwFbgMyleqiURvcR7K3NoMOKWiJgeEdPr6uoGVmMzM+tVRRNJRGyLiAMRcRC4FTg3zWoHTi9atAHYkuINJeLdykgaA5xA/0+lmZnZEKno7b+SJkTE1vT0ncCTaXoZ8FVJnyW72D4ZWBsRByTtlHQesAa4ElhUVKYRWA1cBjyYrqMM2qhdz1Wk91/t+Q0AcczxuW5n1K7nIPd7bMzsaJfn7b93A+cDtZLagU8C50uaSnYKajPwIYCI2CBpKbAR2A9cne7YAriKrtt/W9ID4DbgTkltZC2ROeXUd9KkSeUUH5BNm3YCMPnMvD/kX1bR/TKzo1NuiSQi3lMifFsvyy8AFpSItwLnlIjvAS4vp47FKvmDpMK2mpqaKrZNM7O8uIsUMzMrixOJmZmVxYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmZlYWj5Boh6jUSHhQ2dHwPBKeWT6cSOwQbW1t/PeTP+blxx3oe+Ey/cG+rFG8Z/OPct3OL18anev6zY5mTiRlGOw398F+C6/kN+qXH3eAT0x/qSLbqoR/bj2u2lUY8drb29nJkTWq4Fbgpfb2Ppez3jmRVMG4ceOqXQUzsyHjRFIGn2+3o0lDQwMvdHYecWO2n9jQ0PeC1isnErNetLe3w4sw6uEj6AbHF6A9fDrHhs4R9O4wM7NqcIvErBcNDQ10qIOD5x+sdlWGzKiHR9FQ79M5NnRya5FIul3SdklPFsVOlrRS0qb096SieddLapP0U0kXFsWnSXoizWuSpBQfK+meFF8jaWJe+2JmZoeX56mtxcBFPWIfA1ZFxGRgVXqOpClkQ+WencrcJKlw4//NwDyycdwnF61zLvB8REwCFgI35rYnZmZ2WLklkoh4hGws9WKXAM1puhm4tCi+JCL2RsQzQBtwrqQJwPERsToiArijR5nCuu4DZhRaK2ZmVjmVvth+akRsBUh/T0nxeuDZouXaU6w+TfeMdysTEfuBF4HxpTYqaZ6kVkmtHR0dQ7QrZmYGw+eurVItiegl3luZQ4MRt0TE9IiYXldXN8gqmplZKZW+a2ubpAkRsTWdttqe4u3A6UXLNQBbUryhRLy4TLukMcAJHHoqzcwsFy/s2s5DTy/JdRsv7XkegOOOOamPJcv3wq7t1Jc+qdOnSieSZUAj8On091tF8a9K+ixwGtlF9bURcUDSTknnAWuAK4FFPda1GrgMeDBdRzEzy9WkSZMqsp1Nm7LvxvVnDu4DfiDqGT/o/cotkUi6GzgfqJXUDnySLIEslTQX+CVwOUBEbJC0FNgI7AeujohC17NXkd0BNg5oSQ+A24A7JbWRtUTm5LUvZmbFKtU9UmE7TU1NFdneYOWWSCLiPYeZNeMwyy8AFpSItwLnlIjvISUiG1rt7e38dufoI6rH3F/sHM0fupdXs1wMl4vtZmY2QrmLFDtEQ0MDe/ZvPeLGIznGvbya5cKJxMysAgYzEF45Q1FXciA8JxKzvrxQgW7kC42/SlyWeoGun/UO0K/Jf4TEHelv/vcpZftzYgW2M1gjZRA8JxKzXlTuNs/sm+fk+sn5b6x+cPtVqWPRkY7FiZPzPxYnUrn9OpIHwnMiMeuFb/Ps4mNhh+O7tszMrCxOJGZmVhaf2jKz3BzJdypZFycSMxtWRsqdStbFicRK+uVLlekiZduu7OzqqcfmOyb6L18azStz3YKV4tbB0cGJxA5RqdshAX6XTmMcMzHfWz1fSWX3y+xo4kRih6jkt0jf6mk28vmuLTMzK4sTiZmZlaUqp7YkbQZ2AgeA/RExXdLJwD3ARGAz8O6IeD4tfz0wNy0/PyIeSPFpdA16tRy41qMkWrX5llc72lSzRfLmiJgaEdPT848BqyJiMrAqPUfSFLLRD88GLgJukjQ6lbkZmEc2NO/kNN9sxBk3bpxve7URazhdbL+EbGhegGbgYeD/pPiSiNgLPJOG1j03tWqOj4jVAJLuAC6layheq6DBfAuHwX8TH87fwodrvczyUq0WSQArJD0maV6KnRoRWwHS31NSvB54tqhse4rVp+me8UNImiepVVJrR0fHEO6GlcvfxM1Gvmq1SF4fEVsknQKslPR0L8uqRCx6iR8ajLgFuAVg+vTpvoaSA38LNzt6VaVFEhFb0t/twDeAc4FtkiYApL/b0+LtwOlFxRuALSneUCJuZmYVVPFEIukPJf1RYRqYBTwJLAMa02KNwLfS9DJgjqSxks4gu6i+Np3+2inpPEkCriwqY2ZmFVKNU1unAt/IPvsZA3w1Ir4r6UfAUklzgV8ClwNExAZJS4GNwH7g6og4kNZ1FV23/7bgC+1mZhWno+1nF9OnT4/W1tZqV8PMbESR9FjRzzW68S/bzcysLE4kZmZWFicSMzMrixOJmZmV5ai72C6pA/hFtesB1AKd1a7EMOFjkfFx6OJj0WW4HItXRERdqRlHXSIZLiS1Hu4OiKONj0XGx6GLj0WXkXAsfGrLzMzK4kRiZmZlcSKpnluqXYFhxMci4+PQxceiy7A/Fr5GYmZmZXGLxMzMyuJEYmZmZXEiGUYknSjpb4qenybpvjT9AUmfP0y5l3Kqz0RJTw5g+UslTeljmfMl3X+YeZsl1Q60niXWk8vxyNtAj7cNb0P9/yy8P3p+TgwHTiTDhKTRwInA718gEbElIi6rXq0G7FKg10RiZn2T1NsQH90+J4YDJ5Iikq6UtF7STyTdKekVklal2CpJL0/LLZbUJOm/JP1c0mUpfo+ki4vWt1jSuySNlvRvkn6U1vWhNP98SQ9J+irwBPBp4ExJ69LyPb/RnC7pu5J+KumTh9mHjxRt51NDcFhGS7pV0gZJKySNk/TBtI2fSPqapGMl/Q/gHcC/pfqfKWmSpO+l5X4s6cy0zuMk3SfpaUlfSQOTFXxE0tr0mJT26e2S1kh6PK3v1BQ/TtKXJT2R9vddPY5FraTVkt46BMeh39Lgbd9J+/2kpCskTZP0fUmPSXpAXaOBTkvLrQauLlrHREmPpuP243R8C6+Zh3s5fsOCpI9Kmp+mF0p6ME3PkHSXpJsltabX1aeKyl2c9usH6T12f4qfLOmb6f/8Q0mvTvEbJN2ejsnPC9scRvr1/oHff158VtJDwI2Sxqcyj0v6Il3Di/f8nFD6+2R6L1yR1ne+pEckfUPSRklfkJTPZ35E+JHduXY28FOgNj0/Gfg20Jie/zXwzTS9GLiXLBFPAdpS/J1Ac5r+A+BZss+vmtoAAAh5SURBVEG35gGfSPGxQCtwBnA+8FvgjDRvIvBkUZ1+/xz4ALAVGJ/W+SQwPc17Kf2dRXaroFLd7gfeVMYxmUg2mNjU9Hwp8D5gfNEy/wxcU3RcLiuatwZ4Z5o+Bjg27fOLZEMjjwJWA29Iy2wG/jFNXwncn6ZPousOw/8FfCZN3wh8rmh7JxWOB9kAamuAmVV4Lb0LuLXo+QnAfwF16fkVwO1pej3wl2n634r+38cCx6TpyUBrmj7s8RtOD+A84N40/SiwFqgBPgl8CDg5zRsNPAy8Or1Gni16P9xd9BpYBHwyTV8ArEvTN6RjO5asK5EdQE2197+M98/9wOj0vAn4pzT9ViDSPk6k++fEu4CV6VieSjYw4IT0WtkD/HGat5Ki9+dQPtwi6XIBcF9EdAJExHPA64Cvpvl3Am8oWv6bEXEwIjaS/fMgG6HxAkljgdnAIxGxm+wD/kpJ68g+3MaTfThANmzwM/2s48qI2JHW+fUe9SFtZxbwOPBj4Kyi7QzWMxGxLk0/RvYiPid9W34CeC9ZEu5G2XDK9RHxDYCI2BMRu9LstRHRHhEHgXVpnQV3F/19XZpuAB5I2/tI0fbeAvxHoWBEPJ8ma4BVwEcjYuWg9ro8TwBvkXSjpDcCpwPnACvTa+ATQIOkE4ATI+L7qdydReuoAW5N+3wv3U8Z9nb8hovHgGnpdbCXLOFNB95IlljeLenHZK/Vs8n27yzg50Xvh7uL1vcG0vGJiAeB8en4AXwnIvam9+52ut6Pw8FA3z/3RtcIsG8C7gKIiO8Az1PaG4C7I+JARGwDvg/8eZq3NiJ+ntZ5N4d+ZgyJagy1O1yJLOP3pnj+3h5liYg9kh4GLiT71nl30fxrIuKBbhuUzidrkfRXz/r1fC7gXyLiiwNYZ1+K9/MAWWtoMXBpRPxE0gfIvvn01Nvplp7rLH4dRonpRcBnI2JZOmY3FG2j1P9sP9mb9kKyN1VFRcR/S5oGXAz8C9k3wQ0R8bri5SSdyOFfc38HbANeQ9by2FM0r7fjNyxExD5Jm4H/SdZiWA+8GTgT2A38A/DnEfG8pMVkrZHeXjOl5hWO3XA+HgN9//T8POjPD/16O259fWYMCbdIuqwi+5Y0HrJzsmRvgDlp/nuBH/RjPUvI3jxvBAqJ4wHgKkk1ad2vlPSHJcruBP6ol3XPTOeKx5Fd2P7PHvMfAP5a0nFpO/WSTulHnQfqj4CtaX/eWxT/ff0j4jdAu6RLU13GFs4F9+GKor+r0/QJwK/SdGPRsiuADxeeSDopTQbZqcizJH2svzs1VCSdBuyKiLuAfwf+AqiT9Lo0v0bS2RHxAvCipMK3xOJjeQKwNbU63k92amKkeYQsYTxC1gr532QtqOPJPjBfVHa9a3Za/mngjyVNTM+v6LGu98Lvv4B1ptfYSHS4909Pxfs8m+wULxz6OfEIcIWya7F1ZC2ZtWneuZLOSNdGrqB/n2EDNpwyd1VFxAZJC4DvSzpA1uSeD9wu6SNAB1mC6MsK4A5gWUT8LsW+RNak/XG6MNpBlgh61mGHpP9UdoG9haLTNskPyJr3k4CvRkRrj/IrJL0KWJ2uv75Edk52ez/qPRD/l+wU3S/ITuMUXtRLyE7HzAcuI/sA/KKk/wfsAy7vx7rHSlpD9iXnPSl2A3CvpF8BPyS7vgTZ+eX/SMfrAPApslN+RMQBSXOAb0v6TUTcVMb+DtSfkt10cJBsv68iayU1pdMxY4DPARvIXlO3S9pF1xcPgJuAr0m6HHiIgbVch4tHgX8EVkfEbyXtAR5N38QfJ9v/n5O+EEXEbmW3tX5XUiddH4aQvQa+LGk9sIvuXyhGmsO9f3r6FHB3OgX4fbJrH6U+Jz5Kdhr4J2Rfoj4aEb+WdBbZl7FPk70mHwG+kccOuYsUMxs2JB0XES+lL1z/AWyKiIXVrtdIlFpu/xARb8t7Wz61ZWbDyQfTDQkbyE7vDeX1PsuJWyRmZlYWt0jMzKwsTiRmZlYWJxIzMyuLE4lZP6iMnlzVS4/HA1zPB9JvVPpabkh6UTbrLycSs5HjA0CficSs0pxIzPpvjKRmZT3Q3qes1+MZqXfWJ5T1QjsWQNJFSr3YAn+VYqMkbUq/Pi48b+vZeki/UF6srt5c/05ZD9PTga8o6/X1rZK+UVRmpqSv96ywpPcp60l5naQvKhuuwGxIOZGY9d+fALdExKuB3wDXkfWbdEVE/CnZL9avknQMcCvwdrKucl4GkLo7uYuubjHeAvyk0FFokalkHV6ek9b75Yi4j6zX6PdGxFRgOfCqQlIi+4X8l4tXkno5uAJ4fSpzgN675DAbFCcSs/57NiIK/ZvdBcwg6931v1Osmayfo7NSfFNkP9S6q2gdt5N1kQ9Zf2DdPvyTn5P1ObVI0kVkSaubtN47gfelzh9fR9ZdRrEZwDTgR+lHfjPIuhQ3G1Lua8us/wby692Sy0bEs5K2SbqArDPH96bTTY+lRZZFxD9Jeg1Z78VXA+8mSzo9fZlszJw9ZN2P7+8xX2Tj41w/gHqbDZhbJGb99/JCD75kHUp+D5ioNJIjWSeV3yfrxfYMdY0I+Z7uq+FLZK2UpWkMiQMRMTU9/ildMxkVEV8j6+Dvz1K5br2+RsQWYAvZ+CaLS9R3FXBZoQfo1HP0Kwa782aH40Ri1n9PAY2pB9qTgYVk1ybuVTZI0UHgCxGxh2xUzO+ki+2/6LGeZcBxlD6tBVAPPJxORy0GCi2KxcAX0oXzcSn2FbJTbht7riTFPgGsSHVeSTZyntmQcl9bZhUmaTqwMCLeOATr+jzweETcVn7NzAbH10jMKigNtHUVQ3D3lKTHyMYp+fty12VWDrdIzMysLL5GYmZmZXEiMTOzsjiRmJlZWZxIzMysLE4kZmZWlv8Pi7JOxTzT6oUAAAAASUVORK5CYII=\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 0x7f63dd77f278>"
]
},
"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 0x7f63dd6f9860>"
]
},
"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": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 20,
"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": 21,
"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": 21,
"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": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 22,
"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": 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>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": 23,
"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": 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",
" <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": 24,
"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": 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>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": 25,
"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": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 26,
"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": 27,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"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": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"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": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false,
"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": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false,
"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": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index=False).mean()\n",
"grouped_test_bodystyle"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 33,
"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": 34,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"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": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 36,
"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": 37,
"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": 38,
"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": 39,
"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": 40,
"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": 41,
"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": 42,
"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": 43,
"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": 44,
"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": 45,
"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": 46,
"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": 47,
"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": 47,
"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": 48,
"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": 48,
"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": 49,
"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": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>."
]
},
{
"cell_type": "code",
"execution_count": 50,
"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": 51,
"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": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/DA0101EN_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