Skip to content

Instantly share code, notes, and snippets.

@AbheeHub
Created March 3, 2020 10:29
Show Gist options
  • Save AbheeHub/66794f84530a93d147c303a11cad2e0e to your computer and use it in GitHub Desktop.
Save AbheeHub/66794f84530a93d147c303a11cad2e0e to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 55743.49489951224)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fa81fdc4208>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fa81fd348d0>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fa81fca1e10>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fa81fc135c0>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fa81fb5d828>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fa81fad7ba8>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"drive-wheels \n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>hatchback</td>\n",
" <td>7603.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>12647.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4wd</td>\n",
" <td>wagon</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>fwd</td>\n",
" <td>hardtop</td>\n",
" <td>8249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>8396.387755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9811.800000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>23949.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>hardtop</td>\n",
" <td>24202.714286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>14337.777778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21711.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 4wd hatchback 7603.000000\n",
"1 4wd sedan 12647.333333\n",
"2 4wd wagon 9095.750000\n",
"3 fwd convertible 11595.000000\n",
"4 fwd hardtop 8249.000000\n",
"5 fwd hatchback 8396.387755\n",
"6 fwd sedan 9811.800000\n",
"7 fwd wagon 9997.333333\n",
"8 rwd convertible 23949.600000\n",
"9 rwd hardtop 24202.714286\n",
"10 rwd hatchback 14337.777778\n",
"11 rwd sedan 21711.833333\n",
"12 rwd wagon 16994.222222"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
".. ... ... ...\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". "
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment