Skip to content

Instantly share code, notes, and snippets.

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