Skip to content

Instantly share code, notes, and snippets.

@colmblueeyes
Created January 15, 2020 21:56
Show Gist options
  • Save colmblueeyes/7a4fded1662f0b50bda641b5507803a7 to your computer and use it in GitHub Desktop.
Save colmblueeyes/7a4fded1662f0b50bda641b5507803a7 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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/DA101EN_object_storage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<bound method DataFrame.corr of bore stroke compression-ratio horsepower\n",
"0 3.47 2.68 9.0 111.0\n",
"1 3.47 2.68 9.0 111.0\n",
"2 2.68 3.47 9.0 154.0\n",
"3 3.19 3.40 10.0 102.0\n",
"4 3.19 3.40 8.0 115.0\n",
".. ... ... ... ...\n",
"196 3.78 3.15 9.5 114.0\n",
"197 3.78 3.15 8.7 160.0\n",
"198 3.58 2.87 8.8 134.0\n",
"199 3.01 3.40 23.0 106.0\n",
"200 3.78 3.15 9.5 114.0\n",
"\n",
"[201 rows x 4 columns]>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke' ,'compression-ratio','horsepower']].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": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56462.776892036)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fcdd4dbe278>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fcdd4d435c0>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO29e5hc1XXg+1v16Hfr3QIhCSQZOQKRAEYmYPtTNHZywY6D8Fwcwzcx5A6JdAm+kEmcADMJYch4PpPExsaOuZIfF7AnxkR5WNcX7DEQRfGYhyUbbAsEkluCbpDULamlflbX46z7x9nVfbq6qruq6921ft9XqnNWnX3OPqrqs/Zea+21RFUxDMMwjLkSqnYHDMMwjPrGFIlhGIZRFKZIDMMwjKIwRWIYhmEUhSkSwzAMoygi1e5ApVm2bJmuWbOm2t0wDMOoK/bv339SVbuyfdZwimTNmjXs27ev2t0wDMOoK0TkjVyfmWnLMAzDKApTJIZhGEZRmCIxDMMwisIUiWEYhlEUpkgMwzCMomi4qK1GYM/BPnbs7aZnYJTVi9vYvnkdWzYsr3a3DMOYp9iMZJ6x52Af9+4+QN9QjEWtUfqGYty7+wB7DvZVu2uGYcxTyq5IRCQsIj8Rke+4/ftE5C0Recm9PhQ49h4ROSwir4nINQH5FSLyM/fZQyIiTt4sIt9y8hdEZE2576fW2bG3m2hYaGuKIOK/R8PCjr3d1e6aYRjzlErMSO4EXs2QPaiql7nXkwAicjFwI7ARuBb4koiE3fEPA9uA9e51rZPfCgyo6oXAg8ADZb2TOqBnYJTWaHiKrDUapndgtEo9MgxjvlNWRSIiq4DfBL6Sx+FbgcdVdVxVjwCHgStFZAWwQFWfU78K12PA9YE2j7rtXcAH0rOVRmX14jbGEqkpsrFEilWL26rUI8Mw5jvlnpF8DvhTwMuQf0JEfioiXxORxU62EugJHNPrZCvddqZ8ShtVTQJngaWZnRCRbSKyT0T29ff3F3lLtc32zetIpJTReBJV/z2RUrZvXlftrhmGMU8pmyIRkQ8Dfaq6P+Ojh4F3AJcBx4DPpJtkOY3OIJ+pzVSB6k5V3aSqm7q6suYcmzds2bCc+6/byPLOFs6OJVje2cL91220qC3DMMpGOcN/3wtc55zpLcACEfmGqv5O+gAR+TLwHbfbC6wOtF8FvO3kq7LIg216RSQCLAROl+Fe6ootG5ab4jAMo2KUbUaiqveo6ipVXYPvRH9WVX/H+TzSfAT4udveDdzoIrHW4jvVX1TVY8CQiFzl/B83A98OtLnFbd/grjFtRmIYhmGUj2osSPwrEbkM3wR1FNgOoKoHROQJ4BUgCdyuqmmv8W3AI0Ar8JR7AXwV+LqIHMafidxYoXswDMMwHNJoA/hNmzap1SMxDMMoDBHZr6qbsn1mK9sNwzCMojBFYhiGYRSFKRLDMAyjKEyRGIZhGEVhisQwDMMoClMkhmEYRlGYIjEMwzCKwhSJYRiGURSmSAzDMIyisJrthlFj7DnYx4693fQMjLJ6cRvbN6+zJJxGTWMzEsOoIfYc7OPe3QfoG4qxqDVK31CMe3cfYM/Bvmp3zTByYjOSeYiNaOuXHXu7iYaFtib/T7OtKcJoPMmOvd32HRo1i81I5hk2oq1vegZGaY2Gp8hao2F6B0ar1CPDmB1TJPOM4IhWxH+PhoUde7ur3TUjD1YvbmMskZoiG0ukWLW4rUo9MozZMUUyz7ARbX2zffM6EillNJ5E1X9PpJTtm9dVu2uGkRNTJPMMG9HWN1s2LOf+6zayvLOFs2MJlne2cP91G80/YtQ0ZXe2i0gY2Ae8paofFpElwLeANfgVEn9bVQfcsfcAtwIp4A5V/Z6TX8FkhcQngTtVVUWkGXgMuAI4BXxMVY+W+55qme2b13Hv7gOMxpO0RsOMJVI2oq0ztmxYborDqCsqMSO5E3g1sH838IyqrgeecfuIyMX4pXI3AtcCX3JKCOBhYBt+Hff17nPwlc6Aql4IPAg8UN5bqX1sRGsYRqUp64xERFYBvwl8CvgjJ94KbHHbjwJ7gLuc/HFVHQeOuDrsV4rIUWCBqj7nzvkYcD1+3fatwH3uXLuAL4qIaKPVD87ARrSGYVSScs9IPgf8KeAFZOeo6jEA955+4q0EegLH9TrZSredKZ/SRlWTwFlgaWYnRGSbiOwTkX39/f3F3pNhGIYRoGyKREQ+DPSp6v58m2SR6QzymdpMFajuVNVNqrqpq6srz+4YhmEY+VBO09Z7getE5ENAC7BARL4BnBCRFap6TERWAOmVcr3A6kD7VcDbTr4qizzYpldEIsBC4HS5bsgwDMOYTtlmJKp6j6quUtU1+E70Z1X1d4DdwC3usFuAb7vt3cCNItIsImvxneovOvPXkIhcJSIC3JzRJn2uG9w1Gto/YhiGUWmqkWvr08ATInIr8CbwUQBVPSAiTwCvAEngdlVNL4i4jcnw36fcC+CrwNedY/40vsIyDMMwKog02gB+06ZNum/fvmp3wzAMo64Qkf2quinbZ7ay3TAMwygKUySGYRhGUZgiMQzDMIrCFIlhGIZRFKZIDMMwjKKwUruGYVQdKw9d35giMYwao9Eequny0NGwTCkPfT/M6/ueT5hpyzBqiPRDtW8oNuWhuudg3+yN6xQrD13/mCIxjBqiER+qVh66/jFFYhg1RCM+VK08dP1jisSYN+w52MdNO5/nfQ88y007n69Lc1AjPlS3b15HIqWMxpOo+u9WHrq+MEVizAvmi2+hER+qVh66/rGoLWNeEPQtALQ1RRiNJ9mxt7uuHkhbNiznfvz76R0YZVUDRG2BlYeud0yRGCWlWqGrPQOjLGqNTpHVq2/BHqpGvWGmLaNkVNO81Ii+BcOoFcpZs71FRF4UkZdF5ICI/Fcnv09E3hKRl9zrQ4E294jIYRF5TUSuCcivEJGfuc8ecpUScdUUv+XkL4jImnLdjzE7O/Z2E0+mOH42xmsnhjh+NkY8mapI6Goj+hYMo1Yop2lrHHi/qg6LSBT4gYikKxs+qKp/EzxYRC7Gr3C4ETgPeFpE3umqJD4MbAOeB54ErsWvkngrMKCqF4rIjcADwMfKeE/GDLx+YpDBWJIQQliEZEo5NRInmRos+7Ub1bdgGLVA2RSJq50+7Haj7jVTOcatwOOqOg4cceVzrxSRo8ACVX0OQEQeA67HVyRbgftc+13AF0VErG57dUik/P/2UEgAEAHPU+Kpynwd5lswjOpQVh+JiIRF5CWgD/i+qr7gPvqEiPxURL4mIoudbCXQE2je62Qr3XamfEobVU0CZ4GlWfqxTUT2ici+/v7+Et2dkUlTJAQKniqK4qmCOrlhGPOWsv6Fq2pKVS8DVuHPLi7BN1O9A7gMOAZ8xh0u2U4xg3ymNpn92Kmqm1R1U1dXV4F3YeTL+uWddLZESKQ8YgmPRMqjsyXC+uWd1e6aYRhlpCLhv6p6RkT2ANcGfSMi8mXgO263F1gdaLYKeNvJV2WRB9v0ikgEWAicLsc9GLNz9bolvHj0NOGQEBXwFM7Gkly9bkm1u2bUOI2W8Xi+Uc6orS4RWeS2W4FfBw6KyIrAYR8Bfu62dwM3ukistcB64EVVPQYMichVLlrrZuDbgTa3uO0bgGfNP1I9nus+TVdHE03hEJ5CUzhEV0cTz3WbbjdyM1+yEjQy5ZyRrAAeFZEwvsJ6QlW/IyJfF5HL8E1QR4HtAKp6QESeAF4BksDtLmIL4DbgEaAV38mejv76KvB155g/jR/1ZVSJnoFRlnU009XZMiFT1bpcFGhUjvmSlaCRKWfU1k+By7PIPz5Dm08Bn8oi3wdckkUeAz5aXE+NUrF6cRt9Q7GJBwLYokBjduZTVoJGxcJpjJJhiwKNuWBZCeofUyRGybAsrsZcsAFI/WNJG42SYosCjUKxrAT1j81IDMOoGSzksj4xRWIYRlWx8N/6x0xbRkmxhWVGoVj4b/1jMxKjZNjI0pgLPQOjtEbDU2QW/ltfmCIxSkZwZCniv0fDUpF6JEb9YuG/9Y8pkhpiz8E+btr5PO974Flu2vl83Y3kbWRpzAUL/61/TJHUCPPBLGQjS2Mu2Pqj+sec7TXCfHA4bt+8jnt3H2A0nqQ1GmYskbKRpZEXtv6ovrEZSY0wH8xCNrI0jMbEZiQ1wnxJeGgjy+KxEGqj3rAZSY1gDkcD5oevzGg8TJHUCGYWMsBCqI36xExbNYSZhQyrzWHUI+UstdsiIi+KyMsickBE/quTLxGR74vIIfe+ONDmHhE5LCKvicg1AfkVIvIz99lDruQurizvt5z8BRFZU677MYxKYCHURj1STtPWOPB+Vb0UuAy4VkSuAu4GnlHV9cAzbh8RuRi/VO5G4FrgS65ML8DDwDb8Ou7r3ecAtwIDqnoh8CDwQBnvxzDKjvnKjHqkbIpEfYbdbtS9FNgKPOrkjwLXu+2twOOqOq6qR4DDwJUisgJYoKrPqaoCj2W0SZ9rF/CB9GzFMOoR85UZ9UhZfSRuRrEfuBD4W1V9QUTOUdVjAKp6TETSfyErgecDzXudLOG2M+XpNj3uXEkROQssBU5m9GMb/oyG888/v3Q3aBhlwHxlRr1R1qgtVU2p6mXAKvzZxSUzHJ5tJqEzyGdqk9mPnaq6SVU3dXV1zdZtwzAMowAqEv6rqmeAPfi+jRPOXIV7TwfI9wKrA81WAW87+aos8iltRCQCLAROl+UmDMMwjKyUM2qrS0QWue1W4NeBg8Bu4BZ32C3At932buBGF4m1Ft+p/qIzgw2JyFXO/3FzRpv0uW4AnnV+FMMwDKNClNNHsgJ41PlJQsATqvodEXkOeEJEbgXeBD4KoKoHROQJ4BUgCdyuquk4yNuAR4BW4Cn3Avgq8HUROYw/E7mxjPdjGIZhZEEabQC/adMm3bdvX7W7kRXLsWQYRq0iIvtVdVO2zyxFSo2w52Afn9z1Mj/pGeDEYIyf9AzwyV0vW44lwzBqHlMkNcKnn3qVM6MJ1IOwCOrBmdEEn37q1Wp3zTAMY0Ys11aNcOTUKCGBUMiPaBYB9ZQjpyzHkmEYtY3NSAzDMIyiMEVSI6xb1o6n4KmiKJ4qnvpywzCMWsYUSY1w17UbWNwWRYBkykOAxW1R7rp2Q7W7ZhiGMSOmSGqELRuW89c3XMrl5y9mxcJWLj9/MX99w6UW/msYRs2Tt7NdRC4A1qvq026lekRVh8rXtcbDkvUZhlGP5DUjEZHfx0/TvsOJVgH/XK5OGYZhGPVDvqat24H3AoMAqnoIsKGzYRiGkbciGVfVeHrHZdptrNwqhmEYRlbyVST/KiL/GWgVkd8A/h74f8vXLcMwDKNeyFeR3A30Az8DtgNPAn9Wrk4ZhmEY9UO+UVutwNdU9cswUUK3FbD8HSXEsv8ahlGP5DsjeQZfcaRpBZ4ufXcalz0H+7h39wH6hmIsao3SNxTj3t0HLPuvYRg1T76KpEVVh9M7brttpgYislpE/kVEXhWRAyJyp5PfJyJvichL7vWhQJt7ROSwiLwmItcE5FeIyM/cZw+5Som4aorfcvIXRGRN/rdeW+zY2000LLQ1RRDx36NhYcfe7mp3zTAMY0byVSQjIvKu9I6IXAGMzdImCfyxql4EXAXcLiIXu88eVNXL3OtJd86L8SscbsSv7f4lZ0IDeBjYhl9+d737HOBWYEBVLwQeBB7I835qjp6BUVqj4Smy1miY3gGzHhqGUdvk6yP5Q+DvReRtt78C+NhMDVyt9WNue0hEXgVWztBkK/C4qo4DR1z53CtF5CiwQFWfAxCRx4Dr8cvtbgXuc+13AV8UEamFuu2F+jtWL26jbyhGW9PkVzKWSLFq8YwTP8MwjKqT14xEVX8EbMCvnf4HwEWquj/fiziT0+XAC070CRH5qYh8TUQWO9lKoCfQrNfJVrrtTPmUNqqaBM4CS7Ncf5uI7BORff39/fl2e87Mxd+xffM6EillNJ5E1X9PpJTtm9eVvb+GYRjFMKMiEZH3u/d/D/wW8E5809JvOdmsiEgH8A/AH6rqIL6Z6h3AZfgzls+kD83SXGeQz9RmqkB1p6puUtVNXV1d+XS7KObi79iyYTn3X7eR5Z0tnB1LsLyzhfuv22hRW4Zh1DyzmbZ+DXgWX4lkosA/ztRYRKL4SuR/qOo/AqjqicDnXwa+43Z7gdWB5quAt518VRZ5sE2vW22/EDg9yz2VnZ6BURa1RqfI8vF3WNJGwzDqkRkViar+hYiEgKdU9YlCTuwiq74KvKqqnw3IVzj/CcBHgJ+77d3A34nIZ4Hz8Gc+L6pqSkSGROQqfNPYzcAXAm1uAZ4DbgCerQX/iPk7jEpi64+MajOrj0RVPeATczj3e4GPA+/PCPX9KxfK+1Pg3wH/yV3nAPAE8ArwXeB2VU25c90GfAU4DPwC39EOvqJa6hzzf4S/Ar/qmL/DqBS2/sioBSSfAbyI/Dl+uO+3gJG0XFWrbkYqlE2bNum+ffvKfp30KLF3YJRVNko0ysRNO5+fNvsdjSdZ3tnCN7ddVcWeGfMNEdmvqpuyfZZv+O9/xPeJ/EGG3IbYOTB/h1EJ5uqPM4xSku+CxIuBvwVeBl7C91FsLFenDMPIj9WL2xhLpKbIzB9nVJp8FcmjwEXAQ/hK5CInMwyjipg/zqgF8jVt/ZKqXhrY/xcRebkcHTKMRqeQKKwtG5ZzP5g/zqgq+SqSn4jIVar6PICI/Crwv8rXLWO+YSGq+ZGOwoqGZUoU1v0wozKx/0ujmuRr2vpV4IcictTlvnoO+LVAGK9h5MRCVPPHskAb9Ui+M5JrZz/EMLITfDgCtDVFGI0n2bG320bSGcwlCstme0a1yUuRqOob5e6IMX+xENX8KTQrwlxMYYZRavI1bRnGnLEQ1fwpNArLTGFGLWCKxCg7FqKaP4Vmge4ZGCWZ8ujuH+bg8UG6+4dJpjyb7RkVJV8fiVEgZreexEJUC6OQKKyOpjCH+0cIixAWIZlS3joT48Ku9jL30jAmMUVSBvYc7ONPdr3MUCxJ0vM4OTTOn+x6mb++4dKGfXhaiGp58JNs41fmSVfn0YDcMCqAmbbKwAPfPcjAaAIFIuEQCgyMJnjguwer3TVjnjE0nmTlohYiISHlKZGQsHJRC8PjyWp3zWggbEZSBrpPjhASCLlRoQioKN0nR2ZpaRiFkY7yWtfVMSFLZ/81jEphMxLDqGMskMGoBUyRlIG1S9vwFDxPUVU8T/HUlxtGKSk0ysswykHZTFsishp4DDgX8ICdqvp5EVmCXyBrDXAU+G1VHXBt7gFuBVLAHar6PSe/AngEaAWeBO5UVRWRZneNK4BTwMdU9Wi57ilf7v7gRXxy18sMjydJeUo4JCxqjnL3By+qdteMeYgFMhjVppwzkiTwx6p6EXAVcLuIXIxfDvcZVV0PPOP2cZ/diF/n5FrgSyISdud6GNiGX8d9PZMpW24FBlT1QuBB4IEy3k/ebNmwnL+54VIuX72Ycxe0cPnqxfxNA0dszSf2HOzjpp3P874HnuWmnc9bvjDDoIwzElU9Bhxz20Mi8iqwEtgKbHGHPQrsAe5y8sdVdRw44uqwX+mSRC5Q1ecAROQx4Hr8uu1bgfvcuXYBXxQR0XzqB5cZGyXOPywdiWFkpyI+EhFZA1wOvACc45RMWtmk/wJXAj2BZr1OttJtZ8qntFHVJHAWWJrl+ttEZJ+I7Ovv7y/NTRkNh6UjMYzslF2RiEgH8A/AH6rq4EyHZpHpDPKZ2kwVqO5U1U2quqmrq2u2LhtGVnoGRmmNhqfILPmkYZR5HYmIRPGVyP9Q1X904hMiskJVj4nICiBtZO4FVgearwLedvJVWeTBNr0iEgEWAqfLcjPGvKPQNDaFZuadyzUqcR+GUWrKNiMRP0fDV4FXVfWzgY92A7e47VuAbwfkN4pIs4isxXeqv+jMX0MicpU7580ZbdLnugF4thb8I0btM5diW4Wu2ahEQS8rGmbUAuU0bb0X+DjwfhF5yb0+BHwa+A0ROQT8httHVQ8ATwCvAN8FblfVdO7x24CvAIeBX+A72sFXVEudY/6PcBFghjEbc/F3FLpmoxI+lR17u4knUxw/G+O1E0McPxsjnkyZ38aoKOWM2voB2X0YAB/I0eZTwKeyyPcBl2SRx4CPFtHNojGzQu1QyHfRMzBKWKC7f5h4yqMpHGJZR1Pe/o58pr2VKOj1+olBBmNJQkxm/z01EieZmskdaRilxVa2F4GZFWqHQr+LzuYIb52JkXQLRpOen369ozn32KrQa1SioFci5WdOSHge40mPhOfheUo8lVvV2VoYo9SYIsmTbH98Fg5aOxT6XUy40jTwCspLcI1K5cFKKUzcjvr7ubDBj1EOLPtvHuRaiDYynmDFwtYpx1o4aHbKbQIs1Iw0HE+xclELJ4fjE6atczuaGYmnsh4/l2tUqqBXSMDTqfu5CCpDgLamCKPxJDv2dptJ1pgzpkjyINcfXyKljCVSBYWDNiKVWBFeaGjuXNKvzyX8t9wZDlR1ihIBX6nkmllVwm9jNB4NZ9qKJz3eODXCW2fG6BuKMTASZyiWIJZIkcr8i3TkWojWFAlZCu88qIQJsFAz0lzMTrWYsj2XGSuXvBJ+G6PxaMgZScpTUl6K8cT0z0IiRCMhoiEhEg4RDQvnLWzlzdPDDMVSE2aQBa0R1i/vZPvmdVaLfBYqMQou1Iw0F7PTlg3LuaH3DF/5wRFG4inam8L83vvWVvX7jiezm+JyybdvXse9uw8wGk/SGg0zlkhVXRka9U9DKpKZ8FQZT6QYD8g2rujkR0dPT4R8JlIpRuMp/v3lK7nqHUt53/plRMINN7nLm7mYhOZCoWakQo/fc7CPXT9+i67OZs53D+FdP36LX1m1qKTKpBB/UjgUQtXz4wXUr8YpTp6NSvltLCy+sTBFkgf/euhkVvlTPz/B/36Fn9VFRIiEhKZIiEjIn9U0hf3tRlcylRoFP/T069NmC3f8+jtLdv5KOKoL9SetXdrG4f4RIiJ+SWeFlOqMRdTK7bexLMmNhymSPOgZGCUSglBglOd5Hj0B04yqkkgpiZQ3rX02c1k07Cua0EwhNvOESoyCH3r6dR58+tDErHEwluTBpw8BlEyZFLuIMR927O0mkUpxajg5xYyaS1nVYhG1Qu/BqH9MkVSAbOayNJFQyJ/FhIVoKEQ04iuZ6DybxZR7FPyFfzk8bbW5OnmpFElHU5jD/SOEZXIV+VtnYlzY1V6S8wMc6hvi7GiCUEgmFkqeHIqTSA1lPT5dRK2W/HSF3oNR/5giyYPVi1p54/QoeDphPvAULljcOnvjWUh6Hsn49FmMiBANC01OqUTCkwom3ACzmEJJ5AhTyiWfCyKC5ykp0Ul/hPryUhFPeiD+LNa/JniivjwHtVZEbS73YNQ3pkjyYNvmd/DA9w4yEk/ieUooJCxoirJt8zvKdk1VJZ7M/scXDprIQiGizi/TKKayatE3FENCoOmvREFC0D8UK9k1omFhJK7EEqmJYjyhEDSF6+d7jYaFsQR4gYEX1Nc9GIVhiiQPrly3hLuu2cDjP+rh+OAY5y5o5cZ3r+bKdUuq0p+ZwpfDIZmYwTSFQxMKpykcKunIuRFJpJSgC0yBlMeMea0KZXlnCwMjCV+DOE2iHnTNsFCy1njnOQs4cnKYodikj6SzJcraZR2zNy4AiwyrHUyR5MmV65ZUTXEUQlrJkEXJRJwPJhLyHf3p7WhY6l7JfOSyFfzTS8eyykvFTGs2SvVQU/VnvOGMKKx6KrOTjtI7d2GkbFF6FhlWW5giaSB8fwzA9AdiehZTr0pm62Wr+N4rfYwGcmW1NYXZetmqGVoVRiKHiT+e0pI91OaSA6zWRuaViNKznGG1RdkUiYh8Dfgw0KeqlzjZfcDvA/3usP+sqk+6z+4BbsV/yt2hqt9z8iuAR4BW4EngTlVVEWkGHgOuAE4BH1PVo+W6n/lOIuXhZ86Y/sCKhNJKRgiFfL9MJCwTkWa14JfZsbebFQtbpix6LPWDJT0rkPQ/6lufPKVk4a6F5gCr1ZF5uQMALGdYbVHOGNNHgGuzyB9U1cvcK61ELgZuBDa6Nl8SkXRyq4eBbfild9cHznkrMKCqFwIPAg/k06n6MRDUDknPI5ZIMTyeZHAswamRcU4MxnhrYIyjp0Ymc5cNxjg9EmcwlmAsniKZZU1NuegZGCWZ8ujuH+bg8UG6+4dJprySPlg6miOEQ34UEi5qKxzydcrJofiU2iYnh+Ic6is83LXQfF6NWsrAcobVFuWskLhXRNbkefhW4HFVHQeOuNK5V4rIUWCBqj4HICKPAdfjl9rdCtzn2u8CvigiMlvN9tdPDPHhL/yAjuYInS3+q6M56t4nZZ0tGbLmKB0tEQu9zcKE8z/LZxOLMTOc/6WeyXQ2RzjUN0w4sHbhrTMx1i8vnYP39963ls8/e5hwaDJ1u6cQCWnJwl0LNQs16sjccobVFtXwkXxCRG4G9gF/rKoDwErg+cAxvU6WcNuZctx7D4CqJkXkLLAUmJbPRES24c9qaDr3Qkbjfq6svqFsj76ZaWsKT1Es/naEjpYIC1qczO0Hj/NHs42nhCYWY+ZIkJn2y6TNZHM1malzSMeTOhk2KzMXqiqUO379nRw5Oczunx4nkfJnH9f9yrnsPXSSwViyZOGuhZiFKpXHrNaoVM4wIz8qrUgeBv4S38L0l8BngP9I9truOoOcWT6bKlTdCewEuPDiS/Xe6zYyNJ5kOJZgaDzJUCzJcCzpthNT9jNTy6eV0Ims4++ZaW8O51ZAU2ZIkzOizpYI7c2RidHufMJLr5Uh+8g9qGjCoUkfzcS2+Nshgf7h8awr208OF/495WLPwT72v3mWNUvbJkbB+988y/LOFqLheNnDXbPRyCPzWluIWS+UIwKwoopEVU+kt0Xky8B33G4vsDpw6CrgbSdflUUebNMrIhFgIXB6tj60NYV53/pl+faXWMJjMJYIKJqpCsh/JRhOfzY+KcssbzIynmJkPAWDeV1+AgHamyMZ5rfp5ri0ia4zMBtqaw7XrRKaTdEEGU94hIQpCTKTro55LJEqyWLNXJFCqkpTJFzWcNdc2C7FOEIAACAASURBVMi8cUh5iqf+y8+uoc68qqjnh4ln/dwL7s9NicyWsqmiikREVqhqOtj/I8DP3fZu4O9E5LPAefhO9RdVNSUiQyJyFfACcDPwhUCbW4DngBuAZ2fzj8yhv7Q2hWltCvPGydM8/qMejg2OsSKPBYm+ozTlZj5upuO2BwPKaDitjALHDY8npyghBYbHfSU1F1qjYRa1RScUUMc0peQUU4ZJrp6UUDQS8ouTacC8pL5iefvMGDCZESAsQiiEnzMrNPWVnv1kI5c/4uxYgr/ceknVH+YWSFIe1D2YNb0Nbt/J3TZMljxOHweTps60IP1J5jnLoQAqRTnDf78JbAGWiUgv8BfAFhG5DP//7yiwHUBVD4jIE8ArQBK4XVXTIRm3MRn++5R7AXwV+LpzzJ/Gj/oqCy92n+bzzx4iEhIWtEQ4NTLO5589xJ2sz6lMRIT2Zt8sxYLCruc5JZSpgCYVToYslmRoPDGxn/mTG0ukGDub4tjZwvoRksmZ0IRJLq2EAspnYt+Z5DpaIrQ3hSu6/uSCJe28dWaE4fEUiZRHNByiozXCykWTCRUnFmvmQdiZzsQ50UMinNPZwsmRcdqik/c2lkiyYmErV1/o16UJiVQ0HLqc4b/exAh48uGXRpCJ2ifB79nfd9tuIz2+Cz44vYyHaibB52b6YZr5IP/B6/088sOjvHVmjJWLWvnd96zhveuX5XzoMyEPKIH0cTp5rczPjNmRRvuP+pXL3qX//P29BbX5o2+9zKmR8SnldscSKZa2N/PZj11a6i4WxX96/CVOjozTFA5NTIXHEh5t0TAf/OVzs86K0ia54SxKaK6EhAlfT1ABZZrkggooPTtqjRauhF7sPu3nQwukU29vjnDXNRtKlpHgxe7T/OV3DjCa8CYceG3REH/+4Y3TriHi+27Syii9H3wAQ/ZZxA8Pn+Qbz7/J22f9B+QtV1/A+9Z3ERJB8R/CKc8PLrjtGz/m5HCM1qCzPZ5kaUczf/sf3uVfI8cD07++IgSizQKj4lomOLhriYaIJTySnnLn+3MP7oy5Ew2HOH9p+35V3ZTtc1vZngfHBscIC/QMjE+Mdhe3RTk+OFbtrk3j+FCMBS0RBCGt91qblKFYkhuvPH/Gtp4qo+Mp3ycU8AENjycC/qCps5/0cSPjU5WQp35NkMFY4ea4cEiymN8yTW8ROlqiLHDK6Mxo3I1AfdNW1lCMInnt+OCEEgH/4Tya8Hjt+OC0h5eqklJIFaiagw/IjuYwJwZj/PenDnLneCrrA7L3jF8jpe/UyJTf5ttnxhibYTX8VGpbaWTj8R/1EAnJxOAu7Zt6/Ec9pkiqgCmSPGhvivDGqRFCLmoo6SknBse5YGnp6lCUihULWqfNnmIJj3MXzJ7yPiTihyq3FP6zSHnKyPh0X08wIGHis2CkXCwxLf1HylPOjiU4O5YlZjhPxFOGvCSfevJV3r12yTQlNDEzCuy3RGdObPnE/l7CoallbFOexxP7e/n4e9bMua9BHv9RD8lUijOjARNdczjnA7I9GuaN06MT5rdkyv02l1Q3/PfF7sJ8ioVybHCMBRm/05ZoqCYHd42AKZJ8mLQDZLzX3kjuxnev5vPPHmIskZoy5b/x3atnb1wE4ZCwoDXKggxndD6kPJ0IJggqocHY9ECFofEkQ2OTs6JcOagUSHrK0HiSZw/25dWPSEgyzG5TZ0Gj8RQh8fsb1Dej8RSqWhKf0BunRxgaSyCBQcvASIKkN5K9wYRDgqn2sioGSczFp1goxQyYjNJjiiQPRhIpzlnQzMBoImA+aGI0ka/poHJcuW4Jd7K+ZlLe50M4JCxsjbKwCCX0sR0/JJtOCQtcs/HcKWuE0ia50YwGSU8ZGE0wMJp7JpRKe2szuPbz/zbpE5ohGi4zfLuzOUJz4GGYrShUaoZV8iPx5PTfZkcTo/G5RfiVgkqYnao1YDKyY4okD9Kjn9WB1cJjiRTL25ur2Kvc1EvK+1KQVkI5MryjCp+85peyfpZMeYwU4BN68/RoTiWTSM2uhHIRDcuEwoklU3iebzJL5/TCrdD/4S9OTlvQWou/zUqYnepxwDSfMUWSBzb6qX1yLVmcaSljJBxiYVuIhW35z4S+/sOjPLG/l9F4itZoiGs3nsv7LzqH/UcHePa1Pk6PxmlvinBhVzvtLZEJc9xwwFcUy5hdJFLK6ZE4p0fiU+TB9QejCY8/++cD0+8hJH4El9sXgWhIWL2kjUd+eHTKrCjTJ9QUKU/O1kqZnRppwFTrmCLJAxv9GGk+/p410xzrL3af5ruvHCcSEs5d0Ews4fGLkyM5Q1ETKS+QhicxJfrt4LFBfviLUxPhxUlPSXlKW1OYeNKbpoSSGekTVP36KD/8xSl++ItTM95LUyQUCD4IJC/NEpIdNMl1NEdmVEI28Go8TJHkSTVHP+mInFAox7Zbn5B2tk4uoptct5ALybK2IdNpHHQkB/252dYgZS5Om21RV/qT9PqF4OKztCxzRbDfp6nnCIvzX2QQFv+BGVyB7GlpF5oVGmkVDYdY0t7Ekvam6Se7fOVExFO2QUtQCQ3GEjz4/UOcHYsTDsnE+pJ4yiMSEi5Y2jYla8J4hhKKJz1ODcc5NRyf3o9ZaImEJhalTvUJ+YtX333BYl7qPcvJoXGWdbTwW5euYP25HSRT3pQ0NsVQ7sgwI38aTpGIe7CIyMQqXMF/6JLxUJ1YTOYe0tnkmQ/piQd44Pz+dSVnqgUg64N8on9VT1OS6/r59kt46OnX+coPjjAST9HeFOb33reWO379naXqIOctaqVnYLoN/rxFrVkz4aZXVwcX4KUVjb+Qc/KY9OK/lLrPvKnlbwuOtJqFmQYtmUpoNJGkJRrKCASJ4il8/sbLp7SNJ73cmRIC+0OB3HJphZXI0NKxpEdsOM7JPJTQwNgwn336EJ99+hDg+0s6g7Mfp3ymzobS21N9QmklVInIMCN/Gk6RRMOhqqXYFgkqnmorh8rx0NOv8/lnD/tJFUO+M/jzzx4GKJkyaW8KE3Y1QtJmoZD48myICGGBcBHfg+f5yiWZ8iOtwoFQ3KQoiZRHczRMKqUkvfIU+SpkjVNTJMTSjmaWdhTuiB9PpDIyZScywrEzkpc6BTQ8npyuhBIescQ4/XPIzJxWQkPjCVR9H1HY1bhPqfKFfznM746vyWqSa8QyDpWi4RRJqam1etm1yFd+cMR/6AZk4uSlUiTD8RSrFrdOqXW+rKNpxlrnxRIKCSGEpkiIWNJDlYmEkSJCSyTEykW+g1l1cqaTnv0kPY+UpyQ9dXmtXAZXJ8vL/FahNU7N0TDN0TDLSqSEJiLkYtOVUDCjdi4lNHHujGsNxvxFqNloawrPUtAui0/ICtrlhSmSIthzsI8/2fUyQ7EkSc/j5NA4f7LrZf76hktNmQTIlkhSnbxUrF7cxtFTw1Nk8ZTHmqXlrwnyznMWcOTk8Iz1SMTVVplK9tlSmpTnz2pSnpJ0s5pkQJbytC7WOM1VCakq40kvEIwwqYC+8fwbnBmNM57y8LxJv2A4JLQ1hd3f5NRfXTEF7dqbwllNbRMBCJkF7VykXHuDFLQzRVIED3z3IAOjiYn05KowMJrgge8erKoiKeUsqRTnyjU2LuWY+ep1S3jx6GmXKNFXIn1DcW56d/nt5eniUqWuR+Knts+tbFSVNUvb6RuKsXZZ84RsNJ5kaXszIZGaT744EyJCSzRMSzRMV+dUJdQ/GOPR599wNWgmgzQ+/u7z+fh71vi1hJLepIktS/bsyVnR9AJ3mQXtRuIpRkpV0C7oE8pS0C6tlOpJCZkiKYLukyMTGV7BmTVE6T45NydrKShlWvFypigvNc91n6aroyljVhDhue7T3FHma1eruJSIcNuvvYN7dx9gPJnylVjSQxHu+MB61ixrJ5manMUkUr4/J+H575kPy3riJz1nWdIWZSQ+GSnX3hTmJz1n+TiullA0TGsWJTQbqspYIpVheqtOQbs2p4QmlE1WJTTdJFfpqqqmSOYZuar47djbXfCDrVTnCgnT/rjS8lLRMzDKso5mujpbJmSqSu/AaOkuMgPVKvu6ZcNybug9My0iLt2XSDhEJAwt0ekzG1X1lYvnkUgqCc8jmfKVTt4+mhxUImnj4vYmlrRP/ogULcnqeRH/N9/WFOGcAmsJ5VJCEyW8x6croeB+ZkG7tBI6XkRV1WC27LSyWdAyuV+KgnamSIpg7dI2DvePIN5kVT5P4cJl1cu8mquK31weqKU61+LWCKdGp/tDFreW7ue3enEbfUOxCaUHfnRYqSP0ai24Ys/BPnb9+C26Ops535nVdv34LX5l1aJZ+yUiNEWEJkKQZUlL0s1i4ilvYjsfJdPISRuLVULBqqq5THKT9YQmo+dmqqo6l4J2Hc1Tw69ny4NXzgqJXwM+DPSp6iVOtgT4FrAGv0Lib6vqgPvsHuBWIAXcoarfc/IrmKyQ+CRwp6qqiDQDjwFXAKeAj6nq0XLdTzbu/uBF3PHNHzMcT+Gp+wKawtz9wYsq2Y0plPKBWrJz5RjdlHJ9TNpPMRpPztlPMZuSqMXgih17uzk5FGM0MRle3BYNzWkGmkl6NtOaJSggbTJLOjOZr2x8RWNJG+dGqaqqDgbWAWUzyc1W0G5qLaFYXtcv54zkEeCL+A/7NHcDz6jqp0Xkbrd/l4hcjF8qdyN+zfanReSdrtzuw8A24Hl8RXItfrndW4EBVb1QRG4EHgA+Vsb7yUpTNEyTi6AJh4SmLCaESlKKB2qpz5WZZTdNKUNzi/VT5OMPqsXgih+/eYrxjMneaMLjJ2/OnB6lWNJKJhv9wzE3gpWJhbet0bAlbSwjIfGLwXU0Rzh3YcvsDQJ46moJTTG9TU1eOhpP8YUZzlE2RaKqe0VkTYZ4K34dd4BHgT3AXU7+uKqOA0dcHfYrReQosEBVnwMQkceA6/EVyVbgPneuXcAXRUS0grWDd+ztZmFrlBULJ6fTc/VHlIrZbOaFnqsUTuTMMMzZ5HOlGD9FPv4gP4jC9yuk14yEhKoGV2QqkTQljKwumPOXtAdmsv6sczSVZO2yDlYvaSPpzGWJwCwmkSp8waYlbcyP2fxVIXHZp1tym6+i4VB1FEkOzlHVYwCqekxE0n/1K/FnHGl6nSzhtjPl6TY97lxJETkLLAVOZl5URLbhz2o4//yZy80WQin9EaWiGJt5NkriRK5E/G+R9Az4JWu7+4enLGgMfpeeKq5ciEvtDkkFkRq6kRpgpplsNBwimsVclnb8p5VK0FRWz9Fl1ebF7tM88L2DjLiQ5oGROA98b4S7rtlQUiVcnjzShZPNWK4zyGdqM12oulNVN6nqpq6urjl2cTqrF7cxlrHwqxwO3kIIjqzTjr9oWNixt7tqfYrmyBSbS14NOpsjvHUmRtKZKJOe8taZGB3Nk2OtiAszS+dI0wx5NSg2C1o52LJhOTe8ayX9Q+O8enyI/qFxbnjXyhkHJL7jP0R7c4RFbU0s72zhvEWtXLC0nTVL2zlvUStdnc0samuayD5c/Rx0tc/Of+tmcCzhJzYNCwoMjiXY+W+lfR5UekZyQkRWuNnICiBdA7UXCHrJVgFvO/mqLPJgm14RiQALgdPl7Hwm2zev4092vcxbA2MkPY9IyF+78Oe/eXEluzGFWpwl5bI2ltoKWUxiSM2RaiTYx7amMLGEN2W0IuTO51UJQjmyHldzHVupZ8WhkNASCmcNYZ6IJvM84kn/ZbOYSXoGRqetdUOUnhI/Dyo9JNwN3OK2bwG+HZDfKCLNIrIWWA+86MxgQyJylfjDj5sz2qTPdQPwbCX9I2kUXGZgP31vtX++tThLimd70s0gnwvpxJBjidSUxJAPPf16Xu2H4ylWLmohEvaT/0XCwspFLVMCApZ3tmRkdPYVSXDtSsXJNSqv4mh9x95u4skUx8/GeO3EEMfPxognU2WZFUfCIVqbwixoibKso3liFnP+kjbOW9TK8gUtLGlvorMlSks0TCRUO7Pg+UQ5w3+/ie9YXyYivcBfAJ8GnhCRW4E3gY8CqOoBEXkCeAVIAre7iC2A25gM/33KvQC+CnzdOeZP40d9VZRadLaXMmqrVOQaHZZy1PiVHxwBVVITfovCEkOmQ53XdU3mxxqNJ1mescAx5DLNptcNpdPJV2t9SXtTmJF4cqLeirhyB9WcJb1+YpDBWJIQ/v9VMqWcGomTTBW4qq4IZooq81zNlqSnJNwMJuG26zmlTDZWL2rljdOjkLHW7YLFpV1vU86orZtyfPSBHMd/CvhUFvk+4JIs8hhOEVWLWjQjVStdR7VJL8iaKLylfpnd4VxhTRnko4CH4ykWt0U4NZKYWDe0tD3KyeHxqqWS+cCGLv7ppWMT++lCYB/YUDpfYKGkM/aGQpPmFP/hXRsP6bSpDICM7CnpRJlBZ388WfxK/2qxbfM7fGd7PInn+QOhBU1Rtm1+R0mvYyvbi6BSq6kLpVrpOqqJuOFW5p96vg7ZfBRwZ3OE42djRMOhidHdwGiSpkiIaCTFqeHJPF8LWiMVmZkeH4yzqDXCYCw5odwWtEQ4Plh41cNS0RQJMRZP4enkKBilbDXiS0k6UWY2f0w6oiydTia9Xa5aM6XgynVLuOuaDWVfb2OKpAhq0YwEtZfGoxJEQ5BtKUK0gGfXbApYnRkrntQpxbPGEyn6EqmJolrJVIqY+y2Um56BUaIZ6emjYanqrHj98k5eOz7ImbHJmdui1ijrl3dWrU+lwA9dnp5Oppw5y0pBJdbbmCIpgkqZkQpRDHsO9vHJXS8z7OLGTw6P88ldL/M387xGSlMkzHgyOS2iqimXoXwOnByJTygLwNWVnxqPLq5QfUpzr+gvKar0Dycmdj2F/uEEqxZVz0eSTukfDglRl7DzbCzJ1fN08eBsOcvS5rJMn0y9Z2AOYoqkSMptRio0v9Onn3qVM6MJwuI7OtWDM6MJPv3Uq/NckYSIuHKzE05FT0tqThmNp7IW6JqyHRDEk+VXJP05ijTlkleCaqb0r0Wm1JXJ8Ml43uQMJrjiv95CmE2R1DiF5nc6csrFjQccneopR05Vz9RRCSphTonNMMMIy+RCxXTEWLgCoabjOcxnueSVoFIp/YtZN1QrhEJCcyhMc5YnccpTf21MerV/Da+RMUVS49RifqdapBLmlJlcqiJCJCMseO3S6gZdVItKBKE89PTrfO6ZQxOp0wdjST73zCGAulMmuQiHhNam8LR0MsH0/mnlUm0FU/thFA1OOr+TOu+uKiQ9csa7r1vWjufKjiqKp4qnvnw+81z3aTqbw6Q8ZTzpZ2PubA7zXHdlkh0saosiIV+BSMjfr2Y5gWqyffM6Eim/5G+69G+pg1D+773d04qleerL5zvpRZgLW6N0dU4uwrzApZJZ1tnMwtaoS49UmVQyNiOpcSIh8WcjMMX+niu/013Xbpj0qaT8tC2L26Lcde2GivS3WqQXwaUfLumaCodOVGYR3N/ccGlV1u60RcOMJqab3NqqWM6gEkEouQIZKhLgUKPkCl0OJsTMzLxcqtBlUyQ1TltTmPGkN5EkMB0ZlGvl8pYNy/nrKj3UqsnweCrrCHVovDIPllIGXRQSpXf+khYOnphu5jx/SRXTttCYa5lqlYmosiyBJ9lW+acXYxayyt8USY3zznMWcOTk8LQImLXLOnK2acQ/4ngy+8gql3wuhMjuJymlfbjQKL1D/dkd2LnkhhFkplX+QV+MN4v/xXwkNc72zetoioQ5d2ELv3ROJ+cubKEpEq76osdaoxIlT6KR0LT07EJp0+Gno/QU3xauTEbpZaMSecxqkdYcK01zyY3CCfpiFrdnWSATwP7Xa5wtG5Zz/3UbWd7ZwtmxBMs7W7j/uo0NN+OYjaZwdp9RLvlcWLu0jXBIaA6HaImEaA6HCIekpNFZ3SdHJtJ+C0JIxKL0stDeHCHE1EzMISc3Ko/9r9cB9W6qcou9s8pLxfKOJnrPTl+Et7xj5pFUIdz9wYumZA0Ih4RFzY0bnVVN1i/v5Gh4mMGxqfnN1izNbfI1yofNSIyys3JRdsdvLvmcCIXo6ohOFHQKCXR1RJESLgrcsmE5N191AU3hEJ5CUzjEzVddUFIlv3Zpmx++7XI0eZ4fvt2oa1Jy4ZftnWryjYbN5FstTJEYZee/Xf/LtGXYrtuiIf7b9b9csmusXtzm23SjYaJhoTUaJhIOlXQRXLDy30XndtLV2cyuH7/FnoN9szfOk7s/eFFBa1JyBflWL/i3MpjJt7aoimlLRI4CQ0AKSKrqJhFZAnwLWAMcBX5bVQfc8fcAt7rj71DV7zn5FUwWvXoSuLMaVRKN2WlrjuAxaRJqy8OWXUgYbHple8it/I+nPPqG4tz07twr2wvNkrxjbzfRsEys2G5ripS8kNmWDcsLWpOSK7i5EVZT1LvJdz5RTR/Jv1PVk4H9u4FnVPXTInK3279LRC7Gr364ETgPeFpE3ukqKD4MbAOex1ck1zJZQdGoEeZSSXLPwb6CikUVmiiw0PND5QqZ2QPSqDdqybS1FXjUbT8KXB+QP66q46p6BDgMXCkiK4AFqvqcm4U8Fmhj1BA9A6O0Zqy2ne0BHBz9i4hL9yA5636nEwWu6+pgw7kLWNfVwbKO5pzXKPT84JvPxjJWkddCITPDqDbVUiQK/E8R2S8i25zsHFU9BuDe00OylUBPoG2vk61025nyaYjINhHZJyL7+vv7S3gbRj7M5QFcqPIp9BpzUW6VyCFVKFevXVyQ3DDKQbUUyXtV9V3AB4HbRWTzDMdmixLVGeTThao7VXWTqm7q6qpeLetGZS4P4EIVQ6HXmItyq0UH7ze3v2ea0rh67WK+uf09VeqR0YhUxUeiqm+79z4R+SfgSuCEiKxQ1WPObJUOhekFVgearwLedvJVWeRGjTGXJH6FljEu9BpzLZNci/4LUxpGtZFKBzmJSDsQUtUht/194H7gA8CpgLN9iar+qYhsBP4OX9mcBzwDrFfVlIj8CPi/gBfwne1fUNUnZ7r+pk2bdN++fWW7P6N0pKOqypV8stznN4z5hIjsV9VN2T6rxozkHOCfXI78CPB3qvpdpxSeEJFbgTeBjwKo6gEReQJ4BUgCt7uILYDbmAz/fQqL2JpXlHv0X4uzC8OoRyo+I6k2NiMxDMMonJlmJLUU/msYhmHUIaZIDMMwjKIwRWIYhmEUhSkSwzAMoygaztkuIv3AG9XuR4VYBpyc9aj5h913Y2H3XRkuUNWsK7obTpE0EiKyL1eUxXzG7ruxsPuuPmbaMgzDMIrCFIlhGIZRFKZI5jc7q92BKmH33VjYfVcZ85EYhmEYRWEzEsMwDKMoTJEYhmEYRWGKpA4RkbCI/EREvuP27xORt0TkJff6UODYe0TksIi8JiLXBORXiMjP3GcPiUvHXKuIyFHX35dEZJ+TLRGR74vIIfe+OHD8fL7vRvi+F4nILhE5KCKvisjVDfJ9Z7vv2v++VdVedfYC/gi/Rst33P59wCezHHcx8DLQDKwFfgGE3WcvAlfjV5p8Cvhgte9rlns+CizLkP0VcLfbvht4oEHuuxG+70eB33PbTcCiBvm+s913zX/fNiOpM0RkFfCbwFfyOHwr8LiqjqvqEeAwcKWrQLlAVZ9T/1f3GHB92TpdPrbi/+Hh3q8PyOfzfediXty3iCwANgNfBVDVuKqeYZ5/3zPcdy5q5r5NkdQfnwP+FPAy5J8QkZ+KyNcCU/6VQE/gmF4nW+m2M+W1jAL/U0T2i8g2JztHVY8BuPd0lar5ft8wv7/vdUA/8P84E+5XxK+mOt+/71z3DTX+fZsiqSNE5MNAn6ruz/joYeAdwGXAMeAz6SZZTqMzyGuZ96rqu4APAreLyOYZjp3v9z3fv+8I8C7gYVW9HBjBN2XlYr7fd81/36ZI6ov3AteJyFHgceD9IvINVT2hqilV9YAv49e3B38ksjrQfhXwtpOvyiKvWVT1bffeB/wT/j2ecNN43HufO3xe33cDfN+9QK+qvuD2d+E/YOf79531vuvh+zZFUkeo6j2qukpV1wA3As+q6u+k/7gcHwF+7rZ3AzeKSLOIrAXWAy86s8CQiFzlojluBr5duTspDBFpF5HO9Dbwv+Hf427gFnfYLUzew7y+7/n+favqcaBHRH7JiT4AvMI8/75z3XddfN/VjlKw19xewBYmo7a+DvwM+Kn7ca0IHPdf8KM5XiMQuQFscj/IXwBfxGU5qMUXvu34Zfc6APwXJ18KPAMccu9LGuS+5/X37fp7GbDP3eM/A4vn+/c9w33X/PdtKVIMwzCMojDTlmEYhlEUpkgMwzCMojBFYhiGYRSFKRLDMAyjKEyRGIZhGEVhisQwqoCIPCIiN1S7H4ZRCkyRGEYdICLhavfBMHJhisQwCkBE1rhaEY+6JHq7RKTN1X/4V5dc8XuBVB6/LyI/EpGXReQfRKQtyzn/0s1QQhnyLSLyLyLyd8DPcl3bHXtURP67iDwnIvtE5F2uH78Qkf+zIv85RsNiisQwCueXgJ2q+ivAIHA78AXgBlW9Avga8Cl37D+q6rtV9VLgVeDW4IlE5K/ws9j+H+rnUsrkSvwV7RfnuPYfBI7tUdWrgX8DHgFuAK4C7i/yfg1jRkyRGEbh9Kjq/3Lb3wCuAS4Bvi8iLwF/xmTSvEtE5N9E5GfAfwA2Bs7z58AiVd2uuVNMvKh+rYlc135f4LPd7v1nwAuqOqSq/UBMRBbN4T4NIy8i1e6AYdQhmQ/9IeCAmw1k8ghwvaq+LCK/i58jLc2PgCtEZImqnhaRXwV2uM/uxZ9xjMxy7eD+uHv3AtvpfftbN8qGzUgMo3DOF5G00rgJeB7oSstEJCoi6ZlHJ3BMRKL4M5Ig3wU+Dfx/ItKpqi+o6mXutZvsZF77B6W6KcOYK6ZIDKNwXgVuEZGfAktw/hHgARF5GXgJeI879s+BS7H6UAAAAGhJREFUF4DvAwczT6Sqf49fY2K3iLTO4doPF3kvhlE0lv3XMApARNbgp++/pJGubRgzYTMSwzAMoyhsRmIYhmEUhc1IDMMwjKIwRWIYhmEUhSkSwzAMoyhMkRiGYRhFYYrEMAzDKIr/H9/DOp/7aF8gAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 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>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": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fcda7bd1f60>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fcda7bd1080>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de5hddX3v8fcnyTSEUm6ZAcMMGkpiMVCNTUrxeCkSEwhewAoSH5XxNMd4KBJaWj1iPRXP0zyVthqfiQUFwQyghIC3iBlJDCDYxsRBYiABm1GijInJTLgYzMVcvueP9dvOnsnO3PasvWeSz+t59jNrf9f6rfVba/be3/1ba+3fTxGBmZnZYI2qdgXMzGxkcyIxM7OyOJGYmVlZnEjMzKwsTiRmZlaWMdWuQKXV1tbGxIkTq10NM7MR5bHHHuuMiLpS8466RDJx4kRaW1urXQ0zsxFF0i8ON8+ntszMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEYmZmZXEiMTOzsuT+OxJJo4FW4FcR8TZJNwAfBDrSIh+PiOVp2euBucABYH5EPJDi04DFwDhgOXBtRISkscAdwDRgB3BFRGzOe5/MzAaqqamJtra2AZVpb28HoKGhYcDbmzRpEvPnzx9wucGoRIvkWuCpHrGFETE1PQpJZAowBzgbuAi4KSUhgJuBecDk9LgoxecCz0fEJGAhcGOue2JmVkG7d+9m9+7d1a5Gn3JtkUhqAN4KLACu62PxS4AlEbEXeEZSG3CupM3A8RGxOq3zDuBSoCWVuSGVvw/4vCSFR+sys2FmMK2DQpmmpqahrs6QyrtF8jngo8DBHvEPS1ov6XZJJ6VYPfBs0TLtKVafpnvGu5WJiP3Ai8D4npWQNE9Sq6TWjo6OnrPNzKwMuSUSSW8DtkfEYz1m3QycCUwFtgKfKRQpsZroJd5bme6BiFsiYnpETK+rK9nnmJmZDVKeLZLXA+9Ip6aWABdIuisitkXEgYg4CNwKnJuWbwdOLyrfAGxJ8YYS8W5lJI0BTgCey2d3zMyslNwSSURcHxENETGR7CL6gxHxPkkTihZ7J/Bkml4GzJE0VtIZZBfV10bEVmCnpPMkCbgS+FZRmcY0fVnahq+PmJlVUDW6kf9XSVPJTkFtBj4EEBEbJC0FNgL7gasj4kAqcxVdt/+2pAfAbcCd6cL8c2QJy8zMKqgiiSQiHgYeTtPv72W5BWR3ePWMtwLnlIjvAS4fqnqamdnA+ZftZmZWFicSMzMrixOJmZmVxYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmw0BnZyfXXHMNO3bsqHZVzAbMicRsGGhubmb9+vU0NzdXuypmA+ZEYlZlnZ2dLF++nIhg+fLlbpXYiONEYlZlzc3N7N+/H4B9+/a5VWIjjhOJWZWtWLGCwugHEcEDDzxQ5RqZDYwTiVmVnXrqqb0+NxvunEjMqmzbtm29Pjcb7pxIzKps1qxZZIN/giQuvPDCKtfIbGByTySSRkt6XNL96fnJklZK2pT+nlS07PWS2iT9VNKFRfFpkp5I85rSkLukYXnvSfE1kibmvT9mQ62xsZGamhoAampqaGxs7KOE2fBSiRbJtcBTRc8/BqyKiMnAqvQcSVPIhso9G7gIuEnS6FTmZmAe2Tjuk9N8gLnA8xExCVgI3JjvrpgNvdraWmbPno0kLr74YsaPH1/tKpkNSK6JRFID8FbgS0XhS4DC/Y3NwKVF8SURsTcingHagHMlTQCOj4jVkd3ackePMoV13QfMKLRWzEaSxsZGXv3qV7s1YiNS3i2SzwEfBQ4WxU6NiK0A6e8pKV4PPFu0XHuK1afpnvFuZSJiP/AicMjXOUnzJLVKau3o6Ch3n8yGXG1tLYsWLXJrxEak3BKJpLcB2yPisf4WKRGLXuK9lekeiLglIqZHxPS6urp+VsfMzPpjTI7rfj3wDkkXA8cAx0u6C9gmaUJEbE2nrban5duB04vKNwBbUryhRLy4TLukMcAJwHN57ZCZmR0qtxZJRFwfEQ0RMZHsIvqDEfE+YBlQOBHcCHwrTS8D5qQ7sc4gu6i+Np3+2inpvHT948oeZQrruixt45AWiZmZ5SfPFsnhfBpYKmku8EvgcoCI2CBpKbAR2A9cHREHUpmrgMXAOKAlPQBuA+6U1EbWEplTqZ0wM7NMRRJJRDwMPJymdwAzDrPcAmBBiXgrcE6J+B5SIjIzs+rwL9vNzKwsTiRmZlYWJxIzMyuLE4mZmZXFicTMzMriRGI2DHR2dnLNNdd4vHYbkZxIzIaB5uZm1q9f7/HabUSqxg8SjxhNTU20tbUNuFx7e9YHZUNDQx9Ldjdp0iTmz58/4O3Z8NbZ2UlLSwsRQUtLC42Nje680UYUt0iqYPfu3ezevbva1bBhorm5mULPPgcPHnSrxEYct0jKMNjWQaFcU1PTUFbHRqiVK1eyb98+APbt28eKFSu47rrrqlwrs/5zi8SsymbOnNltzPZZs2ZVuUZmA+NEYlZlb3/7239/aisieMc73lHlGpkNjBOJWZV9+9vf7tYiWbZsWZVrZDYwTiRmVbZy5cpuLZIVK1ZUuUZmA+NEYlZlb3zjG7s9f9Ob3lSlmpgNTp5jth8jaa2kn0jaIOlTKX6DpF9JWpceFxeVuV5Sm6SfSrqwKD5N0hNpXlMaKZE0muI9Kb5G0sS89sfMzErLs0WyF7ggIl4DTAUuknRemrcwIqamx3IASVPIRjg8G7gIuEnS6LT8zcA8suF3J6f5AHOB5yNiErAQuDHH/THLxaOPPtrt+SOPPFKlmpgNTp5jtkdEvJSe1qRHb+OpXwIsiYi9EfEM0AacK2kCcHxErE7jsd8BXFpUpvDrrfuAGYXWitlIMXPmTMaMyX7SNWbMGN/+ayNOrtdIJI2WtA7YDqyMiDVp1oclrZd0u6STUqweeLaoeHuK1afpnvFuZSJiP/AicEjfEpLmSWqV1NrR0TFEe2c2NBobG39/19aoUaNobGysco3MBibXRBIRByJiKtBA1ro4h+w01Zlkp7u2Ap9Ji5dqSUQv8d7K9KzHLRExPSKm19XVDXAvzPJVW1tLfX323ei0005zP1s24lTkrq2IeAF4GLgoIralBHMQuBU4Ny3WDpxeVKwB2JLiDSXi3cpIGgOcADyX026Y5aKzs5MtW7KX9JYtW9yVvI04ed61VSfpxDQ9DngL8HS65lHwTuDJNL0MmJPuxDqD7KL62ojYCuyUdF66/nEl8K2iMoXzAJcBD0bhhnyzEaK408aIcKeNNuLk2SKZADwkaT3wI7JrJPcD/5pu5V0PvBn4O4CI2AAsBTYC3wWujogDaV1XAV8iuwD/M6AlxW8DxktqA64DPpbj/pjlolSnjWYjSW69/0bEeuC1JeLv76XMAmBBiXgrcE6J+B7g8vJqalZdM2fOZPny5ezbt4+amhrftWUjjn/ZblZlvmvLRjonErMqq62tZfbs2Uhi9uzZvmvLRhwPbGU2DDQ2NrJ582a3RmxEciIxGwZqa2tZtGhRtathNihOJGZmA9TU1ERbW1vu29m0aRMw+GG9B2rSpEmD2pYTiZnZALW1tbHhiac48dhTct3Owd9lN2H86mf5/0j1hV3bB13WicTMbBBOPPYU3nzWnGpXY8g89PSSQZd1IjEbYoM57dHenvVL2tDQ0MeShxrs6QizoeJEYjYM7N69u9pVMBs0JxKzITaY1kGhTFNT01BXxyx3/kGimZmVxYnEzMzK4kRiZmZlcSIxM7Oy+GJ7UqlfqkJlf63qW0PNLG9OJElbWxuPP7GRg8eenPu29LtsNLzHfvbrXLczapdHHTaz/OWWSCQdAzwCjE3buS8iPinpZOAeYCKwGXh3RDyfylwPzAUOAPMj4oEUnwYsBsYBy4FrIyIkjQXuAKYBO4ArImLzYOt88NiT2TPlbYMtPuwcs/H+alfBzI4CeV4j2QtcEBGvAaYCF0k6j2w43FURMRlYlZ4jaQowBzgbuAi4SdLotK6bgXlk47hPTvMhSzrPR8QkYCFwY477Y2ZmJeSWSCLzUnpakx4BXAI0p3gzcGmavgRYEhF7I+IZsvHZz5U0ATg+IlZHRJC1QIrLFNZ1HzBDhaHmzMysInK9a0vSaEnrgO3AyohYA5waEVsB0t9C95n1wLNFxdtTrD5N94x3KxMR+4EXgUOGl5M0T1KrpNaOjo6h2j0zMyPnRBIRByJiKtBA1ro4p5fFS7Ukopd4b2V61uOWiJgeEdPr6ur6qraZmQ1ARX5HEhEvAA+TXdvYlk5Xkf4WOsFvB04vKtYAbEnxhhLxbmUkjQFOAHyrkplZBeWWSCTVSToxTY8D3gI8DSwDCgNTNwLfStPLgDmSxko6g+yi+tp0+munpPPS9Y8re5QprOsy4MF0HcXMzCokzxbJBOAhSeuBH5FdI7kf+DQwU9ImYGZ6TkRsAJYCG4HvAldHxIG0rquAL5FdgP8Z0JLitwHjJbUB15HuADOzkauzs5NrrrmGHTvyHxXQhkZuvyOJiPXAa0vEdwAzDlNmAbCgRLwVOOT6SkTsAS4vu7JmNmw0Nzezfv16mpubue6666pdHesH97VlZsNGZ2cnLS0tRAQtLS1ulYwQTiRmNmw0NzdTuMx58OBBmpub+yhhw4ETiZkNGytXrmTfvn0A7Nu3jxUrVlS5RtYfTiRmNmzMnDmTmpoaAGpqapg1a1aVa2T94URiZsNGY2MjhV6ORo0aRWNjYx8lbDhwIjGzYaO2tpbZs2cjidmzZzN+/CE9Htkw5PFIzGxYaWxsZPPmzW6NjCD9TiSSXgFMjojvpV+qj4mInflVzcyORrW1tSxatKja1bAB6NepLUkfJOum/Ysp1AB8M69KmZnZyNHfayRXA68HfgMQEZvo6v7dzMyOYv1NJHsj4neFJ6mnXXeOaGZm/U4k35f0cWCcpJnAvcC386uWmZmNFP1NJB8DOoAngA8By4FP5FUpMzMbOfp719Y44PaIuBWyIXRTbFdeFTMzs5Ghvy2SVWSJo2Ac8L2hr46ZmY00/U0kx0TES4UnafrY3gpIOl3SQ5KekrRB0rUpfoOkX0lalx4XF5W5XlKbpJ9KurAoPk3SE2leUxopkTSa4j0pvkbSxP7vupmZDYX+JpLfSvqzwhNJ04DdfZTZD/x9RLwKOA+4WtKUNG9hRExNj+VpnVOAOcDZZGO735ROoQHcDMwjG353cpoPMBd4PiImAQuBG/u5P2ZmNkT6e43kb4F7JW1JzycAV/RWII21vjVN75T0FFDfS5FLgCURsRd4Jg2fe66kzcDxEbEaQNIdwKVkw+1eAtyQyt8HfF6SPG67mVnl9KtFEhE/As4iGzv9b4BXRcRj/d1IOuX0WmBNCn1Y0npJt0s6KcXqgWeLirWnWH2a7hnvViYi9gMvAof08iZpnqRWSa0dHR39rbaZmfVDr4lE0gXp718BbwdeSXZq6e0p1idJxwFfA/42In5DdprqTGAqWYvlM4VFSxSPXuK9lekeiLglIqZHxPS6urr+VNvMzPqpr1Nbfwk8SJZEegrg670VllRDlkS+EhFfB4iIbUXzbwXuT0/bgdOLijcAW1K8oUS8uEx7+rX9CcBzfeyTmZkNoV4TSUR8UtIooCUilg5kxenOqtuApyLis0XxCen6CcA7gSfT9DLgq5I+C5xG1vJZGxEHJO2UdB7ZqbErgUVFZRqB1cBlwIO+PmJmVll9XmyPiIOSPgwMKJGQdfL4fuAJSetS7OPAeyRNJWvRbCb7pTwRsUHSUmAj2R1fV0fEgVTuKmAx2e9XWtIDskR1Z7ow/xzZXV9mZlZB/b1ra6WkfwDuAX5bCEbEYU8jRcQPKH0NY3kvZRYAC0rEW4FzSsT3AJf3WnMzM8tVfxPJX5O1IP6mR/yPh7Y6ZmY20vQ3kUwhSyJvIEsojwJfyKtSZmY2cvQ3kTSTDWrVlJ6/J8XenUelzMxs5OhvIvmTiHhN0fOHJP0kjwqZmdnI0t++th5Pt98CIOkvgP/Mp0pmZjaS9DeR/AXwX5I2p76vVgN/mXrkXZ9b7eyI19nZyTXXXMOOHTuqXRUzG6T+ntq6qO9FzAauubmZ9evX09zczHXXXVft6pjZIPS308Zf9PbIu5J2ZOrs7KSlpYWIoKWlxa0SsxGqv6e2zIZcc3MzhR5tDh48SHNzc5VrZGaD4URiVbNy5Ur27dsHwL59+1ixYkWVa2Rmg+FEYlUzc+ZMampqAKipqWHWrFlVrpGZDYYTiVVNY2MjWSfRMGrUKBobG6tcIzMbDCcSq5ra2lpmz56NJGbPns348YcMbmlmI0B/b/81y0VjYyObN292a8RsBHMisaqqra1l0aJFfS9oZsOWT22ZmVlZckskkk6X9JCkpyRtkHRtip8saaWkTenvSUVlrpfUJumnki4sik9L3bG0SWpKw/giaayke1J8jaSJee2PmZmVlmeLZD/w9xHxKuA84GpJU4CPAasiYjKwKj0nzZsDnE3WJctNkkandd0MzCMbx30yXV22zAWej4hJwELgxhz3x8zMSsgtkUTE1oj4cZreCTwF1AOXkI1lQvp7aZq+BFgSEXsj4hmgDThX0gTg+IhYHdnPoO/oUaawrvuAGYXWipmZVUZFLranU06vBdYAp0bEVsiSjaRT0mL1wA+LirWn2L403TNeKPNsWtd+SS8C44HOHtufR9ai4eUvf/lQ7ZYVaWpqoq2tbcDl2tuzf21DQ8OAyk2aNIn58+cPeHtmQ6G9vZ0Xd+3koaeXVLsqQ+aFXduJ9t2DKpv7xXZJxwFfA/42In7T26IlYtFLvLcy3QMRt0TE9IiYXldX11eVrYJ2797N7t2De/Ga2fCQa4tEUg1ZEvlKRHw9hbdJmpBaIxOA7SneDpxeVLwB2JLiDSXixWXaJY0BTgCey2VnrFeDbR0UyjU1NfWxpNnw0dDQgPbu4M1nzal2VYbMQ08vob5hcD8KzvOuLQG3AU9FxGeLZi0DCr8+awS+VRSfk+7EOoPsovradBpsp6Tz0jqv7FGmsK7LgAej0J2smZlVRJ4tktcD7weekLQuxT4OfBpYKmku8EvgcoCI2CBpKbCR7I6vqyPiQCp3FbAYGAe0pAdkiepOSW1kLZEj5+uB2RFgMNfOBnvdDHztrFpySyQR8QNKX8MAmHGYMguABSXircA5JeJ7SInIzI4MvmY28riLFDPLzWBaB75uNvK4ixQzMyuLE4mZmZXFp7bMejHYH1oO1KZNm4DB30Y9UL4obUPJicSsF21tbTy+4XE4MecNHcz+PP6rx3PeEPBC/puwo4sTiVlfToSD5x+sdi2GzKiHfUbbhpZfUWZmVha3SJL29nZG7XqRYzbeX+2qDJlRu3bQ3r6/2tUwsyOcWyRmZlYWt0iShoYGtu0dw54pb6t2VYbMMRvvp6HhZdWuhpkd4dwiMTOzsjiRmJlZWZxIzMysLE4kZmZWFl9sN7N+cXcxdji5JRJJtwNvA7ZHxDkpdgPwQaAjLfbxiFie5l0PzAUOAPMj4oEUn0bXoFbLgWsjIiSNBe4ApgE7gCsiYnNe+2N2tGtra+PpdevI+z7AwmmSF9at63W5ofDr3LdwdMizRbIY+DzZh32xhRHx78UBSVPIRjc8GzgN+J6kV6YREm8G5gE/JEskF5GNkDgXeD4iJkmaA9wIXJHf7pjZy4C5hx2vbuS5DY/MPRRyu0YSEY+QDX/bH5cASyJib0Q8A7QB50qaABwfEavTWOx3AJcWlWlO0/cBM9KY7mZmVkHVuNj+YUnrJd0u6aQUqweeLVqmPcXq03TPeLcyEbEfeBEYX2qDkuZJapXU2tHRUWoRMzMbpEonkpuBM4GpwFbgMyleqiURvcR7K3NoMOKWiJgeEdPr6uoGVmMzM+tVRRNJRGyLiAMRcRC4FTg3zWoHTi9atAHYkuINJeLdykgaA5xA/0+lmZnZEKno7b+SJkTE1vT0ncCTaXoZ8FVJnyW72D4ZWBsRByTtlHQesAa4ElhUVKYRWA1cBjyYrqMM2qhdz1Wk91/t+Q0AcczxuW5n1K7nIPd7bMzsaJfn7b93A+cDtZLagU8C50uaSnYKajPwIYCI2CBpKbAR2A9cne7YAriKrtt/W9ID4DbgTkltZC2ROeXUd9KkSeUUH5BNm3YCMPnMvD/kX1bR/TKzo1NuiSQi3lMifFsvyy8AFpSItwLnlIjvAS4vp47FKvmDpMK2mpqaKrZNM7O8uIsUMzMrixOJmZmVxYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmZlYWj5Boh6jUSHhQ2dHwPBKeWT6cSOwQbW1t/PeTP+blxx3oe+Ey/cG+rFG8Z/OPct3OL18anev6zY5mTiRlGOw398F+C6/kN+qXH3eAT0x/qSLbqoR/bj2u2lUY8drb29nJkTWq4Fbgpfb2Ppez3jmRVMG4ceOqXQUzsyHjRFIGn2+3o0lDQwMvdHYecWO2n9jQ0PeC1isnErNetLe3w4sw6uEj6AbHF6A9fDrHhs4R9O4wM7NqcIvErBcNDQ10qIOD5x+sdlWGzKiHR9FQ79M5NnRya5FIul3SdklPFsVOlrRS0qb096SieddLapP0U0kXFsWnSXoizWuSpBQfK+meFF8jaWJe+2JmZoeX56mtxcBFPWIfA1ZFxGRgVXqOpClkQ+WencrcJKlw4//NwDyycdwnF61zLvB8REwCFgI35rYnZmZ2WLklkoh4hGws9WKXAM1puhm4tCi+JCL2RsQzQBtwrqQJwPERsToiArijR5nCuu4DZhRaK2ZmVjmVvth+akRsBUh/T0nxeuDZouXaU6w+TfeMdysTEfuBF4HxpTYqaZ6kVkmtHR0dQ7QrZmYGw+eurVItiegl3luZQ4MRt0TE9IiYXldXN8gqmplZKZW+a2ubpAkRsTWdttqe4u3A6UXLNQBbUryhRLy4TLukMcAJHHoqzcwsFy/s2s5DTy/JdRsv7XkegOOOOamPJcv3wq7t1Jc+qdOnSieSZUAj8On091tF8a9K+ixwGtlF9bURcUDSTknnAWuAK4FFPda1GrgMeDBdRzEzy9WkSZMqsp1Nm7LvxvVnDu4DfiDqGT/o/cotkUi6GzgfqJXUDnySLIEslTQX+CVwOUBEbJC0FNgI7AeujohC17NXkd0BNg5oSQ+A24A7JbWRtUTm5LUvZmbFKtU9UmE7TU1NFdneYOWWSCLiPYeZNeMwyy8AFpSItwLnlIjvISUiG1rt7e38dufoI6rH3F/sHM0fupdXs1wMl4vtZmY2QrmLFDtEQ0MDe/ZvPeLGIznGvbya5cKJxMysAgYzEF45Q1FXciA8JxKzvrxQgW7kC42/SlyWeoGun/UO0K/Jf4TEHelv/vcpZftzYgW2M1gjZRA8JxKzXlTuNs/sm+fk+sn5b6x+cPtVqWPRkY7FiZPzPxYnUrn9OpIHwnMiMeuFb/Ps4mNhh+O7tszMrCxOJGZmVhaf2jKz3BzJdypZFycSMxtWRsqdStbFicRK+uVLlekiZduu7OzqqcfmOyb6L18azStz3YKV4tbB0cGJxA5RqdshAX6XTmMcMzHfWz1fSWX3y+xo4kRih6jkt0jf6mk28vmuLTMzK4sTiZmZlaUqp7YkbQZ2AgeA/RExXdLJwD3ARGAz8O6IeD4tfz0wNy0/PyIeSPFpdA16tRy41qMkWrX5llc72lSzRfLmiJgaEdPT848BqyJiMrAqPUfSFLLRD88GLgJukjQ6lbkZmEc2NO/kNN9sxBk3bpxve7URazhdbL+EbGhegGbgYeD/pPiSiNgLPJOG1j03tWqOj4jVAJLuAC6layheq6DBfAuHwX8TH87fwodrvczyUq0WSQArJD0maV6KnRoRWwHS31NSvB54tqhse4rVp+me8UNImiepVVJrR0fHEO6GlcvfxM1Gvmq1SF4fEVsknQKslPR0L8uqRCx6iR8ajLgFuAVg+vTpvoaSA38LNzt6VaVFEhFb0t/twDeAc4FtkiYApL/b0+LtwOlFxRuALSneUCJuZmYVVPFEIukPJf1RYRqYBTwJLAMa02KNwLfS9DJgjqSxks4gu6i+Np3+2inpPEkCriwqY2ZmFVKNU1unAt/IPvsZA3w1Ir4r6UfAUklzgV8ClwNExAZJS4GNwH7g6og4kNZ1FV23/7bgC+1mZhWno+1nF9OnT4/W1tZqV8PMbESR9FjRzzW68S/bzcysLE4kZmZWFicSMzMrixOJmZmV5ai72C6pA/hFtesB1AKd1a7EMOFjkfFx6OJj0WW4HItXRERdqRlHXSIZLiS1Hu4OiKONj0XGx6GLj0WXkXAsfGrLzMzK4kRiZmZlcSKpnluqXYFhxMci4+PQxceiy7A/Fr5GYmZmZXGLxMzMyuJEYmZmZXEiGUYknSjpb4qenybpvjT9AUmfP0y5l3Kqz0RJTw5g+UslTeljmfMl3X+YeZsl1Q60niXWk8vxyNtAj7cNb0P9/yy8P3p+TgwHTiTDhKTRwInA718gEbElIi6rXq0G7FKg10RiZn2T1NsQH90+J4YDJ5Iikq6UtF7STyTdKekVklal2CpJL0/LLZbUJOm/JP1c0mUpfo+ki4vWt1jSuySNlvRvkn6U1vWhNP98SQ9J+irwBPBp4ExJ69LyPb/RnC7pu5J+KumTh9mHjxRt51NDcFhGS7pV0gZJKySNk/TBtI2fSPqapGMl/Q/gHcC/pfqfKWmSpO+l5X4s6cy0zuMk3SfpaUlfSQOTFXxE0tr0mJT26e2S1kh6PK3v1BQ/TtKXJT2R9vddPY5FraTVkt46BMeh39Lgbd9J+/2kpCskTZP0fUmPSXpAXaOBTkvLrQauLlrHREmPpuP243R8C6+Zh3s5fsOCpI9Kmp+mF0p6ME3PkHSXpJsltabX1aeKyl2c9usH6T12f4qfLOmb6f/8Q0mvTvEbJN2ejsnPC9scRvr1/oHff158VtJDwI2Sxqcyj0v6Il3Di/f8nFD6+2R6L1yR1ne+pEckfUPSRklfkJTPZ35E+JHduXY28FOgNj0/Gfg20Jie/zXwzTS9GLiXLBFPAdpS/J1Ac5r+A+BZss+vmtoAAAh5SURBVEG35gGfSPGxQCtwBnA+8FvgjDRvIvBkUZ1+/xz4ALAVGJ/W+SQwPc17Kf2dRXaroFLd7gfeVMYxmUg2mNjU9Hwp8D5gfNEy/wxcU3RcLiuatwZ4Z5o+Bjg27fOLZEMjjwJWA29Iy2wG/jFNXwncn6ZPousOw/8FfCZN3wh8rmh7JxWOB9kAamuAmVV4Lb0LuLXo+QnAfwF16fkVwO1pej3wl2n634r+38cCx6TpyUBrmj7s8RtOD+A84N40/SiwFqgBPgl8CDg5zRsNPAy8Or1Gni16P9xd9BpYBHwyTV8ArEvTN6RjO5asK5EdQE2197+M98/9wOj0vAn4pzT9ViDSPk6k++fEu4CV6VieSjYw4IT0WtkD/HGat5Ki9+dQPtwi6XIBcF9EdAJExHPA64Cvpvl3Am8oWv6bEXEwIjaS/fMgG6HxAkljgdnAIxGxm+wD/kpJ68g+3MaTfThANmzwM/2s48qI2JHW+fUe9SFtZxbwOPBj4Kyi7QzWMxGxLk0/RvYiPid9W34CeC9ZEu5G2XDK9RHxDYCI2BMRu9LstRHRHhEHgXVpnQV3F/19XZpuAB5I2/tI0fbeAvxHoWBEPJ8ma4BVwEcjYuWg9ro8TwBvkXSjpDcCpwPnACvTa+ATQIOkE4ATI+L7qdydReuoAW5N+3wv3U8Z9nb8hovHgGnpdbCXLOFNB95IlljeLenHZK/Vs8n27yzg50Xvh7uL1vcG0vGJiAeB8en4AXwnIvam9+52ut6Pw8FA3z/3RtcIsG8C7gKIiO8Az1PaG4C7I+JARGwDvg/8eZq3NiJ+ntZ5N4d+ZgyJagy1O1yJLOP3pnj+3h5liYg9kh4GLiT71nl30fxrIuKBbhuUzidrkfRXz/r1fC7gXyLiiwNYZ1+K9/MAWWtoMXBpRPxE0gfIvvn01Nvplp7rLH4dRonpRcBnI2JZOmY3FG2j1P9sP9mb9kKyN1VFRcR/S5oGXAz8C9k3wQ0R8bri5SSdyOFfc38HbANeQ9by2FM0r7fjNyxExD5Jm4H/SdZiWA+8GTgT2A38A/DnEfG8pMVkrZHeXjOl5hWO3XA+HgN9//T8POjPD/16O259fWYMCbdIuqwi+5Y0HrJzsmRvgDlp/nuBH/RjPUvI3jxvBAqJ4wHgKkk1ad2vlPSHJcruBP6ol3XPTOeKx5Fd2P7PHvMfAP5a0nFpO/WSTulHnQfqj4CtaX/eWxT/ff0j4jdAu6RLU13GFs4F9+GKor+r0/QJwK/SdGPRsiuADxeeSDopTQbZqcizJH2svzs1VCSdBuyKiLuAfwf+AqiT9Lo0v0bS2RHxAvCipMK3xOJjeQKwNbU63k92amKkeYQsYTxC1gr532QtqOPJPjBfVHa9a3Za/mngjyVNTM+v6LGu98Lvv4B1ptfYSHS4909Pxfs8m+wULxz6OfEIcIWya7F1ZC2ZtWneuZLOSNdGrqB/n2EDNpwyd1VFxAZJC4DvSzpA1uSeD9wu6SNAB1mC6MsK4A5gWUT8LsW+RNak/XG6MNpBlgh61mGHpP9UdoG9haLTNskPyJr3k4CvRkRrj/IrJL0KWJ2uv75Edk52ez/qPRD/l+wU3S/ITuMUXtRLyE7HzAcuI/sA/KKk/wfsAy7vx7rHSlpD9iXnPSl2A3CvpF8BPyS7vgTZ+eX/SMfrAPApslN+RMQBSXOAb0v6TUTcVMb+DtSfkt10cJBsv68iayU1pdMxY4DPARvIXlO3S9pF1xcPgJuAr0m6HHiIgbVch4tHgX8EVkfEbyXtAR5N38QfJ9v/n5O+EEXEbmW3tX5XUiddH4aQvQa+LGk9sIvuXyhGmsO9f3r6FHB3OgX4fbJrH6U+Jz5Kdhr4J2Rfoj4aEb+WdBbZl7FPk70mHwG+kccOuYsUMxs2JB0XES+lL1z/AWyKiIXVrtdIlFpu/xARb8t7Wz61ZWbDyQfTDQkbyE7vDeX1PsuJWyRmZlYWt0jMzKwsTiRmZlYWJxIzMyuLE4lZP6iMnlzVS4/HA1zPB9JvVPpabkh6UTbrLycSs5HjA0CficSs0pxIzPpvjKRmZT3Q3qes1+MZqXfWJ5T1QjsWQNJFSr3YAn+VYqMkbUq/Pi48b+vZeki/UF6srt5c/05ZD9PTga8o6/X1rZK+UVRmpqSv96ywpPcp60l5naQvKhuuwGxIOZGY9d+fALdExKuB3wDXkfWbdEVE/CnZL9avknQMcCvwdrKucl4GkLo7uYuubjHeAvyk0FFokalkHV6ek9b75Yi4j6zX6PdGxFRgOfCqQlIi+4X8l4tXkno5uAJ4fSpzgN675DAbFCcSs/57NiIK/ZvdBcwg6931v1Osmayfo7NSfFNkP9S6q2gdt5N1kQ9Zf2DdPvyTn5P1ObVI0kVkSaubtN47gfelzh9fR9ZdRrEZwDTgR+lHfjPIuhQ3G1Lua8us/wby692Sy0bEs5K2SbqArDPH96bTTY+lRZZFxD9Jeg1Z78VXA+8mSzo9fZlszJw9ZN2P7+8xX2Tj41w/gHqbDZhbJGb99/JCD75kHUp+D5ioNJIjWSeV3yfrxfYMdY0I+Z7uq+FLZK2UpWkMiQMRMTU9/ildMxkVEV8j6+Dvz1K5br2+RsQWYAvZ+CaLS9R3FXBZoQfo1HP0Kwa782aH40Ri1n9PAY2pB9qTgYVk1ybuVTZI0UHgCxGxh2xUzO+ki+2/6LGeZcBxlD6tBVAPPJxORy0GCi2KxcAX0oXzcSn2FbJTbht7riTFPgGsSHVeSTZyntmQcl9bZhUmaTqwMCLeOATr+jzweETcVn7NzAbH10jMKigNtHUVQ3D3lKTHyMYp+fty12VWDrdIzMysLL5GYmZmZXEiMTOzsjiRmJlZWZxIzMysLE4kZmZWlv8Pi7JOxTzT6oUAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fcda77194e0>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fcda7ae4a90>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"drive-wheels \n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>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": 32,
"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": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 33,
"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": 34,
"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": 34,
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \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": 35,
"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": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAD8CAYAAACFK0QrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAXRElEQVR4nO3dbYxc1Z3n8e+v2+ZhIYQEE+K1PQFNrMwA0vBgOUSsVuwwMzEMihkNkRxpA8ogeYOIFrSjrMK8mNnsiFXyYsksSwLxDiw4mwmx8oSVNZNBJCOCxJNhzaPD0hqS4LWFF5IAVgDT3b99UaezRVHddbu72tX33t9HOupbp8699S8Q/zqce865sk1ERNTb2KgDiIiIxUsyj4hogCTziIgGSDKPiGiAJPOIiAZIMo+IaICByVzSMZIelvS4pKclfb5PG0m6UdKEpCcknbM04UZERD8rKrR5E/h924ckrQTul3S37Qe72lwErC/lw8DN5W9ERBwBA3vm7jhUXq4spXel0WZge2n7IHCipNXDDTUiImZTpWeOpHHgUeCDwJdtP9TTZA3wQtfrfaXuQM91tgJbARhbca6OOXFhUS9XDV1N+7vr1406hKGb2P/qqENYEqec9M9GHcKSeOHZp16yffJirjF2wloz+Ualtn795R/Y3rSYzzvSKiVz21PAWZJOBL4r6UzbT3U1Ub/T+lxnG7ANYOy4k33U6X+6gJCXr+nJw6MOYUns2PU3ow5h6D72+XtGHcKS+LefPHvUISyJa//Fb/9s0ReZfIMVH/pYpaZv7fnvqxb9eUdYpWQ+w/avJP0jsAnoTub7gO7u21pg/6Kji4gYFgmNjY86iiVTZTbLyaVHjqRjgT8AftLTbCdweZnVch7wiu0DREQsG2JsxVGVSh1V6ZmvBu4o4+ZjwA7b35f0aQDbtwC7gIuBCeDXwKeWKN6IiIVpeM98YDK3/QTwjoG4ksRnjg1cPdzQIiKGR4DGW5zMIyIaQWKszT3ziIimaPUwS0REI7R9zDwiogmEGFuxctRhLJkk84hoh/TMIyKaIck8IqLupExNjIioO5GeeURE/WmM8Zou1a8iyTwi2kHpmUdE1J7IbJaIiEZIMo+IqLvMM4+IaIIk84iI2pPE2MrMZomIqLcMs0RENEOSeUREA4yNadQhLJkk84hoBUkoyTwiov7Gx8dGHcKSSTKPiHYQ6ZlHRNRdZ9fEJPOIiJoTY0oyj4iotwyzREQ0Q5J5RETNSTC+Isk8IqL21OAx84GTLiWtk/QjSXslPS3pmj5tLpD0iqQ9pfzl0oQbEbEwkhgbq1bqqErPfBL4c9uPSXoX8Kike2w/09Pux7YvGX6IERHD0eQx84E9c9sHbD9Wjl8D9gJrljqwiIhh05gqlTmvMctohaT3SrpH0nPl73u6zrlO0oSkZyV9tKv+XElPlvduVBkHknS0pG+W+ocknTrou81rbWu54NnAQ33e/oikxyXdLemM+Vw3ImLJCcakSmWAmdGK3wXOA66WdDrwOeBe2+uBe8tryntbgDOATcBXJM1s33gzsBVYX8qmUn8l8EvbHwS+BHxxUFCVk7mk44FvA9fafrXn7ceAD9j+PeC/At+b5RpbJe2WtNuTb1T96IiIRRNibMVYpTKXOUYrNgN3lGZ3AJeW483AnbbftP08MAFslLQaOMH2A7YNbO85Z+Za3wIunOm1z6ZSMpe0kk4i/7rt7/T5cq/aPlSOdwErJa3q026b7Q22N2jFMVU+OiJiOMR8boCumul4lrK17yXfPlpxiu0D0En4wPtKszXAC12n7St1a8pxb/3bzrE9CbwCnDTX1xt4A7T8GtwK7LV9wyxt3g+8aNuSNtL5kXh50LUjIo6keUxNfMn2hgHXettoxRzX7veG56if65xZVZnNcj7wSeBJSXtK3V8AvwVg+xbgMuAqSZPA68CW8r8NERHLQmejrSFdq/9oxYuSVts+UIZQDpb6fcC6rtPXAvtL/do+9d3n7JO0Ang38Iu5YhqYzG3fT/9fie42NwE3DbpWRMTIaDhPGppjtGIncAXwhfL3rq76v5N0A/DP6dzofNj2lKTXJJ1HZ5jmcjr3HLuv9QCdzvIPB3WQswI0IlpCjA3n4RSzjVZ8Adgh6Urg58DHAWw/LWkH8AydmTBX254q510F3A4cC9xdCnR+LL4maYJOj3zLoKCSzCOiFTSknvmA0YoLZznneuD6PvW7gTP71L9B+TGoKsk8IlqjyStAk8wjohUkGE8yj4iovyTziIiaE0oyj4ioOwmOGrBUv86SzCOiFSRYkZ55RES9iYyZR0TUnzJmHhFRe52eecbMIyJqLz3ziIiaG5MymyUiognGq+9nXjtJ5hHRClnOHxHREEnmERE1l0VDERENIHIDNCKi9jJmHhHRAFnOHxHRBOmZR0TUX/Yzj4hoiCTziIiaG8vDKSIiGiBj5hER9SeUvVkiIppgLMk8IqLeBIw3N5cz8G6ApHWSfiRpr6SnJV3Tp40k3ShpQtITks5ZmnAjIhZIMDamSqWOqvTMJ4E/t/2YpHcBj0q6x/YzXW0uAtaX8mHg5vI3ImJZELCywY+NG/jNbB+w/Vg5fg3YC6zpabYZ2O6OB4ETJa0eerQREQs0M8xSpdTRvMbMJZ0KnA081PPWGuCFrtf7St2BnvO3AlsB1q1by3P3/qf5RbvcPXzXqCNYGnu/N+oIhu65z/7OqENYEh771ahDWBLXDuMiqu8QShWV/59D0vHAt4Frbb/a+3afU/yOCnub7Q22N5x80knzizQiYhFEZzZLlVJHlXrmklbSSeRft/2dPk32Aeu6Xq8F9i8+vIiI4anrEEoVVWazCLgV2Gv7hlma7QQuL7NazgNesX1glrYREUecBCvHxyqVOqrSMz8f+CTwpKQ9pe4vgN8CsH0LsAu4GJgAfg18avihRkQs3MwwS1MNTOa276f/mHh3GwNXDyuoiIil0ORhlqwAjYhWEPW9uVlFPQeHIiLmq+yaWKUMvJR0m6SDkp7qqvsPkv6PpD2lXNz13nVlhfyzkj7aVX+upCfLezeWe5RIOlrSN0v9Q2Va+JySzCOiFTpj5tVKBbcDm/rUf8n2WaXsApB0OrAFOKOc8xVJ46X9zXTW3sysoJ+55pXAL21/EPgS8MVBASWZR0QrzCznr1IGsX0f8IuKH70ZuNP2m7afpzNRZGNZJX+C7QfKfcftwKVd59xRjr8FXDjTa59NknlEtINgfKxaAVZJ2t1Vtlb8lM+UzQZvk/SeUjfbCvk15bi3/m3n2J4EXgHmXGmZG6AR0QrznJr4ku0N8/yIm4G/prP6/a+B/wz8GbOvkJ9r5XylVfXdkswjoiWW9klDtl/8zSdJ/w34fnk52wr5feW4t777nH2SVgDvZsCwToZZIqIVlnpvlp6dYv8EmJnpshPYUmaonEbnRufDZZX8a5LOK+PhlwN3dZ1zRTm+DPhhGVefVXrmEdEKneX8w+mZS/oGcAGdsfV9wF8BF0g6i85wyE+BfwNg+2lJO4Bn6Dwf4mrbU+VSV9GZGXMscHcp0NlC5WuSJuj0yLcMiinJPCJaY1ijLLY/0af61jnaXw9c36d+N3Bmn/o3gI/PJ6Yk84hojbG5dyaptSTziGgFMbye+XKUZB4RrdHgBw0lmUdESyg984iI2tMSzzMftSTziGiNDLNERDRAg3N5knlEtEPrHxsXEdEUDc7lSeYR0R5N3owqyTwiWkHlsXFNlWQeEa2RYZaIiJoTGWaJiGiEAY/RrLUk84hoB2XRUERE7QkY0rMplqUk84hojSYPswy8HyDpNkkHJT01y/sXSHpF0p5S/nL4YUZELE5nBWi1UkdVeua3AzcB2+do82PblwwlooiIJVLTPF3JwGRu+z5Jpy59KBERS0mN3ptlWNMuPyLpcUl3SzpjtkaStkraLWn3/3355SF9dEREBeXhFFVKHQ3jBuhjwAdsH5J0MfA9YH2/hra3AdsAzj37LA/hsyMiKpGNpqdGHcaSWXTP3Partg+V413ASkmrFh1ZRMSQydOVSh0tumcu6f3Ai7YtaSOdH4iMoUTEMmOoaaKuYmAyl/QN4AJglaR9wF8BKwFs3wJcBlwlaRJ4HdhiO0MoEbH8NDg1VZnN8okB799EZ+piRMTy5Zb3zCMimqKu4+FVJJlHREsYpidHHcSSSTKPiHYwGWaJiKg/w3SSeURE7WXMPCKiCZLMIyJqzoYGL+dPMo+I1sgwS0RE7WXRUEREMzQ4mQ9rP/OIiOVtZjl/lTJAv8dpSnqvpHskPVf+vqfrveskTUh6VtJHu+rPlfRkee9GlYeUSjpa0jdL/UNVHhCUZB4RrSCGugXu7cCmnrrPAffaXg/cW14j6XRgC3BGOecrksbLOTcDW+k8A2J91zWvBH5p+4PAl4AvDgooyTwiWsIwNVWtDLqSfR/wi57qzcAd5fgO4NKu+jttv2n7eWAC2ChpNXCC7QfKTrPbe86Zuda3gAtneu2zyZh5RLTD/Jbzr5K0u+v1tvKktLmcYvsAgO0Dkt5X6tcAD3a121fq3irHvfUz57xQrjUp6RXgJOCl2T48yTwiWmMeUxNfsr1hWB/bp85z1M91zqwyzBIRLTG8G6CzeLEMnVD+Hiz1+4B1Xe3WAvtL/do+9W87R9IK4N28c1jnbZLMI6I9ljaZ7wSuKMdXAHd11W8pM1ROo3Oj8+EyJPOapPPKePjlPefMXOsy4IeDnuCWYZaIaIchLuef5XGaXwB2SLoS+Dnw8c7H+mlJO4BngEngatszgVxFZ2bMscDdpQDcCnxN0gSdHvmWQTElmUdESxhPvjWcK83+OM0LZ2l/PXB9n/rdwJl96t+g/BhUlWQeEe1gstFWRETdGeMKc8jrKsk8ItrB5ElDERH1l/3MIyLqz8O7AbocJZlHREsYp2ceEVFzmc0SEdEEbvQN0IHL+fttwt7zvsqm6hOSnpB0zvDDjIhYJIOnpiqVOqqyN8vtvHMT9m4X8f83Vt9KZ7P1iIhlpsxmqVJqaOAwi+37BjyyaDOwvWwC86CkEyWtntnXNyJiWchsloF+s4l6MbPB+juSuaStdHrvrFu3tvftiIgllHnmg1TeRL08qWMbwMk62te8O8PrdXDDtz4z6hCG7vWNl406hCVx/HP3jTqE5SuzWQaabeP1iIhlwxi3eTZLBTuBy8uslvOAVzJeHhHLzkzPvK03QGfZhH0lgO1bgF3AxXSeOP1r4FNLFWxExILZ+K3Do45iyVSZzTLbJuwz7xu4emgRRUQsiWYvGsoK0Ihoj5oOoVSRZB4R7eBstBUR0QhNns2SZB4R7WDjqSTziIhas830W5OjDmPJJJlHRDuY9MwjIpogyTwiouZsM13TvcqrSDKPiNbIbJaIiLrLbJaIiPrLbJaIiIaYTs88IqLmMjUxIqIBMmYeEVF/JrNZIiLqz2b6cG6ARkTUm2E6PfOIiHozGTOPiKg/gxu8nH9s1AFERBwZxtPTlcogkn4q6UlJeyTtLnXvlXSPpOfK3/d0tb9O0oSkZyV9tKv+3HKdCUk3StJCv12SeUS0Q5lnXqVU9K9sn2V7Q3n9OeBe2+uBe8trJJ0ObAHOADYBX5E0Xs65GdgKrC9l00K/XpJ5RLSCbaYOT1YqC7QZuKMc3wFc2lV/p+03bT8PTAAbJa0GTrD9gG0D27vOmbck84hoiXkNs6yStLurbH3HxeAfJD3a9d4ptg8AlL/vK/VrgBe6zt1X6taU4976BckN0Ihoh/kt53+pa/ikn/Nt75f0PuAeST+Zo22/cXDPUb8gSeYR0Q4GTy04V779Uvb+8vegpO8CG4EXJa22faAMoRwszfcB67pOXwvsL/Vr+9QvSIZZIqIVjJmemq5U5iLpOEnvmjkG/gh4CtgJXFGaXQHcVY53AlskHS3pNDo3Oh8uQzGvSTqvzGK5vOuceUvPPCLaweDpofTMTwG+W2YRrgD+zvbfS3oE2CHpSuDnwMcBbD8taQfwDDAJXG17ZsL7VcDtwLHA3aUsSKVkLmkT8F+AceBvbX+h5/0L6PyiPF+qvmP7Py40qIiIYbNh6vDiFw3Z/ifg9/rUvwxcOMs51wPX96nfDZy56KCokMzLfMgvA39IZ4znEUk7bT/T0/THti8ZRlAREUNnD23MfDmq0jPfCEyUXyMk3Uln3mRvMo+IWNamG5zMq9wAnW2OZK+PSHpc0t2SzhhKdBERwzL8FaDLSpWeeZW5kI8BH7B9SNLFwPfo3LF9+4U6k+u3AhzPeO/bERFLxsD0cG6ALktVeuazzZH8Dduv2j5UjncBKyWt6r2Q7W22N9jecEySeUQcSTZTh6cqlTqqkswfAdZLOk3SUXQ2jNnZ3UDS+2d2+5K0sVz35WEHGxGxUC6LhqqUOho4zGJ7UtJngB/QmZp4W5k3+eny/i3AZcBVkiaB14EtZeOYiIjlYYgrQJejSvPMy9DJrp66W7qObwJuGm5oERHD5IGrO+ssK0Ajoh2GtwJ0WUoyj4hWMM2eZ55kHhHtYDNd05kqVSSZR0Qr2OmZR0Q0QpWHNddVknlEtIOdnnlERO1lnnlERP2ZeT0DtHaSzCOiHWymDieZR0TUmg3TDd5lJMk8IlpjKsk8IqLeDDT4/meSeUS0R3rmERE1N204nI22IiLqL8MsERE1Z5xhloiIussN0IiIhkgyj4ioOTuzWSIias9kNktERO1lzDwioiEyzBIRUXOdMfNRR7F0kswjojXSM4+IqDkDzd3NPMk8IlrCOLNZIiLqrjObJck8IqLeGn4DdKxKI0mbJD0raULS5/q8L0k3lvefkHTO8EONiFi4mZ55lTLIoJw4CgOTuaRx4MvARcDpwCcknd7T7CJgfSlbgZuHHGdExKJNuVqZS8WceMRV6ZlvBCZs/5Ptw8CdwOaeNpuB7e54EDhR0uohxxoRsWDTdJbzVykDVMmJR1yVMfM1wAtdr/cBH67QZg1woLuRpK10eu4Ab36Vnz01r2jrYRXw0qiDGKavXvbZxn0n+Cw08N8VzfxOAB9a7AVe4vAPvsrPVlVsfoyk3V2vt9neVo6r5MQjrkoyV5+63p+uKm0o/zC2AUjabXtDhc+vlSZ+ryZ+J2jm92rid4LO91rsNWxvGkYsVMx3R1qVYZZ9wLqu12uB/QtoExHRBMsy31VJ5o8A6yWdJukoYAuws6fNTuDyMqvlPOAV2wd6LxQR0QBVcuIRN3CYxfakpM8APwDGgdtsPy3p0+X9W4BdwMXABPBr4FMVPnvb4Ca11MTv1cTvBM38Xk38TrCMvtdsOXHEYSE3eEVURERbVFo0FBERy1uSeUREA4wkmS/HpbCLJek2SQclNWbuvKR1kn4kaa+kpyVdM+qYFkvSMZIelvR4+U6fH3VMwyRpXNL/kvT9UccyLJJ+KulJSXuGMUWxqY74mHlZCvu/gT+kM8XnEeATtp85ooEMmaR/CRyisxL2zFHHMwxlFe9q249JehfwKHBpnf9dSRJwnO1DklYC9wPXlJXLtSfp3wEbgBNsXzLqeIZB0k+BDbabuBhqaEbRM1+WS2EXy/Z9wC9GHccw2T5g+7Fy/Bqwl87qt9oqW04cKi9XltKIWQCS1gJ/DPztqGOJI28UyXy2pf+xjEk6FTgbeGi0kSxeGYrYAxwE7rFd++9U/A3w72neA3UM/IOkR8uWINHHKJL5slwKG7OTdDzwbeBa26+OOp7Fsj1l+yw6K/c2Sqr9sJikS4CDth8ddSxL4Hzb59DZpfDqMqQZPUaRzJflUtjor4wrfxv4uu3vjDqeYbL9K+AfgWHt2TFK5wMfK+PLdwK/L+l/jDak4bC9v/w9CHyXzlBt9BhFMl+WS2HjncrNwluBvbZvGHU8wyDpZEknluNjgT8AfjLaqBbP9nW219o+lc5/Uz+0/a9HHNaiSTqu3HxH0nHAHwGNmTE2TEc8mdueBGaWwu4FdiyHpbCLJekbwAPAhyTtk3TlqGMagvOBT9Lp5e0p5eJRB7VIq4EfSXqCTsfiHtuNmcbXQKcA90t6HHgY+J+2/37EMS1LWc4fEdEAWQEaEdEASeYREQ2QZB4R0QBJ5hERDZBkHhHRAEnmERENkGQeEdEA/w9sx4rJMwWCTgAAAABJRU5ErkJggg==\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": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 38,
"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": 38,
"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": 39,
"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": 40,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"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": 50,
"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": 51,
"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": 51,
"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": 52,
"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": 53,
"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": 54,
"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": 55,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment