Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Arroak/b31f7f22cb43031382a2c947bd5c8069 to your computer and use it in GitHub Desktop.
Save Arroak/b31f7f22cb43031382a2c947bd5c8069 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"http://cocl.us/DA0101EN_NotbookLink_Top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/cognitive_class_DA0101EN_objectstorage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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": 4,
"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": 5,
"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": 6,
"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": 7,
"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>\n",
"# 64"
]
},
{
"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": 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>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": 9,
"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": 10,
"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>0</th>\n",
" <td>3.47</td>\n",
" <td>2.68</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.47</td>\n",
" <td>2.68</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2.68</td>\n",
" <td>3.47</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3.19</td>\n",
" <td>3.40</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>3.19</td>\n",
" <td>3.40</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>3.78</td>\n",
" <td>3.15</td>\n",
" <td>9.5</td>\n",
" <td>114.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>3.78</td>\n",
" <td>3.15</td>\n",
" <td>8.7</td>\n",
" <td>160.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>3.58</td>\n",
" <td>2.87</td>\n",
" <td>8.8</td>\n",
" <td>134.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>3.01</td>\n",
" <td>3.40</td>\n",
" <td>23.0</td>\n",
" <td>106.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>3.78</td>\n",
" <td>3.15</td>\n",
" <td>9.5</td>\n",
" <td>114.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"0 3.47 2.68 9.0 111.0\n",
"1 3.47 2.68 9.0 111.0\n",
"2 2.68 3.47 9.0 154.0\n",
"3 3.19 3.40 10.0 102.0\n",
"4 3.19 3.40 8.0 115.0\n",
".. ... ... ... ...\n",
"196 3.78 3.15 9.5 114.0\n",
"197 3.78 3.15 8.7 160.0\n",
"198 3.58 2.87 8.8 134.0\n",
"199 3.01 3.40 23.0 106.0\n",
"200 3.78 3.15 9.5 114.0\n",
"\n",
"[201 rows x 4 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke','compression-ratio','horsepower']]"
]
},
{
"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": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56192.65036541746)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# 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": 12,
"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": 12,
"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": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f953845fc50>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"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": 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>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": 14,
"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": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f95383f62b0>"
]
},
"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": [
"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": 16,
"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": 16,
"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": 17,
"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": 17,
"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": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f9538362e10>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# 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": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f95382f4860>"
]
},
"execution_count": 20,
"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": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f953824f240>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"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": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f95381d2c18>"
]
},
"execution_count": 22,
"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": 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>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": 23,
"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": 24,
"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": 24,
"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": 25,
"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": 25,
"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": 26,
"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": 26,
"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": 27,
"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": 27,
"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": 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>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": 28,
"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": 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>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": 29,
"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": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 30,
"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": 31,
"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": 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>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": 32,
"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": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 33,
"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": 34,
"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": 34,
"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": 35,
"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": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false,
"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": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_test = df[['body-style','price']]\n",
"df_test_group= df_test.groupby(['body-style'], as_index=False).mean()\n",
"df_test_group"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"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": 39,
"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": 40,
"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": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"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": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-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": 44,
"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.369057428260101e-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": 45,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-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": 46,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522673 with a P-value of P = 9.200335510481646e-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": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-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": 48,
"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.265491622198389e-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": 50,
"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.049189483935489e-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": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-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": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-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": 53,
"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": 53,
"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": 54,
"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": 54,
"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": 56,
"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": 56,
"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": 57,
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/DA0101EN_NotbookLink_Top_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment