Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save aganbal/812513c5a399fdf94d6b02a6b4dbaeb1 to your computer and use it in GitHub Desktop.

Select an option

Save aganbal/812513c5a399fdf94d6b02a6b4dbaeb1 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/DA0101EN_edx_link_Notebook_link_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/edx_DA0101EN_objectstorage\">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": 12,
"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": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['bore','stroke' ,'compression-ratio','horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56297.41080572399)"
]
},
"execution_count": 14,
"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": 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>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": 15,
"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": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fb366fb25f8>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.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": 17,
"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": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()\n",
"#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": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fb366f0e438>"
]
},
"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.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": 19,
"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": 19,
"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": 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>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": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke','price']].corr()\n"
]
},
{
"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": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fb38e8dff60>"
]
},
"execution_count": 21,
"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": 23,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fb366e88908>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fb366dd64a8>"
]
},
"execution_count": 24,
"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": 25,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fb366dc4a58>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEKCAYAAADaa8itAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzt3X18HdV95/HPV0aAE0psLMUQC2qKlQRCXSco4CxNmxAsLDeJaZNuybblvihbkxQwWZoG2HZf5Im+kt1t6JomBAJORJLW0CRdXGrVFk+BdHmSgxFPoVaABBUHJAwEwpONfvvHHMFFXD3YntHoSt/363Vfd+Y3Z+ae4WL97pk5c44iAjMzszw0lF0BMzObPpxUzMwsN04qZmaWGycVMzPLjZOKmZnlxknFzMxy46RiZma5cVIxM7PcOKmYmVlu9iq7ApOtqakpFi5cWHY1zMzqyubNmwcjonm8cjMuqSxcuJCenp6yq2FmVlck/XQi5Xz5y8zMcuOkYmZmuXFSMTOz3DipmJlZbpxUppHBwUHOPPNMnnjiibKrYmYzlJPKNNLZ2Ulvby+dnZ1lV8XMZignlWlicHCQrq4uIoKuri63VsysFIUnFUmzJN0p6Zq0/k1JD0nakl5LUlyS1kjqk9Qr6V1Vx6hI2ppelar4UZLuTvuskaSiz2eq6uzsZHhq6KGhIbdWzKwUk9FSOQu4f0TsLyJiSXptSbEOoDW9VgEXA0g6ADgfOAY4Gjhf0ty0z8Wp7PB+y4s8kamsu7ubHTt2ALBjxw42bdpUco3MbCYqNKlIagF+B7hsAsVXAldE5lZgjqSDgBOA7ojYHhFPAt3A8rRt/4i4JbKf6FcAJxZzJlPfsmXLaGxsBKCxsZH29vaSa2RmM1HRLZW/BT4NDI2IX5AucV0oaZ8UWwA8UlWmP8XGivfXiL+OpFWSeiT1DAwM7PbJTGWVSoXhq38NDQ1UKpVx9jAzy19hSUXSB4HHI2LziE3nAW8H3g0cAJwzvEuNw8RuxF8fjLg0Itoioq25edzx0OpSU1MTHR0dSKKjo4N58+aVXSUzm4GKbKkcC3xY0sPAOuA4Sd+OiG3pEteLwDfI7pNA1tI4uGr/FuDRceItNeIzVqVSYfHixW6lmFlpCksqEXFeRLRExELgJOD6iPijdC+E1FPrROCetMt64OTUC2wp8HREbAM2Au2S5qYb9O3AxrTtGUlL07FOBq4u6nzqQVNTExdddJFbKWZWmjKGvv+OpGayy1dbgI+n+AZgBdAHPAecAhAR2yV9HrgjlftcRGxPy58AvgnMBrrSy8zMSqLhZxtmira2tvB8KmZmu0bS5ohoG6+cn6g3M7PcOKmYmVlunFTMzCw3TipmZpYbJxUzM8uNk4qZmeXGScXMzHLjpGJmZrlxUplGPEe9mZXNSWUa8Rz1ZlY2J5VpYnBwkA0bNhARbNiwwa0VMyuFk8o00dnZyc6dO4FsOmG3VsysDE4q08SmTZsYHhw0Iti4cWPJNTKzmchJZZqYP3/+mOtmZpPBSWWaeOyxx8ZcNzObDIUnFUmzJN0p6Zq0fqik2yRtlXSlpL1TfJ+03pe2L6w6xnkp/oCkE6riy1OsT9K5RZ/LVNbe3k42ASZI4oQTThhnDzOz/E1GS+Us4P6q9S8BF0ZEK/AkcGqKnwo8GRGLgAtTOSQdQTYd8TuA5cBXU6KaBXwF6ACOAD6Wys5IlUqFxsZGABobGz1PvZmVotCkIqkF+B3gsrQu4Djgu6lIJ9k89QAr0zpp+wdS+ZXAuoh4MSIeIptu+Oj06ouIByPiJWBdKjsjNTU10dHRgSRWrFjheerNrBRFt1T+Fvg0MJTW5wFPRcTOtN4PLEjLC4BHANL2p1P5V+Ij9hktPmNVKhUWL17sVoqZlaawpCLpg8DjEbG5OlyjaIyzbVfjteqySlKPpJ6BgYExal3fmpqauOiii9xKMbPSFNlSORb4sKSHyS5NHUfWcpkjaa9UpgV4NC33AwcDpO1vArZXx0fsM1r8dSLi0ohoi4i25ubmPT8zMzOrqbCkEhHnRURLRCwku9F+fUT8IXAD8NFUrAJcnZbXp3XS9usje5pvPXBS6h12KNAK3A7cAbSm3mR7p89YX9T5mJnZ+PYav0juzgHWSfoCcCdweYpfDnxLUh9ZC+UkgIi4V9JVwH3ATuD0iHgZQNIZwEZgFrA2Iu6d1DMxM7PX0PDQHjNFW1tb9PT0lF0NM7O6ImlzRLSNV85P1JuZWW6cVMzMLDdOKmZmlhsnFTMzy42TipmZ5cZJZRoZHBzkzDPP9FTCZlYaJ5Vp5JJLLuGuu+7ikksuKbsqZjZDOalME4ODg3R3dwPZ1MJurZhZGZxUpolLLrmEoaFsMOihoSG3VsysFE4q08R11133mvVrr722pJqY2UzmpDJNjBxuZ6YNv2NmU4OTyjRx/PHHv2Z92bJlJdXEzGYyJ5Vp4rTTTqOhIfs6GxoaOO2000qukZnNRGUMfT+jrVmzhr6+vkKOvddee/HSSy/xpje9ic9+9rO5HnvRokWsXr0612Oa2fTjlso0MmvWLBoaGnjLW95SdlXMbIZyS2WSFflrf/jYa9asKewzzMzGUlhLRdK+km6XdJekeyV9NsW/KekhSVvSa0mKS9IaSX2SeiW9q+pYFUlb06tSFT9K0t1pnzWSVNT5mJnZ+IpsqbwIHBcRz0pqBH4oqStt+4uI+O6I8h1k88+3AscAFwPHSDoAOB9oAwLYLGl9RDyZyqwCbgU2AMuBLszMrBSFtVQi82xabUyvsR6eWAlckfa7FZgj6SDgBKA7IranRNINLE/b9o+IWyJ7KOMK4MSizsfMzMZX6I16SbMkbQEeJ0sMt6VNF6RLXBdK2ifFFgCPVO3en2JjxftrxGvVY5WkHkk9AwMDe3xeZmZWW6FJJSJejoglQAtwtKQjgfOAtwPvBg4AzknFa90Pid2I16rHpRHRFhFtzc3Nu3gWZmY2UZPSpTgingJuBJZHxLZ0ietF4BvA0alYP3Bw1W4twKPjxFtqxM3MrCRF9v5qljQnLc8Gjgd+nO6FkHpqnQjck3ZZD5yceoEtBZ6OiG3ARqBd0lxJc4F2YGPa9oykpelYJwNXF3U+ZmY2viJ7fx0EdEqaRZa8roqIayRdL6mZ7PLVFuDjqfwGYAXQBzwHnAIQEdslfR64I5X7XERsT8ufAL4JzCbr9eWeX2ZmJSosqUREL/DOGvHjRikfwOmjbFsLrK0R7wGO3LOamplZXjxMi5mZ5cZJxczMcuOkYmZmuXFSMTOz3DipmJlZbpxUzMwsN04qZmaWGycVMzPLjZOKmZnlxknFzMxy46RiZma5cVIxM7PcOKmYmVlunFTMzCw3TipmZpabImd+3FfS7ZLuknSvpM+m+KGSbpO0VdKVkvZO8X3Sel/avrDqWOel+AOSTqiKL0+xPknnFnUuZmY2MUW2VF4EjouI3wCWAMvTNMFfAi6MiFbgSeDUVP5U4MmIWARcmMoh6QjgJOAdwHLgq5JmpRklvwJ0AEcAH0tlzcysJIUllcg8m1Yb0yuA44Dvpngn2Tz1ACvTOmn7B9Lc8yuBdRHxYkQ8RDbd8NHp1RcRD0bES8C6VNbMzEpS6D2V1KLYAjwOdAM/AZ6KiJ2pSD+wIC0vAB4BSNufBuZVx0fsM1rczMxKUmhSiYiXI2IJ0ELWsji8VrH0rlG27Wr8dSStktQjqWdgYGD8ipuZ2W6ZlN5fEfEUcCOwFJgjaa+0qQV4NC33AwcDpO1vArZXx0fsM1q81udfGhFtEdHW3NycxymZmVkNRfb+apY0Jy3PBo4H7gduAD6ailWAq9Py+rRO2n59RESKn5R6hx0KtAK3A3cArak32d5kN/PXF3U+ZmY2vr3GL7LbDgI6Uy+tBuCqiLhG0n3AOklfAO4ELk/lLwe+JamPrIVyEkBE3CvpKuA+YCdwekS8DCDpDGAjMAtYGxH3Fng+ZmY2jsKSSkT0Au+sEX+Q7P7KyPgLwO+PcqwLgAtqxDcAG/a4smZmlgs/UW9mZrlxUjEzs9w4qZiZWW6cVMzMLDdOKmZmlhsnFTMzy42TipmZ5cZJxczMcjPhpCLpVyUdn5ZnS/qV4qplZmb1aEJJRdKfks1xckkKtQD/t6hKmZlZfZpoS+V04FjgFwARsRV4c1GVMjOz+jTRpPJiml0ReGVo+ppzl5iZ2cw10aTyA0n/HZgtaRnwj8A/F1ctMzOrRxNNKucCA8DdwGlkIwP/VVGVMjOz+jTRoe9nk81X8nXI5p5PseeKqpiZmdWfibZUriNLIsNmA9fmXx0zM6tnE00q+0bEs8MrafkNY+0g6WBJN0i6X9K9ks5K8c9I+g9JW9JrRdU+50nqk/SApBOq4stTrE/SuVXxQyXdJmmrpCvTtMJmZlaSiSaVX0p61/CKpKOA58fZZyfw5xFxOLAUOF3SEWnbhRGxJL02pGMeQTaF8DuA5cBXJc1Kl9q+AnQARwAfqzrOl9KxWoEngVMneD5mZlaAid5T+STwj5IeTesHAX8w1g4RsQ3YlpafkXQ/sGCMXVYC6yLiReChNFf98LTDfWkaYiStA1am4x0H/JdUphP4DHDxBM/JzMxyNqGWSkTcAbwd+ATwZ8DhEbF5oh8iaSHZfPW3pdAZknolrZU0N8UWAI9U7dafYqPF5wFPRcTOEfFan79KUo+knoGBgYlW28zMdtGYSUXScen994APAW8FWoEPpdi4JO0HfA/4ZET8gqwlcRiwhKwl8zfDRWvsHrsRf30w4tKIaIuItubm5olU28zMdsN4LZXfTu8fqvH64HgHl9RIllC+ExHfB4iIxyLi5YgYAr7Oq5e4+oGDq3ZvAR4dIz4IzElP91fHzerO4OAgZ555Jk888UTZVTHbI2MmlYg4X1ID0BURp4x4/clY+0oScDlwf0R8uSp+UFWx3wXuScvrgZMk7SPpULIW0e3AHUBr6um1N9nN/PUREcANwEfT/hXg6gmet9mU0tnZSW9vL52dnWVXxWyPjHtPJbUoztiNYx8L/DFw3Ijuw/9T0t2SeoH3A/8tfc69wFXAfcC/AqenFs3O9PkbgfuBq1JZgHOAs9NN/XlkScysrgwODtLV1UVE0NXV5daK1bWJ9v7qlvQp4Ergl8PBiNg+2g4R8UNq3/fYMMY+FwAX1IhvqLVf6hF29Mi4WT3p7Owka3jD0NAQnZ2dnH322SXXymz3TPQ5lT8h6/X1A6Cn6mVme6i7u5sdO3YAsGPHDjZt2lRyjcx230STyhFkDyDeBWwBLiJ7SNHM9tCyZctobGwEoLGxkfb29pJrZLb7JppUOoHDgTVkCeXwFDOzPVSpVMj6tUBDQwOVSqXkGpntvokmlbdFxH+NiBvSaxXwtiIrZjZTNDU10dHRgSQ6OjqYN29e2VUy220TTSp3Slo6vCLpGODfiqmS2cxTqVRYvHixWylW9zTc62TMQtk4W28DfpZCh5B17x0CIiIWF1bDnLW1tUVPz/h9DNasWUNfX98k1Cg/W7duBaC1tbXkmkzcokWLWL16ddnVMLNxSNocEW3jlZtol+Lle1ifutPX18edd9/H0BsOKLsqE6aXsh8Im3/y85JrMjENz43aI93M6tSEkkpE/LToikxFQ284gBeOGHc0GttN+953TdlVMLOcTfSeipmZ2bicVMzMLDdOKmZmlhsnFTMzy42TipmZ5cZJxczMcuOkYmZmuSksqUg6WNINku6XdK+ks1L8AEndkram97kpLklrJPVJ6pX0rqpjVVL5rZIqVfGj0oRffWnfWvO3mJnZJCmypbIT+POIOBxYCpwu6QjgXOC6iGgFrkvrAB1kUwi3AquAiyFLQsD5wDFkE3KdP5yIUplVVfvNuCf/zcymksKSSkRsi4gfpeVnyMYKWwCs5NVh8zuBE9PySuCKyNwKzEnz2Z8AdEfE9oh4EugGlqdt+0fELWm++iuqjmVmZiWYlHsqkhYC7wRuA+ZHxDbIEg/w5lRsAfBI1W79KTZWvL9G3MzMSlJ4UpG0H/A94JMR8YuxitaIxW7Ea9VhlaQeST0DAwPjVdnMzHZToUlFUiNZQvlORHw/hR9Ll65I74+neD9wcNXuLcCj48RbasRfJyIujYi2iGhrbm7es5MyK8Dg4CBnnnkmTzzxRNlVMdsjRfb+EnA5cH9EfLlq03pguAdXBbi6Kn5y6gW2FHg6XR7bCLRLmptu0LcDG9O2ZyQtTZ91ctWxzOpKZ2cnvb29dHZ6lm6rb0W2VI4F/hg4TtKW9FoBfBFYJmkrsCytA2wAHgT6gK8DfwYQEduBzwN3pNfnUgzgE8BlaZ+fAF0Fno9ZIQYHB9mwYQMRwYYNG9xasbo20Um6dllE/JDa9z0APlCjfACnj3KstcDaGvEe4Mg9qKZZ6To7O9m5cycAO3bsoLOzk7PPPrvkWpntHj9Rb1ayTZs2MTytd0SwcePGkmtktvucVMxKNn/+/DHXzeqJk4pZyX7+85+PuW5WT5xUzEp24IEHjrluU5+7hL/KScWsZG6p1D93CX+Vk4pZydxSqW+Dg4N0dXUREXR1dc341oqTilnJHnvssTHXbWrr7Ox8pffe0NDQjG+tOKmYlay9vZ3hqYAkccIJJ5RcI9sV3d3d7NixA8ieM9q0aVPJNSqXk4pZySqVCnvtlT2H3NjYSKVSGWcPm0qWLVtGY2MjkH1/7e3tJdeoXIU9UV/v+vv7aXjuafa975qyqzJtNTz3BP39O8uuRumamppYsWIF69evZ8WKFcybN6/sKtkuqFQqdHVlI0Q1NDTM+B8FbqmYTQGVSoXFixfP+D9I9aipqYmOjg4k0dHRMeN/FLilMoqWlhYee3EvXjjig2VXZdra975raGlxTyfI/jBddNFFZVfDdlOlUuHhhx/2jwKcVMzM9ph/FLzKl7/MpgA/kW3ThZOK2RTgJ7JtunBSMSuZn8i26aTI6YTXSnpc0j1Vsc9I+o8RM0EObztPUp+kBySdUBVfnmJ9ks6tih8q6TZJWyVdKWnvos7FrEh+ItumkyJv1H8T+DvgihHxCyPif1cHJB0BnAS8A3gLcK2kt6bNXyGbdrgfuEPS+oi4D/hSOtY6SV8DTgUuLupkzADWrFlDX19frsfs7e1laGgIyJ7IXr9+PQ8//HBux1+0aBGrV6/O7XhmYymspRIRNwHbxy2YWQmsi4gXI+Ihsjnnj06vvoh4MCJeAtYBK5WNaXEc8N20fydwYq4nYDZJ5s6dO+a6WT0po0vxGZJOBnqAP4+IJ4EFwK1VZfpTDOCREfFjgHnAUxGxs0b515G0ClgFcMghh+RxDjZDFfGLf3BwkI985CNEBPvssw+XXXbZjH+AzurXZN+ovxg4DFgCbAP+JsVVo2zsRrymiLg0Itoioq25uXnXamxWsKamJg444AAAP5FtdW9SWyoR8cqY3pK+DgwPrNUPHFxVtAV4NC3Xig8CcyTtlVor1eXN6s6BBx7ICy+84Ceyre5NaktF0kFVq78LDPcMWw+cJGkfSYcCrcDtwB1Aa+rptTfZzfz1kXWVuQH4aNq/Alw9GedgVoTGxkZaW1vdSrG6V1hLRdI/AO8DmiT1A+cD75O0hOxS1cPAaQARca+kq4D7gJ3A6RHxcjrOGcBGYBawNiLuTR9xDrBO0heAO4HLizoXMzObmMKSSkR8rEZ41D/8EXEBcEGN+AZgQ434g2S9w8zMbIrwE/VmZpYbj1I8hobnttfVJF164RcAxL77l1yTiWl4bjvgoe/NphMnlVEsWrSo7Crssq1bnwGg9bB6+UN9YF3+dzaz0TmpjKIeh7UYrvOaNWtKromZzVS+p2JmZrlxUjEzs9w4qZiZWW6cVMzMLDdOKmZmlhsnFTMzy427FJvZjFDErJ3D+vv7AWhpacn92PU2c6eTiplNKUX98e/v7+f555/P/bjAK8ct4vj9/f2F/PcoKlk5qZjZlNLX18ed994Jc3I+sIA35HzMYUPZ27NveDb3Qz/Lswz8x0C+B30q38NVc1Ixs6lnDgy9b6jsWkxbDTcWdzvdN+rNzCw3hSUVSWslPS7pnqrYAZK6JW1N73NTXJLWSOqT1CvpXVX7VFL5rZIqVfGjJN2d9lkjqda89WZmNomKvPz1TeDvgCuqYucC10XEFyWdm9bPATrIphBuBY4BLgaOkXQA2YyRbWSzRW6WtD4inkxlVgG3kk3itRzoKvB8rE4U2cunKFu3bgXqbyDTeuuZZMUrcubHmyQtHBFeSTbFMEAncCNZUlkJXJHmnr9V0pw0n/37gO6I2A4gqRtYLulGYP+IuCXFrwBOxEnFyG70/vs9P+KQ/V4uuyoTtveO7KLBCw/fUXJNJu5nz84quwo2BU32jfr5EbENICK2SXpzii8AHqkq159iY8X7a8TNADhkv5f5q7b8e+LYq77Qs1/ZVbApaKrcqK91PyR2I1774NIqST2SegYGcu6aZ2Zmr5jspPJYuqxFen88xfuBg6vKtQCPjhNvqRGvKSIujYi2iGhrbm7e45MwM7PaJjuprAeGe3BVgKur4ienXmBLgafTZbKNQLukuamnWDuwMW17RtLS1Ovr5KpjmZlZSQq7pyLpH8hutDdJ6ifrxfVF4CpJpwI/A34/Fd8ArAD6gOeAUwAiYrukzwPDdy8/N3zTHvgEWQ+z2WQ36H2T3sysZEX2/vrYKJs+UKNsAKePcpy1wNoa8R7gyD2po5lNPf39/fB0sU99z3hPQX/0j19uN/hbMzOz3HjsLzObUlpaWhjQgMf+KlDDjQ20LMh/mH5wS8XMzHLklopNO/39/fzymVl+OK9gP31mFm/sL+a6vNUvJxUzm3qeqrMb9cODN9TL75inKGwMEicVm3ZaWlp4Yec2D9NSsC/07Me+BU2fW2+GBwRtXdBack0maEFx/52dVMxsSilq1ON6HL0a6m8kaCcVM7M9NHv27LKrMGU4qZjZjFBPv/brmZOKTUs/e7a+en899lx2U3r+G+rn2YyfPTuLt5ZdCZtynFQmWZHXdYucPbCeruvW443el9J3t+/COrnRC7yV+vxvbcVyUplGfF03Uy/Jr9pwndesWVNyTcz2jJPKJKvHP3hmZhNVR08XmZnZVOekYmZmuXFSMTOz3JSSVCQ9LOluSVsk9aTYAZK6JW1N73NTXJLWSOqT1CvpXVXHqaTyWyVVRvs8MzObHGW2VN4fEUsioi2tnwtcFxGtwHVpHaADaE2vVcDFkCUhsimKjwGOBs4fTkRmZlaOqdT7ayXZnPYAncCNwDkpfkWacvhWSXMkHZTKdg/PWS+pG1gO/MPkVttmkqKeM/IzRjZdlNVSCWCTpM2SVqXY/IjYBpDe35ziC4BHqvbtT7HR4q8jaZWkHkk9AwMDOZ6GWT5mz57t54xsWiirpXJsRDwq6c1At6Qfj1FWNWIxRvz1wYhLgUsB2traapYxmwj/4jcbWyktlYh4NL0/DvwT2T2Rx9JlLdL746l4P3Bw1e4twKNjxM3MrCSTnlQkvVHSrwwvA+3APcB6YLgHVwW4Oi2vB05OvcCWAk+ny2MbgXZJc9MN+vYUMzOzkpRx+Ws+8E+Shj//7yPiXyXdAVwl6VTgZ8Dvp/IbgBVAH/AccApARGyX9HngjlTuc8M37c3MrBzKOlXNHG1tbdHT01N2NczM6oqkzVWPgIzKT9SbmVlunFTMzCw3TipmZpYbJxUzM8vNjLtRL2kA+GnZ9ShQEzBYdiVst/i7q2/T/fv71YhoHq/QjEsq052knon00LCpx99dffP3l/HlLzMzy42TipmZ5cZJZfq5tOwK2G7zd1ff/P3heypmZpYjt1TMzCw3TiozhKT3Sbqm7HrMZJJWS7pf0nd2cb8bJc34XkVlkzRL0p278+9I0kJJ9xRRr6lmKk0nbLtA2TDPioihsutiE/ZnQEdEPFR2RWy3nAXcD+xfdkWmMrdU6kj6tXO/pK8CDwKXp/hZkh5My4dJ+mFaXi7px2n990qruCHpa8CvAeslPSNpTpoj6AlJJ6cy35J0vKTZktZJ6pV0JeB5hksmqQX4HeCytH60pO+n5ZWSnpe0t6R9q/4tHiXpLkm3AKeXVvlJ5qRSf94GXAG8Bzgyxd4LPCFpAfCbwM2S9gW+DnwobT+whLpaEhEfJ5uZ9P3Ad4BjgXeQ/Th4byq2FLgV+ATwXEQsBi4Ajpr0CttIfwt8Ghi+MvAj4J1p+b1kEw2+GzgGuC3FvwGsjoj3TGI9S+ekUn9+GhG3RsTPgf3SLJoHA38P/BbZ/+A3A28HHoqIrZF18ft2aTW2kW4m+65+C7gY+PX0g2B7RDyb4t8GiIheoLesihpI+iDweERsHo5FxE6gT9LhZNOhf5mqf3+S3gTMiYgfpF2+NcnVLo2TSv35ZdXyLWQzYT5A9ofqvWQtmH9L291ffGq6iey7ei9wIzAAfJTsOxzm727qOBb4sKSHgXXAcZK+TfZ9dQA7gGvJrhL8Jtn3K2bod+ikUt9uAj6V3u8ku7TyYkQ8DfwYOFTSYansx8qpoo0UEY+QDT7YGhEPAj8k+x6Hk8pNwB8CSDoSWFxGPS0TEedFREtELAROAq6PiD8i+54+CdwSEQPAPLIrBPdGxFPA05J+Mx3mD0uoeimcVOrbzWSXvm6KiJeBR8j+QBERLwCrgH9JN+qn88jM9eg24N/T8s3AAtJ3R3ZJbD9JvWTX8W+f/OrZBNwGzCdLLpBdpuyNV58oPwX4SrpR/3wJ9SuFn6g3M7PcuKViZma5cVIxM7PcOKmYmVlunFTMzCw3TipmZpYbJxWzMUj6jKRP1Yh/fHjMrkmow7M5HccjVVvhPEqx2S6StFdEfK3sephNRW6pmI0g6S8lPSDpWrIBPIfnNPlrST8AzhpuwUg6XNLtVfsuTA8tDo9S+wNJmyVtlHRQjc/6tKTVaflCSden5Q+koUCGy12QRry9VdL8FGuW9D1Jd6TXsSn+RklrU+xOSStrfO5vS9qSXnemMeTM9piTilkVSUeRDcXxTrLpAt5dtXlORPx2RPzNcCAi7gf2lvRrKfQHwFWSGoGLgI9GxFHAWrIRh0caHgcMoI3sSfpG0mjTKf5G4NaI+I38gmdJAAAB/ElEQVRU/k9T/P8AF0bEu4GPkIZlB/6SbCiRd5MN3fO/JL1xxOd+Cjg9Ipakz58xT3xbsXz5y+y13gv8U0Q8ByBpfdW2K0fZ5yrgPwNfJEsqf0DWwjkS6M7mU2MWsK3GvpuBo1JL4UWyIdXbUj1WpzIvAddUlV+Wlo8HjkjHB9g/HaedbADE4XtB+wKHjPjcfwO+nGah/H5E9I9ybma7xEnF7PVGG7vol6PErwT+MU3aFBGxVdKvkw0s+Jq5NCQdDPxzWv1aRHwtjX57CvD/yMaPej9wGNksgwA7qsaTeplX/902AO+JiNe0MtKsoB+JiAdGxOe/coIRX5T0L8AK4FZJx0fEj0c5P7MJ8+Uvs9e6CfjdNPvir5BNcjamiPgJ2R/7/8GrrZkHgGZJ7wGQ1CjpHRHxSEQsSa/hm/3Vo03fDHwc2BLjD8y3CThjeEXSkrS4ETgzJRckvXPkjpIOi4i7I+JLQA/Z6Lpme8xJxaxKRPyILDFsAb7Ha+c4GcuVwB+RXQojIl4imyPlS5LuSsf7T6PsezNwENkQ6o8BL0zwc1cDbWna4fvIkhHA54FGoFfSPWl9pE9KuifV7XmgawKfZzYuj1JsZma5cUvFzMxy46RiZma5cVIxM7PcOKmYmVlunFTMzCw3TipmZpYbJxUzM8uNk4qZmeXm/wOJ4wILNo1GjAAAAABJRU5ErkJggg==\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": 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>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": 26,
"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": 27,
"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": 27,
"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": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 28,
"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": 29,
"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": 29,
"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": 30,
"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": 30,
"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": 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>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": 31,
"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": 34,
"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": 34,
"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": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 37,
"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>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": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 38,
"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": 38,
"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": 39,
"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": 39,
"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": 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 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": 40,
"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": 41,
"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": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_1 = df[['body-style','price']]\n",
"gp_1 = df_1.groupby(['body-style'],as_index=False).mean()\n",
"gp_1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"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": 44,
"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": 45,
"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": 46,
"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": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"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": 48,
"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": 49,
"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": 50,
"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": 51,
"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": 52,
"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": 53,
"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": 54,
"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": 55,
"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": 56,
"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": 57,
"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": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>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": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". "
]
},
{
"cell_type": "code",
"execution_count": 59,
"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": 59,
"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": 60,
"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": 61,
"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": 62,
"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": 63,
"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/DA0101EN_edx_link_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