Skip to content

Instantly share code, notes, and snippets.

@johnleung8888
Created June 29, 2021 05:35
Show Gist options
  • Save johnleung8888/aebc2723c7e2032b4e46ef8da14d7e65 to your computer and use it in GitHub Desktop.
Save johnleung8888/aebc2723c7e2032b4e46ef8da14d7e65 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Module%203/images/IDSNlogo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Data Analysis with Python\n",
"\n",
"Estimated time needed: **30** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"* Explore features or charecteristics to predict price of car\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of Contents</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",
"</div>\n",
"\n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics that have the most impact on the car price?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import libraries:\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Load the data and store it in dataframe `df`:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object. Click <a href=\"https://cocl.us/DA101EN_object_storage?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\">HERE</a> for free storage.\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"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>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://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install Seaborn we use pip, the Python package manager.\n"
]
},
{
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"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": {},
"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",
"\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype('float64')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[\"peak-rpm\"].dtype"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"float64\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":\n"
]
},
{
"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>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": 7,
"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.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3> Question #2: </h3>\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>\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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": 8,
"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": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()\n",
"```\n",
"\n",
"</details>\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. They can be of 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 use \"regplot\" which plots the scatterplot plus the fitted regression line for the data.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see several examples of different linear relationships:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Positive Linear Relationship</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 56277.1022746656)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'engine-size' and 'price' and see that it's approximately 0.87.\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price. Let's find the scatterplot of \"highway-mpg\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', ylabel='price'>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As 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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704.\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"peak-rpm\" is a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', ylabel='price'>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore, it's not a reliable variable.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616.\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\" and y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns, use the following syntax: df[[\"stroke\",\"price\"]]. </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"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>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"\n",
"df[[\"stroke\",\"price\"]].corr()\n",
"\n",
"```\n",
"\n",
"</details>\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>\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='price', ylabel='stroke'>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"price\", y=\"stroke\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We can see this using \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"```\n",
"\n",
"</details>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"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=\"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, so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's examine \"drive-wheels\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs. As such, drive-wheels could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>\n"
]
},
{
"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",
"\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:\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>\n"
]
},
{
"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 <code>df['drive-wheels']</code>, not two brackets <code>df[['drive-wheels']]</code>.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 22,
"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:\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"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",
" </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": 23,
"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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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>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": 24,
"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':\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"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>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": 25,
"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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"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>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": 26,
"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>After examining the value counts of the engine location, we see that 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, so this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 27,
"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>\n"
]
},
{
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"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>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 by multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combination of 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"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>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-wheels variable as the rows of the table, and pivot body-style to become the columns of the table:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"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 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>\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 36,
"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>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price\n",
"0 21890.500000\n",
"1 22208.500000\n",
"2 9957.441176\n",
"3 14459.755319\n",
"4 12371.960000"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"newgp = df[[\"body-style\", \"price\"]].groupby(df[\"body-style\"],as_index= False).mean()\n",
"newgp"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\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",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\", let's do it again.\n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs. Price</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price.\n"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"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' on 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>\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>\n"
]
},
{
"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. Correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Pearson Correlation</b></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>: Perfect 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>: Perfect negative linear correlation.</li>\n",
"</ul>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sometimes we would like to know the significant of the correlation estimate.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>\n",
"\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",
"\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can obtain this information using \"stats\" module in the \"scipy\" library.\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-Base vs. Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs. Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036562 with a P-value of P = 6.369057428259195e-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": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483639 with a P-value of P = 8.016477466159328e-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": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs. Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522675 with a P-value of P = 9.200335510481123e-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).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-Weight vs. Price\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"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':\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622198389e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs. Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626603 with a P-value of P = 8.049189483935261e-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": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can relate the process for each 'city-mpg' and 'highway-mpg':\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs. Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Conclusion:</h4>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of about -0.687 shows that the relationship is negative and moderately strong.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs. Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of about -0.705 shows that the relationship is negative and moderately strong.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>\n"
]
},
{
"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 our calculated score value is.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, we expect ANOVA to return a sizeable F-test score and a small p-value.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>\n"
]
},
{
"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>To see if different types of 'drive-wheels' impact 'price', we group the data.</p>\n"
]
},
{
"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>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": 51,
"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": 52,
"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": 52,
"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\".\n"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"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": 53,
"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>.\n"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"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?\n",
"\n",
"Let's examine them separately.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's examine the other groups.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>\n"
]
},
{
"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",
"\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",
"\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\" target=\"_blank\">Mahdi Noorian PhD</a>\n",
"\n",
"Bahare Talayian\n",
"\n",
"Eric Xiao\n",
"\n",
"Steven Dong\n",
"\n",
"Parizad\n",
"\n",
"Hima Vasudevan\n",
"\n",
"<a href=\"https://www.linkedin.com/in/fiorellawever/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\"https://www.linkedin.com/in/yi-leng-yao-84451275/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"|---|---|---|---|\n",
"| 2020-10-30 | 2.1 | Lakshmi | changed URL of csv |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"\n",
"<hr>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Module%203/images/IDSNlogo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Data Analysis with Python\n",
"\n",
"Estimated time needed: **30** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"* Explore features or charecteristics to predict price of car\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of Contents</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",
"</div>\n",
"\n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics that have the most impact on the car price?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import libraries:\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Load the data and store it in dataframe `df`:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object. Click <a href=\"https://cocl.us/DA101EN_object_storage?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\">HERE</a> for free storage.\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"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>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://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install Seaborn we use pip, the Python package manager.\n"
]
},
{
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"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": {},
"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",
"\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype('float64')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[\"peak-rpm\"].dtype"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"float64\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":\n"
]
},
{
"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>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": 7,
"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.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3> Question #2: </h3>\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>\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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": 8,
"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": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()\n",
"```\n",
"\n",
"</details>\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. They can be of 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 use \"regplot\" which plots the scatterplot plus the fitted regression line for the data.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see several examples of different linear relationships:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Positive Linear Relationship</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 56277.1022746656)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'engine-size' and 'price' and see that it's approximately 0.87.\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price. Let's find the scatterplot of \"highway-mpg\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', ylabel='price'>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As 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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704.\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"peak-rpm\" is a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', ylabel='price'>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore, it's not a reliable variable.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616.\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\" and y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns, use the following syntax: df[[\"stroke\",\"price\"]]. </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"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>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"\n",
"df[[\"stroke\",\"price\"]].corr()\n",
"\n",
"```\n",
"\n",
"</details>\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>\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='price', ylabel='stroke'>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"price\", y=\"stroke\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We can see this using \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"```\n",
"\n",
"</details>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"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=\"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, so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's examine \"drive-wheels\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs. As such, drive-wheels could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>\n"
]
},
{
"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",
"\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:\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>\n"
]
},
{
"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 <code>df['drive-wheels']</code>, not two brackets <code>df[['drive-wheels']]</code>.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 22,
"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:\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"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",
" </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": 23,
"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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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>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": 24,
"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':\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"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>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": 25,
"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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"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>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": 26,
"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>After examining the value counts of the engine location, we see that 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, so this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 27,
"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>\n"
]
},
{
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"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>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 by multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combination of 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"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>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-wheels variable as the rows of the table, and pivot body-style to become the columns of the table:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"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 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>\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 36,
"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>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price\n",
"0 21890.500000\n",
"1 22208.500000\n",
"2 9957.441176\n",
"3 14459.755319\n",
"4 12371.960000"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"newgp = df[[\"body-style\", \"price\"]].groupby(df[\"body-style\"],as_index= False).mean()\n",
"newgp"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\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",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\", let's do it again.\n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs. Price</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price.\n"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"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' on 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>\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>\n"
]
},
{
"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. Correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Pearson Correlation</b></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>: Perfect 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>: Perfect negative linear correlation.</li>\n",
"</ul>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sometimes we would like to know the significant of the correlation estimate.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>\n",
"\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",
"\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can obtain this information using \"stats\" module in the \"scipy\" library.\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-Base vs. Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs. Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036562 with a P-value of P = 6.369057428259195e-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": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483639 with a P-value of P = 8.016477466159328e-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": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs. Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522675 with a P-value of P = 9.200335510481123e-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).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-Weight vs. Price\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"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':\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622198389e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs. Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626603 with a P-value of P = 8.049189483935261e-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": [
"<h4>Conclusion:</h4>\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can relate the process for each 'city-mpg' and 'highway-mpg':\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs. Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Conclusion:</h4>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of about -0.687 shows that the relationship is negative and moderately strong.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs. Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of about -0.705 shows that the relationship is negative and moderately strong.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>\n"
]
},
{
"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 our calculated score value is.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, we expect ANOVA to return a sizeable F-test score and a small p-value.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>\n"
]
},
{
"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>To see if different types of 'drive-wheels' impact 'price', we group the data.</p>\n"
]
},
{
"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>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": 51,
"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": 52,
"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": 52,
"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\".\n"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"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": 53,
"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>.\n"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"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?\n",
"\n",
"Let's examine them separately.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's examine the other groups.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>\n"
]
},
{
"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",
"\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",
"\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\" target=\"_blank\">Mahdi Noorian PhD</a>\n",
"\n",
"Bahare Talayian\n",
"\n",
"Eric Xiao\n",
"\n",
"Steven Dong\n",
"\n",
"Parizad\n",
"\n",
"Hima Vasudevan\n",
"\n",
"<a href=\"https://www.linkedin.com/in/fiorellawever/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\"https://www.linkedin.com/in/yi-leng-yao-84451275/?utm_medium=Exinfluencer&utm_source=Exinfluencer&utm_content=000026UJ&utm_term=10006555&utm_id=NA-SkillsNetwork-Channel-SkillsNetworkCoursesIBMDeveloperSkillsNetworkDA0101ENSkillsNetwork20235326-2021-01-01\" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"|---|---|---|---|\n",
"| 2020-10-30 | 2.1 | Lakshmi | changed URL of csv |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"\n",
"<hr>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment