Skip to content

Instantly share code, notes, and snippets.

@lizyanghui
Created November 24, 2019 00:04
Show Gist options
  • Save lizyanghui/aed82460b5c480298b37676975d366e4 to your computer and use it in GitHub Desktop.
Save lizyanghui/aed82460b5c480298b37676975d366e4 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"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, 56104.18824917612)"
]
},
"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 0x7fa8315beba8>"
]
},
"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 0x7fa8315267f0>"
]
},
"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 0x7fa83149eb00>"
]
},
"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 0x7fa83140bb00>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fa831351908>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3df5BdZZ3n8feHDguNGgaaJhW7waAdVwOM0bSYXXRHJUDLKMFdWMKqaXeyxsUI0XFqJNbUgFOFJVOjDIkFGsWlw6gQGWeIVJIlgIhOQbCjSAg/iq4hQn5saBvEICHSne/+cZ4Ltzu3O50+OX26cz+vqlv3nO85z7nP6brV3/uc55znUURgZmY2VkeUXQEzM5vcnEjMzCwXJxIzM8vFicTMzHJxIjEzs1ymlF2B8XbCCSfEjBkzyq6GmdmksmnTpt9GRHOtbXWXSGbMmEF3d3fZ1TAzm1Qk/Wa4bb60ZWZmuTiRmJlZLk4kZmaWixOJmZnl4kRiY9bX18fll19OX19f2VUxsxI5kdiYdXV1sXnzZlatWlV2VcysRE4kNiZ9fX2sX7+eiGD9+vVulZjVscITiaQGSb+SdEdav0rSdkkPpdd5Vfsuk9Qj6QlJ51bF50janLYtl6QUP0rSrSm+UdKMos/HMl1dXezbtw+AgYEBt0rM6th4tEiWAo8NiV0bEbPTay2ApFnAAuBUoAO4XlJD2v8GYDEwM706UnwR8HxEtAHXAtcUeib2qrvuuov+/n4A+vv72bBhQ8k1MrOyFJpIJLUCfw58ZxS7zwduiYi9EfEU0AOcIWk6MDUi7o9sFq5VwAVVZbrS8m3AWZXWihVr3rx5TJmSDYwwZcoUzj777JJrZGZlKbpF8o/AXwP7hsQ/K+lhSd+VdFyKtQDPVO2zLcVa0vLQ+KAyEdEPvAA0Da2EpMWSuiV19/b25jwlA+js7OSII7KvT0NDAwsXLiy5RmZWlsISiaQPA89GxKYhm24A3gLMBnYCX6sUqXGYGCE+UpnBgYiVEdEeEe3NzTXHHLOD1NTUREdHB5Lo6OigqWm//G1mdaLIQRvPBM5PnelHA1Ml/VNEfLyyg6RvA3ek1W3ASVXlW4EdKd5aI15dZpukKcCxwHMFnIvV0NnZydatW90aMatzhbVIImJZRLRGxAyyTvR7IuLjqc+j4qPAI2l5DbAg3Yl1Clmn+oMRsRPYLWlu6v9YCNxeVaYzLV+YPmO/FokVo6mpieXLl7s1YlbnyhhG/u8lzSa7BLUV+DRARGyRtBp4FOgHlkTEQCpzKXAT0AisSy+AG4GbJfWQtUQWjNM5mJlZonr7Ad/e3h6ej8TM7OBI2hQR7bW2+cl2MzPLxYnEzMxycSIxM7NcnEjMzCwXJxIzM8vFicTMzHJxIjEzs1ycSMzMLBcnEhszz9luZuBEYjl4znYzAycSG6O+vj7WrVtHRLBu3Tq3SszqmBOJjUlXV9erU+2+8sorbpWY1TEnEhuTDRs2UBnwMyK48847S66RmZXFicTGZNq0aSOum1n9cCKxMdm1a9eI62ZWP5xIbEzOPvtssgkrQRLnnHNOyTUys7IUnkgkNUj6laQ70vrxkjZIejK9H1e17zJJPZKekHRuVXyOpM1p2/I05S5pWt5bU3yjpBlFn49lOjs7OfLIIwE48sgjPW+7WR0bjxbJUuCxqvUrgLsjYiZwd1pH0iyyqXJPBTqA6yU1pDI3AIvJ5nGfmbYDLAKej4g24FrgmmJPxSqampro6OhAEh/60Ic8b7tZHSs0kUhqBf4c+E5VeD7QlZa7gAuq4rdExN6IeAroAc6QNB2YGhH3R3ab0KohZSrHug04q9JaseJ1dnZy+umnuzViVueKbpH8I/DXwL6q2LSI2AmQ3k9M8Rbgmar9tqVYS1oeGh9UJiL6gReA/X4aS1osqVtSd29vb95zsqSpqYnly5e7NWJW5wpLJJI+DDwbEZtGW6RGLEaIj1RmcCBiZUS0R0R7c3PzKKtjZmajMaXAY58JnC/pPOBoYKqkfwJ2SZoeETvTZatn0/7bgJOqyrcCO1K8tUa8usw2SVOAY4HnijohMzPbX2EtkohYFhGtETGDrBP9noj4OLAG6Ey7dQK3p+U1wIJ0J9YpZJ3qD6bLX7slzU39HwuHlKkc68L0Gfu1SMzMrDhFtkiG81VgtaRFwNPARQARsUXSauBRoB9YEhEDqcylwE1AI7AuvQBuBG6W1EPWElkwXidhZmYZ1dsP+Pb29uju7i67GmZmk4qkTRHRXmubn2w3M7NcnEjMzCwXJxIzM8vFicTMzHJxIjEzs1ycSGzM+vr6uPzyyz1fu1mdcyKxMevq6mLz5s2er92szpXxQKIdBvr6+li/fj0Rwfr161m4cKEHbzQAVqxYQU9PT6l12L59OwAtLS0H2LN4bW1tXHbZZWVXo1BukdiYdHV1sW9fNqjzwMCAWyU2oezZs4c9e/aUXY264SfbbUzOO+88XnrppVfXjznmGNauXVtijcxes3TpUgCuu+66kmty+PCT7XbIzZs3b9Cc7WeffXbJNTKzsjiR2Jicf/75VFqzEcFHPvKRkmtkZmVxIrExWbNmzaAWyY9//OOSa2RmZXEisTG56667BrVINmzYUHKNzKwsTiQ2Ju973/tGXDez+lHYcySSjgbuA45Kn3NbRFwp6SrgU0Bv2vVLEbE2lVkGLAIGgMsj4v+m+Bxem9hqLbA0IkLSUcAqYA7QB1wcEVuLOid7Tb3d7TcZTITnNyaKyt+hcvdWvSv6WZYiH0jcC3wwIl6UdCTwc0mVmQ2vjYh/qN5Z0iyyGQ5PBd4I3CXprWmWxBuAxcADZImkg2yWxEXA8xHRJmkBcA1wcYHnZMnPfvazQev33Xcfy5YtK6k2Btk/zye3/IqTXz9w4J0Pc//hlexiy97f+Fb/p19sKPwzCkskae70F9Pqkek10s/Y+cAtEbEXeCpNn3uGpK3A1Ii4H0DSKuACskQyH7gqlb8N+IYked724k2bNo2tW7cOWrfynfz6Ab70rt+XXQ2bQL7yy6mFf0ahfSSSGiQ9BDwLbIiIjWnTZyU9LOm7ko5LsRbgmari21KsJS0PjQ8qExH9wAvAfuN0SFosqVtSd29v79DNNga7du0acd3M6kehiSQiBiJiNtBK1ro4jewy1VuA2cBO4Gtpd9U6xAjxkcoMrcfKiGiPiPbm5uaDPAurZegDiOecc05JNTGzso3LXVsR8TvgXqAjInalBLMP+DZwRtptG3BSVbFWYEeKt9aIDyojaQpwLPBcQadhVc4///xB634g0ax+FZZIJDVL+pO03AjMAx6XNL1qt48Cj6TlNcACSUdJOgWYCTwYETuB3ZLmKnsCbiFwe1WZzrR8IXCP+0fGhx9INLOKIu/amg50SWogS1irI+IOSTdLmk12CWor8GmAiNgiaTXwKNAPLEl3bAFcymu3/65LL4AbgZtTx/xzZHd92Tio9UDi5z//+ZJrVd+2b9/OH3Y3jEvnqk0ev9ndwOvSsPpFKfKurYeBd9aIf2KEMlcDV9eIdwOn1Yi/DFyUr6Y2FvPmzWPt2rX09/czZcoUD9poVsc8sZWNSWdnJ+vXrwegoaGBhQsXllwja2lpYW//Tt/+a4N85ZdTOargCb48RIqNSVNTEx0dHUiio6PDsyOa1TG3SGzMOjs72bp1q1sjE8jTL7qPBGDXS9lv5GnH7Cu5JuV7+sUGZhb8GU4kNmZNTU0sX7687GpY0tbWVnYVJow/prG2jnqT/yYzKf674URiY9bX18eXv/xlrrzySl/amgCKHJRvsvFUu+PLicTGrKuri82bN7Nq1Srf+muvmgijEE+k0X+LHnl3InBnu41JX18f69evJyJYv349fX19ZVfJ7FWNjY00NjaWXY264RaJjUlXVxcDA9nzov39/W6V2KsO91/ftj+3SGxM7rrrrlcTycDAgKfaNatjTiQ2Ju9973sHrXuqXbP65URiY1IZsNHMzInExmToVLtD182sfjiR2JjMmzdv0DDyHrTRrH45kdiYnH/++YOGkffEVmb1y4nExsQTW5lZhROJjUmtia3MrD4VOdXu0ZIelPRrSVskfTnFj5e0QdKT6f24qjLLJPVIekLSuVXxOZI2p23L05S7pGl5b03xjZJmFHU+Nti8efOYMiV7ntUTW5nVtyJbJHuBD0bEO4DZQIekucAVwN0RMRO4O60jaRbZVLmnAh3A9WmaXoAbgMVkA1nOTNsBFgHPR0QbcC1wTYHnY1U6Ozs54ojs6+OJrczqW2GJJDIvptUj0yuA+UBXincBF6Tl+cAtEbE3Ip4CeoAzJE0HpkbE/ZFdS1k1pEzlWLcBZ1VaK1YsT2xlZhWF9pFIapD0EPAssCEiNgLTImInQHo/Me3eAjxTVXxbirWk5aHxQWUioh94AdjvP5qkxZK6JXX39vYeqtOre52dnZx++ulujZjVuUITSUQMRMRsoJWsdXHaCLvXaknECPGRygytx8qIaI+I9ubm5gNV20apMrGVWyNm9W1c7tqKiN8B95L1bexKl6tI78+m3bYBJ1UVawV2pHhrjfigMpKmAMcCzxVyEmZmVlORd201S/qTtNwIzAMeB9YAnWm3TuD2tLwGWJDuxDqFrFP9wXT5a7ekuan/Y+GQMpVjXQjcE5V7Us3MbFwUOR/JdKAr3Xl1BLA6Iu6QdD+wWtIi4GngIoCI2CJpNfAo0A8siYiBdKxLgZuARmBdegHcCNwsqYesJbKgwPMxM7MaVG8/4Nvb26O7u7vsapiZTSqSNkVEe61tfrLdzMxy8VS7k9CKFSvo6ekpuxps374dgJaWlgPsWay2tjZP72pWIicSG7M9e/aUXQUzmwCcSCahifLre+nSpQBcd911JdfEzMrkPhIzM8vFicTMzHJxIjEzs1xGnUgkvUnSvLTcKOkNxVXLzMwmi1ElEkmfIhum/Vsp1Ar8a1GVMjOzyWO0LZIlwJnA7wEi4kleG/7dzMzq2GgTyd6I+GNlJY20W19jq5iZWU2jTSQ/lfQloFHS2cAPgR8XVy0zM5ssRptIrgB6gc3Ap4G1wN8UVSkzM5s8RvtkeyPw3Yj4NmRT6KbYS0VVzMzMJofRtkjuJkscFY3AXYe+OmZmNtmMNpEcHREvVlbS8jEjFZB0kqSfSHpM0hZJS1P8KknbJT2UXudVlVkmqUfSE5LOrYrPkbQ5bVueZkokzaZ4a4pvlDRj9KduZmaHwmgTyR8kvauyImkOcKChX/uBL0TE24G5wBJJs9K2ayNidnqtTcecRTbD4alkc7tfny6hAdwALCabfndm2g6wCHg+ItqAa4FrRnk+ZmZ2iIy2j+RzwA8l7Ujr04GLRyqQ5lrfmZZ3S3oMGGniivnALRGxF3gqTZ97hqStwNSIuB9A0irgArLpducDV6XytwHfkCTP225mNn5G1SKJiF8AbyObO/0zwNsjYtNoPyRdcnonsDGFPivpYUnflXRcirUAz1QV25ZiLWl5aHxQmYjoB14Ammp8/mJJ3ZK6e3t7R1ttMzMbhRETiaQPpvf/CnwEeCvZpaWPpNgBSXo98M/A5yLi92SXqd4CzCZrsXytsmuN4jFCfKQygwMRKyOiPSLam5ubR1NtMzMbpQNd2voz4B6yJDJUAD8aqbCkI8mSyPci4kcAEbGravu3gTvS6jbgpKrircCOFG+tEa8usy09bX8s8NwBzsnMzA6hERNJRFwp6QhgXUSsPpgDpzurbgQei4ivV8Wnp/4TgI8Cj6TlNcD3JX0deCNZy+fBiBiQtFvSXLJLYwuBFVVlOoH7gQuBe9w/YmY2vg7Y2R4R+yR9FjioREI2yOMngM2SHkqxLwGXSJpN1qLZSvakPBGxRdJq4FGyO76WRMRAKncpcBPZ8yvr0guyRHVz6ph/juyuLzMzG0ejvWtrg6S/Am4F/lAJRsSwl5Ei4ufU7sNYO0KZq4Gra8S7gdNqxF8GLhqx5mZmVqjRJpK/IGtBfGZI/M2HtjpmZjbZjDaRzCJLIu8lSyg/A75ZVKXMzGzyGG0i6SKb1Gp5Wr8kxf57EZUyM7PJY7SJ5D9GxDuq1n8i6ddFVMjMzCaX0Y619at0+y0Akt4D/FsxVTIzs8lktC2S9wALJT2d1k8GHpO0GYiI+NNCamdmZhPeaBNJx4F3MTOzejSqRBIRvym6ImZmNjmNto/EzMysJicSMzPLxYnEzMxycSIxM7NcnEjMzCwXJxIzM8vFicTMzHJxIjEzs1wKSySSTpL0E0mPSdoiaWmKHy9pg6Qn0/txVWWWSeqR9ISkc6vicyRtTtuWp2l8kXSUpFtTfKOkGUWdj5mZ1VZki6Qf+EJEvB2YCyyRNAu4Arg7ImYCd6d10rYFwKlkQ7JcL6khHesGYDHZPO4zeW3IlkXA8xHRBlwLXFPg+ZiZWQ2FJZKI2BkRv0zLu4HHgBZgPtlcJqT3C9LyfOCWiNgbEU8BPcAZkqYDUyPi/ogIYNWQMpVj3QacVWmtmJnZ+BiXPpJ0yemdwEZgWkTshCzZACem3VqAZ6qKbUuxlrQ8ND6oTET0Ay8ATTU+f7Gkbkndvb29h+akzMwMGIdEIun1wD8Dn4uI34+0a41YjBAfqczgQMTKiGiPiPbm5uYDVdnMzA5CoYlE0pFkSeR7EfGjFN6VLleR3p9N8W3ASVXFW4EdKd5aIz6ojKQpwLHAc4f+TMzMbDhF3rUl4EbgsYj4etWmNUBnWu4Ebq+KL0h3Yp1C1qn+YLr8tVvS3HTMhUPKVI51IXBP6kcxM7NxMtqJrcbiTOATwGZJD6XYl4CvAqslLQKeBi4CiIgtklYDj5Ld8bUkIgZSuUuBm4BGYF16QZaobpbUQ9YSWVDg+ZiZWQ2FJZKI+Dm1+zAAzhqmzNXA1TXi3cBpNeIvkxKRmZmVw0+2m5lZLk4kZmaWixOJmZnl4kRiZma5OJGYmVkuTiRmZpaLE4mZmeXiRGJmZrk4kZiZWS5OJGZmlosTiZmZ5VLkoI2HpRUrVtDT01N2NSaEyt9h6dKlJddkYmhra+Oyyy4ruxpm486J5CD19PTw0COPMXDM8WVXpXRH/DEbsX/Tv+8quSbla3jJ0+BY/XIiGYOBY45nz9vOK7saNoE0Pr627CqYlcZ9JGZmlkuRMyR+V9Kzkh6pil0labukh9LrvKptyyT1SHpC0rlV8TmSNqdty9MsiaSZFG9N8Y2SZhR1LmZmNrwiWyQ3AR014tdGxOz0WgsgaRbZ7IanpjLXS2pI+98ALCabendm1TEXAc9HRBtwLXBNUSdiZmbDKyyRRMR9ZNPfjsZ84JaI2BsRTwE9wBmSpgNTI+L+NBf7KuCCqjJdafk24KxKa8XMzMZPGX0kn5X0cLr0dVyKtQDPVO2zLcVa0vLQ+KAyEdEPvAA01fpASYsldUvq7u3tPXRnYmZm455IbgDeAswGdgJfS/FaLYkYIT5Smf2DESsjoj0i2pubmw+uxmZmNqJxTSQRsSsiBiJiH/Bt4Iy0aRtwUtWurcCOFG+tER9URtIU4FhGfynNzMwOkXFNJKnPo+KjQOWOrjXAgnQn1ilkneoPRsROYLekuan/YyFwe1WZzrR8IXBP6kcxM7NxVNgDiZJ+ALwfOEHSNuBK4P2SZpNdgtoKfBogIrZIWg08CvQDSyJiIB3qUrI7wBqBdekFcCNws6QespbIgqLOxczMhldYIomIS2qEbxxh/6uBq2vEu4HTasRfBi7KU0czM8vPT7abmVkuTiRmZpaLE4mZmeXiRGJmZrk4kZiZWS5OJGZmlosTiZmZ5eJEYmZmuTiRmJlZLk4kZmaWixOJmZnl4kRiZma5OJGYmVkuTiRmZpaLE4mZmeXiRGJmZrkUlkgkfVfSs5IeqYodL2mDpCfT+3FV25ZJ6pH0hKRzq+JzJG1O25anKXdJ0/LemuIbJc0o6lzMzGx4hc2QSDY97jeAVVWxK4C7I+Krkq5I61+UNItsqtxTgTcCd0l6a5pu9wZgMfAAsBboIJtudxHwfES0SVoAXANcXOD5ALB9+3YaXnqBxsfXFv1RNok0vNTH9u39ZVfDrBSFtUgi4j6yudSrzQe60nIXcEFV/JaI2BsRTwE9wBmSpgNTI+L+iAiypHRBjWPdBpxVaa2Ymdn4KbJFUsu0iNgJEBE7JZ2Y4i1kLY6KbSn2SloeGq+UeSYdq1/SC0AT8NuhHyppMVmrhpNPPjnXCbS0tPD/9k5hz9vOy3UcO7w0Pr6WlpZpZVfDrBQTpbO9VksiRoiPVGb/YMTKiGiPiPbm5uYxVtHMzGoZ70SyK12uIr0/m+LbgJOq9msFdqR4a434oDKSpgDHsv+lNDMzK9h4J5I1QGda7gRur4ovSHdinQLMBB5Ml8F2S5qb+j8WDilTOdaFwD2pH8XMzMZRYX0kkn4AvB84QdI24Ergq8BqSYuAp4GLACJii6TVwKNAP7Ak3bEFcCnZHWCNZHdrrUvxG4GbJfWQtUQWFHUuZmY2vMISSURcMsyms4bZ/2rg6hrxbuC0GvGXSYnIzMzKM1E6283MbJJyIjEzs1ycSMzMLBcnEjMzy2W8n2w/LDS89JzH2gKOePn3AOw7emrJNSlfw0vPAX6y3eqTE8lBamtrK7sKE0ZPz24A2t7sf6Awzd8Nq1tOJAfpsssuK7sKE8bSpUsBuO6660quiZmVyX0kZmaWixOJmZnl4kRiZma5OJGYmVkuTiRmZpaLE4mZmeXiRGJmZrk4kZiZWS6lJBJJWyVtlvSQpO4UO17SBklPpvfjqvZfJqlH0hOSzq2Kz0nH6ZG0PM2iaGZm46jMFskHImJ2RLSn9SuAuyNiJnB3WkfSLLLZD08FOoDrJTWkMjcAi8mm5p2ZtpuZ2TiaSEOkzCebmhegC7gX+GKK3xIRe4Gn0tS6Z0jaCkyNiPsBJK0CLuC1qXgPWytWrKCnp6fsarxah8pQKWVpa2vz0DVmJSqrRRLAnZI2SVqcYtMiYidAej8xxVuAZ6rKbkuxlrQ8NL4fSYsldUvq7u3tPYSnUd8aGxtpbGwsuxpmVrKyWiRnRsQOSScCGyQ9PsK+tfo9YoT4/sGIlcBKgPb29pr7TCb+9W1mE0kpLZKI2JHenwX+BTgD2CVpOkB6fzbtvg04qap4K7AjxVtrxM3MbByNeyKR9DpJb6gsA+cAjwBrgM60Wydwe1peAyyQdJSkU8g61R9Ml792S5qb7tZaWFXGzMzGSRmXtqYB/5Lu1J0CfD8i1kv6BbBa0iLgaeAigIjYImk18CjQDyyJiIF0rEuBm4BGsk72w76j3cxsolHEpO8yOCjt7e3R3d1ddjXMzCYVSZuqHtcYxE+2m5lZLk4kZmaWixOJmZnl4kRiZma51F1nu6Re4Ddl1+MwcgLw27IrYVaDv5uH1psiornWhrpLJHZoSeoe7k4OszL5uzl+fGnLzMxycSIxM7NcnEgsr5VlV8BsGP5ujhP3kZiZWS5ukZiZWS5OJGZmlosTie1H0uWSHpP0vUNwrC8dijqZ2cTlPhLbT5qx8kMR8VRVbEpE9I/hWC9GxOsPaQXNqqT5iBQR+8ZYfkzfbXuNWyQ2iKRvAm8G1kh6QdJKSXcCqyQdLen/SNos6VeSPpDKfFLSjyStl/SkpL9P8a8CjZIeOhStG7MKSTNSq/l64JfAJyTdL+mXkn4o6fVpv7+V9AtJj6TvslL8XklfkfRTYGmJp3JYcIvE9iNpK9AOfBb4CPDeiNgj6QvAaRHxPyW9DbgTeCuwAPhb4J3AXuCJVOYZt0isCJJmAP8O/GegB/gRWSv6D5K+CBwVEX8n6fiIeC6VuRlYHRE/lnQv8GhEfKaUEzjMuEViB7ImIvak5fcCNwNExONkY5a9NW27OyJeiIiXyWazfNO419TqzW8i4gFgLjAL+DdJD5FN1V35/n1A0kZJm4EPAqdWlb91XGt7GCtjql2bXP5QtawR9ttbtTyAv1tWvMp3U8CGiLikeqOko4HrgfbUOr4KOLpGecvJLRI7GPcBHwOQ9FbgZLLLWCN5RdKRRVfM6toDwJmS2gAkHZO+n5Wk8dvUZ3JhWRU83DmR2MG4HmhIlwluBT4ZEXsPUGYl8LA7260oEdELfBL4gaSHyRLL2yLid8C3gc3AvwK/KK2Shzl3tpuZWS5ukZiZWS5OJGZmlosTiZmZ5eJEYmZmuTiRmJlZLk4kZmMk6Y2SbjtEx5oh6ZFDcayqY35S0hur1r8jadah/Awz8NPHZmMWETuY2A+5fRJ4BNgBEBH/q9Ta2GHLLRKrS5I+LunBNDLxtyQ1SHpR0tWSfi3pAUnT0r5vSeu/kPR3kl5M8VdbEcONgJy2nVNrZNoR6jbcKMsNkv4hxR+WdFmK7zfCraQLyQbe/F46x8Y04m17KnNJOs4jkq6p+uyafwOzkTiRWN2R9HbgYuDMiJhNNjbYx4DXAQ9ExDvIhoP5VCpyHXBdRLyb9Ot+GLPTcU8HLpZ0kqQTgL8B5kXEu4Bu4C8PUMUlABFxOnAJ0JXGjVoMnAK8MyL+FKiMFvCNiHh3RJwGNAIfjojb0md9LCJmVw28SbrcdQ3ZIIazgXdLuiBtHu5vYDYsJxKrR2cBc4BfpNFizyKbg+WPwB1pn03AjLT8n4AfpuXvj3DcWiMgjzQy7XCGG2V5HvDNyiRMleHRGXmE21reDdwbEb3pWN8D/kvaNtzfwGxY7iOxeiSgKyKWDQpKfxWvjRk0lhGMa42APNzItO8BvpVW/xZ4eEj9hqv3oDGNRjHC7XDHGc4rOf8GVofcIrF6dDdwoaQTASQdL2mkVsIDwH9LywsO8rNqjkwbERvTJafZEbFmSJnhRlm+E/jfkqZU6s3II9zuBt5Qo04bgT+TdIKkBrLLZz89yPMye5UTidWdiHiUrN/izjRa7AZg+ghFPgf8paQH034vHMRn1RyZ9gDFhhtl+TvA02SjKf8a+B8HGOH2JuCblc72qjrtBJYBPwF+DfwyIm4f7TmZDeXRf80OQNIxwJ6ICEkLgEsiYn7Z9TKbKHz90+zA5gDfkCTgd8BflFwfswnFLRIzM8vFfSRmZpaLE4mZmeXiRGJmZrk4kZiZWS5OJGZmlsv/B/I9ZroA5YoAAAABSURBVLGUXv7yAAAAAElFTkSuQmCC\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 0x7fa8312cd278>"
]
},
"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": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_group_two = df[['body-style', 'price']]\n",
"df_group_two = df_group_two.groupby(['body-style'], as_index = False).mean()\n",
"df_group_two"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 34,
"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": 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": [
"#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": 36,
"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": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 37,
"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": 38,
"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": 39,
"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": 40,
"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": 41,
"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": 42,
"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": 43,
"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": 44,
"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": 45,
"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": 46,
"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": 47,
"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": 48,
"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": 48,
"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": 49,
"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": 49,
"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": 50,
"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": 50,
"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": 51,
"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": 52,
"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": 53,
"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/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment