Skip to content

Instantly share code, notes, and snippets.

@patrickthoreson
Created February 12, 2019 00:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patrickthoreson/c63ec4fc297616896fa5301471fb808e to your computer and use it in GitHub Desktop.
Save patrickthoreson/c63ec4fc297616896fa5301471fb808e 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": {
"collapsed": true
},
"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
},
"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
},
"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
},
"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
},
"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": 8,
"metadata": {
"collapsed": 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>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": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"#df1 = df[['bore','stroke' ,'compression-ratio','horsepower']]\n",
"#df1.corr()\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": 9,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"text/plain": [
"(0, 55820.47327645644)"
]
},
"execution_count": 9,
"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": 10,
"metadata": {
"collapsed": 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": 10,
"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": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6df403df60>"
]
},
"execution_count": 11,
"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": 12,
"metadata": {
"collapsed": 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": 12,
"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": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6de4fa6cc0>"
]
},
"execution_count": 13,
"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": 14,
"metadata": {
"collapsed": 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": 14,
"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": 15,
"metadata": {
"collapsed": 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": 15,
"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": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6de4f10e10>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)"
]
},
{
"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": 17,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6de4ee3dd8>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEKCAYAAADaa8itAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzt3XucXVV99/HPN2GEUKqBzICQQUNJLCLVVCLi4w3BhAyiYEXBqgyWx1jkYkvrBcvToEKrr7aikyoKEjN4IQJeiJg0GREEKwIDiYEANlOMMiSSGUIQTAK5/J4/1hpyMpy573POTPJ9v17nNfv89tp7r73nnPM7a+991lJEYGZmVoRxta6AmZntPpxUzMysME4qZmZWGCcVMzMrjJOKmZkVxknFzMwK46RiZmaFcVIxM7PCOKmYmVlh9qp1Baqtvr4+pkyZUutqmJmNKffcc093RDQMVG6PSypTpkyhvb291tUwMxtTJP12MOV8+svMzArjpGJmZoVxUjEzs8I4qZiZWWGcVMzMrDBOKmZmVhgnFTMzK0zFf6ciaTzQDjwaESdLWgC8GXgyFzkrIlZIEvAl4CRgU47fm9fRDFycy18aEa05fjSwAJgALAY+Gh4f2cxGoZaWFjo6Ooa0TGdnJwCNjY1DWm7q1KlccMEFQ1qmKNVoqXwUeLBX7GMRMT0/VuRYEzAtP+YAVwBIOgCYC7wWOAaYK2n/vMwVuWzPcrMruSNmZtW0efNmNm/eXOtqDElFWyqSGoG3AZcBFw5Q/BTgmtzS+KWkiZIOBo4D2iJiQ15nGzBb0q3ACyPijhy/BjgVWFKJfTEzG4nhtBx6lmlpaSm6OhVT6ZbKF4GPAzt6xS+TtFLS5ZL2zrHJwCMlZTpzrL94Z5n480iaI6ldUntXV9ewd8bMzPpXsaQi6WRgfUTc02vWRcARwGuAA4BP9CxSZjUxjPjzgxFXRsSMiJjR0DBgf2hmZjZMlWypvB54h6Q1wELgeEnfioh1kTwDfIN0nQRSS+PQkuUbgbUDxBvLxM3MrEYqllQi4qKIaIyIKcAZwE8j4v35Ogn5bq9TgfvzIouAM5UcCzwZEeuApcAsSfvnC/SzgKV53lOSjs3rOhO4sVL7Y2ZmA6tF1/ffltRAOn21AvjbHF9Mup24g3RL8QcBImKDpM8Cd+dyn+m5aA+cw85bipfgi/RmZjVVlaQSEbcCt+bp4/soE8C5fcybD8wvE28HjiqqnmZmNjL+Rb2ZmRXGScXMzArjpGJmZoVxUjEzs8I4qZiZWWGcVMzMrDBOKmZmVhgnFTMzK4yTitko0N3dzfnnn8/jjz9e66qYjYiTitko0NraysqVK2ltba11VcxGxEnFrMa6u7tZvHgxEcHixYvdWrExzUnFrMZaW1vZtm0bAFu3bnVrxcY0JxWzGlu2bBmpP1WICJYuXVrjGpkNn5OKWY0ddNBB/T43G0ucVMxq7LHHHuv3udlYUvGkImm8pOWSbsrPD5N0p6TVkr4r6QU5vnd+3pHnTylZx0U5/mtJJ5bEZ+dYh6RPVnpfzCph1qxZpMFLQRInnnjiAEuYjV7VaKl8FHiw5PnngcsjYhrwBHB2jp8NPBERU4HLczkkHUkajvgVwGzgKzlRjQe+DDQBRwLvzWXNxpTm5mbq6uoAqKuro7m5ucY1Mhu+iiYVSY3A24Cv5+cCjgduyEVaSePUA5ySn5Pnn5DLnwIsjIhnIuI3pOGGj8mPjoh4OCKeBRbmsmZjSn19PU1NTUjipJNOYtKkSbWuktmwVbql8kXg48CO/HwSsDEituXnncDkPD0ZeAQgz38yl38u3muZvuJmY05zczOvfOUr3UqxMa9iSUXSycD6iLinNFymaAwwb6jxcnWZI6ldUntXV1c/tTarjfr6eubNm+dWio15lWypvB54h6Q1pFNTx5NaLhMl7ZXLNAJr83QncChAnv8iYENpvNcyfcWfJyKujIgZETGjoaFh5HtmZmZlVSypRMRFEdEYEVNIF9p/GhHvA24BTsvFmoEb8/Si/Jw8/6eRfhG2CDgj3x12GDANuAu4G5iW7yZ7Qd7Gokrtj5mZDWyvgYsU7hPAQkmXAsuBq3P8auCbkjpILZQzACJilaTrgAeAbcC5EbEdQNJ5wFJgPDA/IlZVdU/MzGwXVUkqEXErcGuefph051bvMluAd/ex/GXAZWXii4HFBVbVzMxGwL+oNzOzwjipmJlZYZxUzMysME4qZmZWGCcVMzMrjJOKmZkVxknFbBTo7u7m/PPP9/j0NuY5qZiNAq2traxcudLj09uYV4tf1O82Wlpa6OjoGNIynZ2dADQ2Ng55e1OnTuWCCy4Y8nI2unV3d7NkyRIigiVLltDc3OyOJW3MckulyjZv3szmzZtrXQ0bRVpbW0nd3MGOHTvcWrExzS2VERhOq6FnmZaWlqKrY2NUW1sbW7duBWDr1q0sW7aMCy+8sMa1Mhset1TMamzmzJm7jFE/a9asGtfIbPicVMxq7O1vf/tzp78igne84x01rpHZ8DmpmNXYj370o11aKosWeVggG7ucVMxqrK2tbZeWyrJly2pcI7Phc1Ixq7E3vvGNuzx/05veVKOamI1cxZKKpH0k3SXpV5JWSfp0ji+Q9BtJK/Jjeo5LUoukDkkrJb26ZF3NklbnR3NJ/GhJ9+VlWtRzDsHMzGqiki2VZ4DjI+JVwHRgtqRj87yPRcT0/FiRY02k8eenAXOAKwAkHQDMBV5LGjFyrqT98zJX5LI9y82u4P6YVcTtt9++y/PbbrutRjUxG7mKJZVIns5P6/Ij+lnkFOCavNwvgYmSDgZOBNoiYkNEPAG0kRLUwcALI+KOSCekrwFOrdT+mFXKzJkz2Wuv9JOxvfbay7cU25hW0WsqksZLWgGsJyWGO/Osy/Iprssl7Z1jk4FHShbvzLH+4p1l4uXqMUdSu6T2rq6uEe+XWZGam5ufu/tr3LhxNDc3D7CE2ehV0aQSEdsjYjrQCBwj6SjgIuAI4DXAAcAncvFy10NiGPFy9bgyImZExIyGhoYh7oVZZdXX1zN5cvo+dMghh7jfLxvTqnL3V0RsBG4FZkfEunyK6xngG6TrJJBaGoeWLNYIrB0g3lgmbjamdHd3s3ZteumuXbvW3d/bmFbJu78aJE3M0xOAtwIP5Wsh5Du1TgXuz4ssAs7Md4EdCzwZEeuApcAsSfvnC/SzgKV53lOSjs3rOhO4sVL7Y1YppR1KRoQ7lLQxrZItlYOBWyStBO4mXVO5Cfi2pPuA+4B64NJcfjHwMNABXAV8BCAiNgCfzeu4G/hMjgGcA3w9L/O/wJIK7o9ZRZTrUNJsrKpYL8URsRL4yzLx4/soH8C5fcybD8wvE28HjhpZTc1qa+bMmSxevJitW7dSV1fnu79sTPMv6s1qzHd/2e7EScWsxurr62lqakISTU1NvvvLxjQP0mU2CjQ3N7NmzRq3UmzMc1IxGwXq6+uZN29erathNmJOKmZmQ9DS0kJHR0dVtrV69WpgeEOXD8fUqVNHvC0nFTOzIejo6GDVfQ8ycd8DK76tHc+mGzge/d/K/yB246b1hazHScXMbIgm7nsgbznijFpXo1C3PLSwkPU4qZgVbDinRzo7U9+ojY2NA5TcVRGnK8yK5KRiNgps3ry51lUwK4STilnBhtNy6FmmpaWl6OqYVZV//GhmZoVxUjEzs8I4qZiZWWGcVMzMrDC+UI9/IWtmVpSKJRVJ+wC3AXvn7dwQEXMlHQYsJI1Pfy/wgYh4VtLewDXA0cDjwOkRsSav6yLgbGA7cEFELM3x2cCXgPHA1yPic8Opa0dHB8vve4Ad+x4w7P0dLD2bRvi7539/X/Ftjdu0YeBCZmYFqmRL5Rng+Ih4WlId8HNJS4ALgcsjYqGkr5KSxRX57xMRMVXSGcDngdMlHQmcAbwCOAT4iaSX5W18GZhJGq/+bkmLIuKB4VR2x74HsOXIk4e/t6PQPg/cVOsqmNkepmLXVCJ5Oj+ty48AjgduyPFW0jj1AKfk5+T5J+Sx508BFkbEMxHxG9LQwcfkR0dEPBwRz5JaP6dUan/MzGxgFb1QL2m8pBXAeqCNNI78xojYlot0ApPz9GTgEYA8/0lgUmm81zJ9xc3MrEYqmlQiYntETAcaSS2Ll5crlv+qj3lDjT+PpDmS2iW1d3V1DVxxMzMblqrcUhwRG4FbgWOBiZJ6ruU0AmvzdCdwKECe/yJgQ2m81zJ9xctt/8qImBERMxoaGorYJTMzK6NiSUVSg6SJeXoC8FbgQeAW4LRcrBm4MU8vys/J838aEZHjZ0jaO985Ng24C7gbmCbpMEkvIF3MX1Sp/TEzs4FV8u6vg4FWSeNJyeu6iLhJ0gPAQkmXAsuBq3P5q4FvSuogtVDOAIiIVZKuAx4AtgHnRsR2AEnnAUtJtxTPj4hVFdwfMzMbQMWSSkSsBP6yTPxh0vWV3vEtwLv7WNdlwGVl4ouBxSOurJmNGt3d3Xz605/mkksuYdKkSbWujg2Ru2kxs1GltbWVlStX0traOnBhG3WcVMxs1Oju7mbJkiVEBEuWLOHxxys/NrsVy0nFzEaN1tZW0v05sGPHDrdWxiAnFTMbNdra2ti6dSsAW7duZdmyZTWukQ2Vk4qZjRozZ86krq4OgLq6OmbNmlXjGtlQOamY2ajR3NxM6vIPxo0bR3Nz8wBL2GjjpGJmo0Z9fT1NTU1IoqmpybcUj0EepMvMRpXm5mbWrFnjVsoYNeikIumlwLSI+EnudmWviHiqclUzsz1RfX098+bNq3U1bJgGdfpL0odIY5x8LYcagR9WqlJmZjY2DfaayrnA64E/AETEauDASlXKzMzGpsEmlWfy6IrAc13Tlx27xMzM9lyDTSo/k/QpYIKkmcD1wI8qVy0zMxuLBptUPgl0AfcBHyb1DHxxpSplZmZj02Dv/ppAGq/kKkhjz+fYpkpVzMzMxp7BtlRuJiWRHhOAnxRfHTMzG8sGm1T2iYine57k6X37W0DSoZJukfSgpFWSPprjl0h6VNKK/DipZJmLJHVI+rWkE0vis3OsQ9InS+KHSbpT0mpJ383DCpuZWY0MNqn8UdKre55IOhrYPMAy24B/iIiXA8cC50o6Ms+7PCKm58fivM4jSUMIvwKYDXxF0vh8qu3LQBNwJPDekvV8Pq9rGvAEcPYg98fMzCpgsNdU/g64XtLa/Pxg4PT+FoiIdcC6PP2UpAeByf0scgqwMCKeAX6Tx6rvGXa4Iw9DjKSFwCl5fccDf53LtAKXAFcMcp/MzKxgg2qpRMTdwBHAOcBHgJdHxD2D3YikKaTx6u/MofMkrZQ0X9L+OTYZeKRksc4c6ys+CdgYEdt6xcttf46kdkntXV1dg622mZkNUb9JRdLx+e9fAW8HXgZMA96eYwOStB/wPeDvIuIPpJbE4cB0UkvmP3qKllk8hhF/fjDiyoiYEREzGhoaBlNtMzMbhoFOf70Z+CkpofQWwPf7W1hSHSmhfDsivg8QEY+VzL8KuCk/7QQOLVm8Eeg53VYu3g1MlLRXbq2UljczsxroN6lExFxJ44AlEXHdUFasNNLO1cCDEfGFkvjB+XoLwDuB+/P0IuA7kr4AHEJqEd1FapFMk3QY8CjpYv5fR0RIugU4DVgINAM3DqWOZmZWrAEv1EfEDknnAUNKKqQOKD8A3CdpRY59inT31nRSS2cN6Rf6RMQqSdcBD5DuHDs3IrYD5O0vBcaTfoS5Kq/vE8BCSZcCy0lJzMzMamSwd3+1SfpH4LvAH3uCEbGhrwUi4ueUv+6xuJ9lLgMuKxNfXG65fEfYMb3jZmZWG4NNKn9Dall8pFf8z4qtjpmZjWWDTSpHkhLKG0jJ5Xbgq5WqlJmZjU2DTSqtpAG6WvLz9+bYeypRKTMzG5sGm1T+PCJeVfL8Fkm/qkSFzMxs7Bps31/LJR3b80TSa4H/rkyVzMxsrBpsUnkt8AtJayStAe4A3izpPkkrK1Y72611d3dz/vnn8/jjj9e6KmZWkMGe/ppd0VrYHqm1tZWVK1fS2trKhRdeWOvqmFkBBtuh5G/7e1S6krb76e7uZsmSJUQES5YscWvFbDcx2NNfZoVqbW0lIvX/uWPHDlpbW2tcIzMrgpOK1URbWxtbt24FYOvWrSxbtqzGNTKzIjipWE3MnDmTuro6AOrq6pg1a1aNa2RmRXBSsZpobm4mdWQN48aNo7m5ucY1MrMiOKlYTdTX19PU1IQkmpqamDRpUq2rZGYFGOwtxWaFa25uZs2aNW6lmO1GnFSsZurr65k3b16tq2FmBarY6S9Jh0q6RdKDklZJ+miOHyCpTdLq/Hf/HJekFkkdklZKenXJuppz+dWSmkviR+df9XfkZcuN32JmZlVSyWsq24B/iIiXA8cC50o6EvgkcHNETANuzs8BmkhDCE8D5gBXQEpCwFxSVzHHAHN7ElEuM6dkOf/y38yshiqWVCJiXUTcm6efAh4EJgOnkLrNJ/89NU+fAlwTyS+BiZIOBk4E2iJiQ0Q8AbQBs/O8F0bEHZF+RXdNybrMzKwGqnL3l6QpwF8CdwIHRcQ6SIkHODAXmww8UrJYZ471F+8sEzczsxqp+IV6SfsB3wP+LiL+0M9lj3IzYhjxcnWYQzpNxkte8pKBqmzD0NLSQkdHx5CW6exM3wkaGxuHvL2pU6dywQUXDHk5s5Hq7OzkyU1PcctDC2tdlUJt3LSe6Nw84vVUtKUiqY6UUL4dEd/P4cfyqSvy3/U53gkcWrJ4I7B2gHhjmfjzRMSVETEjImY0NDSMbKesMJs3b2bz5pG/iM1s9KhYSyXfiXU18GBEfKFk1iKgGfhc/ntjSfw8SQtJF+WfjIh1kpYC/1JycX4WcFFEbJD0VB487E7gTMD3p9bIcFoNPcu0tLQMUNJs9GhsbETPPM5bjjij1lUp1C0PLWRy48h/hFzJ01+vBz4A3CdpRY59ipRMrpN0NvA74N153mLgJKAD2AR8ECAnj88Cd+dyn4mIDXn6HGABMAFYkh9mZlYjFUsqEfFzyl/3ADihTPkAzu1jXfOB+WXi7cBRI6immVVQNa+1+Trb6OBf1JvZqOLrbGObk4qZVYyvte153EuxmZkVxknFzMwK49NfZn0YzkXm4Vq9ejUwvNNFw+GL2lYpTipmfejo6GD5quUwsQob25H+LH90eeW3tbHym7A9l5OKWX8mwo7jdtS6FoUad6vPelvl+NVlZmaFcUuF9GOrcZueZJ8Hbqp1VQo1btPjdHZuq3U1zGwP4paKmZkVxi0VUncQjz2zF1uOPLnWVSnUPg/cRGPji2tdDTPbg7ilYmZmhXFSMTOzwjipmJlZYZxUzMysML5Qb2YDcpc1NliVHE54PnAysD4ijsqxS4APAV252KciYnGedxFwNrAduCAilub4bOBLwHjg6xHxuRw/DFgIHADcC3wgIp6t1P6Y7ck6Ojp4aMUKqnEvYc/pk40rVvRbrgi/r/gW9jyVbKksAP4TuKZX/PKI+PfSgKQjgTOAVwCHAD+R9LI8+8vATKATuFvSooh4APh8XtdCSV8lJaQrKrUzZnu6FwNn9zmY69h0NVHrKux2KnZNJSJuAzYMWDA5BVgYEc9ExG9I49Qfkx8dEfFwboUsBE6RJOB44Ia8fCtwaqE7YGZmQ1aLC/XnSVopab6k/XNsMvBISZnOHOsrPgnYGBHbesXLkjRHUruk9q6urr6KmZnZCFU7qVwBHA5MB9YB/5Hj5drUMYx4WRFxZUTMiIgZDQ0NQ6uxmZkNWlXv/oqIx3qmJV0F9PTg2AkcWlK0EVibp8vFu4GJkvbKrZXS8mZmViNVTSqSDo6IdfnpO4H78/Qi4DuSvkC6UD8NuIvUIpmW7/R6lHQx/68jIiTdApxGus7SDNw4krqN27ShKr0Ua8sfAIh9XljxbY3btAGqcr+OmVlSyVuKrwWOA+oldQJzgeMkTSedqloDfBggIlZJug54ANgGnBsR2/N6zgOWkm4pnh8Rq/ImPgEslHQpsBy4erh1nTp16nAXHbLVq58CYNrh1fiwf3FV983MrGJJJSLeWybc5wd/RFwGXFYmvhhYXCb+MOnusBGr5g+ferbV0tJStW2amVWLu2kxM7PCOKmYmVlhnFTMzKwwTipmZlYYJxUzMyuMk4qZmRXGScXMzArjpGJmZoXxyI+2C4/wZ2Yj4aRiu+jo6OB/7r+Xl+y3veLbesHW1FDesubuim/rd0+Pr/g2zMxJZUSG861+JN/Oq/VN+yX7befiGU9XfDvVdGn7frWuwpjW2dnJU+x+IyWuA57u7Kx1NXYrTipVNmHChFpXwcysYpxURsDn521P0djYyMbu7t1yjPqJjY21rsZuxUnFrA+dnZ3wJIy7dTe7SXIjdIZP+Vhl7GbvFjMzq6VKDtI1HzgZWB8RR+XYAcB3gSmkQbreExFPSBLwJeAkYBNwVkTcm5dpBi7Oq700Ilpz/GhgATCBNN7KRyNi97qKaDXV2NhIl7rYcdyOWlelUONuHUfjZJ/yscqoZEtlATC7V+yTwM0RMQ24OT8HaCINITwNmANcAc8lobnAa0kDcs2VtH9e5opctme53tsyM7Mqq1hSiYjbgA29wqcArXm6FTi1JH5NJL8EJko6GDgRaIuIDRHxBNAGzM7zXhgRd+TWyTUl6zIzsxqp9jWVgyJiHUD+e2COTwYeKSnXmWP9xTvLxM3MrIZGy4X6cvcpxjDi5VcuzZHULqm9q6trmFU0M7OBVDupPJZPXZH/rs/xTuDQknKNwNoB4o1l4mVFxJURMSMiZjQ0NIx4J8zMrLxq/05lEdAMfC7/vbEkfp6khaSL8k9GxDpJS4F/Kbk4Pwu4KCI2SHpK0rHAncCZwLxq7oiZ7bk2blrPLQ8trPh2nt7yBAD77bP/ACVHbuOm9Uxm0ojXU8lbiq8FjgPqJXWS7uL6HHCdpLOB3wHvzsUXk24n7iDdUvxBgJw8Pgv09Dj4mYjoufh/DjtvKV6SH2ZmFTV16tSqbWv16vRxN/nwkX/YD2QykwrZt4ollYh4bx+zTihTNoBz+1jPfGB+mXg7cNRI6mhmNlTV7J6pZ1stLS1V2+ZIuZsW20VnZyd/fGr8bter72+fGs+fuDdas4obLXd/mZnZbsAtFdtFY2MjW7at2y3HU9nHvdGaVZyTiplZFVRzUL9aDp3tpGLWn41V6vq+p2FYjUtZGxlW/xO/pzojPz6e/1b+fqe0TxOrsJ3hGouD+jmpmPWhureOpm+k0yZPq/zGJg9936p5LLrysZg4rfLHYiLV27c9ZVA/JxWzPvjW0Z18LGywfPeXmZkVxknFzMwK49NfZlYxe8odT7aTk4qZjSpj8Y4n28lJxZ7nd09Xp5uWxzals68H7Vv5MeB/9/R4XlbxrVhvbjnseZxUbBfVvHX02XyaY58plb919GVUd9/M9lROKrYL3zpqZiPhu7/MzKwwTipmZlaYmpz+krQGeArYDmyLiBmSDgC+C0wB1gDviYgnJAn4EmlkyE3AWRFxb15PM3BxXu2lEdFazf0wK8e30dqerJYtlbdExPSImJGffxK4OSKmATfn5wBNwLT8mANcAZCT0FzSmPbHAHNLxrI3G1MmTJjgW2lttzCaLtSfQhrTHqAVuBX4RI5fk4cc/qWkiZIOzmXbesasl9QGzAaurW61Dar77RxG9zf00Vovs2qoVUslgGWS7pE0J8cOioh1APnvgTk+GXikZNnOHOsr/jyS5khql9Te1dVV4G7YSPjbudnup1YtlddHxFpJBwJtkh7qp6zKxKKf+PODEVcCVwLMmDGj8gNC7IH87dzMoEYtlYhYm/+uB35AuibyWD6tRf67PhfvBA4tWbwRWNtP3MzMaqTqSUXSn0j6055pYBZwP7AIaM7FmoEb8/Qi4EwlxwJP5tNjS4FZkvbPF+hn5ZiZmdVILU5/HQT8IN0pzF7AdyLivyTdDVwn6Wzgd8C7c/nFpNuJO0i3FH8QICI2SPoscHcu95mei/ZmZlYbSjdV7TlmzJgR7e3tta6GmdmYIumekp+A9Mm/qDczs8I4qZiZWWGcVMzMrDBOKmZmVpg97kK9pC7gtzWuRj3QXeM6jBY+Fjv5WOzkY7HTaDkWL42IhoEK7XFJZTSQ1D6Yuyj2BD4WO/lY7ORjsdNYOxY+/WVmZoVxUjEzs8I4qdTGlbWuwCjiY7GTj8VOPhY7jalj4WsqZmZWGLdUzMysME4qo0ge1fIjJc8PkXRDnj5L0n/2sdzTFarPFEn3D6H8qZKOHKDMcZJu6mPeGkn1Q61nmfVU5HhU2lCPt41eRf8ve94bvT8jRiMnlVFC0nhgIvDcCyYi1kbEabWr1ZCdCvSbVMysf5L66z1+l8+I0chJpYSkMyWtlPQrSd+U9FJJN+fYzZJeksstkNQi6ReSHpZ0Wo5/V9JJJetbIOldksZL+jdJd+d1fTjPP07SLZK+A9wHfA44XNKKXL73t51DJf2XpF9LmtvHPnysZDufLuCwjJd0laRVkpZJmiDpQ3kbv5L0PUn7Svo/wDuAf8v1P1zSVEk/yeXulXR4Xud+km6Q9JCkbyuPg5B9TNJd+TE179PbJd0paXle30E5vp+kb0i6L+/vu3odi3pJd0h6WwHHYdDymEE/zvt9v6TTJR0t6WdKQ2gv1c4B6Y7O5e4Azi1ZxxRJt+fjdm8+vj2vmVv7OX6jgqSPS7ogT18u6ad5+gRJ35J0hdIQ36tKX6eSTsr79fP8Hrspxw+Q9MP8f/6lpFfm+CWS5udj8nDPNkeJQb134LnPii9IugX4vKRJeZnlkr7GzpFue39GKP+9P78PTs/rO07SbZJ+IOkBSV+VVJ3P+4jwI92s8Arg10B9fn4A8COgOT//G+CHeXoBcD0pKR8JdOT4O4HWPP0C4BFgAjAHuDjH9wbagcOA44A/AofleVOA+0vq9Nxz4CxgHTApr/N+YEae93T+O4t0p4hy3W4C3jSCYzIF2AZMz8+vA94PTCopcylwfslxOa1k3p3AO/P0PsC+eZ+fJI3UOQ64A3hDLrMG+Kc8fSZwU57en503lfxf4D/y9OeBL5Zsb/+e40Eat+dOYGYNXksiWTEUAAAH60lEQVTvAq4qef4i4BdAQ35+OjA/T68E3pyn/63k/70vsE+enga05+k+j99oegDHAtfn6duBu4A6YC7wYeCAPG88cCvwyvwaeaTk/XBtyWtgHjA3Tx8PrMjTl+Rjuzfpl+ePA3WjYP+H8965CRifn7cA/5yn30YaKr2e539GvAtoy8fxINJYVAfn18kW4M/yvDZK3puVfLilstPxwA0R0Q1pEDDgdcB38vxvAm8oKf/DiNgREQ+Q/pkAS4DjJe0NNAG3RcRm0of9mZJWkD7oJpE+KADuiojfDLKObRHxeF7n93vVh7ydWcBy4F7giJLtDNdvImJFnr6H9KI+Kn+Lvg94Hykh70JpdM/JEfEDgIjYEhGb8uy7IqIzInYAK/I6e1xb8vd1eboRWJq397GS7b0V+HLPghHxRJ6sA24GPh4RbcPa65G5D3irpM9LeiNp2OujgLb8GrgYaJT0ImBiRPwsL/fNknXUAVflfb6eXU8r9nf8Rot7gKPz6+AZUvKbAbyRlGTeI+le0mv1FaT9OwJ4uOT9cG3J+t5APj4R8VNgUj5+AD+OiGfye3c9O9+PtTbU9871EbE9T78J+BZARPwYeILy3gBcGxHbI+Ix4GfAa/K8uyLi4bzOa3n+50VF1GLkx9FKpG8D/Smd/0yvZYmILZJuBU4kfRu9tmT++RGxy3DHko4jtVQGq3f9ej8X8K8R8bUhrHMgpfu5ndRKWgCcGhG/knQW6VtRb/2dkum9ztLXYZSZngd8ISIW5WN2Sck2yv3PtpHexCeS3mRVFRH/I+lo0oil/0r6lrgqIl5XWk7SRPp+zf098BjwKlKLZEvJvP6O36gQEVslrSGN1PoLUovsLcDhwGbgH4HXRMQTkhaQWin9vWbKzes5dqP1eAz1vdP7s2Awv/fo75gN9HlREW6p7HQz6dvTJEjncElvhjPy/PcBPx/EehaS3khvBHqSyFLgHEl1ed0vk/QnZZZ9CvjTftY9M59bnkC6KP7fveYvBf5G0n55O5MlHTiIOg/VnwLr8v68ryT+XP0j4g9Ap6RTc1327jl/PIDTS/7ekadfBDyap5tLyi4Dzut5Imn/PBmk05VHSPrkYHeqKJIOATZFxLeAfwdeCzRIel2eXyfpFRGxEXhSUs83yNJj+SJgXW6NfIB0CmOsuY2UPG4jtU7+ltSyeiHpA/RJpetjTbn8Q8CfSZqSn5/ea13vg+e+jHXn19hY09d7p7fS/W0inQKG539G3AacrnTdtoHUwrkrzztG0mH5WsrpDO7za8RGS0avuYhYJeky4GeStpOa5RcA8yV9DOgiJYuBLAOuARZFxLM59nVS0/fefFG1i5QUetfhcUn/rXRxfgklp3ayn5NOAUwFvhMR7b2WXybp5cAd+drt06TzuOsHUe+h+H+k03i/JZ3q6XmRLySdsrkAOI30Yfg1SZ8BtgLvHsS695Z0J+kLz3tz7BLgekmPAr8kXY+CdE76y/l4bQc+TTotSERsl3QG8CNJf4iIr4xgf4fqL0g3LOwg7fc5pNZTSz5lsxfwRWAV6TU1X9Imdn4JAfgK8D1J7wZuYWgt2tHiduCfgDsi4o+StgC352/py0n7/zD5y1FEbFa6Xfa/JHWz88MR0mvgG5JWApvY9cvFWNLXe6e3TwPX5lOEPyNdKyn3GfFx0mniX5G+TH08In4v6QjSl7LPkV6PtwE/qNhelfAv6s1s1JC0X0Q8nb98fRlYHRGX17peY01uzf1jRJxc7W379JeZjSYfyjczrCKdAizy+qBVgVsqZmZWGLdUzMysME4qZmZWGCcVMzMrjJOK2SBoBL3Oqp+emYe4nrPyb2AGKldIb89mw+GkYjZ2nAUMmFTMaslJxWzw9pLUqtRT7g1KvTOfkHuSvU+pt9y9ASTNVu5tF/irHBsnaXX+5XPP847erYr86+gF2tnz7N8r9YQ9A/i2Ug+1b5P0g5JlZkr6fu8KS3q/Uo/PKyR9TWmIBbOKcVIxG7w/B66MiFcCfwAuJPXldHpE/AXpl/LnSNoHuAp4O6m7nhcD5C5XvsXO7jneCvyqpxPTEtNJnXEeldf7jYi4gdS79fsiYjqwGHh5T4Ii/TL/G6Uryb0rnA68Pi+znf67BjEbMScVs8F7JCJ6+lv7FnACqSfa/8mxVlLfS0fk+OpIPwT7Vsk65pO69YfUP9kuiSB7mNQH1jxJs0kJbBd5vd8E3p87pnwdqduOUicARwN35x8UnkDqCt2sYtz3l9ngDeWXwmXLRsQjkh6TdDypo8n35VNS9+QiiyLinyW9itTL8rnAe0gJqLdvkMb82ULqNn1br/kije9z0RDqbTYibqmYDd5LenoaJnV2+RNgivIIlaQONH9G6m33MO0c6fK9u66Gr5NaL9flcTC2R8T0/PjnfI1lXER8j9QB4avzcrv0UBsRa4G1pPFZFpSp783AaT09Vecerl863J03GwwnFbPBexBozj3lHgBcTrqWcb3SoEs7gK9GxBbSaJ8/zhfqf9trPYuA/Sh/6gtgMnBrPmW1AOhpaSwAvpovuk/IsW+TTss90HslOXYxsCzXuY00KqBZxbjvL7MqkzQDuDwi3ljAuv4TWB4RV4+8ZmYj52sqZlWUBw07hwLuwpJ0D2mclX8Y6brMiuKWipmZFcbXVMzMrDBOKmZmVhgnFTMzK4yTipmZFcZJxczMCuOkYmZmhfn/omI6QJGqFD4AAAAASUVORK5CYII=\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": 18,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6de4e195f8>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6de4d8ddd8>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"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": 20,
"metadata": {
"collapsed": 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": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": 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": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 23,
"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": 24,
"metadata": {
"collapsed": 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": 24,
"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": 25,
"metadata": {
"collapsed": 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": 25,
"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": 26,
"metadata": {
"collapsed": 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": 26,
"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": 27,
"metadata": {
"collapsed": 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": 27,
"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": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"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": 31,
"metadata": {
"collapsed": 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": 31,
"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": 32,
"metadata": {
"collapsed": 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": 32,
"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": 33,
"metadata": {
"collapsed": 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": 33,
"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": 34,
"metadata": {
"collapsed": 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": 34,
"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": 36,
"metadata": {
"collapsed": 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": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_pat = df[['body-style','price']]\n",
"#df_pat.head()\n",
"df_pat2 = df_pat.groupby(['body-style'],as_index=False).mean()\n",
"df_pat2"
]
},
{
"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": 37,
"metadata": {
"collapsed": true
},
"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": 38,
"metadata": {
"collapsed": false,
"scrolled": 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": 39,
"metadata": {
"collapsed": 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": 40,
"metadata": {
"collapsed": 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": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"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": 41,
"metadata": {
"collapsed": true
},
"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": 42,
"metadata": {
"collapsed": 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": 43,
"metadata": {
"collapsed": 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": 44,
"metadata": {
"collapsed": 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": 45,
"metadata": {
"collapsed": 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": 46,
"metadata": {
"collapsed": 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": 47,
"metadata": {
"collapsed": 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": 48,
"metadata": {
"collapsed": 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": 49,
"metadata": {
"collapsed": 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": 50,
"metadata": {
"collapsed": 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": 66,
"metadata": {
"collapsed": 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": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#print(df_gptest)\n",
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)\n",
"#df_gptest1 = df[['drive-wheels','price']]\n",
"#df_gptest1.head(10)\n",
"#grouped_test1 = df_gptest1[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"#grouped_test1.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"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>5</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>17710.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>18920.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>23875.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16430.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16925.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>20970.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21105.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>24565.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>30760.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>41315.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>36880.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>5151.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6295.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>6575.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>5572.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6377.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>7957.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6229.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>6692.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7609.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8558.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>8921.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>12964.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6479.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>171</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>9988.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>172</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>10898.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>173</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>11248.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>174</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16558.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>175</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>15998.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>176</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>15690.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>177</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>15750.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>178</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7775.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>179</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7975.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>180</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7995.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>181</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8195.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>182</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>183</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>184</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9995.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>185</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>186</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>9980.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>187</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13295.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>188</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>189</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>12290.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>190</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>12940.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>191</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>13415.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>192</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>15985.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16515.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>194</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>18420.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>195</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>18950.0</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",
"5 fwd sedan 15250.0\n",
"6 fwd sedan 17710.0\n",
"7 fwd wagon 18920.0\n",
"8 fwd sedan 23875.0\n",
"9 rwd sedan 16430.0\n",
"10 rwd sedan 16925.0\n",
"11 rwd sedan 20970.0\n",
"12 rwd sedan 21105.0\n",
"13 rwd sedan 24565.0\n",
"14 rwd sedan 30760.0\n",
"15 rwd sedan 41315.0\n",
"16 rwd sedan 36880.0\n",
"17 fwd hatchback 5151.0\n",
"18 fwd hatchback 6295.0\n",
"19 fwd sedan 6575.0\n",
"20 fwd hatchback 5572.0\n",
"21 fwd hatchback 6377.0\n",
"22 fwd hatchback 7957.0\n",
"23 fwd hatchback 6229.0\n",
"24 fwd sedan 6692.0\n",
"25 fwd sedan 7609.0\n",
"26 fwd sedan 8558.0\n",
"27 fwd wagon 8921.0\n",
"28 fwd hatchback 12964.0\n",
"29 fwd hatchback 6479.0\n",
".. ... ... ...\n",
"171 fwd hatchback 9988.0\n",
"172 fwd sedan 10898.0\n",
"173 fwd hatchback 11248.0\n",
"174 rwd hatchback 16558.0\n",
"175 rwd hatchback 15998.0\n",
"176 rwd sedan 15690.0\n",
"177 rwd wagon 15750.0\n",
"178 fwd sedan 7775.0\n",
"179 fwd sedan 7975.0\n",
"180 fwd sedan 7995.0\n",
"181 fwd sedan 8195.0\n",
"182 fwd sedan 8495.0\n",
"183 fwd sedan 9495.0\n",
"184 fwd sedan 9995.0\n",
"185 fwd convertible 11595.0\n",
"186 fwd hatchback 9980.0\n",
"187 fwd sedan 13295.0\n",
"188 fwd sedan 13845.0\n",
"189 fwd wagon 12290.0\n",
"190 rwd sedan 12940.0\n",
"191 rwd wagon 13415.0\n",
"192 rwd sedan 15985.0\n",
"193 rwd wagon 16515.0\n",
"194 rwd sedan 18420.0\n",
"195 rwd wagon 18950.0\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": 55,
"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": 58,
"metadata": {
"collapsed": 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": 58,
"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": 67,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": false,
"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": 70,
"metadata": {
"collapsed": 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 3",
"language": "python",
"name": "python3"
},
"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.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment