Skip to content

Instantly share code, notes, and snippets.

@emilfh
Created January 14, 2021 00:44
Show Gist options
  • Save emilfh/fc721f0867c6ce05820d98b5be5b5161 to your computer and use it in GitHub Desktop.
Save emilfh/fc721f0867c6ce05820d98b5be5b5161 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/Logos/organization_logo/organization_logo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Data Analysis with Python\n",
"\n",
"Estimated time needed: **30** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"- Explore features or charecteristics to predict price of car\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
"\n",
"</div>\n",
" \n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries \n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook.\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"float64\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke','compression-ratio','horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" \n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 55834.23093422367)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price \n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', ylabel='price'>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', ylabel='price'>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 \n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"\n",
"df[[\"stroke\",\"price\"]].corr()\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='stroke', ylabel='price'>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABAfUlEQVR4nO29e5Qc5XXo+9td3fPSzEiDHkhohIVARDxiMMiYxF5Exr4n+BHAN3IM58RwE3xEHBzwzcuQ6xBC4hXr2LFj4mOCYnsZSGJQlBybcBCOQVFkH/OwwGAQCJBHwhoQGj1Gmnc/qvb9o77u6Z7pnume6Z7unt6/tVpdvau+mqrqVu3aj29vUVUMwzAMY6ZEqn0AhmEYRn1jisQwDMOYFaZIDMMwjFlhisQwDMOYFaZIDMMwjFkRrfYBzDVLlizR1atXV/swDMMw6opnnnnmqKouzbeu4RTJ6tWr2b17d7UPwzAMo64QkdcLrTPXlmEYhjErTJEYhmEYs8IUiWEYhjErTJEYhmEYs8IUiWEYhjErGi5ryzCM/Ozc28c9u3o42D/Cqq42brxsDRvWLav2YRl1gFkkhmGwc28ftz+0h77BMRa1xugbHOP2h/awc29ftQ/NqAMqrkhExBORn4jIw+7zHSLyhog8514fzNr2NhHZJyKviMivZskvFpEX3Lq7REScvFlEHnTyp0RkdaXPxzDmI/fs6iHmCW1NUUTC95gn3LOrp9qHZtQBc2GR3AK8PEH2ZVW90L0eARCRc4FrgPOAK4CviYjntr8b2ASsda8rnPwGoF9VzwK+DGyu6JkYxjzlYP8IrTEvR9Ya8+jtH6nSERn1REUViYh0Ax8Cvl7E5lcBD6hqXFX3A/uAS0RkBdCpqk9o2IXrPuDqrDH3uuVtwPvS1ophGMWzqquN0aSfIxtN+nR3tVXpiIx6otIWyd8AfwwEE+SfEpGfisg3RaTLyVYCB7O26XWylW55ojxnjKqmgJPA4okHISKbRGS3iOw+cuTI7M7IMOYhN162hqSvjCRSqIbvSV+58bI11T40ow6omCIRkQ8Dfar6zIRVdwNnAhcCh4C/Tg/JsxudQj7VmFyB6hZVXa+q65cuzVtzzDAamg3rlnHnleexrKOFk6NJlnW0cOeV51nWllEUlUz/fTdwpQumtwCdIvIPqvqb6Q1E5O+Bh93HXmBV1vhu4E0n784jzx7TKyJRYCFwvALnYhjzng3rlpniMGZExSwSVb1NVbtVdTVhEH2Hqv6mi3mk+Qjwolt+CLjGZWKdQRhUf1pVDwGDInKpi39cB3w3a8z1bnmj+xuTLBLDMAyjclRjQuL/EJELCV1QB4AbAVR1j4hsBV4CUsBNqpqO/n0S+BbQCmx3L4BvAPeLyD5CS+SauTkFwzAMI4002gP8+vXr1fqRGIZhlIaIPKOq6/Ots5nthmEYxqwwRWIYhmHMClMkhmEYxqwwRWIYhmHMClMkhmEYxqwwRWIYhmHMClMkhmEYxqwwRWIYhmHMClMkhmEYxqywnu2GYUyJ9XI3psMsEsMwCmK93I1iMIvEMAwgv+WR3csdoK0pykgixT27eswqMTKYIjEMI2N5xDzJsTyG40lWLGzN2dZ6uRsTMdeWYRg5lodI+B7zhKSv1svdmBZTJIZhcLB/hNaYlyNrjXk0RSPWy92YFlMkhmGwqqstr+WxdlmH9XI3pqXiMRIR8YDdwBuq+mEROQV4EFhN2CHxN1S13217G3AD4AM3q+r3nPxixjskPgLcoqoqIs3AfcDFwDHgY6p6oNLnZBjzjRsvW8PtD+1hJJGiNeYxmvQzlof1cjemYy4skluAl7M+3wo8rqprgcfdZ0TkXMJWuecBVwBfc0oI4G5gE2Ef97VuPYRKp19VzwK+DGyu7KkYxvxkw7plZnkYM6aiFomIdAMfAj4H/L4TXwVscMv3AjuBzzj5A6oaB/a7PuyXiMgBoFNVn3D7vA+4mrBv+1XAHW5f24Cviohoo/UPNowyYJaHMVMqbZH8DfDHQJAlO1VVDwG49/QvdyVwMGu7Xidb6ZYnynPGqGoKOAksnngQIrJJRHaLyO4jR47M8pQMwzCMbCqmSETkw0Cfqj5T7JA8Mp1CPtWYXIHqFlVdr6rrly5dWuThGIZhGMVQSdfWu4ErReSDQAvQKSL/ABwWkRWqekhEVgDpWgu9wKqs8d3Am07enUeePaZXRKLAQuB4pU7IMAzDmEzFLBJVvU1Vu1V1NWEQfYeq/ibwEHC92+x64Ltu+SHgGhFpFpEzCIPqTzv316CIXCoiAlw3YUx6Xxvd37D4iGEYxhxSjRIpnwe2isgNwM+BjwKo6h4R2Qq8BKSAm1Q1ndj+ScbTf7e7F8A3gPtdYP44ocIyDMMw5hBptAf49evX6+7du6t9GIZhGHWFiDyjquvzrbOZ7YZhGMasMEViGIZhzApTJIZhGMasMEViGIZhzApTJIZhGMassA6JhkH+NrNWd8owisMUidHwFGozeyeYMsGUrDE95toyGp5CbWbv2dVT7UOrOmkl2zc4lqNkd+7tm36w0TCYIjEankJtZnv7R6p0RLWDKVmjGEyRGA1PoTaz3V1tVTqi2sGUrFEMpkiMumPn3j6u3fIk79m8g2u3PDlrN8uNl60h6SsjiRSq4Xu6zWyjY0rWKAZTJEZdUQmfvbWZLYwpWaMYLGvLqCuyffYAbU1RRhIp7tnVM6sbv7WZzc+Gdcu4k/C69/aP0G1ZW0YeTJEYdcXB/hEWtcZyZOazryymZOufSqdwm2vLqCvMZ28YpTEXKdyV7NneIiJPi8jzIrJHRP7cye8QkTdE5Dn3+mDWmNtEZJ+IvCIiv5olv1hEXnDr7nKdEnHdFB908qdEZHWlzseoDeaTz77cSQOGkY+5SOGupEUSBy5X1QuAC4ErRORSt+7Lqnqhez0CICLnEnY4PA+4AviaiKTzDu8GNhG2313r1gPcAPSr6lnAl4HNFTwfowaYL4Fxm+hnzBVzkcJdsRiJ650+5D7G3GuqdoxXAQ+oahzY79rnXiIiB4BOVX0CQETuA64mbLd7FXCHG78N+KqIiPVtn9/MB599pZIGDGMiq7ra6Bscy/zWoPzu4IrGSETEE5HngD7g+6r6lFv1KRH5qYh8U0S6nGwlcDBreK+TrXTLE+U5Y1Q1BZwEFuc5jk0isltEdh85cqQ8J2cYs8Am+hlzxVy4gyuqSFTVV9ULgW5C6+J8QjfVmYTurkPAX7vNJd8uppBPNWbicWxR1fWqun7p0qUlnYNhVIJVXW0cG47Tc2SIvW8N0HNkiGPDcUsaMMrOXLiD5yT9V1VPiMhO4ApV/WJaLiJ/DzzsPvYCq7KGdQNvOnl3Hnn2mF4RiQILgeOVOAdjfjPXFW5/ac0pPH3gOBGBiEDCD+gbTHDtO0+p2N80GpdKu4MrmbW1VEQWueVW4P3AXhFZkbXZR4AX3fJDwDUuE+sMwqD606p6CBgUkUtdttZ1wHezxlzvljcCOyw+YpRKNQLfT/QcZ2l7E01ehEChyYuwtL2JJ3rsOcioPyppkawA7nWZVxFgq6o+LCL3i8iFhC6oA8CNAKq6R0S2Ai8BKeAmVU1PGPgk8C2glTDIvt3JvwHc7wLzxwmzvgyjJKoR+D7YP8KS9maWdrRkZKpqMRKjLqlk1tZPgXfkkX98ijGfAz6XR74bOD+PfAz46OyO1Gh0qjFbfi4yaQxjrrCZ7UbDU43Z8vNpYqVhmCIxGp5q3NTny8RKwwAr2mgYVatwOx8mVhoGmEViGDlYyp9hlI4pEqPhsbpXhjE7zLVlNDxW98qY71g/EsOoMFb3ypjP1HU/EsOoF6xZljGfqfd+JIZRF9icjvrCGoKVxlxY3KZIjIbH5nTUD5YYUTpzYXFbsN0wsDkd9YIlRpTOjZet4faH9jCSSNEa8xhN+vXVj8QwDKOcWGJE6cybfiSGYdQvc92rZSqs2OXMqNt+JIZh1D+1FpOwxIjaxBSJYRgFmYvU0VKwxIjaxFxbhmEUpBq9WqbDEiNqj0q22m0RkadF5HkR2SMif+7kp4jI90XkNffelTXmNhHZJyKviMivZskvFpEX3Lq7XMtdXFveB538KRFZXanzMYxGxCZrGsVQSddWHLhcVS8ALgSuEJFLgVuBx1V1LfC4+4yInEvYKvc84Arga65NL8DdwCbCPu5r3XqAG4B+VT0L+DKwuYLnYxgNh8UkjGKomCLRkCH3MeZeClwF3Ovk9wJXu+WrgAdUNa6q+4F9wCUisgLoVNUnVFWB+yaMSe9rG/C+tLViGMbssZiEUQwVjZE4i+IZ4Czgf6rqUyJyqqoeAlDVQyKS/kWuBJ7MGt7rZEm3PFGeHnPQ7SslIieBxcDRCcexidCi4fTTTy/fCRpGA2AxCWM6Kpq1paq+ql4IdBNaF+dPsXk+S0KnkE81ZuJxbFHV9aq6funSpdMctWEYhlEKc5L+q6ongJ2EsY3Dzl2Fe08npPcCq7KGdQNvOnl3HnnOGBGJAguB45U4B8MwDCM/lczaWioii9xyK/B+YC/wEHC92+x64Ltu+SHgGpeJdQZhUP1p5wYbFJFLXfzjuglj0vvaCOxwcRTDMAxjjqhkjGQFcK+Lk0SArar6sIg8AWwVkRuAnwMfBVDVPSKyFXgJSAE3qWo67/CTwLeAVmC7ewF8A7hfRPYRWiLXVPB8DMMwjDxIoz3Ar1+/Xnfv3l3twzAMY4bUUu2vRkJEnlHV9fnWWYkUwzDqhp17+/jDbc/zk4P9HB4Y4ycH+/nDbc9bP5IqY4rEMIy64fPbX+bESBINwBNBAzgxkuTz21+u9qE1NFZryzCMumH/sREiApFImPkvAhoo+49ZP5JqYhaJYRiGMStMkRiGUTesWbKAQCFQRVECVQIN5Ub1MEViGEbd8Jkr1tHVFkOAlB8gQFdbjM9csa7ah9bQmCIxDKNu2LBuGV/YeAHvOL2LFQtbecfpXXxh4wWW/ltlig62i8jbgLWq+pibqR5V1cHKHZphGMZkrIhk7VGURSIi/52wTPs9TtQNfKdCx2QYhmHUEcW6tm4C3g0MAKjqa4A9EhiGYRhFK5K4qibSH1yl3caqrWIYhmHkpVhF8p8i8idAq4j8X8A/A/9WucMyDMMw6oViFcmtwBHgBeBG4BHgs5U6KMMwDKN+KDZrqxX4pqr+PWRa6LYCVpfAMIw5xar/1h7FWiSPEyqONK3AY+U/HMMwjMLs3NvH7Q/toW9wjEWtMfoGx7j9oT1W/bfKFKtIWlR1KP3BLbdNNUBEVonIf4jIyyKyR0RucfI7ROQNEXnOvT6YNeY2EdknIq+IyK9myS8WkRfcurtcp0RcN8UHnfwpEVldwrkbhlFn3LOrh5gntDVFEQnfY55wz66eah9aQ1OsIhkWkYvSH0TkYmB0mjEp4A9U9RzgUuAmETnXrfuyql7oXo+4fZ5L2OHwPMLe7l9zLjSAu4FNhO1317r1ADcA/ap6FvBlYHOR52MYRh1ysH+E1piXI2uNefT2m5e9mhQbI/k08M8i8qb7vAL42FQDXK/1Q255UEReBlZOMeQq4AFVjQP7XfvcS0TkANCpqk8AiMh9wNWE7XavAu5w47cBXxURsb7txnyl0eMDq7ra6Bsco61p/NY1mvTp7prSQWJUmKIsElX9MbCOsHf67wLnqOozxf4R53J6B/CUE31KRH4qIt8UkS4nWwkczBrW62Qr3fJEec4YVU0BJ4HFef7+JhHZLSK7jxw5UuxhG0ZNYfEBuPGyNSR9ZSSRQjV8T/rKjZetqfahNTRTKhIRudy9/9/ArwFnE7qWfs3JpkVE2oF/AT6tqgOEbqozgQsJLZa/Tm+aZ7hOIZ9qTK5AdYuqrlfV9UuXLi3msA2j5rD4QFhn684rz2NZRwsnR5Ms62jhzivPayirrBaZzrX1K8AOQiUyEQX+darBIhIjVCL/qKr/CqCqh7PW/z3wsPvYC6zKGt4NvOnk3Xnk2WN63Wz7hcDxac7JMOqSg/0jLGqN5cgaMT5gRRtrjykViar+mYhEgO2qurWUHbvMqm8AL6vql7LkK1z8BOAjwItu+SHgn0TkS8BphJbP06rqi8igiFxK6Bq7DvjbrDHXA08AG4EdFh8x5ivVjA80emzGmJppYySqGgCfmsG+3w18HLh8Qqrv/3CpvD8F3gv8v+7v7AG2Ai8BjwI3qarv9vVJ4OvAPuBnhIF2CBXVYheY/33CGfiGMS+pVnzAYjPGdEgxD/Ai8qeE6b4PAsNpuarWnRtp/fr1unv37mofhmHMiLRl0Ns/QvccWQbXbnlykiU0kkixrKOFb2+6tKJ/26gdROQZVV2fb12x6b+/TRgT+d0JckuVMIw5pBrxAYvNGNNR7ITEc4H/CTwPPEcYozivQsdkGEYNsaqrjdGknyOzuRtGNsUqknuBc4C7CJXIOU5mGMY8x+ZuGNNRrGvrF1T1gqzP/yEiz1figAzDqK0sqQ3rlnEnzHlsxqgfirVIfuLSbwEQkXcB/6cyh2QYjU0tZ0lZbr2Rj2IVybuAH4nIAVf76gngV7LSeA3DKBO1NoO9lhWbURsU69q6YvpNDMMolXwurFrLkspWbABtTVFGEinu2dVj7i0DKFKRqOrrlT4Qw2g00k/6MU9ynvQ7mqOMJv2aqXBba4rNqD2KdW0ZhlFmCrmwVLWmsqQs/deYDlMkRsOxc28f1255kvds3sG1W56smq+/UJOm4YRfUxVuLf3XmI5iYySGMS8o5E66E+b8Rj1VEcZCM9irkRZs6b/GdJgiMRqKWgoc33jZGm5/aA8jiRStMY/RpD/lk/7OvX380bbnGRxLkQoCjg7G+aNtz/OFjRfMiTIxxWEUwlxbRkNRSz2/S23StPnRvfSPJFEg6kVQoH8kyeZH987pcRvGRMwiMRqKWuv5XcqTfs/RYSICEQkbg4qAitJzdHiakYZRWcwiMRoKCxwbRvkxRWI0FPXc8/uMxW0ECkGgqCpBoAQayg2jmlTMtSUiq4D7gOVAAGxR1a+IyCmEDbJWAweA31DVfjfmNuAGwAduVtXvOfnFwLeAVuAR4BZVVRFpdn/jYuAY8DFVPVCpczLmB/UaOL71A+fwh9ueZyiewg8ULyIsao5x6wfOqfahGQ1OJS2SFPAHqnoOcClwk4icS9gO93FVXQs87j7j1l1D2OfkCuBrIpKOit4NbCLs476W8ZItNwD9qnoW8GVgcwXPxzCqyoZ1y/jixgt4x6oulne28I5VXXxxioytWpkvY8x/KmaRqOoh4JBbHhSRl4GVwFXABrfZvcBO4DNO/oCqxoH9rg/7Ja5IZKeqPgEgIvcBVxP2bb8KuMPtaxvwVRERLaZ/sGHUIcVaU7U0X8aY/8xJjEREVgPvAJ4CTnVKJq1s0r/qlcDBrGG9TrbSLU+U54xR1RRwElic5+9vEpHdIrL7yJEjZTorw6hdaq2CsDG/qbgiEZF24F+AT6vqwFSb5pHpFPKpxuQKVLeo6npVXb906dLpDtkw6p5ami9jzH8qOo9ERGKESuQfVfVfnfiwiKxQ1UMisgJIO257gVVZw7uBN528O488e0yviESBhcDxipyMYcwhdz32Kl//4X6GEz4Lmjw+8Z4zuPn9Zxc9vtzzZWqpY6NRe1TMIhERAb4BvKyqX8pa9RBwvVu+HvhulvwaEWkWkTMIg+pPO/fXoIhc6vZ53YQx6X1tBHZYfMSod+567FW+smMfo0mfaCRUAF/ZsY+7Hnu16H2Uc76MNbZqXFJ+wHA8xcmR5JTbVdIieTfwceAFEXnOyf4E+DywVURuAH4OfBRAVfeIyFbgJcKMr5tUNV27+pOMp/9udy8IFdX9LjB/nDDryzBqjlKe6L/+w/1EBKKR8DkvIpAKAr7+w/1FWyXlLLRYS/XJjMqR9APiqYBE1isVBADEvKltjkpmbf2Q/DEMgPcVGPM54HN55LuB8/PIx3CKyDBqlVIzqIYTPhGUsaSfE/Dzg9SM/v5sTfRaa2xlbrbZk3JKI3z5JFIBfjDzX4rV2jKMCnPPrh6Svs+xoRQJP6DJi9DZGi34RN8cjTCS8CfJVcObaHrMVDfUcqb/1lJ9MktrLh0/UBJOYcRTAfHkuKVRLqxEimFUmNf6Bjk6mCDlZqOnAuXoYILX+gbzbn9Ka/7nO4FM+u50cYtypv+WK95SjgmSltY8NUkX0zgxkuDwwBgHj4/w+rFhDp0c5fhwguF4quxKBMwiMYyKk0gFMKFqbyDhU2JeIpOf7yKA50nGnTRd3KKc7qgN65axsffEpCyyYi2AnXv72PzoXl7tGyLmCad2NM/Ykqg1N1u1SPkBSd9ZGr6fWa5WrpFZJIZRYWJeqECyiy0CNHn5Q4irutpoiUZojkZojXm0xjxiXgQvIhl30nTzRMrZZ33n3j7uf/J1EqkAIbxh3f/k60VZFGnLaf/RYTwBDeDNk2OkfJ2RJdFo/eNVlXjKZ3AsydGhOG+eGOX1Y8P8/PgIh06Ocmw4ztBYinjSr5oSAVMkhlFxzj61k8ULmoh6gq9K1BMWL2hi7amdebe/8bI1dLRE8QPFD4LwpUp7czTjTpruhlrO9N/ZNNRKW06+KpGIhC+Eo0PxGVkS87UNQBCEyRUDY0mODcV562Toltp/dJg3+kc5MhhnYDTJWNKfVVC8UpgiMYwKc+Nla2iKeixf2MIvnNrB8oUtNEW9gje/DeuW8YWNF7B2WTsigohw1tIFOQUap7uhbli3jI0XreTIYJyX3xrkyGCcjRetnFFAOruhliBERIgIRTXUSltOTV4EPwifruN+wEjC59hwvGRLop7bAECuhXF8OJFRGAeODfPmiVGODsY5OZp032f5YxmVwmIkxryhVtNCZzqnY1FbE0s7UnnPZbp97tzbx7Zn32BpRzOnu37w2559g7d3L5rTa5LO+GpvjnJ4MJ6RK3B4IM617zy95H3WQxsAVQ3jFn5AMhWQ8MN5GfWkHErBFMkcUqs3uvlAraeFlnLzm+pcgKJ+Q+WcRHjG4jb2HRlGAg3b+yoECmctmd6auPGyNdz+0B76RxKTVypsf/Gtkkq/1CIJpyiSTlEkXCC8kYpsmCKZI2r9RldtZqtkS52rUUtMPPcTI4m857L50b0MJ/yifkMzyW4q9B2U0lAr3z7uvPI8fuveHwPhLH1PhKgXwQ+Cuus3n579HU/6mQl9jaQwCmExkjnC8t8LU45aTqXO1agV8p37K4cH6RuITzqXfS59tpjfUKnZTVN9B8U21Cq0D4AmL0KTJzRHPaLTlNuoFYJAGU34mTkZPz82wsHjI/QNjHHSBb5NiYSYRTJHWP57Ycrhhil5rkaNkO/cAXyFpgnnkgq06NLwaZfSSCJFq4uRTJXdNN13UIxrbqp9zMY9VmmCIIxlZMczkimtyMS9+YopkjmilspM1BrlULIxTxhNhjeF9I0KCs/VqBXynXuadK0tIZyj6En4mynmN1RqgP9g/wieQM+RoYw7bUl7U0nfwVTf419cdX5N9JsPAs0UJkyXDJmvAfC5xBTJHFHqE2IjUQ4le/apnew/OsTg2HhcoaMlxhlL2itxyGUj37lHI0LC11CDOE2iAZzW1ZpJ+S3mN1RKgL+9yWPv4aHM56TvM3x8lHWnFn/9pvoe0+6xclQjLoaUH5AKlKQLfCf9ytSYMkJMkcwRsy0zMZ8ph5JN72P5wmhNKupCgex85x6o4rky8mnryldlQZPHrR84pyI34yNZqbnFyPMx3fdYibTdcF7GeBXbpK8kUwGBxS7mFFMkc0St5PXXIuXonVHO/hvlZrqMvYnHfXI0yYImj6NDiYx1tby9meGEX7E5FMdH8zcuSsuLyaqr9HcwUWmke2YY1adiikREvgl8GOhT1fOd7A7gvwNH3GZ/oqqPuHW3ATcAPnCzqn7PyS9mvKnVI8Atqqoi0gzcB1wMHAM+pqoHKnEu5Zj/Yc2BpqYcN8hanahWaiD72i1P0jc4xpql426lkUSKZR0tFTvG9AO8SK4sXbq+2NT12X4HaZeUH4TJBaks15TFMuaWRCpgcCzJwFiK0TxtDbKppEXyLeCrhDf7bL6sql/MFojIuYTdDc8DTgMeE5GzXYfEu4FNwJOEiuQKwg6JNwD9qnqWiFwDbAY+Nt1BJVIB+48OhwFMkcx/nEhEcmQiIAhP7DvK5u+9QswTOpqjvHVylM9+90VuT53Le89ZRkQELzJ9QNeythqXUr/7asTT2pq8sAdKOrqv4/JyPwRlKtc65ZB0WVK+1sckvqd7jvPAjw9yaGCUFZ2tXPPOVVyy5pRqH1ZeVJWxZMDAWJKhsRQDY0kGx1IMjKUYzCyH72mlMTgaLo+VYO1VskPiLhFZXeTmVwEPqGoc2O9a514iIgeATlV9AkBE7gOuJlQkVwF3uPHbgK+KiBTTs11VUcj1oxZQuN/8PweICJlaQTEvQirw+drOn3FWViAyrVDEpaCm6xGJe1/e2cLRoXg4BwBAYDSRYuWiVoIgLGhnzE9KTSaohpvudy5bw988/hqBklEiEQnlW5/pLfkhyA/GrYhU2qII6j9+8XTPcb6y4zWiEaGzJcqx4Thf2fEat7C2osokUGUk7mcpggk3/7R8dHx5MB4uJ/3KX+9qxEg+JSLXAbuBP1DVfmAlocWRptfJkm55ohz3fhBAVVMichJYDByd+AdFZBOhVcPK7lUlHeyhgVE6W3IvU0sswlsDozmyQJVgii9s40XdfGXHa/hBkpZYhLFkaMJffeFKDhwbziiciIQVUr0JiihUUtmKKrSY0tZTWnmFqaKmlGqJmVgY5XDTleKSTZcpmZgMcvP7z+aJnuOTFOFIIsVpi1rDRkm+kgyCjDuq3pXFVDzw44MkUz4nEj5JPyDmRVjQ5PHAjw8WpUj8QMOb/2ioDIbiWdbBaD4FES4PxVOUo+ivAO0tUTpaonS0xOhojtLZGqOjJUpnWpZe3xyjszWUnbKgiTM3F97vXCuSu4G/IHzm+Qvgr4HfJn9vd51CzjTrcoWqW4AtAG+/8KKSvo4Vna0cG47nTAQbSwYs72wtZTdcsuYUbmEtD/z4IG8NjLJ8gkmsqvgKPlrQOioFmaBsCrnuspWVIG5S3+Txkr2vLEe64NaJKa9CVMPCmElJnpvff3ZGoaiGSmEs6XPdpW/jLx95mVSQpCUaySjCj1y4ksMDYxU7h1rkwLEhhuIp0PB3n0wF9KcCRpMDbH/h0ASX0WSLIV8L5ZngRUJXe1ohdLZGaXdKIa0QJiqGzpYYC5qjRbniJxKbphrBnCoSVT2cXhaRvwcedh97gWxToRt408m788izx/SKSBRYCBwv9zFf885VfGXHa4wm/RxL4pp3lmbZQKhM5sqXmlZMGd1ant9vQbItKpEJn936UBllbYMgETLr8ymuHKVWx8pqrhMBsuMaquGMeNUUd+/8Ge9as5jAuXf9IGy0lQqUwCkP38+d1f0LKzr4vfeeVfAhqF4Jy+/7oQtotHDsYNxKSHFyNDX+tJr1SDqcCPjCv79a8jE0RyOZm3xHnht/R45SGFcarTGvpv4/zKkiEZEVqnrIffwI8KJbfgj4JxH5EmGwfS3wtKr6IjIoIpcCTwHXAX+bNeZ64AlgI7CjmPhIqUxnSRghORZVhZiorCa+g7OqIKO0chRUZNwtmKPMsrad+BNK/2ettCJTDTOVAiWvWyhQzcwn0SB8D9xL3ZhAXfxPYf/RITpaosSz6m15EeH142H/7lJ55a0BXusbZDTpMziW4pW3Bkr+P1CpILUfKEPxrNjABEsg20WUHUMYGEuWxV2U5tTO5hx3UM7NP60kWkMF0d4cupKaJ5S8qVcqmf77bWADsEREeoE/AzaIyIWEuvwAcCOAqu4Rka3AS0AKuMllbAF8kvH03+3uBfAN4H4XmD9OmPVVEebSkjAKMxfKajpE0qpqnOyjSbv6smt+pRWQTBgTtt6lItlKy8vkkgW4/0cHuPfJ112sDuIpn3uffB2Aj//y6qL2UUyQOukHmRt+rkWQL4YwvjwUT5V8TvmICBn3UBgjmGAhtMb4t+cOcWI0zlgycMk3QnuzR3dXO1/62AVlOY56ROoh3a6cvP3Ci/Q7399V7cMwJlBPKZVzwWyvx9M9x/mLh/cwkgwywca2WIQ//fB5JV/XX/vbHxJP+XiRcT+5HwQ0Rz3+7ffek7NtetJgmEGUzNzsv/HD/QyMJYmIEARhqm/SVyIidLREGRxLTapWPFOiEcnc+DtborQ7K6GQqyjtRmpr9nLif/nIVojZru5bLq9s1la1iXkRTl+84BlVXZ9vvc1sN6pOtVIqa5VyXI9X3hrIKBEILaCRZFC0Syo73XQk4SOQEzcRYDjh89nvvDjJfVRqumkhBdISi0y6+bfnxA7GlzOy1hgt0UjF3JDm6s6PKRKj6jzw44NEI5Jxw6RTZItNqZxvlON6bH2mFy8y7mJLu9L+6ccHWb6odXLsIGcuwuR004mqIf35Rz87Nu2xtDdHGUv6pALNuP4gnDXftaCJT7znjHFlkBVDaIrWZt+SQq7uRraqTZEYVafYuTqNwqGBUTyBg/3xzFyFRa1R3jgxwv6jw5PSSzPxgtFxpTCcSTPNVQF+KuCvtu8ty3G2RCN88O0rMrGEMMicZR00x2hvCdNNP/GtH/P68ZFMkoMqBCiLWqJccf7yzD6f7jnOXY/tq+mbcT6FATS0VW2KxKg65ZqrU+uoaibradLs5NHcrKPs+QapIGA0GfY8v+He3bM+jsXtTVk3+8kB5c4JsYNbHvwJyZTPydHx/iiL2qI0Rz0+9d6zivqbw0mfUzub6R9JZpRjV1sTI1lurXpwcT7dc5zN39vLsOur0j+cYPP3hulqjTW0VW2KxKg65ZyrMxcEqgzHUwVLU2TPPxiaMDHNL1O+qQBRT1jS3szyhS10Tgggv9h7gh/1HHdpy+MdCf+fX3pb0ZlWaVYubOPYcJxlHeOKfjTps3hBc9H7SD8srMoqCzOa9FmWtY96cHFu+UEPA6PJsPqEJ6gSJhWMJlmzdEHOto1kVZsiMapOtQKYKT9gYCyVU8yu4PyDLKUxNJYqSwKyAB1ZAeS0JfCjnx3FiwjxZICvmnlCT/hKS8yjyRNam7yMwv3YxZOv1cfeuYr7f3SArc/0Mpr0aY15/MbF3SUrEQgV/ebv7eXw4FimLtyCpig3bSjOGknvY7qHhXpwcR7sH8nMQwIX7xElGYRW9Hy3qgthisSoCWYzVyee9KctTZFRFFlzEcqVbuq5G31HeqJZa2420fHhBP/56hGintAai5DylQC45fK1XHrm4kn7+/0Hn5/k6htN+owOJ2iORop+Yv/4L6+ekeIoiCsrPxMtWszDQj27OKMRSAVaN1Z1uTFFYtQEqspwwi88O3k0j3UQD2Xlam7UHI1kMocyAeQJpSkmF7qL0RKbOt309x98npgHQ/EUJ0bC+EB7s8fW3b15FUmhp/eYJ/hBkBOE72qLleWJPT3RMj3bH8azqx7cfZCOlijLOloystFEin9+ppfLz81f9mVihQGA/3L+cv7L+ctzMrey+cR7zuCvHt1Lwg/Cml6pgEDh+l9+Gwuao5meKenyLoFzE6qCMj6zv5KsWtTK68dHINAcl+HbTmlj02VnNmxasCkSo6z4gea6iuK5MYTX+oZ4+dAAwwmfaERoa/JI+mFF1HKVq2hr8rIsgtzSFHlrF7n3SqWbvn58mMHRJBIJKzunAqV/OEkqGM67faGn9y0/6OH1Y8NEsvZzeCDO2xaP++bT7QxiXoRIJGzX64kQiYSWU6ZKdHYV6WnmXBwZiuMJ9PaPZDo2Lmlvom9wrKhmW8VWIf7whafR3hKddXFL1fFSM76rHqBZZlR6XZBVkia71Ey4/Xi5mfFxyqZfOZPNj+5lOJHKuPk6m2JsuuzMhq6AYYrEyEt2d7T8VkJ+99FwvHh3UQIKVkONCFmZQ9mZRZNl2W6kdLppLZFIBa6q8vhTui86pSWV76a0ZdfPwvHqnvLdTc4TWNnVGiqNCpx7R3OU1/qG8CKhkkoFyhsnxli7rH3asaVWIS5HcUsRwRPwEMpdyuptixdwakdzRtmt7Grjt9+9mvesXZpT7yxdNy1bqWWUlFNs5Uq8qAVMkcxjVJWxVMDA6HgguRLd0aYi5knmhn90MHTJpP+TeRGhJSYsXtDCTe89c7zGUUuMtqbpy1XUCzFPiKdCV0zaHQLQ5I2fX/omnX7FIhGinhCNhJaFJ0LcD+juah3v5R6NsKK9ibFUWK6kUgyOJcO2t25CYVpZFeNGumdXD0nf59hQKmPNdLZG+fz2l2fdvrpavPecU3nvOaeWZV9+kFY6mqOICr2nG/IFOu7ayx5XLUyR1AGldEcbis+uXEUhWmNezuzj7PkH+dxH6ffmrHIVv373j4gnfde4K7yhjiUCBrwk61fPX5fA6sXt9J4YYTieIulupu0tMVYvbmfVKW1EXdOy6Tj9lAV5e7k3eRGu3fJkRW7KO/f2cWggdG2FN7Hw5rekPZY16bEwr/UNcnLEpcum3XEn4xweiHPGEi26V8p8Jf3gUC5ylFLg3HuuYnQ6jjTuvgt9eKEbL/yc497LsqSmwxTJHDKxO1p2O8w5747mZh13ZiuHrNjBxP4I0zW2KYaZuHjqiYgIsWiEmCc0eRFiXmhV3Py+s7jj315iYWssp0Pi7244s6Trmq/T4sBoEgUSflCRm/I9u3rwBJJB+hzDm9/gmM9ZyzqnHZ/vO0/fuN46OZZjpcy0B7wxjhcRvLw9/2bHdNaOKZIZkJNuGk/llKbIl4I65JaLeYIrhux0046soHHaOmhvjrGwdXIMYabd0cpFMS6eeiAaiRCLhm6nJi9cbvIiRAsohcvPOZWIyKyDyPk6LcYiQjLQTBvctqYoI4nUjG7K+YLir/UNkvTHQ9WqEPiKL1O3Ck4T84TRZO53nt5XKtCMlXJ0MEHSHyzpeI25YzqLuWEVSbpcRRgXKK47Wnq5nOmm2UHivNVM66A7WrGsXtxOb/8wwzn9rqN0dy2YfnAViHkRmqMRmtwrGgmtjZlc+3J1SJy4n/ds3sGi1ljONq0xj97+kZL2WygonrZ4JhKNSFHnc/apnew/OhT+v3HWR8IPlUm2lRI4y7SUPvNG7dBwimT/0WF+/e4flbVcRaF009y5CPO3O1qxpGdI+84U8V2jqmpN2hKRjBsq6txQ40HumSmMuWZVVxt9g2MZiwTCyYvdWaVIiiG7NS+MWzaFYmzF+M1h3B23fGE0447rOTKMF5lsmaoqf7TteQbHUqSCgKODcf5o2/N8YeMFpkxqnEp2SPwm8GGgT1XPd7JTgAeB1YQdEn9DVfvdutuAGwi7i9+sqt9z8osZ75D4CHCLqqqINAP3ARcDx4CPqeqB6Y4r4Qf0jyQnydPd0fKnnKYnoKUb5WQ3zYkWdGkYk0n6AYlUZmYZTV7l4yMioWJoioZxi6Zo6JKq1TLlpZAvbpL0i3M7ZXOwfySvZVNIXeQzygtZExt7T/D1H+5nOOGzoMmju6uVoXiSk6Nh7C8isLA1Sjyl9I8k8SJC1IugCv0jSTY/urcuFEkjW1OVtEi+BXyV8Gaf5lbgcVX9vIjc6j5/RkTOJWyVex5hz/bHRORs1273bmAT8CShIrmCsN3uDUC/qp4lItcAm4GPTXdQyzqa+eyHzslpjFNsdzRjdmz5QQ+jCd+5h8In0dGEz5Yf9JRtIldEhKgnNEc9mmOha6qSqbHVJl/cZCY3sEKWTUQomOhx12OvcvP7zwYKu8Y29p5g27NvsLSjmdOdousbGGM44Ydpzm7/A2M+GihRT3ID86L0HM0/cbOWKHW+zHyjYopEVXeJyOoJ4qsI+7gD3AvsBD7j5A+oahzY7/qwXyIiB4BOVX0CQETuA64mVCRXAXe4fW0DvioiotOkF3S1NXF5A3yxtUihgncHS/TnAxnLIhpxmVIuflHr1mElnlrLEX8pZNksaPIYLDDJ9Os/3J9RJGnXWMpX9p8cJuEHeBHh7/6zh4Vt0Zx5JEk/wBNcvCSUdbREOTwYn9U5VJNCrsFGyUSb6xjJqap6CEBVD4lI+gqvJLQ40vQ6WdItT5Snxxx0+0qJyElgMXB04h8VkU2EVg0ruxujiNp8IeaNu6NinmTcUvUQv5jIzr19NRsDKGTZ3LOrhyd68ndBHIqnMssH+0cYGIkzEB/3eYW92SE+4BP1IpkMrYSveELOfBhV5dhQgkBBJtSxOmtJafGeanCwfwRPoOfIUE4ZmVKTHuqVWgm257sr6BTyqcZMFqpuAbYAvP3Ci+ZPXYI6Y9WiVg4cGyGZ1fs7Aqxe3JrJjErPvwhf9RHwzmYqi2Pzo3trOgZQyLIppEhyvpsgyFEiAOk4va/QlGWFCpPdZaNJn7OWtfNG/whDCT8TO2lv8rj1A+fM+JzmitmUkZkPzLUf4LCIrABw731O3gtkmwrdwJtO3p1HnjNGRKLAQuB4xY7cmDW/cvZSJsZoA+CqC0+ju6uNZR0tLGprYoHr112PSuT2h/bQNziW4yffuTf8mfccHc649gTJFE2s5RjAhnXLaInm/x7aYuPy46OpvNukCQINS304awPgtcODvHzoJK8dHmRgNMkHzl9OU8zLtT7rJLMx41HXrBfTT+SbL8y1InkIuN4tXw98N0t+jYg0i8gZwFrgaecGGxSRSyW8q1w3YUx6XxuBHdPFR4y5RSS8GbS3RFm8oJk9hwZZ3tnEgiaPmCcsaPJYsbCZJ/f3V/tQy0K6rtRbJ8d45fAgb50cI+n73LOrp9qHNivOWNKec6OICCxqjXL+yq6MrFDxTQiLSkY9CZt0eeFkWi8CpCsPu9nuj7xwiGhE8Jym8Vy2XT1cv6GEz8pFLTnnuXJRS9kmIdc6lUz//TZhYH2JiPQCfwZ8HtgqIjcAPwc+CqCqe0RkK/ASkAJuchlbAJ9kPP13u3sBfAO43wXmjxNmfRlVIiJCc2w8rTZfLOPNk6MsaW9hace4TFXnjR85X12p7BnbZyxuY9+R4bqKAezc28eBo0M5lmTgZqcXm2IciQjLF7Zkgvi9/aMs7WhmSft4CfqRRCq8NgIRQmWS8pVjwwlS/kB5T6oCpLPeJtZBK6bM/nygkllb1xZY9b4C238O+Fwe+W7g/DzyMZwiMuaWtNJojoZuiGY3P2M6yjV5rlZJpIKwSJ4fFr1LxwPSlRBu/cA5/OG25xmKh5NhvYiwqDlW0zGAz37nBUZTkw39gWlcWdm0RIUjg/HMPJLmaGRSv/fWmIefTv+NZM14d8H5Wqdc83nqlVoJths1TMyL0ByL0BLzZjUvY77/Zws0IPueNz5jO1QkG9Yt44sbL5j1nI+ZMNO04zdOjuWVK+SktnoRKVgpIuFDd9f4PJLe/lGODcdzLJLRpE/UlRgONGvGu1IXE0fLNZ+nXjFFYuQQjYy7ppqjofIoV6HHfLOcP/GeM+bNf7Z4Mv8s/bEseblqbpVCsWnH+ZTNVFHH1/rGiyzGIuAXKFJwyoJYzvyKrrYYx4eTtDVFcx4ozlyygL7BOCdGk5msrUWtMdYu6yjLdag01fhuawVTJA1KOhCejmmk3VOVrA68c28f9z/5OolUgBAW6bv/ydd5e/eiefEfsIAeKSifKzY/upfjw4lMbMMPApLDiZy04517+3LcbkeH4vzhtueJwKRMuzSDY+PuraaoRzyVmpR/LzDJjbWkvZmUH7CsoyXn6f2nvSf4yo59OTPeT46l+KUGbV9bT5giaQAiTmlkV7KtRtmQzY/u5ehQIquMeEB8KFEz8yjqlbsee3WSlZeecQ6wr28o1+VGOLdjX99QRvb57S9zYiSJJ2GgWwM4MZIsqEQA4lkFt9JVBiKR8fI3QRD2BB5N+pPiYmtP7eTbmy7N2d89u3pY2t6UUym4oyXKEz3HuXnGV8eYC0yRzDNEJKMw0vGMWvExv3p4cNITqzq5kUuxMY27HnuVr+zYR0QgGglv0l/ZsQ8go0xSBWIX2fL9x1z5mqxAtxZRHTtdb2vtsg4OHBtiYDSrpe6CGAtbYowkg6LiYgf7R1jS3szSrEyn+ZTVN5+pjTuMMSO8iNDa5LGwNcbSjma6u9o4Y8kCTlvUypL2ZjpaYjWjRAAKJd/UQVJOURS60qV+A9NNbMzm6z/c75RIhIhE3HsoT1Po8pbjsv/N469x12OvcuNla4h5YTvmJi9CPBVwfDjJB39xBXdeeR7LOlo4OZpkWUcLd155Xl6luKqrjdFk7ryL+ZTVN58xi6ROkCz3VDp7qhztb43ysbKrlYP9o3nlpVBKAcDhhM/EZ4WIUPJEuDVLFvBa3xCiuXNcom4+TCEChb/b1cNLd17Bxc/18p3nDmVqG3W2RNn27Bu8vXvRJDdWPuZ7Vt98xu5ENUhaaXS0xFjS0czKrlZWL25jpbM02pvL00PdKC+jifxzKwrJC3Gwf4TB0SR73jzJC2+cZM+bJxkcTeZ18Sxo8oinwm6f6Vc8FVbtLYXPXLGOrrYYAqT8AAG62mLcfPlZtBYokZJmJOGzc28fj7x4mKgntMRC1+pQ3C9pZv+GdcuKtl6M2sIskiqT7tKX7p/R5Nq71ludKQOODU9umDaVHPLHQgToG0oghE/2quHnVXksm85mj4GxyYqqs7k0RbJh3TK+UGCOy9u7F/H57S+z9/BQwfH37OoJJxRGwjpiIhCgnBxJ0hspPsbRyCm09YwpkjkkW2mMB8MbR2l0tkQZHMtNERWgo2V+/AxLjUUUmt9xcjSZd9zRocn9OnpP5u/hkS0vlMI70aYtdBNPy1ff+r8LnEloRTVHI6T88aKMIhD3A4txNADz439wDZJvnkYjKY18fOI9Z2QyjNKd9wIN5Y1IobLyqUAn3fwjMONSIbFohEQqmKTAYyUmYgj5laIQBspTfsCx4QQEoRLxVYlGIhbjaABMkZQBL5KrNOq5+VIlSaejTjXnoZ4p9sk/TXZZeRhvLYvbj0Dm7h0AbTPMwEsXi/RkfI6Hr8oZi0uzFDJlS/LI04HyxQvCeSDxVNgh8aYNZ5qrqgEwRVIi0UhkUpVbC3wXz83vP3veKI6JlOvJP41m/gk5pXVm/13LVSyyvTnKcDx0TWYXpVzQHG34WlONjimSKUgXK2z2vIzSqGQJEaO+KfXJv1BZ+VhEWNQW5djweM2pxQtiSGRmCmnDumVcd+nbQkvQ92n1Ilx36dtKvsmnXZNeAdekBcobF1Mk5MYzLHPKmCm3fuAcbv72s3lbxebLzipkKSxtbybhByxfOK6ACvW2aIkKY3nKvGd3Ndy5t49tz77B0o7xCrzp+R2l3Pjnu2vSmDlVUSQicgAYBHwgparrReQU4EFgNXAA+A1V7Xfb3wbc4La/WVW/5+QXM9706hHglmK6JLY2eU5peBkX1XxgpqXCjcry094TbHv2DWKe5MxUv/PK8/KWlQf4o23P80b/KKkgIBoJa0796YfOnbTvQr/2bHkpExynYz67Jo2ZU02L5L2qejTr863A46r6eRG51X3+jIicS9j98DzgNOAxETnbdVC8G9gEPEmoSK5gvINiXpqiEVYsLG2mcT2QLqsx6WYFpkzmiM2P7mUkGRDzIhlX1Ugy4O929bBiYUveG/m3N1066fvZubcvDI1MaEWbj3iBTK5s+cH+ERa1xnLWt8Y8q2FllI1aehS/CrjXLd8LXJ0lf0BV46q6H9gHXCIiK4BOVX3CWSH3ZY1pOLKfOkXC95hXH/2u5wvZWViCEBEhIuHM79ZY7gTBqW7k9+zqYaHrw7FueSdrl3WwsDWW97vMnrORfmXLwWpYGZWnWopEgX8XkWdEZJOTnaqqhwDce/oxbSVwMGtsr5OtdMsT5ZMQkU0isltEdh85cqSMp1E7HOwfKelmZcwd4kqpZzPVjbyU73LlwjBuojr+ypZDmJqb9JWRRArV8N1qWBnlpFqK5N2qehHwAeAmEblsim3zRbx1CvlkoeoWVV2vquuXLl1a+tHWAfbUWX3OWNwWZjIFiqoSBEqgsLKzuaQbeSnf5V9e/Yt0NnukkwkjEpZH+curfzGzjdWwMipNVWIkqvqme+8Tkf8FXAIcFpEVqnrIua3SNbN7gVVZw7uBN528O4+8IbHKqdWnUBbWX37k7UDxcyxK+S43rFvGXddeNO2+LTXXqCRSRJJTef+gyAIgoqqDbvn7wJ3A+4BjWcH2U1T1j0XkPOCfCJXNacDjwFpV9UXkx8DvAU8RBtv/VlUfmervr1+/Xnfv3l2x86sm6awtmxBWPcr1Hdh3adQaIvKMqq7Pu64KimQN8L/cxyjwT6r6ORFZDGwFTgd+DnxUVY+7Mf8f8NtACvi0qm538vWMp/9uB35vuvTf+axIDMMwKkVNKZJqY4rEMAyjdKZSJLWU/msYhmHUIaZIDMMwjFlhisQwDMOYFaZIDMMwjFnRcMF2ETkCvD5BvAQ4mmdzYxy7RlNj12d67BpNTa1fn7epat4Z3Q2nSPIhIrsLZSMYIXaNpsauz/TYNZqaer4+5toyDMMwZoUpEsMwDGNWmCIJ2VLtA6gD7BpNjV2f6bFrNDV1e30sRmIYhmHMCrNIDMMwjFlhisQwDMOYFQ2jSERklYj8h4i8LCJ7ROSWPNuIiNwlIvtE5KciclE1jrUaFHl9NojISRF5zr1ur8axVgsRaRGRp0XkeXeN/jzPNo38Gyrm+jT0bwhARDwR+YmIPJxnXV3+fqrS2KpKpIA/UNVnRaQDeEZEvq+qL2Vt8wFgrXu9C7jbvTcCxVwfgB+o6oercHy1QBy4XFWHRCQG/FBEtqvqk1nbNPJvqJjrA439GwK4BXgZ6Myzri5/Pw1jkajqIVV91i0PEn6RE3u8XwXcpyFPAotct8Z5T5HXp6Fxv4sh9zHmXhOzVRr5N1TM9WloRKQb+BDw9QKb1OXvp2EUSTYishp4B2FnxWxWAgezPvfSgDfTKa4PwC8518V2172yoXBuiecIW0F/X1XtN5RFEdcHGvs39DfAHwNBgfV1+ftpOEUiIu3AvxB2WhyYuDrPkIZ6oprm+jxLWG/nAuBvge/M8eFVHVX1VfVCoBu4RETOn7BJQ/+Girg+DfsbEpEPA32q+sxUm+WR1fzvp6EUifPb/gvwj6r6r3k26QVWZX3uBt6ci2OrBaa7Pqo6kHZdqOojQExElszxYdYEqnoC2AlcMWFVQ/+G0hS6Pg3+G3o3cKWIHAAeAC4XkX+YsE1d/n4aRpGIiADfAF5W1S8V2Owh4DqXOXEpcFJVD83ZQVaRYq6PiCx32yEilxD+fo7N3VFWFxFZKiKL3HIr8H5g74TNGvk3NO31aeTfkKrepqrdqroauAbYoaq/OWGzuvz9NFLW1ruBjwMvOB8uwJ8ApwOo6t8BjwAfBPYBI8Bvzf1hVo1irs9G4JMikgJGgWu0sUojrADuFRGP8Aa4VVUfFpHfAfsNUdz1afTf0CTmw+/HSqQYhmEYs6JhXFuGYRhGZTBFYhiGYcwKUySGYRjGrDBFYhiGYcwKUySGYRjGrDBFYhhzgIh8WkTaShyzWkRerNQxGUa5MEViGHPDp4G8isTNuzCMusUUiWGUGRFZICL/2xUmfFFE/gw4DfgPEfkPt82QiNwpIk8RFjH8fbftiyLy6Tz7XON6WLxTRM4UkUdF5BkR+YGIrJvbMzSMXBppZrthzBVXAG+q6ocARGQh4Qzl96rqUbfNAuBFVb1dRC52699FWLTvKRH5T6Dfjf8FwtpMv6Wqz4nI48DvqOprIvIu4GvA5XN4foaRg81sN4wyIyJnA98DtgIPq+oPXKG+9WlF4kqENKuqL2E3ysWqertb9xfAEcK6S08RKpRfV9U9rjrzEeCVrD/ZrKrnzNHpGcYkzCIxjDKjqq86K+ODwF+JyL/n2WxMVX23nK90eJqThP0p3g3sIXRHn3Cl2g2jJrAYiWGUGRE5DRhR1X8AvghcBAwCHQWG7AKuFpE2EVkAfAT4gVuXAK4mrAj7X12PmP0i8lH3t0RELqjc2RjG9JhFYhjl5xeBL4hIACSBTwK/BGwXkUOq+t7sjVX1WRH5FvC0E31dVX/iOlWiqsOuKdL3RWQY+G/A3SLyWcJ2tg8Az8/BeRlGXixGYhiGYcwKc20ZhmEYs8IUiWEYhjErTJEYhmEYs8IUiWEYhjErTJEYhmEYs8IUiWEYhjErTJEYhmEYs+L/B9vfdevU/I8uAAAAAElFTkSuQmCC\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": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We can see this using \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"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": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'.\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" </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": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"drive-wheels \n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'.\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data.\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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>\n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 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>\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 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>\n"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_group_two = df[['body-style','price']]\n",
"df_group_two_test = df_group_two.groupby(['body-style'],as_index=False).mean()\n",
"df_group_two_test"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. \n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price.\n"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAD8CAYAAACFK0QrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAXQ0lEQVR4nO3dbaxd1Z3f8e/vXpuHkhASTIhrewJqrHQAaXiwHCKqig4zE0NRzGiI5EgNKEVyg4gK6ihVmBczTUdUyYuSKSWBuAMF0kyIlSes1EwGkYwIEk+GmkeHcjUkwbWFC0kAK4C59/764qybHi7n3rOv774+d+/9+0hLd5911t7nf0D8z2LttdaWbSIiotnGRh1AREQsXpJ5REQLJJlHRLRAknlERAskmUdEtECSeURECwxN5pKOkfSwpMclPS3pCwPaSNINkiYkPSHp7KUJNyIiBllRoc2bwO/bPihpJXC/pLttP9jX5kJgfSkfAW4qfyMi4ggY2jN3z8HycmUps1cabQbuKG0fBE6QtLreUCMiYi5VeuZIGgceBT4EfMX2Q7OarAFe6Hu9t9Ttn3WdrcBWAMZWnKNjTjisoJetlq6m/d3160YdQu0m9r066hCWxMkn/qNRh7AkXnj2qZdsn7SYa4wdv9ZMvlGprV9/+Ye2Ny3m8460Ssnc9hRwpqQTgO9JOsP2U31NNOi0AdfZBmwDGDvuJB912p8sPOJlbHry0KhDWBLbd/7VqEOo3ce/cM+oQ1gS//ZTZ406hCVxzT/7Jz9f9EUm32DFhz9eqelbu//7qkV/3hFWKZnPsP1rSX8PbAL6k/leoL/7thbYt+joIiLqIqGx8VFHsWSqzGY5qfTIkXQs8AfAT2c12wFcVma1nAu8Yns/ERHLhhhbcVSl0kRVeuargdvLuPkYsN32DyR9BsD2zcBO4CJgAvgN8Oklijci4vC0vGc+NJnbfgJ4x0BcSeIzxwauqje0iIj6CNB4h5N5REQrSIx1uWceEdEWnR5miYhoha6PmUdEtIEQYytWjjqMJZNkHhHdkJ55REQ7JJlHRDSdlKmJERFNJ9Izj4hoPo0x3tCl+lUkmUdENyg984iIxhOZzRIR0QpJ5hERTZd55hERbZBkHhHReJIYW5nZLBERzZZhloiIdkgyj4hogbExjTqEJZNkHhGdIAklmUdENN/4+NioQ1gySeYR0Q0iPfOIiKbr7ZqYZB4R0XBiTEnmERHNlmGWiIh2SDKPiGg4CcZXJJlHRDSeWjxmPnTSpaR1kn4saY+kpyVdPaDN+ZJekbS7lD9fmnAjIg6PJMbGqpUmqtIznwT+1PZjkt4NPCrpHtvPzGr3E9sX1x9iREQ92jxmPrRnbnu/7cfK8WvAHmDNUgcWEVE3jalSmfcac4xWSHqfpHskPVf+vrfvnGslTUh6VtLH+urPkfRkee8GlXEgSUdL+lapf0jSKcO+24LWtpYLngU8NODtj0p6XNLdkk5fyHUjIpacYEyqVIaYGa34XeBc4CpJpwGfB+61vR64t7ymvLcFOB3YBHxV0sz2jTcBW4H1pWwq9VcAv7L9IeDLwJeGBVU5mUt6F/Ad4Brbr856+zHgg7Z/D/ivwPfnuMZWSbsk7fLkG1U/OiJi0YQYWzFWqcxnntGKzcDtpdntwCXleDNwp+03bT8PTAAbJa0Gjrf9gG0Dd8w6Z+Za3wYumOm1z6VSMpe0kl4i/4bt7w74cq/aPliOdwIrJa0a0G6b7Q22N2jFMVU+OiKiHmIhN0BXzXQ8S9k68JJvH6042fZ+6CV84P2l2Rrghb7T9pa6NeV4dv3bzrE9CbwCnDjf1xt6A7T8GtwC7LF9/RxtPgC8aNuSNtL7kXh52LUjIo6kBUxNfMn2hiHXettoxTzXHvSG56mf75w5VZnNch7wKeBJSbtL3Z8BvwNg+2bgUuBKSZPA68CW8r8NERHLQm+jrZquNXi04kVJq23vL0MoB0r9XmBd3+lrgX2lfu2A+v5z9kpaAbwH+OV8MQ1N5rbvZ/CvRH+bG4Ebh10rImJkVM+ThuYZrdgBXA58sfy9q6/+byRdD/xjejc6H7Y9Jek1SefSG6a5jN49x/5rPUCvs/yjYR3krACNiI4QY/U8nGKu0YovAtslXQH8AvgEgO2nJW0HnqE3E+Yq21PlvCuB24BjgbtLgd6PxdclTdDrkW8ZFlSSeUR0gmrqmQ8ZrbhgjnOuA64bUL8LOGNA/RuUH4OqkswjojPavAI0yTwiOkGC8STziIjmSzKPiGg4oSTziIimk+CoIUv1myzJPCI6QYIV6ZlHRDSbyJh5RETzKWPmERGN1+uZZ8w8IqLx0jOPiGi4MSmzWSIi2mC8+n7mjZNkHhGdkOX8EREtkWQeEdFwWTQUEdECIjdAIyIaL2PmEREtkOX8ERFtkJ55RETzZT/ziIiWSDKPiGi4sTycIiKiBTJmHhHRfELZmyUiog3GkswjIppNwHh7czlD7wZIWifpx5L2SHpa0tUD2kjSDZImJD0h6eylCTci4jAJxsZUqTRRlZ75JPCnth+T9G7gUUn32H6mr82FwPpSPgLcVP5GRCwLAla2+LFxQ7+Z7f22HyvHrwF7gDWzmm0G7nDPg8AJklbXHm1ExGGaGWapUppoQWPmkk4BzgIemvXWGuCFvtd7S93+WedvBbYCrFu3lufu/U8LDHeZe/iuUUewNPZ8f9QR1O65z/3TUYewJDz261GHsCSuqeMiau4QShWV/59D0ruA7wDX2H519tsDTvE7KuxttjfY3nDSiScuLNKIiEUQvdksVUoTVeqZS1pJL5F/w/Z3BzTZC6zre70W2Lf48CIi6tPUIZQqqsxmEXALsMf29XM02wFcVma1nAu8Ynv/HG0jIo44CVaOj1UqTVSlZ34e8CngSUm7S92fAb8DYPtmYCdwETAB/Ab4dO2RRkQswswwS1sNTea272fwmHh/GwNX1RVURMRSaPMwS1aARkQniObe3KyimYNDERELVXZNrFKGXkq6VdIBSU/11f0HSf9H0u5SLup779qyQv5ZSR/rqz9H0pPlvRvKPUokHS3pW6X+oTItfF5J5hHRCb0x82qlgtuATQPqv2z7zFJ2Akg6DdgCnF7O+aqk8dL+Jnprb2ZW0M9c8wrgV7Y/BHwZ+NKwgJLMI6ITZpbzVynD2L4P+GXFj94M3Gn7TdvP05sosrGskj/e9gPlvuMdwCV959xejr8NXDDTa59LknlEdINgfKxaAVZJ2tVXtlb8lM+WzQZvlfTeUjfXCvk15Xh2/dvOsT0JvALMu9IyN0AjohMWODXxJdsbFvgRNwF/SW/1+18C/xn418y9Qn6+lfOVVtX3SzKPiI5Y2icN2X7xt58k/TfgB+XlXCvk95bj2fX95+yVtAJ4D0OGdTLMEhGdsNR7s8zaKfaPgZmZLjuALWWGyqn0bnQ+XFbJvybp3DIefhlwV985l5fjS4EflXH1OaVnHhGd0FvOX0/PXNI3gfPpja3vBf4COF/SmfSGQ34G/BsA209L2g48Q+/5EFfZniqXupLezJhjgbtLgd4WKl+XNEGvR75lWExJ5hHRGXWNstj+5IDqW+Zpfx1w3YD6XcAZA+rfAD6xkJiSzCOiM8bm35mk0ZLMI6ITRH098+UoyTwiOqPFDxpKMo+IjlB65hERjaclnmc+aknmEdEZGWaJiGiBFufyJPOI6IbOPzYuIqItWpzLk8wjojvavBlVknlEdILKY+PaKsk8IjojwywREQ0nMswSEdEKQx6j2WhJ5hHRDcqioYiIxhNQ07MplqUk84jojDYPswy9HyDpVkkHJD01x/vnS3pF0u5S/rz+MCMiFqe3ArRaaaIqPfPbgBuBO+Zp8xPbF9cSUUTEEmlonq5kaDK3fZ+kU45ALBERS0it3pulrmmXH5X0uKS7JZ0+VyNJWyXtkrTr/778ck0fHRFRQXk4RZXSRHXcAH0M+KDtg5IuAr4PrB/U0PY2YBvAOWed6Ro+OyKiEtloemrUYSyZRffMbb9q+2A53gmslLRq0ZFFRNRMnq5UmmjRPXNJHwBetG1JG+n9QGQMJSKWGUNDE3UVQ5O5pG8C5wOrJO0F/gJYCWD7ZuBS4EpJk8DrwBbbGUKJiOWnxampymyWTw55/0Z6UxcjIpYvd7xnHhHRFk0dD68iyTwiOsIwPTnqIJZMknlEdIPJMEtERPMZppPMIyIaL2PmERFtkGQeEdFwNrR4OX+SeUR0RoZZIiIaL4uGIiLaocXJvK79zCMilreZ5fxVyhCDHqcp6X2S7pH0XPn73r73rpU0IelZSR/rqz9H0pPlvRtUHlIq6WhJ3yr1D1V5QFCSeUR0gqh1C9zbgE2z6j4P3Gt7PXBveY2k04AtwOnlnK9KGi/n3ARspfcMiPV917wC+JXtDwFfBr40LKAk84joCMPUVLUy7Er2fcAvZ1VvBm4vx7cDl/TV32n7TdvPAxPARkmrgeNtP1B2mr1j1jkz1/o2cMFMr30uGTOPiG5Y2HL+VZJ29b3eVp6UNp+Tbe8HsL1f0vtL/Rrgwb52e0vdW+V4dv3MOS+Ua01KegU4EXhprg9PMo+IzljA1MSXbG+o62MH1Hme+vnOmVOGWSKiI+q7ATqHF8vQCeXvgVK/F1jX124tsK/Urx1Q/7ZzJK0A3sM7h3XeJsk8IrpjaZP5DuDycnw5cFdf/ZYyQ+VUejc6Hy5DMq9JOreMh18265yZa10K/GjYE9wyzBIR3VDjcv45Hqf5RWC7pCuAXwCf6H2sn5a0HXgGmASusj0TyJX0ZsYcC9xdCsAtwNclTdDrkW8ZFlOSeUR0hPHkW/Vcae7HaV4wR/vrgOsG1O8CzhhQ/wblx6CqJPOI6AaTjbYiIprOGFeYQ95USeYR0Q0mTxqKiGi+7GceEdF8ru8G6HKUZB4RHWGcnnlERMNlNktERBu41TdAhy7nH7QJ+6z3VTZVn5D0hKSz6w8zImKRDJ6aqlSaqMreLLfxzk3Y+13I/99YfSu9zdYjIpaZMpulSmmgocMstu8b8siizcAdZROYByWdIGn1zL6+ERHLQmazDPXbTdSLmQ3W35HMJW2l13tn3bq1s9+OiFhCmWc+TOVN1MuTOrYBnKSjffV7MrzeBNd/+7OjDqF2r2+8dNQhLIl3PXffqENYvjKbZai5Nl6PiFg2jHGXZ7NUsAO4rMxqORd4JePlEbHszPTMu3oDdI5N2FcC2L4Z2AlcRO+J078BPr1UwUZEHDYbv3Vo1FEsmSqzWebahH3mfQNX1RZRRMSSaPeioawAjYjuaOgQShVJ5hHRDc5GWxERrdDm2SxJ5hHRDTaeSjKPiGg020y/NTnqMJZMknlEdINJzzwiog2SzCMiGs420w3dq7yKJPOI6IzMZomIaLrMZomIaL7MZomIaInp9MwjIhouUxMjIlogY+YREc1nMpslIqL5bKYP5QZoRESzGabTM4+IaDaTMfOIiOYzuMXL+cdGHUBExJFhPD1dqQwj6WeSnpS0W9KuUvc+SfdIeq78fW9f+2slTUh6VtLH+urPKdeZkHSDJB3ut0syj4huKPPMq5SK/oXtM21vKK8/D9xrez1wb3mNpNOALcDpwCbgq5LGyzk3AVuB9aVsOtyvl2QeEZ1gm6lDk5XKYdoM3F6Obwcu6au/0/abtp8HJoCNklYDx9t+wLaBO/rOWbAk84joiAUNs6yStKuvbH3HxeDvJD3a997JtvcDlL/vL/VrgBf6zt1b6taU49n1hyU3QCOiGxa2nP+lvuGTQc6zvU/S+4F7JP10nraDxsE9T/1hSTKPiG4weOqwc+XbL2XvK38PSPoesBF4UdJq2/vLEMqB0nwvsK7v9LXAvlK/dkD9YckwS0R0gjHTU9OVynwkHSfp3TPHwB8BTwE7gMtLs8uBu8rxDmCLpKMlnUrvRufDZSjmNUnnllksl/Wds2DpmUdENxg8XUvP/GTge2UW4Qrgb2z/raRHgO2SrgB+AXwCwPbTkrYDzwCTwFW2Zya8XwncBhwL3F3KYamUzCVtAv4LMA78te0vznr/fHq/KM+Xqu/a/o+HG1RERN1smDq0+EVDtv8B+L0B9S8DF8xxznXAdQPqdwFnLDooKiTzMh/yK8Af0hvjeUTSDtvPzGr6E9sX1xFURETt7NrGzJejKj3zjcBE+TVC0p305k3OTuYREcvadIuTeZUboHPNkZzto5Iel3S3pNNriS4ioi71rwBdVqr0zKvMhXwM+KDtg5IuAr5P747t2y/Um1y/FeBdjM9+OyJiyRiYrucG6LJUpWc+1xzJ37L9qu2D5XgnsFLSqtkXsr3N9gbbG45JMo+II8lm6tBUpdJEVZL5I8B6SadKOorehjE7+htI+sDMbl+SNpbrvlx3sBERh8tl0VCV0kRDh1lsT0r6LPBDelMTby3zJj9T3r8ZuBS4UtIk8DqwpWwcExGxPNS4AnQ5qjTPvAyd7JxVd3Pf8Y3AjfWGFhFRJw9d3dlkWQEaEd1Q3wrQZSnJPCI6wbR7nnmSeUR0g810Q2eqVJFkHhGdYKdnHhHRClUe1txUSeYR0Q12euYREY2XeeYREc1nFvQM0MZJMo+IbrCZOpRkHhHRaDZMt3iXkSTziOiMqSTziIhmM9Di+59J5hHRHemZR0Q03LThUDbaiohovgyzREQ0nHGGWSIimi43QCMiWiLJPCKi4ezMZomIaDyT2SwREY2XMfOIiJbIMEtERMP1xsxHHcXSSTKPiM5IzzwiouEMtHc38yTziOgI48xmiYhout5sliTziIhma/kN0LEqjSRtkvSspAlJnx/wviTdUN5/QtLZ9YcaEXH4ZnrmVcoww3LiKAxN5pLGga8AFwKnAZ+UdNqsZhcC60vZCtxUc5wREYs25WplPhVz4hFXpWe+EZiw/Q+2DwF3AptntdkM3OGeB4ETJK2uOdaIiMM2TW85f5UyRJWceMRVGTNfA7zQ93ov8JEKbdYA+/sbSdpKr+cO8ObX+PlTC4q2GVYBL406iDp97dLPte47weeghf+uaOd3AvjwYi/wEod++DV+vqpi82Mk7ep7vc32tnJcJScecVWSuQbUzf7pqtKG8g9jG4CkXbY3VPj8Rmnj92rjd4J2fq82fifofa/FXsP2pjpioWK+O9KqDLPsBdb1vV4L7DuMNhERbbAs812VZP4IsF7SqZKOArYAO2a12QFcVma1nAu8Ynv/7AtFRLRAlZx4xA0dZrE9KemzwA+BceBW209L+kx5/2ZgJ3ARMAH8Bvh0hc/eNrxJI7Xxe7XxO0E7v1cbvxMso+81V04ccVjILV4RFRHRFZUWDUVExPKWZB4R0QIjSebLcSnsYkm6VdIBSa2ZOy9pnaQfS9oj6WlJV486psWSdIykhyU9Xr7TF0YdU50kjUv6X5J+MOpY6iLpZ5KelLS7jimKbXXEx8zLUtj/DfwhvSk+jwCftP3MEQ2kZpL+OXCQ3krYM0YdTx3KKt7Vth+T9G7gUeCSJv+7kiTgONsHJa0E7geuLiuXG0/SvwM2AMfbvnjU8dRB0s+ADbbbuBiqNqPomS/LpbCLZfs+4JejjqNOtvfbfqwcvwbsobf6rbHKlhMHy8uVpbRiFoCktcC/BP561LHEkTeKZD7X0v9YxiSdApwFPDTiUBatDEXsBg4A99hu/Hcq/gr497TvgToG/k7So2VLkBhgFMl8WS6FjblJehfwHeAa26+OOp7Fsj1l+0x6K/c2Smr8sJiki4EDth8ddSxL4DzbZ9PbpfCqMqQZs4wimS/LpbAxWBlX/g7wDdvfHXU8dbL9a+Dvgbr27Bil84CPl/HlO4Hfl/Q/RhtSPWzvK38PAN+jN1Qbs4wimS/LpbDxTuVm4S3AHtvXjzqeOkg6SdIJ5fhY4A+An440qBrYvtb2Wtun0Ptv6ke2/9WIw1o0SceVm+9IOg74I6A1M8bqdMSTue1JYGYp7B5g+3JYCrtYkr4JPAB8WNJeSVeMOqYanAd8il4vb3cpF406qEVaDfxY0hP0Ohb32G7NNL4WOhm4X9LjwMPA/7T9tyOOaVnKcv6IiBbICtCIiBZIMo+IaIEk84iIFkgyj4hogSTziIgWSDKPiGiBJPOIiBb4f2zHiskeMiCcAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"\n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library.\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. \n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.369057428260101e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522673 with a P-value of P = 9.200335510481646e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622198389e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935489e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
".. ... ... ...\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". \n"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>\n",
"\n",
"Bahare Talayian\n",
"\n",
"Eric Xiao\n",
"\n",
"Steven Dong\n",
"\n",
"Parizad\n",
"\n",
"Hima Vasudevan\n",
"\n",
"<a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ---------------------------------- |\n",
"| 2020-10-30 | 2.1 | Lakshmi | changed URL of csv |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"\n",
"<hr>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.12"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment