Skip to content

Instantly share code, notes, and snippets.

@dmalc
Created October 9, 2020 01:29
Show Gist options
  • Save dmalc/5010b0a8ae86d3b0d2f63454fcdff54a to your computer and use it in GitHub Desktop.
Save dmalc/5010b0a8ae86d3b0d2f63454fcdff54a to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/Logos/organization_logo/organization_logo.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 content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
"\n",
"</div>\n",
" \n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which 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": 2,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store 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\">HERE</a> for free storage\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"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": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook.\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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": 7,
"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": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":\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>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": 8,
"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",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>\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>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": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke','compression-ratio','horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>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": 11,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 55955.43729005284)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87\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>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price \n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', 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=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>\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": 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>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', ylabel='price'>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>\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": 16,
"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": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"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": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->\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": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"very weak\n"
]
},
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='price', ylabel='stroke'>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"print ('very weak')\n",
"\n",
"sns.regplot(x='price', y='stroke', data=df)\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->\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": 23,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAoGElEQVR4nO3df5xcdX3v8dc7yd4klEIgu2DYhYaSWAxUY5NLsYrlhwmEqmALEquytrnGi0hQ2nrFei/03uZRqZX0sbGgIJQFqyGilUizkhhAUGNgkZCQgGYtUdakyW6AGCSJ+fG5f5zvkNnNZH/Nnpnd5P18POaxZz7nfM/5nrMz85nvOWe+X0UEZmZmAzWi2hUwM7PhzYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZRlW7ApVWW1sbEydOrHY1zMyGlSeffLIzIupKzTviEsnEiRNpbW2tdjXMzIYVST8/1Dyf2jIzs7I4kZiZWVmcSMzMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMypL770gkjQRagV9GxDsl3Qh8GOhIi3w6IpamZa8H5gD7gHkR8WCKTwPuAsYCS4FrIyIkjQbuBqYB24ArImJj3vtkZtZfTU1NtLW19atMe3s7AA0NDf3e3qRJk5g3b16/yw1EJVok1wLPdostiIip6VFIIlOA2cAZwEXALSkJAdwKzAUmp8dFKT4HeCkiJgELgJty3RMzswrauXMnO3furHY1epVri0RSA/AnwHzgul4WvwRYFBG7gecltQFnSdoIHBMRK9M67wYuBVpSmRtT+fuAL0hSeLQuMxtiBtI6KJRpamoa7OoMqrxbJP8MfBLY3y3+MUlrJN0p6bgUqwdeKFqmPcXq03T3eJcyEbEX2A6M714JSXMltUpq7ejo6D7bzMzKkFsikfROYGtEPNlt1q3AacBUYDPw+UKREquJHuI9lekaiLgtIqZHxPS6upJ9jpmZ2QDl2SJ5K/DudGpqEXC+pK9ExJaI2BcR+4HbgbPS8u3AyUXlG4BNKd5QIt6ljKRRwLHAi/nsjpmZlZJbIomI6yOiISImkl1EfygiPiBpQtFi7wGeSdNLgNmSRks6leyi+uMRsRnYIelsSQKuBO4vKtOYpi9L2/D1ETOzCqpGN/L/KGkq2SmojcBHACJinaTFwHpgL3B1ROxLZa7iwO2/LekBcAdwT7ow/yJZwjIzswqqSCKJiEeAR9L0B3tYbj7ZHV7d463AmSXiu4DLB6ueZmbWf/5lu5mZlcWJxMzMyuJEYmZmZXEiMTOzsjiRmJlZWZxIzMysLE4kZmZWFicSMzMrixOJ2RDQ2dnJNddcw7Zt26pdFbN+cyIxGwKam5tZs2YNzc3N1a6KWb85kZhVWWdnJ0uXLiUiWLp0qVslNuw4kZhVWXNzM3v37gVgz549bpXYsONEYlZly5YtozD6QUTw4IMPVrlGZv3jRGJWZSeeeGKPz82GOicSsyrbsmVLj8/NhjonErMqmzlzJtngnyCJCy+8sMo1Muuf3BOJpJGSnpL0QHp+vKTlkjakv8cVLXu9pDZJP5F0YVF8mqS1aV5TGnKXNCzvvSm+StLEvPfHbLA1NjZSU1MDQE1NDY2Njb2UMBtaKtEiuRZ4tuj5p4AVETEZWJGeI2kK2VC5ZwAXAbdIGpnK3ArMJRvHfXKaDzAHeCkiJgELgJvy3RWzwVdbW8usWbOQxMUXX8z48eOrXSWzfsk1kUhqAP4E+HJR+BKgcH9jM3BpUXxRROyOiOeBNuAsSROAYyJiZWS3ttzdrUxhXfcBFxRaK2bDSWNjI2984xvdGrFhKe8WyT8DnwT2F8VOjIjNAOnvCSleD7xQtFx7itWn6e7xLmUiYi+wHTjo65ykuZJaJbV2dHSUuUtmg6+2tpaFCxe6NWLDUm6JRNI7ga0R8WRfi5SIRQ/xnsp0DUTcFhHTI2J6XV1dH6tjZmZ9MSrHdb8VeLeki4ExwDGSvgJskTQhIjan01Zb0/LtwMlF5RuATSneUCJeXKZd0ijgWODFvHbIzMwOlluLJCKuj4iGiJhIdhH9oYj4ALAEKJwIbgTuT9NLgNnpTqxTyS6qP55Of+2QdHa6/nFltzKFdV2WtnFQi8TMzPKTZ4vkUD4LLJY0B/gFcDlARKyTtBhYD+wFro6IfanMVcBdwFigJT0A7gDukdRG1hKZXamdMDOzTEUSSUQ8AjySprcBFxxiufnA/BLxVuDMEvFdpERkZmbV4V+2m5lZWZxIzMysLE4kZmZWFicSMzMrixOJmZmVxYnEbAjo7Ozkmmuu8XjtNiw5kZgNAc3NzaxZs8bjtduwVI0fJB42mpqaaGtr63e59vasD8qGhoZeluxq0qRJzJs3r9/bs6Gts7OTlpYWIoKWlhYaGxvdeaMNK26RVMHOnTvZuXNntathQ0RzczOFnn3279/vVokNO26RlGGgrYNCuaampsGsjg1Ty5cvZ8+ePQDs2bOHZcuWcd1111W5VmZ95xaJWZXNmDGjy5jtM2fOrHKNzPrHicSsyt71rne9dmorInj3u99d5RqZ9Y8TiVmVffvb3+7SIlmyZEmVa2TWP04kZlW2fPnyLi2SZcuWVblGZv3jRGJWZeecc06X529/+9urVBOzgclzzPYxkh6X9LSkdZL+LsVvlPRLSavT4+KiMtdLapP0E0kXFsWnSVqb5jWlkRJJoynem+KrJE3Ma3/MzKy0PFsku4HzI+JNwFTgIklnp3kLImJqeiwFkDSFbITDM4CLgFskjUzL3wrMJRt+d3KaDzAHeCkiJgELgJty3B+zXDz22GNdnj/66KNVqonZwOQ5ZntExCvpaU169DSe+iXAoojYHRHPA23AWZImAMdExMo0HvvdwKVFZQq/3roPuKDQWjEbLmbMmMGoUdlPukaNGuXbf23YyfUaiaSRklYDW4HlEbEqzfqYpDWS7pR0XIrVAy8UFW9Psfo03T3epUxE7AW2Awf1LSFprqRWSa0dHR2Ds3Nmg6SxsfG1u7ZGjBhBY2NjlWtk1j+5JpKI2BcRU4EGstbFmWSnqU4jO921Gfh8WrxUSyJ6iPdUpns9bouI6RExva6url/7YJa32tpa6uuz70YnnXSS+9myYacid21FxMvAI8BFEbElJZj9wO3AWWmxduDkomINwKYUbygR71JG0ijgWODFfPbCLB+dnZ1s2pS9pDdt2uSu5G3YyfOurTpJ49L0WOAdwHPpmkfBe4Bn0vQSYHa6E+tUsovqj0fEZmCHpLPT9Y8rgfuLyhTOA1wGPBSFG/LNhoniThsjwp022rCTZ4tkAvCwpDXAE2TXSB4A/jHdyrsGOA/4BEBErAMWA+uB7wBXR8S+tK6rgC+TXYD/GdCS4ncA4yW1AdcBn8pxf8xyUarTRrPhJLfefyNiDfDmEvEP9lBmPjC/RLwVOLNEfBdweXk1NauuGTNmsHTpUvbs2UNNTY3v2rJhx79sN6sy37Vlw50TiVmV1dbWMmvWLCQxa9Ys37Vlw44HtjIbAhobG9m4caNbIzYsOZGYDQG1tbUsXLiw2tUwGxAnEjOzfmpqaqKtrS337WzYsAEY+LDe/TVp0qQBbcuJxMysn9ra2li39lnGHXVCrtvZ/5vsJoxf/iz/H6m+/OrWAZd1IjEzG4BxR53AeafPrnY1Bs3Dzy0acFknErNBNpDTHu3tWb+kDQ0NvSx5sIGejjAbLE4kZkPAzp07q10FswFzIjEbZANpHRTKNDU1DXZ1zHLnHySamVlZnEjMzKwsTiRmZlYWJxIzMyuLL7YnlfqlKlT216q+NdTM8uZEkrS1tfHU2vXsP+r43Lel32Sj4T35s//KdTsjXvWow2aWv9wSiaQxwKPA6LSd+yLiBknHA/cCE4GNwHsj4qVU5npgDrAPmBcRD6b4NOAuYCywFLg2IkLSaOBuYBqwDbgiIjYOtM77jzqeXVPeOdDiQ86Y9Q9UuwpmdgTI8xrJbuD8iHgTMBW4SNLZZMPhroiIycCK9BxJU4DZwBnARcAtkkamdd0KzCUbx31ymg9Z0nkpIiYBC4CbctwfMzMrIbdEEplX0tOa9AjgEqA5xZuBS9P0JcCiiNgdEc+Tjc9+lqQJwDERsTIigqwFUlymsK77gAtUGGrOzMwqIte7tiSNlLQa2Aosj4hVwIkRsRkg/S10n1kPvFBUvD3F6tN093iXMhGxF9gOHDS8nKS5kloltXZ0dAzS3pmZGeScSCJiX0RMBRrIWhdn9rB4qZZE9BDvqUz3etwWEdMjYnpdXV0vtTYzs/6oyO9IIuJl4BGyaxtb0ukq0t9CJ/jtwMlFxRqATSneUCLepYykUcCxgG9VMjOroNwSiaQ6SePS9FjgHcBzwBKgMDB1I3B/ml4CzJY0WtKpZBfVH0+nv3ZIOjtd/7iyW5nCui4DHkrXUczMrELybJFMAB6WtAZ4guwayQPAZ4EZkjYAM9JzImIdsBhYD3wHuDoi9qV1XQV8mewC/M+AlhS/AxgvqQ24jnQHmJkNX52dnVxzzTVs25b/qIA2OHL7HUlErAHeXCK+DbjgEGXmA/NLxFuBg66vRMQu4PKyK2tmQ0ZzczNr1qyhubmZ6667rtrVsT5wX1tmNmR0dnbS0tJCRNDS0uJWyTDhRGJmQ0ZzczOFy5z79++nubm5lxI2FDiRmNmQsXz5cvbs2QPAnj17WLZsWZVrZH3hRGJmQ8aMGTOoqakBoKamhpkzZ1a5RtYXTiRmNmQ0NjZS6OVoxIgRNDY29lLChgInEjMbMmpra5k1axaSmDVrFuPHH9TjkQ1BHo/EzIaUxsZGNm7c6NbIMNLnRCLpd4DJEfHd9Ev1URGxI7+qmdmRqLa2loULF1a7GtYPfTq1JenDZN20fymFGoBv5VQnMzMbRvp6jeRq4K3ArwAiYgMHun83M7MjWF8Tye6I+E3hSepp150jmplZnxPJ9yR9GhgraQbwdeDb+VXLzMyGi74mkk8BHcBa4CPAUuAzeVXKzMyGj77etTUWuDMibodsCN0UezWvipmZ2fDQ1xbJCrLEUTAW+O7gV8fMzIabviaSMRHxSuFJmj6qpwKSTpb0sKRnJa2TdG2K3yjpl5JWp8fFRWWul9Qm6SeSLiyKT5O0Ns1rSiMlkkZTvDfFV0ma2I99NzOzQdDXRPJrSX9QeCJpGrCzlzJ7gb+KiDcAZwNXS5qS5i2IiKnpsTStcwowGziDbGz3W9IpNIBbgblkw+9OTvMB5gAvRcQkYAFwUx/3x8zMBklfr5F8HPi6pE3p+QTgip4KpLHWN6fpHZKeBep7KHIJsCgidgPPp+Fzz5K0ETgmIlYCSLobuJRsuN1LgBtT+fuAL0iSx203M6ucPrVIIuIJ4HSysdM/CrwhIp7s60bSKac3A6tS6GOS1ki6U9JxKVYPvFBUrD3F6tN093iXMhGxF9gOHNTLm6S5kloltXZ0dPS12mZm1gc9JhJJ56e/fwq8C3g92amld6VYryQdDXwD+HhE/IrsNNVpwFSyFsvnC4uWKB49xHsq0zUQcVtETI+I6XV1dX2ptpmZ9VFvp7b+GHiILIl0F8A3eyosqYYsifxbRHwTICK2FM2/HXggPW0HTi4q3gBsSvGGEvHiMu3p1/bHAi/2sk9mZjaIekwkEXGDpBFAS0Qs7s+K051VdwDPRsTNRfEJ6foJwHuAZ9L0EuCrkm4GTiJr+TweEfsk7ZB0NtmpsSuBhUVlGoGVwGXAQ74+YmZWWb1ebI+I/ZI+BvQrkZB18vhBYK2k1Sn2aeB9kqaStWg2kv1SnohYJ2kxsJ7sjq+rI2JfKncVcBfZ71da0gOyRHVPujD/ItldX2ZmVkF9vWtruaS/Bu4Ffl0IRsQhTyNFxPcpfQ1jaQ9l5gPzS8RbgTNLxHcBl/dYczMzy1VfE8lfkrUgPtot/ruDWx0zMxtu+ppIppAlkbeRJZTHgC/mVSkzMxs++ppImskGtWpKz9+XYu/No1JmZjZ89DWR/F5EvKno+cOSns6jQmZmNrz0ta+tp9LttwBI+kPgB/lUyczMhpO+JpI/BH4oaWPq+2ol8MepR941udXODnudnZ1cc801bNu2rdpVMbMB6uuprYt6X8Ss/5qbm1mzZg3Nzc1cd9111a6OmQ1AXztt/HlPj7wraYenzs5OWlpaiAhaWlrcKjEbpvp6asts0DU3N1Po0Wb//v00NzdXuUZmNhBOJFY1y5cvZ8+ePQDs2bOHZcuWVblGZjYQTiRWNTNmzKCmpgaAmpoaZs6cWeUamdlAOJFY1TQ2NpJ1Eg0jRoygsbGxyjUys4FwIrGqqa2tZdasWUhi1qxZjB9/0OCWZjYM9PX2X7NcNDY2snHjRrdGzIYxJxKrqtraWhYuXNj7gmY2ZPnUlpmZlSW3RCLpZEkPS3pW0jpJ16b48ZKWS9qQ/h5XVOZ6SW2SfiLpwqL4tNQdS5ukpjSML5JGS7o3xVdJmpjX/piZWWl5tkj2An8VEW8AzgauljQF+BSwIiImAyvSc9K82cAZZF2y3CJpZFrXrcBcsnHcJ3Ogy5Y5wEsRMQlYANyU4/6YmVkJuSWSiNgcET9O0zuAZ4F64BKysUxIfy9N05cAiyJid0Q8D7QBZ0maABwTESsj+xn03d3KFNZ1H3BBobViZmaVUZGL7emU05uBVcCJEbEZsmQj6YS0WD3wo6Ji7Sm2J013jxfKvJDWtVfSdmA80Nlt+3PJWjSccsopg7ZfdkBTUxNtbW39Ltfenv1rGxoa+lVu0qRJzJs3r9/bMxsM7e3tbH91Bw8/t6jaVRk0L7+6lWjfOaCyuV9sl3Q08A3g4xHxq54WLRGLHuI9lekaiLgtIqZHxPS6urreqmwVtHPnTnbuHNiL18yGhlxbJJJqyJLIv0XEN1N4i6QJqTUyAdia4u3AyUXFG4BNKd5QIl5cpl3SKOBY4MVcdsZ6NNDWQaFcU1NTL0uaDR0NDQ1o9zbOO312tasyaB5+bhH1DQP7UXCed20JuAN4NiJuLpq1BCj8+qwRuL8oPjvdiXUq2UX1x9NpsB2Szk7rvLJbmcK6LgMeikJ3smZmVhF5tkjeCnwQWCtpdYp9GvgssFjSHOAXwOUAEbFO0mJgPdkdX1dHxL5U7irgLmAs0JIekCWqeyS1kbVEDp+vB2aHgYFcOxvodTPwtbNqyS2RRMT3KX0NA+CCQ5SZD8wvEW8FziwR30VKRGZ2ePA1s+HHXaSYWW4G0jrwdbPhx12kmJlZWZxIzMysLD61ZdaDgf7Qsr82bNgADPw26v7yRWkbTE4kZj1oa2vjqXVPwbicN7Q/+/PUL5/KeUPAy/lvwo4sTiRmvRkH+8/dX+1aDJoRj/iMtg0uv6LMzKwsbpEk7e3tjHh1O2PWP1DtqgyaEa9uo719b7WrYWaHObdIzMysLG6RJA0NDWzZPYpdU95Z7aoMmjHrH6Ch4XXVroaZHebcIjEzs7I4kZiZWVmcSMzMrCxOJGZmVhZfbDezPnF3MXYouSUSSXcC7wS2RsSZKXYj8GGgIy326YhYmuZdD8wB9gHzIuLBFJ/GgUGtlgLXRkRIGg3cDUwDtgFXRMTGvPbH7EjX1tbGc6tXk/d9gIXTJC+vXp3zluC/ct/CkSHPFsldwBfIPuyLLYiIfyoOSJpCNrrhGcBJwHclvT6NkHgrMBf4EVkiuYhshMQ5wEsRMUnSbOAm4Ir8dsfMXgfMOeR4dcPPHXhk7sGQ2zWSiHiUbPjbvrgEWBQRuyPieaANOEvSBOCYiFiZxmK/G7i0qExzmr4PuCCN6W5mZhVUjYvtH5O0RtKdko5LsXrghaJl2lOsPk13j3cpExF7ge3A+FIblDRXUquk1o6OjlKLmJnZAFU6kdwKnAZMBTYDn0/xUi2J6CHeU5mDgxG3RcT0iJheV1fXrwqbmVnPKppIImJLROyLiP3A7cBZaVY7cHLRog3AphRvKBHvUkbSKOBY+n4qzczMBklFb/+VNCEiNqen7wGeSdNLgK9KupnsYvtk4PGI2Cdph6SzgVXAlcDCojKNwErgMuChdB1lwEa8+mJFev/Vrl8BEGOOyXU7I159EXK/x8bMjnR53v77NeBcoFZSO3ADcK6kqWSnoDYCHwGIiHWSFgPrgb3A1emOLYCrOHD7b0t6ANwB3COpjawlMruc+k6aNKmc4v2yYcMOACaflveH/Osqul9mdmTKLZFExPtKhO/oYfn5wPwS8VbgzBLxXcDl5dSxWCV/kFTYVlNTU8W2aWaWF3eRYmZmZXEiMTOzsjiRmJlZWZxIzMysLE4kZmZWFicSMzMrixOJmZmVxYnEzMzK4hES7SCVGgkPKjsankfCM8uHE4kdpK2tjZ8+82NOOXpf7wuX6b/tyRrFuzY+ket2fvHKyFzXb3YkcyIpw0C/uQ/0W3glv1GfcvQ+PjP9lYpsqxL+vvXoaldh2Gtvb2cHh9eogpuBV9rbe13OeuZEUgVjx46tdhXMzAaNE0kZfL7djiQNDQ283Nl52I3ZPq6hofcFrUdOJGY9aG9vh+0w4pHD6AbHl6E9fDrHBs9h9O4wM7NqcIvErAcNDQ10qIP95+6vdlUGzYhHRtBQ79M5Nnhya5FIulPSVknPFMWOl7Rc0ob097iieddLapP0E0kXFsWnSVqb5jVJUoqPlnRviq+SNDGvfTEzs0PL89TWXcBF3WKfAlZExGRgRXqOpClkQ+WekcrcIqlw4/+twFyycdwnF61zDvBSREwCFgA35bYnZmZ2SLklkoh4lGws9WKXAM1puhm4tCi+KCJ2R8TzQBtwlqQJwDERsTIiAri7W5nCuu4DLii0VszMrHIqfbH9xIjYDJD+npDi9cALRcu1p1h9mu4e71ImIvYC24HxpTYqaa6kVkmtHR0dg7QrZmYGQ+eurVItiegh3lOZg4MRt0XE9IiYXldXN8AqmplZKZW+a2uLpAkRsTmdttqa4u3AyUXLNQCbUryhRLy4TLukUcCxHHwqzcwsFy+/upWHn1uU6zZe2fUSAEePOa6XJcv38qtbqS99UqdXlU4kS4BG4LPp7/1F8a9Kuhk4ieyi+uMRsU/SDklnA6uAK4GF3da1ErgMeChdRzEzy9WkSZMqsp0NG7LvxvWnDewDvj/qGT/g/cotkUj6GnAuUCupHbiBLIEsljQH+AVwOUBErJO0GFgP7AWujohC17NXkd0BNhZoSQ+AO4B7JLWRtURm57UvZmbFKtU9UmE7TU1NFdneQOWWSCLifYeYdcEhlp8PzC8RbwXOLBHfRUpENrja29v59Y6Rh1WPuT/fMZLfci+vZrkYKhfbzcxsmHIXKXaQhoYGdu3dfNiNRzLGvbya5cKJxMysAgYyEF45Q1FXciA8JxKz3rxcgW7kC42/SlyWepkDP+vtp/8i/xESt6W/+d+nlO3PuApsZ6CGyyB4TiRmPajcbZ7ZN8/J9ZPz31j9wParUseiIx2LcZPzPxbjqNx+Hc4D4TmRmPXAt3ke4GNhh+K7tszMrCxOJGZmVhaf2jKz3BzOdyrZAU4kZjakDJc7lewAJxIr6RevVKaLlC2vZmdXTzwq3zHRf/HKSF6f6xasFLcOjgxOJHaQSt0OCfCbdBpjzMR8b/V8PZXdL7MjiROJHaSS3yJ9q6fZ8Oe7tszMrCxOJGZmVpaqnNqStBHYAewD9kbEdEnHA/cCE4GNwHsj4qW0/PXAnLT8vIh4MMWncWDQq6XAtR4l0arNt7zakaaaLZLzImJqRExPzz8FrIiIycCK9BxJU8hGPzwDuAi4RdLIVOZWYC7Z0LyT03yzYWfs2LG+7dWGraF0sf0SsqF5AZqBR4D/leKLImI38HwaWves1Ko5JiJWAki6G7iUA0PxWgUN5Fs4DPyb+FD+Fj5U62WWl2q1SAJYJulJSXNT7MSI2AyQ/p6Q4vXAC0Vl21OsPk13jx9E0lxJrZJaOzo6BnE3rFz+Jm42/FWrRfLWiNgk6QRguaTnelhWJWLRQ/zgYMRtwG0A06dP9zWUHPhbuNmRqyotkojYlP5uBf4dOAvYImkCQPq7NS3eDpxcVLwB2JTiDSXiZmZWQRVPJJJ+S9JvF6aBmcAzwBKgMS3WCNyfppcAsyWNlnQq2UX1x9Pprx2SzpYk4MqiMmZmViHVOLV1IvDv2Wc/o4CvRsR3JD0BLJY0B/gFcDlARKyTtBhYD+wFro6IfWldV3Hg9t8WfKHdzKzidKT97GL69OnR2tpa7WqYmQ0rkp4s+rlGF/5lu5mZlcWJxMzMyuJEYmZmZXEiMTOzshxxF9sldQA/r3Y9gFqgs9qVGCJ8LDI+Dgf4WBwwVI7F70REXakZR1wiGSoktR7qDogjjY9FxsfhAB+LA4bDsfCpLTMzK4sTiZmZlcWJpHpuq3YFhhAfi4yPwwE+FgcM+WPhayRmZlYWt0jMzKwsTiRmZlYWJ5IhRNI4SR8ten6SpPvS9IckfeEQ5V7JqT4TJT3Tj+UvlTSll2XOlfTAIeZtlFTb33qWWE8uxyNv/T3eNrQN9v+z8LpO6/3zwVrvYHAiGSIkjQTGAa8lkojYFBGXVa1S/Xcp0GMiMbPeSeppiI+JgBPJUCXpSklrJD0t6R5JvyNpRYqtkHRKWu4uSU2SfijpPyVdluL3Srq4aH13SfozSSMlfU7SE2ldH0nzz5X0sKSvAmuBzwKnSVqdlu/+jeZkSd+R9BNJNxxiH/6maDt/NwiHZaSk2yWtk7RM0lhJH07beFrSNyQdJemPgHcDn0v1P03SJEnfTcv9WNJpaZ1HS7pP0nOS/i0NTFbwN5IeT49JaZ/eJWmVpKfS+k5M8aMl/auktWl//6zbsaiVtFLSnwzCceizNHjbf6T9fkbSFZKmSfqepCclPagDo4FOS8utBK4uWsdESY+l4/bjdHwLr5lHejh+Q4KkT0qal6YXSHooTV8g6SuSbpXUml5Xf1dU7uK0X99P77EHUvx4Sd9K/+cfSXpjit8o6c50TP6zsM0hpE/vH3jt8+JmSQ8DN0k6Nb1+n5D0/4rW+VngnPQ++4SkMUXvg6cknZfW9yFJ96uXz4xBERF+ZHeunQH8BKhNz48Hvg00pud/CXwrTd8FfJ0sEU8B2lL8PUBzmv5vwAtkg27NBT6T4qOBVuBU4Fzg18Cpad5E4JmiOr32HPgQsBkYn9b5DDA9zXsl/Z1JdqugUt0eAN5exjGZSDaY2NT0fDHwAWB80TJ/D1xTdFwuK5q3CnhPmh4DHJX2eTvZ0MgjgJXA29IyG4G/TdNXAg+k6eM4cIfh/wA+n6ZvAv65aHvHFY4H2QBqq4AZVXgt/Rlwe9HzY4EfAnXp+RXAnWl6DfDHafpzRf/vo4AxaXoy0JqmD3n8htIDOBv4epp+DHgcqAFuAD4CHJ/mjQQeAd6YXiMvFL0fvlb0GlgI3JCmzwdWp+kb07EdTdaVyDagptr7X8b75wFgZHq+BLgyTV/Ngff5uYXjkp7/FfCvafp0soEBx9DDZ8ZgP9wiOeB84L6I6ASIiBeBtwBfTfPvAd5WtPy3ImJ/RKwn+9CCbITG8yWNBmYBj0bETrIP+CslrSb7cBtP9uEA2bDBz/exjssjYlta5ze71Ye0nZnAU8CPyV5UkynP8xGxOk0/SfbmODN9W14LvJ8sCXehbDjl+oj4d4CI2BURr6bZj0dEe0TsB1andRZ8rejvW9J0A/Bg2t7fFG3vHcC/FApGxEtpsgZYAXwyIpYPYJ/LtRZ4h6SbJJ0DnAycCSxPr4HPAA2SjgXGRcT3Url7itZRA9ye9vnrdD1l2NPxGyqeBKal18FusoQ3HTiHLLG8V9KPyV6rZ5Dt3+nAfxa9H75WtL63kY5PRDwEjE/HD+A/ImJ3eu9u5cD7cSjo7/vn63FgBNi3cuAYFL82uis+Ns+R9SX4+jSvt8+MQVGNoXaHKgG9/aimeP7ubmWJiF2SHgEuJPvW+bWi+ddExINdNiidS9Yi6avu9ev+XMA/RMSX+rHO3hTv5z6ybzZ3AZdGxNOSPkT2Dam7nk63dF9n8eswSkwvBG6OiCXpmN1YtI1S/7O9ZG/aC4HvlZifq4j4qaRpwMXAPwDLgXUR8Zbi5SSN49CvuU8AW4A3kbU8dhXN6+n4DQkRsUfSRuAvyFoMa4DzgNOAncBfA/89Il6SdBfZN+ieXjOl5hWO3VA+Hv19/3T/POjLD/16Om69fWYMCrdIDlhB9i1pPGTnZMneALPT/PcD3+/DehaRvXnOAQqJ40HgKkk1ad2vl/RbJcruAH67h3XPSOeKx5Jd2P5Bt/kPAn8p6ei0nXpJJ/Shzv3128DmtD/vL4q/Vv+I+BXQLunSVJfRhXPBvbii6O/KNH0s8Ms03Vi07DLgY4Unko5Lk0F2KvJ0SZ/q4z4NGkknAa9GxFeAfwL+EKiT9JY0v0bSGRHxMrBdUuFbYvGxPBbYnFodHyQ7BTTcPEqWMB4la4X8T7IW1DFkH5jblV3vmpWWfw74XUkT0/Mruq3r/fDaF7DO9Bobjg71/unuB3T9/Cno/jlRfGxeD5xCdpoeev/MGBROJElErAPmA9+T9DRwMzAP+AtJa8jezNf2YVXLgLcD342I36TYl4H1wI+VXTz/EiW+NUXENuAHyi7Qfq7Eur9P1oRdDXwjIlq7lV9GdipuZWo230fPiWmg/jfZKbrlZG/+gkVkF8ufUnZh/YPAvHT8fgi8rg/rHi1pFdmx/kSK3Qh8XdJjdO1O+++B49LxeprsGy8A6fTAbOA8Fd1SXSG/DzyeTmP9LfB/gMvILqA+Tfb/+6O07F8A/6LsYvvOonXcAjRK+hHZaYr+tFyHiseACcDKiNhC1qp6LCKeJjultQ64k/Thlk6/fBT4jqTvk7XItqd13QhMT6+lz9L1C8Vwc6j3T3fXAldLeoLsi0XBGmBvulj/CbLXysj0nr8X+FBEFFpCPX5mDBZ3kWJmQ4akoyPiFUkiu/61ISIWVLtew1E6bTY9Ij7W27LlcovEzIaSD6eW3Dqyb+GDeb3PcuIWiZmZlcUtEjMzK4sTiZmZlcWJxMzMyuJEYtYHKqMnV/XQ43E/1/PxvvwWR8O092MbvpxIzIaPj5P1wWU2pDiRmPXdKEnNynqgvU9Zr8cXpB9grlXWC+1oAEkXKfViC/xpio2QtEFSXdHzNnUbg0Wlew+eB5wEPKysx+g5khYUlfmwpJu7V1iD3xu02UGcSMz67veA2yLijcCvgOvI+k26IiJ+n6y3gqskjQFuB95F1lXO6wBSdydf4UB3F+8Ani50FFrkImBTRLwpIs4EvhMRTcAm4LyIOI+sF4F3F7rdIfuF/L8Wr0TSTLJOO88CppJ1ovj2wTgQZsWcSMz67oWIKPRV9BXgArLeXX+aYs1k3eOcnuIbIvuh1leK1nEnWRf5kPUH1uXDP+nSe3BEbO++QET8GngIeKek08m6Tl/bbbE8eoM2O8hQ6iXTbKjrz693Sy4bES9I2iLpfLLOHN8v6WSysW8AvhgRXyzuPVjSsoj4vyVW92Xg02T9NZVKSHn0Bm12ELdIzPrulEIPvsD7gO8CE5VGciTrpPJ7ZB/sp+rAiJDv67aeL5O1UhZHxL6IeCEipqbHF0v0HvwHqVyXXl8jYhXZWCd/TtexOwoq1Ru0HeHcIjHru2fJeuT9ErCBrHfWH5H1TDwKeIKsRbFb0lzgPyR1kvXAembRepaQtSBKtSIg6z34c5L2A3uAq1L8NqBF0uZ0nQSyUfemFg3q9ZqIWCbpDWS9QUM2cuQHyAZ/Mhs07mvLrMIkTQcWRMQ5g7CuB9K6VpRfM7OB8aktswpKA219A7i+zPWMk/RTYKeTiFWbWyRmZlYWt0jMzKwsTiRmZlYWJxIzMyuLE4mZmZXFicTMzMry/wFu3kw8j/czlgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"execution_count": 25,
"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": 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>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"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": 27,
"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 \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :\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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'.\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>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':\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 th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"drive-wheels \n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'.\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"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": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>\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": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 33,
"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": 34,
"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": 35,
"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": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>\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>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": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"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": 37,
"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": 38,
"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": 38,
"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": 44,
"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>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_gptest1 = df[['body-style', 'price']]\n",
"grouped_test_bodystyle=df_gptest1.groupby([\"body-style\"], as_index=False).mean()\n",
"grouped_test_bodystyle"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. \n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"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": 46,
"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' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"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 and that 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": [
"<p3>Pearson Correlation</p>\n",
"\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>\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": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 48,
"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": 49,
"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": 50,
"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": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>\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": 51,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.369057428260101e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>\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": 52,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>\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": 53,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522673 with a P-value of P = 9.200335510481646e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is &lt; 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": 54,
"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": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>\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": 55,
"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": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>\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": 56,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935489e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>\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": 57,
"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": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"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 &lt; 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong.\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 is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>\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>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data.\n"
]
},
{
"cell_type": "code",
"execution_count": 59,
"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": 59,
"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": 60,
"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": 60,
"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": 61,
"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": 61,
"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": 62,
"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"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups \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",
"<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/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" 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/\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ---------------------------------- |\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.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment