Skip to content

Instantly share code, notes, and snippets.

@leggewie
Last active January 7, 2021 02:14
Show Gist options
  • Save leggewie/322b7db1bad161f73de4da4edb71aa71 to your computer and use it in GitHub Desktop.
Save leggewie/322b7db1bad161f73de4da4edb71aa71 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": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/cognitive_class_DA0101EN_objectstorage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romeo</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-romeo</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-romeo</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-romeo std two \n",
"1 3 122 alfa-romeo std two \n",
"2 1 122 alfa-romeo std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df['make'].replace('alfa-romero', 'alfa-romeo', inplace=True)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>\n",
"\n",
"Answer: float64"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 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 and in-depth using Pearson correlation at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 9,
"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": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 60000.0)"
]
},
"execution_count": 14,
"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,60000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price "
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 45000.0)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)\n",
"plt.ylim(0,45000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 50000.0)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)\n",
"plt.ylim(0,50000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='stroke', ylabel='price'>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABBuklEQVR4nO29e5gc5Xng+3v7MvcZ3W9IMpKMsLjYYJAxXnNYxWaPseMFvEfE4sSGJ4EVIfiAn83FkN3jODjeNRvHDiRrIgX8GIgTUEhic1gwa5C1svNwEzbYCGSkSIAGhEaXkebSM9PdVe/5o77q6e7pnunWdE93T7+/5+np6q+qur+q7qm33ruoKoZhGIZxqkRqPQHDMAyjsTFBYhiGYUwLEySGYRjGtDBBYhiGYUwLEySGYRjGtIjVegIzzcKFC3XVqlW1noZhGEZD8eKLLx5V1UWF1jWdIFm1ahW7du2q9TQMwzAaChF5s9g6M20ZhmEY08IEiWEYhjEtTJAYhmEY08IEiWEYhjEtTJAYhmEY06LporYMwyjMjj19bNm5n4P9CVbO6+DGS9ewYd3iWk/LaABMIzEMgx17+vjyo7vpGxxlbnucvsFRvvzobnbs6av11IwGoOqCRESiIvJzEXnMvf6KiLwtIi+5x6eytr1dRPaJyK9E5BNZ4xeKyC/durtFRNx4q4g87MafE5FV1T4ew5iNbNm5n3hU6GiJIRI8x6PClp37az01owGYCY3kVuC1vLFvqer57vE4gIicDWwCzgEuB74tIlG3/T3AZmCte1zuxq8H+lX1DOBbwJ1VPRLDmKUc7E/QHo/mjLXHo/T2J2o0I6ORqKogEZEVwK8D95aw+ZXAQ6o6pqoHgH3ARSKyDOhR1Wc06ML1AHBV1j73u+VHgI+H2ophGKWzcl4HIykvZ2wk5bFiXkeNZmQ0EtXWSP4C+EPAzxv/goj8QkS+IyLz3Nhy4GDWNr1ubLlbzh/P2UdV08BJYEH+JERks4jsEpFdR44cmd4RGcYs5MZL15DylEQyjWrwnPKUGy9dU+upGQ1A1QSJiHwa6FPVF/NW3QO8FzgfOAT8ebhLgbfRScYn2yd3QHWrqq5X1fWLFhWsOWYYTc2GdYu544pzWNzdxsmRFIu727jjinMsassoiWqG/34UuMI509uAHhH5W1X9XLiBiPwN8Jh72QuszNp/BfCOG19RYDx7n14RiQFzgONVOBbDmPVsWLfYBIdxSlRNI1HV21V1haquInCib1fVzzmfR8hngFfc8qPAJheJtZrAqf68qh4CBkXkYuf/uBb4QdY+17nlje4zJmgkhmEYRvWoRULifxeR8wlMUG8ANwKo6m4R2Qa8CqSBm1U19P7dBHwXaAeecA+A+4AHRWQfgSayaWYOwTAMwwiRZruBX79+vVo/EsMwjPIQkRdVdX2hdZbZbhiGYUwLEySGYRjGtDBBYhiGYUwLEySGYRjGtDBBYhiGYUwLEySGYRjGtDBBYhiGYUwLEySGYRjGtDBBYhiGYUwL69luGMakWC93YypMIzEMoyjWy90oBdNIDMMACmse2b3cATpaYiSSabbs3G9aiZHBBIlhGBnNIx6VHM1jeCzFsjntOdtaL3cjHzNtGYaRo3mIBM/xqJDy1Hq5G1NigsQwDA72J2iPR3PG2uNRWmIR6+VuTEnVBYmIREXk5yLymHs9X0R+JCJ73fO8rG1vF5F9IvIrEflE1viFIvJLt+5u1ykR103xYTf+nIisqvbxGMZsZOW8joKax9rF3dbL3ZiSmfCR3Aq8BvS417cBT6vq10XkNvf6SyJyNkGHw3OA04CnRORM1yXxHmAz8CzwOHA5QZfE64F+VT1DRDYBdwKfnYFjMoxZxY2XruHLj+4mkUzTHo8ykvIymof1cjemoqoaiYisAH4duDdr+Ergfrd8P3BV1vhDqjqmqgeAfcBFrsd7j6o+4/qxP5C3T/hejwAfD7UVwzBKZ8O6xaZ5GKdMtTWSvwD+EOjOGluiqocAVPWQiIS/1OUEGkdIrxtLueX88XCfg+690iJyElgAHK3sYRjG7Mc0D+NUqZpGIiKfBvpU9cVSdykwppOMT7ZP/lw2i8guEdl15MiREqdjGIZhlEI1TVsfBa4QkTeAh4CPicjfAoeduQr3HKbI9gIrs/ZfAbzjxlcUGM/ZR0RiwBzgeP5EVHWrqq5X1fWLFi2qzNEZhmEYQBUFiarerqorVHUVgRN9u6p+DngUuM5tdh3wA7f8KLDJRWKtBtYCzzsz2KCIXOz8H9fm7RO+10b3GRM0EsMwDKN61CKz/evANhG5HngLuBpAVXeLyDbgVSAN3OwitgBuAr4LtBNEaz3hxu8DHhSRfQSayKaZOgjDMAwjQJrtBn79+vW6a9euWk/DMAyjoRCRF1V1faF1ltluGIZhTAsTJIZhGMa0MEFiGIZhTAsTJIZhGMa0MEFiGIZhTAsTJIZhGMa0sA6JhkHhNrNWd8owSsMEidH0FGszeweYMMGErDE1Ztoymp5ibWa37Nxf66nVnFDI9g2O5gjZHXv6pt7ZaBpMkBhNT7E2s739iRrNqH4wIWuUggkSo+kp1mZ2xbyOGs2ofjAha5SCCRKj4dixp49rtj7LJXdu55qtz07bzHLjpWtIeUoimUY1eA7bzDY7JmSNUjBBYjQU1bDZW5vZ4piQNUrBoraMhiLbZg/Q0RIjkUyzZef+aV34rc1sYTasW8wdBOe9tz/BCovaakiqHXlngsRoKA72J5jbHs8ZM5t9dTEh29jMRHi7mbaMhsJs9oZRHjMReVc1QSIibSLyvIi8LCK7ReRP3PhXRORtEXnJPT6Vtc/tIrJPRH4lIp/IGr9QRH7p1t3tWu7i2vI+7MafE5FV1Toeoz6YTTb7SgcNGEYhZiLyrpoayRjwMVU9DzgfuFxELnbrvqWq57vH4wAicjZBq9xzgMuBb4tIePT3AJsJ+rivdesBrgf6VfUM4FvAnVU8HqMOmC2OcUv0M2aKmdDiq+Yj0aCH75B7GXePyfr6Xgk8pKpjwAHXh/0iEXkD6FHVZwBE5AHgKoK+7VcCX3H7PwL8lYiINlv/4CZjNtjsqxU0YBj53HjpGr786G4SyTTt8SgjKa/iWnxVfSQiEhWRl4A+4Eeq+pxb9QUR+YWIfEdE5rmx5cDBrN173dhyt5w/nrOPqqaBk8CCAvPYLCK7RGTXkSNHKnNwhjENLNHPmClmQouvatSWqnrA+SIyF/hnETmXwEz1VQLt5KvAnwO/DUiht5hknCnWZc9jK7AVYP369aatGDVn5bwO3jg2xMBImqTn0xKN0NMeY9WCrlpPzZiFVFuLn5GoLVU9AewALlfVw6rqqaoP/A1wkdusF1iZtdsK4B03vqLAeM4+IhID5gDHq3MUxmxmph3fH1kzn77BJEnPJyKQ9Hz6BpN8ZM38qn6uYVSDakZtLXKaCCLSDlwG7BGRZVmbfQZ4xS0/CmxykVirCZzqz6vqIWBQRC520VrXAj/I2uc6t7wR2G7+EaNcauH4fmb/cRZ1tdASjeArtEQjLOpq4Zn9dh9kNB7VNG0tA+53kVcRYJuqPiYiD4rI+QQmqDeAGwFUdbeIbANeBdLAzc40BnAT8F2gncDJ/oQbvw940DnmjxNEfRlGWdTC8X2wP8HCrlYWdbdlxlTVfCRGQ1LNqK1fAB8sMP75Sfb5GvC1AuO7gHMLjI8CV09vpkazU4ts+ZXzOugbHM0IL7DESqNxscx2o+mpRbb8bEqsNAwTJEbTU4uL+mxJrDQMsKKNhlGzCrezIbHSMMA0EsPIwUL+DKN8TCMxmp6ZKLNtGLWk2v1ITCMxmp6ZKLNtGLViJvKkTJAYTY/VvTJmMzNxo2SmLaPpsZyOxqLaZprZxkzkSZlGYjQ9ltPROFgfl/KZiTwpEyRG02M5HY2D+bPKZyZulMy0ZRhYTkejUItyNo3OTORJmSAxDKNhMH/WqTEr+pEYhtG4zHSvlskwf1Z9YoLEMIyi1Jtz2/xZ9YmZtgzDKEoterVMhfmz6o9qdkhsE5HnReRlEdktIn/ixueLyI9EZK97npe1z+0isk9EfiUin8gav1BEfunW3e06JeK6KT7sxp8TkVXVOh7DaEYsWdMohWqatsaAj6nqecD5wOUicjFwG/C0qq4FnnavEZGzCTocngNcDnzbdVcEuAfYTNB+d61bD3A90K+qZwDfAu6s4vEYRtNRi14tRuNRNUGiAUPuZdw9FLgSuN+N3w9c5ZavBB5S1TFVPQDsAy5yPd57VPUZ14/9gbx9wvd6BPh4qK0YhjF9zLltlEJVne0iEhWRl4A+4Eeq+hywRFUPAbjn0Ni5HDiYtXuvG1vulvPHc/ZR1TRwElhQYB6bRWSXiOw6cuRIhY7OMGY/5tw2SqGqznZV9YDzRWQu8M8iMqHvehaFNAmdZHyyffLnsRXYCrB+/XprOWEYZWDObWMqZiT8V1VPADsIfBuHnbkK9xzGEfYCK7N2WwG848ZXFBjP2UdEYsAc4Hg1jsEwDMMoTDWjthY5TQQRaQcuA/YAjwLXuc2uA37glh8FNrlIrNUETvXnnflrUEQudv6Pa/P2Cd9rI7Dd+VEMwzCMGaKapq1lwP0u8ioCbFPVx0TkGWCbiFwPvAVcDaCqu0VkG/AqkAZudqYxgJuA7wLtwBPuAXAf8KCI7CPQRDZV8XgMwzCMAkiz3cCvX79ed+3aVetpGIZhNBQi8qKqri+0zjLbDcNoKO5+6nXu/ekBhpMenS1RbrhkNbdcdmatp9XUmCAxDKNhuPup17lr+z4iArFIkBx51/Z9ACZMaogVbTQMo2G496cHnBCJEJGIew7GjdphgsQwjIZhOOkRycsei0gwbtQOEySGYTQMnS1R/Lz4IF+DcaN2mCAxDKNhuOGS1fgKad/HV989B+NG7TBnu2EYDUPoULeorfrC8kgMwzCMKZksj6Rk05aInC4il7nldhHprtQEDcMwjMalJEEiIv+RoN/HFje0Avh+leZkGIZhNBClaiQ3Ax8FBgBUdS/jfUQMwzCMJqZUQTKmqsnwhSvZ3lzOFcMwDKMgpQqS/y0ifwS0i8i/A/4B+P+qNy3DMAyjUSg1/Pc24Hrgl8CNwOPAvdWalGEYRjF27Oljy879HOxPsHJeBzdeusY6ONaYUgVJO/AdVf0bCHqxu7FEtSZmGIaRz449fXz50d3Eo8Lc9jh9g6N8+dHd3AEmTGpIqaatpwkER0g78NRkO4jIShH5sYi8JiK7ReRWN/4VEXlbRF5yj09l7XO7iOwTkV+JyCeyxi8UkV+6dXe7Tom4booPu/HnRGRVicdjGEYDsmXnfuJRoaMlhkjwHI8KW3bur/XUmppSBUmbqg6FL9xyxxT7pIHfU9WzgIuBm0XkbLfuW6p6vns8DuDWbQLOIejt/m2n+QDcA2wmaL+71q2HwNzWr6pnAN8C7izxeAzDaEAO9idoj+fW1WqPR+ntN+NILSlVkAyLyAXhCxG5EBiZbAdVPaSqP3PLg8BrwPJJdrkSeEhVx1T1ALAPuEhElgE9qvqM68f+AHBV1j73u+VHgI+H2ophGLOPlfM6GEnlVvodSXmsmDfVfa1RTUoVJF8E/kFEfiIiPwEeBr5Q6oc4k9MHgefc0BdE5Bci8h0RmefGlgMHs3brdWPL3XL+eM4+qpoGTgILSp2XYTQaO/b0cc3WZ7nkzu1cs/VZduzpq/WUZpQbL11DylMSyTSqwXPKU268dE2tp9bUlCRIVPUFYB1wE/C7wFmq+mIp+4pIF/CPwBdVdYDATPVe4HzgEPDn4aaFPnqS8cn2yZ/DZhHZJSK7jhw5Usq0DaPuCB3NfYOjOY7mZhImG9Yt5o4rzmFxdxsnR1Is7m7jjivOMUd7jZk0aktEPqaq20XkP+StWisiqOo/TbF/nECIfC/cVlUPZ63/G+Ax97IXWJm1+wrgHTe+osB49j69LklyDnA8fx6quhXYCkHRxsnmbBj1SrajGaCjJUYimWbLzv1NdSHdsG5xUx1vIzBV+O+/BbYD/77AOgWKChLnq7gPeE1Vv5k1vkxVD7mXnwFeccuPAn8nIt8ETiNwqj+vqp6IDIrIxQSmsWuBv8za5zrgGWAjsF2brZyx0TQc7E8wtz2eMzZTjmbL3TAmY1JBoqp/LCIR4AlV3Vbme38U+DzwSxF5yY39EXCNiJxPIIjeIEhwRFV3i8g24FWCiK+bVTX0qt0EfJcg7PgJ94BAUD0oIvsINJFNZc7RMBqGlfM66BsczWgkMDOOZsvdMKaipH4kIrJTVS+dgflUHetHYjQq2Rf09niUkZRHytOq+wiu2frsBAGWSKZZ3N3G32++uGqfa9QXlehH8iMR+X2XZDg/fFRwjoZhTEGtHM2Wu2FMRaklUn6bwBT1u3njFnNnGDNILRzNtTKpGY1DqRrJ2cD/AF4GXiJwdp9TpTkZhlFHWO6GMRWlaiT3EzS1utu9vsaN/UY1JmUYzU49RUltWLeYOwjCj3v7E6ywqC0jj1IFyftU9bys1z8WkZerMSHDaHbqOUrKYuuNQpRq2vq5y+MAQEQ+DPxLdaZkGM1NvVW4tYx6YypK1Ug+DFwrIm+51+8BXhORXwKqqh+oyuwMY5ZTyIRVy8TDQlhGvTEVpQqSy6fexDCMcihmwupujTGS8uomSqreBJtRf5QkSFT1zWpPxDCajWJ3+qqaiZLKTjysVZSUhf8aU1Gqj8QwZg31Uoq9WKLfcNKrqwq3Fv5rTEWppi3DmBXUU0TUZHf69VTh1sJ/jakwQWI0FfXkOL7x0jV8+dHdZZmw7n7qde796QGGkx6dLVFuuGQ1t1x2ZtXnWk+Czag/zLRlNBX1VDeq3NpZdz/1Ondt38dIyiMWCbSXu7bv4+6nXp/hmRtGLqaRGE1FvTmOy7nTv/enB4gIxCLB/V9EIO373PvTAzOilRhGMUwjMZqKRnYcDyc9InnNpSMSjBtGLTFBYjQVjdzzu7Mlip9Xo8TXYNwwaknVTFsishJ4AFgK+MBWVb3L9TF5GFhF0CHxN1S13+1zO3A94AG3qOqTbvxCxjskPg7cqqoqIq3uMy4EjgGfVdU3qnVMxuygUR3HN1yymru27yPt+0QkECK+BuOGUUuqqZGkgd9T1bOAi4GbReRs4DbgaVVdCzztXuPWbSIoT3858G0RCW+17gE2E/RxX8t4pv31QL+qngF8C7izisdjGDXllsvO5NaPnUF7PEraD4IEbv3YGUX9I/WSL2PMfkpqtVuRDxL5AfBX7rFBVQ+JyDJgh6q+z2kjqOp/c9s/CXyFQGv5saquc+PXuP1vDLdR1WdEJAa8CyzSSQ7KWu0azUCt2vIas5dKtNqd7gRWAR8EngOWqOohAPcc/qqXAwezdut1Y8vdcv54zj6qmgZOAgsKfP5mEdklIruOHDlSoaMyjPql3ioIG7ObqgsSEekC/hH4oqoOTLZpgTGdZHyyfXIHVLeq6npVXb9o0aKppmwYDU895csYjctY2mNgNMWxobFJt6tqHomIxAmEyPdU9Z/c8GERWZZl2goNt73AyqzdVwDvuPEVBcaz9+l1pq05wPGqHIxhzCDTzWCvdL5MPXVsNKpD2vMZS4cPj7GUj++8BPHo5DpH1TQSERHgPuA1Vf1m1qpHgevc8nXAD7LGN4lIq4isJnCqP+/MX4MicrF7z2vz9gnfayOwfTL/iGE0ApXIYK9kvow1tppdqCrJtM/wWJoTiSSHB0Z561iCt44nODwwyolEkpGklxEipVBNjeSjwOeBX4rIS27sj4CvA9tE5HrgLeBqAFXdLSLbgFcJIr5uVtUw0+omxsN/n3APCATVgyKyj0AT2VTF4zGMU6acO/pKZLBXstBiPdUnM8on7fmMpn3GUh6jaZ9k2qfS99tVEySq+lMK+zAAPl5kn68BXyswvgs4t8D4KE4QGUa9Um7F4eGkRwRlNOXlOPw8P31Knz/dS0a9NbYyM1txfF9Jej5jqcA8NZrySft+1T/Xam0ZRpXZsnM/Kc/j2FCapOfTEo3Q0x4rekffGouQKFD2RDW4iIb7THZBrWS5/HqqT1ZPbQBqjapO8GmkvOoLjUJYiRTDqDJ7+wY5Opgk7SvRiJD2laODSfb2DRbcfn574fs7gUz47lR+i0qG/1bK31KJBMlmDWsOhIbH4GiKo0NjvH1ihDeOJXjnxAjHhsYYGk3XTIiAaSSGUXWSaR8EIhJYekXAl8DhWZDIxPu7CBCNSsacNJXfopLmqA3rFrOx98SEKLJSNYAde/q484d7eL1viHhUWNLdesqaRL2Z2aqBamCeGnXmqWTaJ+Vpxf0alcQ0EsOoMvFoIEB8P7gY+K7yYku0sAtx5bwO2mIRWmMR2uNR2uNR4tEI0YhkzElT5YmsnNfBSCrXPHaq5qgde/p48Nk3SaZ9hEAAPvjsmyVpFKHmdODoMFEB9eGdk6OkPT0lTaKSx1UPFNM03u4f1zSq4RyvNCZIDKPKnLmkhwWdLcSigqdKLCos6Gxh7ZKegtvfeOkauttieL7i+X7wUKWrNZYxJ011Qa1k+O+dP9xDfyKFArFoBAX6Eynu/OGeKfcNNSdPlUhEggfC0aGxU9IkGrkNgO8HARQnR1IcGRyjtz+RERpHBscYGEkxlvLqXmgUwgSJYVSZGy9dQ0ssytI5bbxvSTdL57TREosWvfhtWLeYP9t4HmsXdyEiiAhnLOrkGxvPy5iBprqgbli3mI0XLOfI4BivvTvIkcExNl6w/JQc0vuPDhNxpjlBiIgQkWB8KkLNqSUawfODu+8xzyeR9Dg2PFa2JtFIbQDCrPC+wVEOHk/wxrHhjE9jcDTVEJpGqZiPxJg11GtY6KnmdMztaGFRd7rgsUz1njv29PHIz95mUXcr73FFGx/52dt8YMXcGT0nYcRXV2uMw4PjZTYUODwwxjUfek/Z71mvbQBGU0Hk1GjaYzTl4eU3j5nFmCCZQer1QjcbqPew0HIufpMdC1DSb6iSSYSrF3Sw78gw4isiQRiyr3DGwqm1iRsvXcOXH91NfyI5caXCE6+823BtgsNcjZQXJPeFeRvlZILPNkyQzBD1fqGrNdMVsuXmatQT+cd+IpEseCx3/nAPw0mvpN/QqUQ3FfsObvvkWfz+Iy8zNJbGcyHMc1vj3PbJs0p6jzuuOIffuv8FIMjSj4oQi0bwfL8k81itSHtBtFQoNFKeTyqtM5Lg12iYj2SGaNb491KoRC2ncnM16oVCx/6rw4P0DYxNOJZ9Lny2lN9QudFNk30HG9Yt5hsbz+ODK+extKeND66cl+Ovmeo9AFqiEVqiQmssSmyKAoAzTXbk1LGhMQ6dHOHNY8O8dTzBoZOBT2NgJMVI0jMhUgTTSGaIZoh/P1UqYYYpO1ejTih07ACeQkvesaR9Lbk0fGhSSiTTOY2tijn4t+zcTzKdqwV1t41rdKWY5ib7HqdjHqskYTZ4aI5KetWpPdVs1NetwSxmtsW/V5JK9M4oN1ejXih07CGjKY+RVOC49VWJCiX/hsqNbnr98ADHhpOkPSUqQtpTjg0n2Xt4shZCUx9L+D3e9smzmNsRRyLgqSIRmNtR2DxWScKQ2xOJpNM0gmzwo4NB5FSjhtvWG6aRzBDl3iE2E5Wo5XTmkh4OHB1icDT7jjrO6oVd1ZhyxSh07LGIkPQ0qIniWrupD6fNa8+E/JbyGyrHwZ/ylJSn5Jd4THqlX2Qn+x5D81glqhEXI3R8p9LjmkYty4Y0EyZIZojplpmYzVRCyIbvsXROrC4FdTFHdqFjD7WPWCSSMQN5qnS2RLntk2dV5WKcTE8sEjnZeCGm+h4rFbbr+YHJMpn2GfMao4TIbMcEyQxRL3H99UglemdUsv9GpZkqYi9/3idHUnS2RDk6lMxoV0u7WhlOelXLoUgVuXEPx0uJqqvGd+D7Ol7dNh34NczhXX9UTZCIyHeATwN9qnquG/sK8B+BI26zP1LVx92624HrAQ+4RVWfdOMXMt7U6nHgVlVVEWkFHgAuBI4Bn1XVN6aal6/K0FiaqAiRCC5LN8jUFSlsT69E/oc1B5qcSlwg6zVRbarvPn/e12x9lr7BUdYsGjfLJZJpFne3VW2O4d28hH80MHKpalmh69P5DtLeuElqLG2mqVqS8nwGR9MMjqYYHE0XbGuQTTU1ku8Cf0Vwsc/mW6r6jewBETmboLvhOcBpwFMicqbrkHgPsBl4lkCQXE7QIfF6oF9VzxCRTcCdwGenmlTaU/oGRguuExEEVwpCIBIRnvvXY3zjR78iHo3Q1RLl0MkR/sv3X+E/f+os/u26RTmCKBqRosLIoraal3K/+1r407paYwwn06gGpjSRIOejsyVW8ZsgVc3kZ2RMVOnGyQR/fv9xHnrhIIcGRljW086mD63kojXzaz2tCagqoymfAScMQqEwkLMcrssdGy2mohahmh0Sd4rIqhI3vxJ4SFXHgAOude5FIvIG0KOqzwCIyAPAVQSC5ErgK27/R4C/EhGZTs92VUVhPEPVgweeeZOoCK3RCL7iagZ5bNm5n/ct657wHuKESkSCAnVR93pJdxvHhoNCdQgIQiKZZtmcdobH0hnhJS5hazKhZDQW5QYT1MJMd8Mlq7lr+z6ikUCA+C4894ZLVrPtxd5TugnKTuhLpgOTVKMn9D2//zh3bd9LLCL0tMU4NjzGXdv3citrqyZMPD+wogzlXPhTGYEwkCcIspfTFRLOrbHJA3xr4SP5gohcC+wCfk9V+4HlBBpHSK8bS7nl/HHc80EAVU2LyElgAXA0/wNFZDOBVsPyFSvLmuyhgRF62nJPU1s8wrsDIwW3V1U8BQ8NjHSOqy9cwV3b9+L5Sls84lpgKv/hg8s5PImGFJrgok4oiRMy2aa5aGRcKwoFmFE/nIqGUQkzXTkm2bBMSX4wyC2Xnckz+49PEISJZJrlc9szNaXSTmB4vpLygt/2bHR+P/TCQVJpjxNJj5TnE49G6GyJ8tALB6cUJMm0n7nwD4ymnGCYKADyx4bGTq3FciG622LBozWeWe5pi9PVFqOnLUZXW5yecJvMcpzO1hjvmdAEfZyZFiT3AF8lML9+Ffhz4Lcp3NtdJxlninW5g6pbga0AHzj/grJ+3ct62sc1CcdoymdpT3s5b8NFa+ZzK2t56IWDvDswwtISVGJVJa0Kp3ADF2ozQqDlCOPJbbnPkrNN6CsKhFNg3ssRUlnrTGMqjVpoGKdSkueWy87klsvOxPcVTxXPV4bH0nzuw+/hvz6xh7SXpDUWZTQdCMKrzl/OOycK31DNVg4cHWRozMv4kkJ/TiI5wPeeezNz8Q81h2wtYqxCybGxiNDTHqe7NeuC3x6jqzUQChkB0R7PrO9ujdHZGiNapZvMGRUkqno4XBaRvwEecy97gWxVYQXwjhtfUWA8e59eEYkBc4DjlZ7zpg+t5K7texlJeTmaxKYPlafZQCBMZsqWGt4Nau6fihJqTNnyJDTnhcImNNGFy5Ecjap5BNFMBwJM5te4ZO1C0n4gKNJOgwgd24X8FGed1sP/edZitr3Yy0jKoz0e5TcuXFGXfoFSSXs+g2P5voE0QwVNReNjJ0ezzAxZpyqR8rnvp2+UNYf2eHSCRtDtBEFmuT1Gd2ssS3DEaYtH6u4mbkYFiYgsU9VD7uVngFfc8qPA34nINwmc7WuB51XVE5FBEbkYeA64FvjLrH2uA54BNgLbp+MfKcapaBLNQkZjyqb0tIOMIIpGs0x4oRDKEkgwHgDRbAKoHEIntucrbx4fpqctRsrzCb+iiAgHjg7x1vHyAjye33+c77/8DinfJyKQ8n2+//I7vG9pT1n/B5V2Uqsqo2k/566/VJPRVFFI5RIReN/S7szFPkdAtAcmoozG4IRDvdUcmw7VDP/9e2ADsFBEeoE/BjaIyPkEsvwN4EYAVd0tItuAV4E0cLOL2AK4ifHw3yfcA+A+4EHnmD9OEPVVFWZSk2gmQkF0Khp/jnbjliXTfMnV3HKRR6FGJIxrT5nghuzlGt3l+b5mQm19BUXx/SDow1N1kVTq6lMFY76Pex4fzy5jvrirrYBJ1ivbJAuwdee/MjCSypg21YeBkRRbd/5ryf8Xkzmp16+ex/DY1Bf/gRG3nKVJpMrIvJ+MeFToaYtnmYPG/QiB2SjOnPYY33v2LY4NjzGS8jLtgrvbYiyf28k3P3teRebSiFQzauuaAsP3TbL914AJ7hxV3QWcW2B8FLh6OnM06ody71Y9X/FQUpW9scz4jILlvHXIhLGQ8GI+1WUt9EdBEBVVTIme7t37pg+t5KuP7SaR8jPOxo54hJs3nFHye4QcPDGS8ZcRzt9XDub5R5Jpn6GxbK1g3GT0Ty/2MpxMI0jG/+L5yn/+/islnbdS6WyNBppAa5Ym0JblO2h1DuX22Ph2bTFai9Q7y6cjHuOu7XszJqbpmLpnE5bZbtScWoRUFkOzL2oTrm7Tv9yV4q6qxPn41bsDGSESfmQi5fOrdwemDPAYSXk5TmPfaUCaF7YrKDc8sIvBkTSDY+XnHhQj6o67OyMQxs1FoekodC7PaY9nTEZdbdVzJoeYqbswJkiMmvPQCweJRSRjhglDZEsJqZyNPPTCQdKex4nEeIhpV2tpIaYhD+86mKNFhBrT955/Cx9yzEMDI0GIaWhKKjUxUIH9R4o3pmqLRehpDy7w75wYYTTlZ8yJ4ZwWdbfyh594X8aXsPfQIP/087d5d3CU+R0tdXmRLmbqbpRExWpggsSoOeXm6sx23jw+zOBICokEprSU53N8yGckNchP9x7NXPBDM9Jgnu9gYDRFwmkHXp4PIekp9z/zZslzCU1xhWTL3PYY13z4dBdVlB19FGgP8Sxn8g3ffYE3jycy/qggql3paolywenzgOBC/Nc/2V8XmulkFBIYQN1o1bXABIlRcyqVq1Ov+KokxrzAdzCWZmDEOZTHxjWC4HUwfmIkFURa5QmBoTEv03HwVBHg3OU9dLVm5R5kooriOQIh8CfE+M17nyMq0J9IZTSkeR1xfA0SbUthOOWxpKc17z1aSGQ5uRpBM31+/3HufHIPw67tcP9wkjufHGZee7zu515NTJAYNaeSuTrVJJN7MJJVqsIJg3BsKC/6aGAkGKtUGamWWCQTwdUWj7J6YSerFnQEF/6sTORn9h3lyVcPu6i1QANQ4LqLT+fz/2ZVWZ8ZCvqVWSVdRlIeiztbK/oejaCZbv3J/iCCLRKErasGEWwDIynWLOrM2bbe5l5NTJAYNWcmHZhh7sHgSFbROicc8usWDeRlJud3J5wOHS1R5ne25JWlCExCT7/ax8nRJMl0kCAYiwqdLVHmtLcwmvaJRSQjcI8OjfGbF71nwrn6P9YuZNmctglJhOUKEQgE/Z1P7uHw4Ci+r0QiQmdLrKwIsFJuFhpBMz3Yn8hUeQAXwSZKyg/mWs9zryYmSIy6oNxcHV+VodFck1Amz6BAglpmeSxdsdyD1liErrYYc9qySlEUqF/0dv8oP3j5beIRob0lGggIhS9sOKPgMZ+9tCdjb8++6AqU5YT//L9ZdUqCoyiuMvCpBK+VcrPQKJppIWIRSPvakHOvBCZIjBkl31G58YLlrDutJ+M0nljdNDdJLRQGQ6PpiuQeCNCZqVk0bh7KyT1wtYrCMNRycw/+08MvIygnRtIcGRqbUgAUu+je+eSejBM+EhHSvtI/nCLtF4+cKnjMWaVtIpHxZM2IkAmpCrNpFOUfXuylpy3Gkp7xfigjqTT/8GIv/+6cJYhIbkme8bfJ4bJzlvDxs5eghEmWjC8Dl5y5kGhE+Lvn3+LQyfoMrV05t503jyfA1/GgAYXT53ew+dL3Nm1YsAkSY9qoKomkN2l/g6HRNG8eS7C3b9BlcUPfwBgv9Z6oyBxiEcnRBLrbcgvY5QuIcF01C9mFZEdhlSoACmloybTvsvXHzSqeBG1nwwz/7DpmMfc6FonklJ8pN4P/8OAoUYGDxxOZjo0Lu1roGxxlQdfUfpJyqhBf/aEOrs66iy8UipxdASDM58wWSmGCY6g9ZQsrP7tSALmJpL77LD98/wLJopsvfW/gbE+mM2a+npY4my99b1NXwDBBYmTwfC3oG8jXCAoJiko5k9vikVxNINtUlBVhlF/muh4L2YVMJgBKJRoR4lFhLA2adTcM0BYTTl/QOfkbTIPu1hh7+4YygirtK2+fGGXt4q4p9z2VKsTZFBbyM/M9hwIrLD+jCld+cDnzOuLc9y9v8PaJBKfNaee6j6zi4jMWZBI3s7f3XRb/bMcEySxDNehxXagjWljdtFil0+EKFbKLSNBxb/zuP3AoP/OvR4lGhLGUj6eaibkH+OvPr5+QezBbCAWAnycAWqLjF8SICC2xCC2xCPFoJEubGNcizlo2hwNHhxgcTQeaQSxCd1uM1QunvqBPh8HRFGlXKVgYv7iXUiN1y879pDyPY0PpjDbT0x7j60+8Nu321dUmMAFCNE9wfeL9y/jE+5eV9V5hSZhQsHiqqJ+rRYVaUL7wmkxDqhdMkNQp2bkHxaqa5vsTQi2i0oXssgVCd565KKfktRvvbI1l7r6zueH+Xbx5bDhjdlENchNOX9DJ/M6Wisy5Hlm1oIve/mGGXTOklmiErrY4qxZ0sXxeO1GRkirBhg2yls6J5TTI+sia+Vyz9dmqXJR37Onj0MAYUQlNQ8FFcWFXvKQbj719g5xMuHBZp80cPjnGuyfHaI0lSPs+RwfH+INHXubPNp5Xd8KkUoTa3HRQDYXRuKDJvA6FVJ4mpO778qsshEyQVJmU508wD5XSJrOSuQcdLdHchjduOV9jyBcKrbEKm4syBm3ynuv3TqtcRAITVEssQms0SjwmfOFj7+WOx15jTkdLjgD43Q3vpTVWmsMeCjfI+sia+Tzys7dP2XSUTSFfxpad+4kKhGW0wr4yg6MeZyzumfI9C5n1QoOeArFoJHNDcecP98xaQVIJRIRY9NT/H7M1IlVXPdppRuGy7wRTdmVpr4T/TxMkJaCqjKb8glVNJ2oHuWOVLGSX3REtXygUG++qo74HpWQ3NxLxaIRWZ4oKTVLx6ERn9mVnLyUWiVSkQ2J+g6xrtj5btIFVOe9fzJfRPzxGytMcme97iieTtwoOiUeFkdREsx7kChcVZf/R8qLPjPKIRoQoQonBhjlMZVZrOkHi+Upvf6KguWiik3lcKKQrpB60xSIlmIfGI4xCodDREq1bZ3KpVCJDuhYEjm4nMKIR4jGhNRYty1RRrQ6JB/sTzG2P54y1x6P09pfXvKpYR8XhpFcwzDoWkZKO58wlPbl+nWiEMa+4u/zup14v2DfeqC1TXXuaTpDsOzLEtd95YVrvIZC5yIfNb7J7J2cEQV5HtO62OC2x+tAOakElMqSrSY5ZKhalxWka1Q4Png4r53XQNziaEQAQCOcVWcK6FIoJpGL3T6Xa3Av5dd48NhxoNnm5GHPboty1fR8RCRL8RlIed23fB2DCpM6pZofE7wCfBvpU9Vw3Nh94GFhF0CHxN1S13627HbieoFnrLar6pBu/kPEOiY8Dt6qqikgr8ABwIXAM+KyqvlHOHGMRyfRC7ppgJgpfj3dJCxPTZiL3YLYS9Ad3FyFfaYlWxvRXLiKBw7/VCY3WeKTyPqEZILxQJ5LpHP9LKWanbIoJJKFwInuhyOVi+SIbe0/kaBn//gPLePq1PoaSHr66KL+WKMNJzwmR4GYrIpD2fe796YGGECTl5MvMNqRaIWUicikwBDyQJUj+O3BcVb8uIrcB81T1SyJyNvD3wEUEPdufAs50PdufB24FniUQJHer6hMi8rvAB1T1d0RkE/AZVf3sVPN637nn6f0/eJru9jhtDXjhaGSyo7Yyd6K+cvqCTu69bn3VPjciQms8MEu1xgNNo5Avo1EJL2DT8b9k+0iyBdKhEwmKufn+02VrMxf4YvtvvGA5Dz77pjMP+8QikUzYc9KFxEYjQldrjGNDSVpiQkTGtXZffdI+/Ot//dSpnZwZotjx33HFObNGmIjIi6pa8B+1mq12d4rIqrzhKwn6uAPcD+wAvuTGH1LVMeCA68N+kYi8AfSo6jMAIvIAcBVB3/Yrga+493oE+CsREZ1CMrbGoizOKvVgzBzFCt4dLNOePxkioZYRGTdR1ZE5sRp3rZXwvxSKCLvx0jX8/iMvc3QoWXCfbE0h9LGkPeXAyWGSXpBt/z9+vA9PAz9TGKE1OOYRjwrvWzoe9ZVIpulPpDIaSoiv0NlyCt7hGaaYj6ncoIdGZaZ9JEtU9RCAqh4SkfAMLyfQOEJ63VjKLeePh/scdO+VFpGTwALgaP6HishmYDPA8hXNUUStXvEV0unxPuKBYDm195IwiS8ayZimWqK11TInExQ79vTxB4+8nLk7r7f8iUICae3ibo4OHSu4/dBYOrN8sD/BQGKMgbFx9cX3FU8Df0eoZYjLR0nm5Tq1x6N0OvNW2veJuGZavsINl6yu0BFWj4P9CaIC+48M5ZSRKTfooVGpl1u1Qv/5Osn4ZPtMHFTdqqrrVXX9/AULT3GKxnSZ3x7D09w0Ek+D8VKIR4Nquwu6Wlk+r51VCzpYPredRd2t9LTFaY3VNrItNG/0DY7mhNDu2NMHwJ0/3EN/IjWeP8F4/kS9MpmvJedc+36OEIHxvlxenmms0Dc0kvI457Q5XPGBpfgKY+kgn+GKDyxtCP9Id2uMt0+MknamurCMTFdrc8QzzbQgOSwiywDcc58b7wWyVYUVwDtufEWB8Zx9RCQGzAGOV23mxrTpbGuZcBERN55PLBKhoyXGvI4Wls5p4/QFnayc38Hi7jbmtNdeaBQi27whEjzHo8KWnfsB2H90OGPaC6rtBhV36zl/YsO6xcSLXCU64uPn//hIuvBGkCmIqC7JTYCowN7Dg7x26CR7Dw8yMJLiI2vm85N9x4hHJfP4yb5jGUFcz2h2sm1Wqf16LmtSSWZakDwKXOeWrwN+kDW+SURaRWQ1sBZ43pnBBkXkYgmuGtfm7RO+10Zg+1T+EaO2DCfTLJvTSns8QiwC7fEIy+a0MpJM09maKzTes6CDpXPamNfZQkdLY0TJHexPkPZ89h8ZYs+7A+w/MkTa8xvavLFjTx+RyMTLRGdLhHOXz8u8TkxSLiUiIJEgQ1oi0NkamLEQp9U4c9e2F97iRCKF+kGlYvXhRCLF1594rRqHVlGGkh7L57YRi0pQRy4qLJ/bVrH6dfVONcN//57Asb5QRHqBPwa+DmwTkeuBt4CrAVR1t4hsA14F0sDNqhp+AzcxHv77hHsA3Ac86Bzzx4FN1ToWozIs62nneGKM0xd0Br0wEEZSaZb0tOf0umhUpqqSu3pBB/uODCN5+RNnLCwv52Mm2bJzP7EIjOWNJ8sIMZ7XHiPlw7Dn0R6NMKc9yKfKDjVOJNPsPzpM3JXaB+dP8ZUDx+pfEIfh02sWjRfQTCTTLO5u/N91KVQzauuaIqs+XmT7rwFfKzC+Czi3wPgoThAZ9UnoDA+jqMKaUynPz4RIpv3J7fCNRFhUL7sKgjBu3rjtk2fx+4+8zNBYOhP2Orc1zm2fPKvqczvVaLFX3j7BcHJi/G85hUFPjKZZtaCT97jv/I1jCVbMzb3AtsejDV1yrVL5PI1KvTjbjVlARIJWsvM7Wzht7rgzfGFXK91tcS47eykbL1jOkcExXnt3kCODY2y8YHldRCxVgt4TiQnRHgq8fSK4o96wbjHf2HgeH1w5j6U9bXxw5Ty+MQMRW2G02M/f6ufdkyP8/K1+/uCRl0vyPSQmqRUX+n6gWN+QgLjzd2X7jQ4P5Oo4IymPjpZoprKtopny6WsWVq/XSqXYsG4xd1xxDou72zg5kmJxd9usyiGZiuYIKTCqQli0MMwMb5uiGtyOPX088rO3WdTdmrk7feRnb/OBFXNnxT9cosCdO5BzR1+tmluTcecP93B8OOm6CoLn+6SGkxOq7RaqczWZ23H3Oyczy/HIxOiskCU9ubXUlnS30ntiZMLd++9cuob7/uUAAyPpTMhmT3uML12+bhpHP3PU4rutF0yQGFMSESHucjRCU1VLNJKxZZfKlp37GRpNcWJkPPFsbnt81iRtFa9LVd3PnarQ4b6+ITwNLsziap54Goxnv0ehOleTmZuy80haYlHG0ukJGllEmFB9OhaNsHZRF/M6W3OSH8HdnMQjGdPfbGx0NhsxQWLkEI1IJhs8zA6v1D/z7ndOMjA6fvHxFY4nUjl3tkZAqT6NYgIAxgsdpp000MwfcsYhyFIvVOdqspijbAHZEgu6OuaXv2mLR0h5OkH7+H9//ewJx3PN1meZ0x5n2Zz2zFgzZYc3Mibum5jQpzGnPc7injZWzu/g9AWdLJ3TxvzOFjpbK9v6NvsOtpTxZmWqxMZssgVARCLuORgPkSJaRfZ4WDAxm1IUzrufeh0IMuAXdrcQiwieH7RRXtjdwrnL55bsOzjYn6A9zzx6KiXxjZnHNJImIT+CqhY1qGpl+pkpIox3/8sfL4dy6jYNJz3yv8aIkJO/EImAX2Bi2ekhnS2BtpBf52oq/uLpvUAQtfQHj7xMMh1E4qU8j6Tnc82H5pfsO6hUSXxj5jGNZJbS4hpoLezOLScSRlDVUyHD2UJbkeKCxcaLUU5iY2dLlLSnjKU9RlMeY2mPtKc5hQ6LOcGzx2+4ZHVQB833XcVdH1+hq2Xy34mv8Ncuems05ZHyx61nvq88+OybJWem33jpmowZTDV4bqYQ2kbGNJJZQCwSoS1e/301ivW2qL+ZnhrFIpwmi3wq5Avpbo3x+uHBQLtRSPsevf0jnLmke8L+H1+3iH9+6VDWZ42PZ8aKzTdrOfSn5DvtP7BiLjf97S5G0sWPIZH02LJzPylfac0KwvBVGRwt3cdRrAKx+UfqHxMkDUZ2mfTWeJS2WKRuerI3O/kVbacaL9YnfXg0Rc4uGnR7GxyZWM595+sTil1POj4Zt1x2ZsECifd8bj1ff+I19hweKrBXwMH+RBBplXUDI0LZJWKaOYS2kTFBUsfk+zXC/hqNSndbLONYV3WhqDBrKqR6RZwKxca37NxPyvM4NjTez7ynPcbxkRRRV38qPE8CHBlOTXiPY4mJY/nj0/XdhBf3Vbf9z6LbrJzXwdGhMdQf/15VA23ZfByzH7uVrRNCoTGZX6ORhQgEdniRoA5VSyx4FpGG6DdRCsWinIqN7+0b5OhgMqf0+NHBZI6QDZmOpTIeixSsuhwv009WbApC4N/oao3hqeL5vnso3W0x83E0AbPjVrDBEAlKZIc+jZZo/fo1KkkxO3wj9JsoiVKcEVkk0z7kdYz0JSiz7lYFuyukFZbNaS38RlMQFouMyniOh6fK6gXlaQrhvoXGw/IvX3/itUyRxbWLOvnS5evMVNUEmCCZAeKZDn7RjJlqtguNYhSzw88G4rEISdf9MWSyO/94VBhJBdFN2RfpsHNkWNIk7N9xqi1nK1Ussqs1xvBYeoLJrdOZJs2/0byYIKkw+fWnTqWUiNGYrF7Qwd6+oRwBEJFgvFB01plLejhwdIjB0XEfSXdbnP5EiqU9rRwdSua0bS3U26KUSLgN6xZz7cWnB5qgK+V+7cWnl33Rv+GS1dy1fR9RoeFa4RrVxQTJNIhFxnuFhwl+tWzAdKqlwo3K8Kn3L+ObT+3NvA5bCZ+1rLtgdNbGC5bz9okRls6J5ZQPWbOwhRN5EVpJz2fVgi7yKUWQVKpY5qw3TRqnTE0EiYi8AQwSRDWmVXW9iMwHHgZWAW8Av6Gq/W7724Hr3fa3qOqTbvxCxptePQ7cWq0uiYGDONc8VU9ht8VCSe8AEyYzxBOvvEsEUMky/Sg8+Wofy+a0TchUf2b/ce644pwJeRO/6D2RqZ8VkUCI9A0mueZD8yd8ZrEi79nj5WTKT8VsNk0ap04tNZJfU9XsYPfbgKdV9esicpt7/SUROZug++E5wGnAUyJypuugeA+wGXiWQJBczngHxVMmkh12Gw8ER71XIa3kxcI4NfYfHSYWFaJZtUc83yeR9IrWkCrkV9iycz+LulryTF4xntl/nFvyPlOECVFe+a8P9ieY2x4v+PmGUQnqybR1JUFrXoD7gR3Al9z4Q6o6BhxwrXUvclpNj6o+AyAiDwBXUaYgqYcaVJXALhb1i0jYuKm0GlIH+xMs7GplUVabVlUt+F0un9NG74nRCdFUy+eM72s1rIxqU6srpgL/S0ReFJHNbmyJqh4CcM/hbdpy4GDWvr1ubLlbzh+fgIhsFpFdIrLr+LGjdLXFWNDVWrCLXyMKEQguFiOpXGesXSxmltULOgIHtK+oKr4fdPhb3tNaVg2pcr7LP73q/fS0RjO5KhGBntYof3rV+zPbWA0ro9rU6qr5UVW9APgkcLOIXDrJtoW81zrJ+MRB1a2qul5V1y9dspjF3W3MaY/TFo/OmjBcu1jUnts+eRZzO+JIJMjTkAjM7Yjzp5/5QFltWMv5LjesW8zd11zAh1cvYOW8dj68egF3X3NBzns3extYo/rUxLSlqu+45z4R+WfgIuCwiCxT1UMisgwIS4b2Aiuzdl8BvOPGVxQYb0qs4F3tCZPyin0HpX4X5X6XpeRvWI6HUU2kSkFOxT9QpBOIqOqgW/4RcAfwceBYlrN9vqr+oYicA/wdgbA5DXgaWKuqnoi8APw/wHMEzva/VNXHJ/v89evX665du6p2fIZhGLMREXlRVdcXWlcLjWQJ8M/OpBQD/k5Vf+iEwjYRuR54C7gaQFV3i8g24FUgDdzsIrYAbmI8/PcJKhCxZRiGYZTHjGsktcY0EsMwjPKZTCNpzBAlwzAMo24wQWIYhmFMCxMkhmEYxrQwQWIYhmFMCxMkhmEYxrRouqgtETkCvJk3vBA4WmBzYxw7R5Nj52dq7BxNTr2fn9NVdVGhFU0nSAohIruKhbUZAXaOJsfOz9TYOZqcRj4/ZtoyDMMwpoUJEsMwDGNamCAJ2FrrCTQAdo4mx87P1Ng5mpyGPT/mIzEMwzCmhWkkhmEYxrQwQWIYhmFMi6YRJCKyUkR+LCKvichuEbm1wDYiIneLyD4R+YWIXFCLudaCEs/PBhE5KSIvuceXazHXWiEibSLyvIi87M7RnxTYppl/Q6Wcn6b+DQGISFREfi4ijxVY15C/n5p0SKwRaeD3VPVnItINvCgiP1LVV7O2+SSw1j0+DNzjnpuBUs4PwE9U9dM1mF89MAZ8TFWHRCQO/FREnlDVZ7O2aebfUCnnB5r7NwRwK/Aa0FNgXUP+fppGI1HVQ6r6M7c8SPBFLs/b7ErgAQ14Fpjr2v7Oeko8P02N+10MuZdx98iPVmnm31Ap56epEZEVwK8D9xbZpCF/P00jSLIRkVXABwla9GazHDiY9bqXJryYTnJ+AD7iTBdPuDbITYUzS7wE9AE/UlX7DWVRwvmB5v4N/QXwh4BfZH1D/n6aTpCISBfwj8AXVXUgf3WBXZrqjmqK8/Mzgno75wF/CXx/hqdXc1TVU9XzgRXARSJybt4mTf0bKuH8NO1vSEQ+DfSp6ouTbVZgrO5/P00lSJzd9h+B76nqPxXYpBdYmfV6BfDOTMytHpjq/KjqQGi6UNXHgbiILJzhadYFqnoC2AFcnreqqX9DIcXOT5P/hj4KXCEibwAPAR8Tkb/N26Yhfz9NI0hERID7gNdU9ZtFNnsUuNZFTlwMnFTVQzM2yRpSyvkRkaVuO0TkIoLfz7GZm2VtEZFFIjLXLbcDlwF78jZr5t/QlOenmX9Dqnq7qq5Q1VXAJmC7qn4ub7OG/P00U9TWR4HPA790NlyAPwLeA6Cqfw08DnwK2AckgN+a+WnWjFLOz0bgJhFJAyPAJm2u0gjLgPtFJEpwAdymqo+JyO+A/YYo7fw0+29oArPh92MlUgzDMIxp0TSmLcMwDKM6mCAxDMMwpoUJEsMwDGNamCAxDMMwpoUJEsMwDGNamCAxjBlARL4oIh1l7rNKRF6p1pwMo1KYIDGMmeGLQEFB4vIuDKNhMUFiGBVGRDpF5H+6woSviMgfA6cBPxaRH7tthkTkDhF5jqCI4X9y274iIl8s8J5rXA+LD4nIe0XkhyLyooj8RETWzewRGkYuzZTZbhgzxeXAO6r66wAiMocgQ/nXVPWo26YTeEVVvywiF7r1HyYo2veciPxvoN/t/z6C2ky/paovicjTwO+o6l4R+TDwbeBjM3h8hpGDZbYbRoURkTOBJ4FtwGOq+hNXqG99KEhciZBWVfUk6Ea5QFW/7NZ9FThCUHfpOQKB8n+p6m5XnfkI8Kusj2xV1bNm6PAMYwKmkRhGhVHV152W8Sngv4nI/yqw2aiqem65UOnwkJME/Sk+CuwmMEefcKXaDaMuMB+JYVQYETkNSKjq3wLfAC4ABoHuIrvsBK4SkQ4R6QQ+A/zErUsCVxFUhP2/XY+YAyJytfssEZHzqnc0hjE1ppEYRuV5P/BnIuIDKeAm4CPAEyJySFV/LXtjVf2ZiHwXeN4N3auqP3edKlHVYdcU6UciMgz8JnCPiPwXgna2DwEvz8BxGUZBzEdiGIZhTAszbRmGYRjTwgSJYRiGMS1MkBiGYRjTwgSJYRiGMS1MkBiGYRjTwgSJYRiGMS1MkBiGYRjT4v8HRqOyiLtfXL0AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"#plt.ylim(0,50000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 42,
"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"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>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": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>hatchback</td>\n",
" <td>7603.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>12647.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4wd</td>\n",
" <td>wagon</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>fwd</td>\n",
" <td>hardtop</td>\n",
" <td>8249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>8396.387755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9811.800000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>23949.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>hardtop</td>\n",
" <td>24202.714286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>14337.777778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21711.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 4wd hatchback 7603.000000\n",
"1 4wd sedan 12647.333333\n",
"2 4wd wagon 9095.750000\n",
"3 fwd convertible 11595.000000\n",
"4 fwd hardtop 8249.000000\n",
"5 fwd hatchback 8396.387755\n",
"6 fwd sedan 9811.800000\n",
"7 fwd wagon 9997.333333\n",
"8 rwd convertible 23949.600000\n",
"9 rwd hardtop 24202.714286\n",
"10 rwd hatchback 14337.777778\n",
"11 rwd sedan 21711.833333\n",
"12 rwd wagon 16994.222222"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_group1 = df[['price','body-style']]\n",
"df_group1.groupby(['body-style'],as_index=False).mean()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler than determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.369057428260101e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522673 with a P-value of P = 9.200335510481646e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622198389e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935489e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</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>6</th>\n",
" <td>fwd</td>\n",
" <td>17710.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>18920.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>fwd</td>\n",
" <td>23875.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>16430.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>16925.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>20970.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>21105.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>rwd</td>\n",
" <td>24565.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>rwd</td>\n",
" <td>30760.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>rwd</td>\n",
" <td>41315.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>fwd</td>\n",
" <td>5151.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>fwd</td>\n",
" <td>6295.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>fwd</td>\n",
" <td>6575.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>fwd</td>\n",
" <td>5572.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>fwd</td>\n",
" <td>6377.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>140</th>\n",
" <td>4wd</td>\n",
" <td>9233.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>141</th>\n",
" <td>4wd</td>\n",
" <td>11259.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144</th>\n",
" <td>4wd</td>\n",
" <td>8013.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>145</th>\n",
" <td>4wd</td>\n",
" <td>11694.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>150</th>\n",
" <td>4wd</td>\n",
" <td>7898.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>151</th>\n",
" <td>4wd</td>\n",
" <td>8778.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",
"2 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"6 fwd 17710.0\n",
"7 fwd 18920.0\n",
"8 fwd 23875.0\n",
"9 rwd 16430.0\n",
"10 rwd 16925.0\n",
"11 rwd 20970.0\n",
"12 rwd 21105.0\n",
"13 rwd 24565.0\n",
"14 rwd 30760.0\n",
"15 rwd 41315.0\n",
"17 fwd 5151.0\n",
"18 fwd 6295.0\n",
"19 fwd 6575.0\n",
"20 fwd 5572.0\n",
"21 fwd 6377.0\n",
"136 4wd 7603.0\n",
"140 4wd 9233.0\n",
"141 4wd 11259.0\n",
"144 4wd 8013.0\n",
"145 4wd 11694.0\n",
"150 4wd 7898.0\n",
"151 4wd 8778.0"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 76,
"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": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". "
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>."
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.12"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment