Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save BenitaGeorge/184f0632b85f0108f189f45bdae7766e to your computer and use it in GitHub Desktop.
Save BenitaGeorge/184f0632b85f0108f189f45bdae7766e to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/DA0101EN_edx_link_Notebook_link_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/edx_DA0101EN_objectstorage\">HERE</a> for free storage."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</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>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" <th>aspiration-std</th>\n",
" <th>aspiration-turbo</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</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>111</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>8.703704</td>\n",
" <td>13495.0</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</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>111</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>8.703704</td>\n",
" <td>16500.0</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</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>154</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>9.038462</td>\n",
" <td>16500.0</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</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>102</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>7.833333</td>\n",
" <td>13950.0</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</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>115</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>10.681818</td>\n",
" <td>17450.0</td>\n",
" <td>Low</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 30 columns</p>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 symboling normalized-losses make num-of-doors \\\n",
"0 0 3 122 alfa-romero two \n",
"1 1 3 122 alfa-romero two \n",
"2 2 1 122 alfa-romero two \n",
"3 3 2 164 audi four \n",
"4 4 2 164 audi 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",
" horsepower peak-rpm city-mpg highway-mpg price horsepower-binned \\\n",
"0 111 5000.0 21 8.703704 13495.0 Low \n",
"1 111 5000.0 21 8.703704 16500.0 Low \n",
"2 154 5000.0 19 9.038462 16500.0 Medium \n",
"3 102 5500.0 24 7.833333 13950.0 Low \n",
"4 115 5500.0 18 10.681818 17450.0 Low \n",
"\n",
" diesel gas aspiration-std aspiration-turbo \n",
"0 0 1 1 0 \n",
"1 0 1 1 0 \n",
"2 0 1 1 0 \n",
"3 0 1 1 0 \n",
"4 0 1 1 0 \n",
"\n",
"[5 rows x 30 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv('clean_df.csv')\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unnamed: 0 int64\n",
"symboling int64\n",
"normalized-losses int64\n",
"make 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 int64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg float64\n",
"price float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"aspiration-std int64\n",
"aspiration-turbo int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</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>...</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>diesel</th>\n",
" <th>gas</th>\n",
" <th>aspiration-std</th>\n",
" <th>aspiration-turbo</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Unnamed: 0</th>\n",
" <td>1.000000</td>\n",
" <td>-0.162764</td>\n",
" <td>-0.241092</td>\n",
" <td>0.125517</td>\n",
" <td>0.161848</td>\n",
" <td>0.043976</td>\n",
" <td>0.252015</td>\n",
" <td>0.064820</td>\n",
" <td>-0.047764</td>\n",
" <td>0.244734</td>\n",
" <td>...</td>\n",
" <td>0.144301</td>\n",
" <td>-0.022505</td>\n",
" <td>-0.195662</td>\n",
" <td>0.027956</td>\n",
" <td>-0.078346</td>\n",
" <td>-0.118214</td>\n",
" <td>0.121454</td>\n",
" <td>-0.121454</td>\n",
" <td>-0.082739</td>\n",
" <td>0.082739</td>\n",
" </tr>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>-0.162764</td>\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>...</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075810</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>-0.029807</td>\n",
" <td>-0.082391</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" <td>0.054615</td>\n",
" <td>-0.054615</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>-0.241092</td>\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>...</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217300</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>0.181189</td>\n",
" <td>0.133999</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" <td>0.006911</td>\n",
" <td>-0.006911</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>0.125517</td>\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>...</td>\n",
" <td>0.250313</td>\n",
" <td>0.371178</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>0.577576</td>\n",
" <td>0.584642</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.256889</td>\n",
" <td>0.256889</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>0.161848</td>\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>...</td>\n",
" <td>0.159733</td>\n",
" <td>0.579795</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>0.707108</td>\n",
" <td>0.690628</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.230085</td>\n",
" <td>0.230085</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>0.043976</td>\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>...</td>\n",
" <td>0.189867</td>\n",
" <td>0.615056</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>0.736728</td>\n",
" <td>0.751265</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.305732</td>\n",
" <td>0.305732</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>0.252015</td>\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>...</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087001</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>0.084301</td>\n",
" <td>0.135486</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.090336</td>\n",
" <td>0.090336</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>0.064820</td>\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>...</td>\n",
" <td>0.156433</td>\n",
" <td>0.757981</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>0.836921</td>\n",
" <td>0.834415</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.321955</td>\n",
" <td>0.321955</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.047764</td>\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>...</td>\n",
" <td>0.028889</td>\n",
" <td>0.822668</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>0.783465</td>\n",
" <td>0.872335</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.110040</td>\n",
" <td>0.110040</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>0.244734</td>\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>...</td>\n",
" <td>0.001263</td>\n",
" <td>0.566903</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>0.559112</td>\n",
" <td>0.543155</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.227816</td>\n",
" <td>0.227816</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.162490</td>\n",
" <td>-0.008153</td>\n",
" <td>0.055045</td>\n",
" <td>0.158018</td>\n",
" <td>0.123952</td>\n",
" <td>0.188822</td>\n",
" <td>-0.060663</td>\n",
" <td>0.167438</td>\n",
" <td>0.205928</td>\n",
" <td>-0.055390</td>\n",
" <td>...</td>\n",
" <td>0.187871</td>\n",
" <td>0.098128</td>\n",
" <td>-0.063561</td>\n",
" <td>-0.033956</td>\n",
" <td>0.047089</td>\n",
" <td>0.082269</td>\n",
" <td>0.241064</td>\n",
" <td>-0.241064</td>\n",
" <td>-0.218233</td>\n",
" <td>0.218233</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.144301</td>\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>...</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214489</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>-0.223361</td>\n",
" <td>0.071107</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" <td>-0.307522</td>\n",
" <td>0.307522</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>-0.022505</td>\n",
" <td>0.075810</td>\n",
" <td>0.217300</td>\n",
" <td>0.371178</td>\n",
" <td>0.579795</td>\n",
" <td>0.615056</td>\n",
" <td>-0.087001</td>\n",
" <td>0.757981</td>\n",
" <td>0.822668</td>\n",
" <td>0.566903</td>\n",
" <td>...</td>\n",
" <td>-0.214489</td>\n",
" <td>1.000000</td>\n",
" <td>0.107884</td>\n",
" <td>-0.822192</td>\n",
" <td>0.840627</td>\n",
" <td>0.809607</td>\n",
" <td>-0.169030</td>\n",
" <td>0.169030</td>\n",
" <td>-0.251159</td>\n",
" <td>0.251159</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>-0.195662</td>\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>...</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107884</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>0.017694</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" <td>0.190057</td>\n",
" <td>-0.190057</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>0.027956</td>\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>...</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822192</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>-0.909024</td>\n",
" <td>-0.686571</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" <td>0.189237</td>\n",
" <td>-0.189237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>-0.078346</td>\n",
" <td>-0.029807</td>\n",
" <td>0.181189</td>\n",
" <td>0.577576</td>\n",
" <td>0.707108</td>\n",
" <td>0.736728</td>\n",
" <td>0.084301</td>\n",
" <td>0.836921</td>\n",
" <td>0.783465</td>\n",
" <td>0.559112</td>\n",
" <td>...</td>\n",
" <td>-0.223361</td>\n",
" <td>0.840627</td>\n",
" <td>0.017694</td>\n",
" <td>-0.909024</td>\n",
" <td>1.000000</td>\n",
" <td>0.801118</td>\n",
" <td>-0.158091</td>\n",
" <td>0.158091</td>\n",
" <td>-0.210720</td>\n",
" <td>0.210720</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.118214</td>\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>...</td>\n",
" <td>0.071107</td>\n",
" <td>0.809607</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>0.801118</td>\n",
" <td>1.000000</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" <td>-0.179578</td>\n",
" <td>0.179578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>0.121454</td>\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>...</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169030</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>-0.158091</td>\n",
" <td>0.110326</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-0.408228</td>\n",
" <td>0.408228</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>-0.121454</td>\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>...</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169030</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>0.158091</td>\n",
" <td>-0.110326</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.408228</td>\n",
" <td>-0.408228</td>\n",
" </tr>\n",
" <tr>\n",
" <th>aspiration-std</th>\n",
" <td>-0.082739</td>\n",
" <td>0.054615</td>\n",
" <td>0.006911</td>\n",
" <td>-0.256889</td>\n",
" <td>-0.230085</td>\n",
" <td>-0.305732</td>\n",
" <td>-0.090336</td>\n",
" <td>-0.321955</td>\n",
" <td>-0.110040</td>\n",
" <td>-0.227816</td>\n",
" <td>...</td>\n",
" <td>-0.307522</td>\n",
" <td>-0.251159</td>\n",
" <td>0.190057</td>\n",
" <td>0.189237</td>\n",
" <td>-0.210720</td>\n",
" <td>-0.179578</td>\n",
" <td>-0.408228</td>\n",
" <td>0.408228</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>aspiration-turbo</th>\n",
" <td>0.082739</td>\n",
" <td>-0.054615</td>\n",
" <td>-0.006911</td>\n",
" <td>0.256889</td>\n",
" <td>0.230085</td>\n",
" <td>0.305732</td>\n",
" <td>0.090336</td>\n",
" <td>0.321955</td>\n",
" <td>0.110040</td>\n",
" <td>0.227816</td>\n",
" <td>...</td>\n",
" <td>0.307522</td>\n",
" <td>0.251159</td>\n",
" <td>-0.190057</td>\n",
" <td>-0.189237</td>\n",
" <td>0.210720</td>\n",
" <td>0.179578</td>\n",
" <td>0.408228</td>\n",
" <td>-0.408228</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>21 rows × 21 columns</p>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 symboling normalized-losses wheel-base \\\n",
"Unnamed: 0 1.000000 -0.162764 -0.241092 0.125517 \n",
"symboling -0.162764 1.000000 0.466264 -0.535987 \n",
"normalized-losses -0.241092 0.466264 1.000000 -0.056661 \n",
"wheel-base 0.125517 -0.535987 -0.056661 1.000000 \n",
"length 0.161848 -0.365404 0.019424 0.876024 \n",
"width 0.043976 -0.242423 0.086802 0.814507 \n",
"height 0.252015 -0.550160 -0.373737 0.590742 \n",
"curb-weight 0.064820 -0.233118 0.099404 0.782097 \n",
"engine-size -0.047764 -0.110581 0.112360 0.572027 \n",
"bore 0.244734 -0.140019 -0.029862 0.493244 \n",
"stroke -0.162490 -0.008153 0.055045 0.158018 \n",
"compression-ratio 0.144301 -0.182196 -0.114713 0.250313 \n",
"horsepower -0.022505 0.075810 0.217300 0.371178 \n",
"peak-rpm -0.195662 0.279740 0.239543 -0.360305 \n",
"city-mpg 0.027956 -0.035527 -0.225016 -0.470606 \n",
"highway-mpg -0.078346 -0.029807 0.181189 0.577576 \n",
"price -0.118214 -0.082391 0.133999 0.584642 \n",
"diesel 0.121454 -0.196735 -0.101546 0.307237 \n",
"gas -0.121454 0.196735 0.101546 -0.307237 \n",
"aspiration-std -0.082739 0.054615 0.006911 -0.256889 \n",
"aspiration-turbo 0.082739 -0.054615 -0.006911 0.256889 \n",
"\n",
" length width height curb-weight engine-size \\\n",
"Unnamed: 0 0.161848 0.043976 0.252015 0.064820 -0.047764 \n",
"symboling -0.365404 -0.242423 -0.550160 -0.233118 -0.110581 \n",
"normalized-losses 0.019424 0.086802 -0.373737 0.099404 0.112360 \n",
"wheel-base 0.876024 0.814507 0.590742 0.782097 0.572027 \n",
"length 1.000000 0.857170 0.492063 0.880665 0.685025 \n",
"width 0.857170 1.000000 0.306002 0.866201 0.729436 \n",
"height 0.492063 0.306002 1.000000 0.307581 0.074694 \n",
"curb-weight 0.880665 0.866201 0.307581 1.000000 0.849072 \n",
"engine-size 0.685025 0.729436 0.074694 0.849072 1.000000 \n",
"bore 0.608971 0.544885 0.180449 0.644060 0.572609 \n",
"stroke 0.123952 0.188822 -0.060663 0.167438 0.205928 \n",
"compression-ratio 0.159733 0.189867 0.259737 0.156433 0.028889 \n",
"horsepower 0.579795 0.615056 -0.087001 0.757981 0.822668 \n",
"peak-rpm -0.285970 -0.245800 -0.309974 -0.279361 -0.256733 \n",
"city-mpg -0.665192 -0.633531 -0.049800 -0.749543 -0.650546 \n",
"highway-mpg 0.707108 0.736728 0.084301 0.836921 0.783465 \n",
"price 0.690628 0.751265 0.135486 0.834415 0.872335 \n",
"diesel 0.211187 0.244356 0.281578 0.221046 0.070779 \n",
"gas -0.211187 -0.244356 -0.281578 -0.221046 -0.070779 \n",
"aspiration-std -0.230085 -0.305732 -0.090336 -0.321955 -0.110040 \n",
"aspiration-turbo 0.230085 0.305732 0.090336 0.321955 0.110040 \n",
"\n",
" bore ... compression-ratio horsepower peak-rpm \\\n",
"Unnamed: 0 0.244734 ... 0.144301 -0.022505 -0.195662 \n",
"symboling -0.140019 ... -0.182196 0.075810 0.279740 \n",
"normalized-losses -0.029862 ... -0.114713 0.217300 0.239543 \n",
"wheel-base 0.493244 ... 0.250313 0.371178 -0.360305 \n",
"length 0.608971 ... 0.159733 0.579795 -0.285970 \n",
"width 0.544885 ... 0.189867 0.615056 -0.245800 \n",
"height 0.180449 ... 0.259737 -0.087001 -0.309974 \n",
"curb-weight 0.644060 ... 0.156433 0.757981 -0.279361 \n",
"engine-size 0.572609 ... 0.028889 0.822668 -0.256733 \n",
"bore 1.000000 ... 0.001263 0.566903 -0.267392 \n",
"stroke -0.055390 ... 0.187871 0.098128 -0.063561 \n",
"compression-ratio 0.001263 ... 1.000000 -0.214489 -0.435780 \n",
"horsepower 0.566903 ... -0.214489 1.000000 0.107884 \n",
"peak-rpm -0.267392 ... -0.435780 0.107884 1.000000 \n",
"city-mpg -0.582027 ... 0.331425 -0.822192 -0.115413 \n",
"highway-mpg 0.559112 ... -0.223361 0.840627 0.017694 \n",
"price 0.543155 ... 0.071107 0.809607 -0.101616 \n",
"diesel 0.054458 ... 0.985231 -0.169030 -0.475812 \n",
"gas -0.054458 ... -0.985231 0.169030 0.475812 \n",
"aspiration-std -0.227816 ... -0.307522 -0.251159 0.190057 \n",
"aspiration-turbo 0.227816 ... 0.307522 0.251159 -0.190057 \n",
"\n",
" city-mpg highway-mpg price diesel gas \\\n",
"Unnamed: 0 0.027956 -0.078346 -0.118214 0.121454 -0.121454 \n",
"symboling -0.035527 -0.029807 -0.082391 -0.196735 0.196735 \n",
"normalized-losses -0.225016 0.181189 0.133999 -0.101546 0.101546 \n",
"wheel-base -0.470606 0.577576 0.584642 0.307237 -0.307237 \n",
"length -0.665192 0.707108 0.690628 0.211187 -0.211187 \n",
"width -0.633531 0.736728 0.751265 0.244356 -0.244356 \n",
"height -0.049800 0.084301 0.135486 0.281578 -0.281578 \n",
"curb-weight -0.749543 0.836921 0.834415 0.221046 -0.221046 \n",
"engine-size -0.650546 0.783465 0.872335 0.070779 -0.070779 \n",
"bore -0.582027 0.559112 0.543155 0.054458 -0.054458 \n",
"stroke -0.033956 0.047089 0.082269 0.241064 -0.241064 \n",
"compression-ratio 0.331425 -0.223361 0.071107 0.985231 -0.985231 \n",
"horsepower -0.822192 0.840627 0.809607 -0.169030 0.169030 \n",
"peak-rpm -0.115413 0.017694 -0.101616 -0.475812 0.475812 \n",
"city-mpg 1.000000 -0.909024 -0.686571 0.265676 -0.265676 \n",
"highway-mpg -0.909024 1.000000 0.801118 -0.158091 0.158091 \n",
"price -0.686571 0.801118 1.000000 0.110326 -0.110326 \n",
"diesel 0.265676 -0.158091 0.110326 1.000000 -1.000000 \n",
"gas -0.265676 0.158091 -0.110326 -1.000000 1.000000 \n",
"aspiration-std 0.189237 -0.210720 -0.179578 -0.408228 0.408228 \n",
"aspiration-turbo -0.189237 0.210720 0.179578 0.408228 -0.408228 \n",
"\n",
" aspiration-std aspiration-turbo \n",
"Unnamed: 0 -0.082739 0.082739 \n",
"symboling 0.054615 -0.054615 \n",
"normalized-losses 0.006911 -0.006911 \n",
"wheel-base -0.256889 0.256889 \n",
"length -0.230085 0.230085 \n",
"width -0.305732 0.305732 \n",
"height -0.090336 0.090336 \n",
"curb-weight -0.321955 0.321955 \n",
"engine-size -0.110040 0.110040 \n",
"bore -0.227816 0.227816 \n",
"stroke -0.218233 0.218233 \n",
"compression-ratio -0.307522 0.307522 \n",
"horsepower -0.251159 0.251159 \n",
"peak-rpm 0.190057 -0.190057 \n",
"city-mpg 0.189237 -0.189237 \n",
"highway-mpg -0.210720 0.210720 \n",
"price -0.179578 0.179578 \n",
"diesel -0.408228 0.408228 \n",
"gas 0.408228 -0.408228 \n",
"aspiration-std 1.000000 -1.000000 \n",
"aspiration-turbo -1.000000 1.000000 \n",
"\n",
"[21 rows x 21 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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.566903</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187871</td>\n",
" <td>0.098128</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187871</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214489</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566903</td>\n",
" <td>0.098128</td>\n",
" <td>-0.214489</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.566903\n",
"stroke -0.055390 1.000000 0.187871 0.098128\n",
"compression-ratio 0.001263 0.187871 1.000000 -0.214489\n",
"horsepower 0.566903 0.098128 -0.214489 1.000000"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke','compression-ratio','horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56001.57610506379)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXxc9Xno/88zm2ZGu7zKlmxLXjD7ZgwBY5xAEpKmgbQkkJW0EAjQm/TXX9qQe3Nze9Pk/kLbmxbaQEyAQmgSQtykkDSQhIAxiw3YhMUGg215kbzJ1j4azXq+vz/OmbGWmdGMNGNtz/v10mtmvnPOmXM00jzz3Z6vGGNQSimlxso10SeglFJqatNAopRSalw0kCillBoXDSRKKaXGRQOJUkqpcfFM9AmcbLNnzzZLliyZ6NNQSqkpZdu2bceNMXMyPTfjAsmSJUvYunXrRJ+GUkpNKSKyP9tz2rSllFJqXDSQKKWUGhcNJEoppcZFA4lSSqlx0UCilFJqXDSQKKWUGhcNJEoppcZFA4lSSqlx0UCilFJqXGbczHallFL5iyaS9ITjObfRQKKUUmoEYwxd4Tg9A3E8Lsm5rQYSpZRSQwzEkhwPRYknLadEA4lSSqk8JC1DR3+UUCRR0H4aSJRSStEXidPZHyNpmYL31UCilFIzWDxpcTwUZSCWHPMxNJAopdQMZIyhZyBOVziOMYXXQgbTQKKUUjNMJG53pscS1ugb50EDiVJKzRCWZegMx+gdyD0vpFAaSJRSagbojyboCMVIWMWphQxW0hQpIrJPRN4UkddEZKtTVicivxORXc5t7aDtvyYiu0XkHRH54KDy853j7BaRu0REnPIyEfmpU/6SiCwp5fUopdRUk0haHO2NcLQ3UpIgAicn19Z7jTHnGGNWOY9vB35vjFkO/N55jIicBlwHnA5cCdwtIm5nn3uAm4Dlzs+VTvkNQJcxZhnwT8AdJ+F6lFJqSugZiNPWNUB/tLB5IYWaiKSNVwEPOfcfAq4eVP6IMSZqjNkL7AZWi0g9UGWM2WzsoQU/HLZP6lgbgMtTtRWllJqpYgmLQ90DdISiWOMckZWPUgcSA/xWRLaJyE1O2TxjzGEA53auU74QaB20b5tTttC5P7x8yD7GmATQA8wafhIicpOIbBWRrceOHSvKhSml1GRjjKGzP8bB7gEi8bHPCylUqTvbLzHGHBKRucDvRGRnjm0z1SRMjvJc+wwtMOZe4F6AVatWlT48K6XUSTYyP9bJU9IaiTHmkHPbDvwCWA0cdZqrcG7bnc3bgMZBuzcAh5zyhgzlQ/YREQ9QDXSW4lqUUmoySlqG9r4Ih3sGJiSIQAkDiYiUi0hl6j7wAWA78DhwvbPZ9cBjzv3HgeuckVhN2J3qLzvNX30icpHT//G5YfukjnUN8LQZ7xRNpZSaIkLRBG1d4YKTLBbqDwe6cj5fyqatecAvnL5vD/BjY8yTIvIK8KiI3AAcAD4OYIzZISKPAm8BCeA2Y0yqke8W4EEgADzh/ADcDzwsIruxayLXlfB6lFJqUognLTpCMcKx0gaQg10DrN/UwvO7j+fcrmSBxBjTApydobwDuDzLPt8Gvp2hfCtwRobyCE4gUkqpmaAnHKczHBt3fqxcQpEED2/Zzy/+cJBEHtmAdWa7UkpNAcXOj5VJImnxyzcO89CL++h1msvmVZVxy2VL+bMcs/Q0kCil1CRmWYaucIyeIufHGswYw0t7O/n+sy0c6AwDEPS5+dTqRVxzfgPlZblDhQYSpZSapMIxOz9WKUdjtRwLcc/GPWw70A2AS+DDZ9bz+YuXUFfuy+sYGkiUUmqSSVqGjlCUUAlTm3T2x3jwxX38+s3DpLpBzl9Uwy3rltI8p6KgY2kgUUqpSaQ3EqdrjEve5iOWsNiwrY0fvXSAAWf2e2NtgFvWLeXCpjrGkmVKA4lSSk0CsYS95G2pUpsYY9j4zjHufa6Fo71RAKr8Hq6/eAl/fFY9HvfYpxVqIFFKqQlkjKE7HKd7YPxL3mbz1qFe7t64m7cO9wHgcQkfO3chn7loEZV+77iPr4FEKaUmSKnzYx3tjfCD5/by9M72dNkly2Zx89pmGmqDRXsdDSRKKXWSJS1DR3+0ZKlNwrEEP3m5lZ9ta0vPO1k2t4Jb1y3lnMaaor+eBhKllDqJBnemv9zSySOvtHK4d4D6qgDXXdDI6ua6MR87aRme3H6EB17YS1fYnncyq9zHDWua+MDp83CVaLkmDSRKKXUSDO9Mf7mlkzuf3oXHJVT5PXT0R7nz6V18meVjCiavHujino172HOsH4Ayj4trL2jk2gsaCXjdo+w9PhpIlFKqhLJ1pj/ySisel6Q/5ANeNwPxJI+80lpQIDnQGebeTS28uKcjXfb+0+Zx45om5lSWFe9CctBAopRSJRKJJznWl7kz/XDvAFX+oR/Bfq+LI70DeR27ZyDOw5v389jrh9JzTs5cWMWt65ZxyvzK8Z98ATSQKKVUkVmWoaM/Rl8ke36s+qoAHf3RIc1OkbjF/KpAzmPHkxaPvXaIh7fsp8/prK+v9nPT2mbWLp89pgmF46WBRCmliigUTdAZipGwcg/pve6CRu58ehcD8SR+r4tI3CJhGa67oDHj9sYYXtzTwfpNLbR12bWWcp+bT1+0mD85dyE+T0kXvM1JA4lSShVBImlxvIDFplY31/FllvPIK60c6R1gfo5RW7vbQ9y9cQ+vtZ5IrPiRsxZw/cWLqQ3ml1hxrLxuFzXB3JMWNZAopdQ49YTjdIVjWAXOTF/dXJezY70jFOWBF/bx5PYjpI68ekktN1+2lKbZ5eM449F53S6qg14qyzyjNpdpIFFKqTGKJpIcD8WIFjk/VjSe5NFtbfzk5QNE4nYT2eJZQW65bCmrm8Y+zyQfHpeLmvL8Akh6n5KekVJKTUPGGLrCcXqKnB/LMoZndrbzg+f20t5nJ1asDnj5/MVL+MhZ9bhdpetI97jsGkiVP/8Akt63ROeklFLTUqnyY20/2MPdG/ew84idWNHrFv70vAY+deEiKkZZoXA8xhNA0sco8jkppdS0VKr8WEd6Ity7qYWN7x5Ll61dMZubLm1mQU3uocDjUYwAkj5Wkc5JKaWmrb5InM4iLzbVH03wo5cO8B+vthFP2sc9ZV4lt65bypkN1UV7neHcLqEm4KMqMP4AkqKBRCmlsogn7fxYA7HidaYnLcMT2w/zby/sSydWnFNRxo2XNnH5qXNLllixFAEkRQOJUkoNY4yhZyBOV7i4nemv7Ovk+8+2sPe4nVjR73HxydWL+PiqBvwlSqzodgnVAS9Vfi+uEnXWayBRaprYuLOd9ZtaaO0K01gb5Oa1zaxbOXeiT2vKicTtzvTUOh7FsL+jn3uebeHlvZ0ACPCB0+dxw5omZleUJrHiyQggKRpIlJoGNu5s5xuP78DrFmoCXtr7Inzj8R18EzSY5MmyDJ3hGL0D2fNjFaonHOfBzfv45euHSHWvnN1QzS3rlrJiXmkSK57MAJKigUSpaWD9pha8biHos/+lgz4P4ViC9ZtaNJDkoT+aoCOP/Fj5iiUs/vO1gzy8ZT/9Ubt/ZWFNgJvXNnPJslk5+yjGutiVS+wAUh04eQEkRQOJUtNAa1eYmsDQfEgBr5u2rvAEndHUkEhadPTH6I8WZ0ivMYbndh/n3k0tHOqOAFBR5uGz71nM1ecswOvOnVhxLItdTWQASdFAotQ00FgbpL0vkq6RAAzEkzTUBifwrCa3ngF7ydtC82Nl8+7RPu7euIc32noAO7HiR89ewPUXL6E6kDvpYUohi125RKhyAkgpZ7zno+R5h0XELSJ/EJFfOY/rROR3IrLLua0dtO3XRGS3iLwjIh8cVH6+iLzpPHeXOPVCESkTkZ865S+JyJJSX49Sk9HNa5uJJw3hWAJj7Nt40nDz2uaJPrVJJ5awONQ9QEcoWpQgcqwvynee2MkX//3VdBC5qLmOB66/gC9dvjzvIAL2Yld+79CP5eGLXblEqAn6aKwLUlfum/AgAienRvJl4G2gynl8O/B7Y8x3ROR25/FXReQ04DrgdGAB8JSIrDDGJIF7gJuALcCvgSuBJ4AbgC5jzDIRuQ64A7j2JFyTUpPKupVz+SY4a1WEadBRWyMUOz/WQDzJo6+08tNXWok4I7yaZpdzy2XNrFoytsSKuRa7ErGbu2qCkyN4DFbSQCIiDcAfAd8G/sopvgpY59x/CNgIfNUpf8QYEwX2ishuYLWI7AOqjDGbnWP+ELgaO5BcBfytc6wNwL+KiJhiDvxWaopYt3KuBo4sipkfyzKGp946yn3P7+V4KAZAbdDLn13SxIfOmD+uD/lsi139+ZolLKoLTroAklLqGsk/A38DDB7nNs8YcxjAGHNYRFJ/+QuxaxwpbU5Z3Lk/vDy1T6tzrISI9ACzgOODT0JEbsKu0bBo0aLxX5VSakpIWobOUZa8LcTrbd3cs3EP7x4NAXZixY+fbydWHNw/NVbDF7tqqLVTx19+2rxxH7uUShZIROQjQLsxZpuIrMtnlwxlJkd5rn2GFhhzL3AvwKpVq7S2otQMEIom6AhFi5If62D3APduauG5XSe+o773lDl8YW0z86v84z7+YBcuncUVp8+jJuDFM8oor8milDWSS4CPisiHAT9QJSL/DhwVkXqnNlIPtDvbtwGDFytuAA455Q0Zygfv0yYiHqAa6CzVBSmlJr940qKjgCVvcwlFEjy8ZT+/+MNBEk5AOrXeTqx4+oLiJlYUESr9nikVQFJKFkiMMV8Dvgbg1Ei+Yoz5jIj8A3A98B3n9jFnl8eBH4vId7E725cDLxtjkiLSJyIXAS8BnwP+ZdA+1wObgWuAp7V/RKmZa6xL3g6XtAy/fP0QD764j14nbfzcyjK+cGkz71s5p6hJD0WEijIPtcGpF0BSJmIeyXeAR0XkBuAA8HEAY8wOEXkUeAtIALc5I7YAbgEeBALYnexPOOX3Aw87HfOd2KO+lFIzTLGWvDXG8NLeTtY/28L+TnsyZ8Dr5lMXNnLNeQ2UFTGxYiqA1AS9o05UnOxkpn2BX7Vqldm6detEn4ZSqgiKOaR37/F+7tm4h637uwC7A/ZDZ87nzy9poq7cV4SztYkI5WVuaoO+KRVARGSbMWZVpud0ZrtSakoq1pDernCMB1/Yx3+9eTidWPHcRTXcetlSls6tKMKZ2qZqAMmHBhKl1JSStAwdoSihcebHiiUsfv5qGz966QD9zsJVDbUBvnhZM+9pzp1YsRDTOYCkaCBRSk0ZvRE7P9Z4hvQaY3j23WPcu2kvR3rtxIqVfg/Xv2cxHz17QdE6vKdTH8hoNJAoNQnoolS5xRIWHf3jX/J255Fe7n5mD9sP9QL22h1Xn7OAz160mKoCcmLlMpMCSIoGEqUmWLEWpZqOwcgYQ3c4Tvc4O9PbeyPc9/xennq7PV12ybJZ3Ly2uWgZkmdiAEnRQKLUBCvGolTTcYXESDzJsb7xdaYPxJI88soBHt3aRtRJrLhsTgW3rGvm3EW1o+ydn5kcQFI0kCg1wYqxKNV0WiGxGEveJi3Db986ygPP76Wj306sWFfu44Y1TXzgtHlFSX44HSYSFosGEqUmWDEWpZouKySGYwmO941vyds/HOjino0t7D5mJ1b0eVx8YlUDn7xgEQHf+CcUTsUaSKmbPTWQKDXBbl7bzDce30E4lkiviFfoolRTfYXERNKisz82riG9rZ1h1m9q4cU9HemyK06dy41rmphbpMSKFX7PlBvGezKaPTWQKDXBirEoVTGC0UTpjcTpDI2eH+vllk4eeaWVw70D1FcFuO6CRlY319EXifPDzfv5z9cOpYcFn76gilvXLeXU+qqcx8yXXQPx4fNMnQCScjKaPTWQKDUJjHdRqqm4QmIsYXE8FCWSR36sl1s6ufPpXXhc9iqBHf1R/vn373LBnjqeffdYOrHi/Co/N61t5rIVs4syobDcacIq8xQvx9bJdjKaPTWQKDVNTMQKiWNpex/LkN5HXmnF4xICXjfGGJKW4Xgoxi/fOAxA0Ofm0xcu4k/PayhKrSHo81BbPrUDSMrJaPbUQKKUGpOxtL2PdUjv4d4BqvweovEkx0IxwoNqMX98Vj2fv2QJtcHxJ1acTgEk5WQ0e2ogUUqNSSFt7+Nd8nZ2eRn7OvrTObEA/B4Xi2eV8/+8f8XYL8IR9NlNWP4ipomfLE5Gs6cGEqXUmLR2hXELtBwLEUta+NwuZlf4RrS9j2fJ22g8yYZX29h1LETMmVDocwtVAS8el/BnFy8Z1zVM5wAyWKmbPTWQKDUJTMX0JpVlHna1h3C7BLdLSFiGg90Rljup18ez5K0xhmfeOca9m1po74sCdj9IbdBHIpmkvjqYHrU1FjMlgJwsGkiUmmBTNb1JuqM8VdEwJ8rHs+TtjkM93LNxD28d7gPA4xL+5LyFfObCxVT4x/eRpQGkNDSQKDXBpmp6k1AsycIaP8dDsXTT1rxyHz0DcTr6owUf70hPhB8818Iz7xxLl61dPpsvrG1mYU1gXOeqAaS0NJAoNcGmanqT1LDS5jkV6SG5oWiCeQXOIu+PJvjxywfYsK2NeNKuwayYV8Et65ZydkPNuM5RA8jJoYFEqQk2VdObpIaVhqJxvC4XA/EkCctw3QWNee2ftAxPbD/Cv72wl66wPZprVoWPG9c08f7T5uEax4RCDSAnlwYSpSbYVE1vcumKOfzVFct58MX9HOkdYP6gtCWj2ba/i3s27qHleD9gD+W99oJGPnFBI4FxfPgHnA55DSAnlwYSpSbYupVzuaatm/ue30t/LEm5z82Na5omdf9Iasnbsxpr+O61+Tc/HegI8/1Ne9jS0pku++Dp8/jzS5qYU1k25vPRADKxNJAoNcE27mxnw6sHmVNZxiKnRrLh1YOc1VAz6YJJIfmxBusZiPPQi/t4/PVDpKaTnLmwmtveu5QV8yrzOkampI2XrZyjAWQS0ECi1ASbCqO2xrrkbTxp8Z+vHeLhzfvTKeLrq/3cfFkzly7LP7Hi8KSNXeEo/7pxN/Or/ZPmdzSTaSBRqsgKnVw42UdtjSU/ljGGF3Z3sH5TCwe7BwAoL3Pz2YsWc/U5CwtOrJhK2hj0efC4Bb938gXbmUwDiVJFNJbJhZN11JZlGTrGkB/r3aN9fP/ZPbzW2gOAS+CjZy/g+vcsoTroHWXvzI70DVAX8OEetKDUZAq2M50GEqWKaCzNVJNx1FYomqAzVNiSt8dDUe5/fi+/3XE0Pdn9wqY6vnhZM4tnlY/pPMq8bmqDXppmVdjBdlAgmQzBVtk0kChVRGNppipWdtZi5OtKJC2OF5gfKxJP8ujWVh55uZWIk1ixaXY5X7ysmQuWjC0Xls/joq7clw7IkzHYqhM0kChVRGNtphpvdtZi5OsqND+WZQxPvd3Ofc+1cDwUA6Am4OXPLlnCh8+sx+0qfEKhz+OiNuijvGzoR9NUXAFyJtFAolQRTdQ35/GM/IomkhwPxYgWMKT3zbYe7t64h3eO2okVvW7hT89r4NMXLhoRBPLhdbuoLfdRkWPfiVgBUuWnZIFERPzAJqDMeZ0Nxpj/JSJ1wE+BJcA+4BPGmC5nn68BNwBJ4EvGmN845ecDDwIB4NfAl40xRkTKgB8C5wMdwLXGmH2luialRjNR35zH0qRmjKErHKengCG9h7oHuPe5Fja9ezxddtmKOdy0ton66sITK3rdLmqCXir9Y+uEV5ND3oFERBYDy40xT4lIAPAYY/py7BIF3meMCYmIF3heRJ4A/gT4vTHmOyJyO3A78FUROQ24DjgdWAA8JSIrjDFJ4B7gJmALdiC5EngCO+h0GWOWich1wB3AtQX9BpQqson45lxok9pALMnxUP5DekPRBD/asp+f/+FgOrHiyvmV3LpuKWcsrC74fL1uF9VBL5VlnrznkqjJK69AIiJfwP4grwOWAg3A94HLs+1j7K84Ieeh1/kxwFXAOqf8IWAj8FWn/BFjTBTYKyK7gdUisg+oMsZsds7lh8DV2IHkKuBvnWNtAP5VRMQUMmNKqWkg3ya1pGXo6I8SiuTXmZ60DL964zAPvriPngF7GPCcijK+sLaJ962cW3BiRY/LRU25BpDpJt8ayW3AauAlAGPMLhEZ9SuXiLiBbcAy4HvGmJdEZJ4x5rBznMODjrMQu8aR0uaUxZ37w8tT+7Q6x0qISA8wCzg+aHtE5CbsQMiiRYvyvGSlpo58mtT6InE6+2N5L3n78t5O7nl2D/s77OYxv9fFp1Yv4przGwpOSeJx2TWQKr8GkOko30ASNcbEUn8AIuLhxLpoWTnNUueISA3wCxE5I8fmmf66TI7yXPsMP497gXsBVq1apbUVNS1la1KLJ+38WAOx/DrT93X08/2Ne3h5Xxdg/5NdecZ8/vySJcyqKCyxotsl1AR8VAU0gExn+QaSZ0XkvwMBEXk/cCvwy3xfxBjTLSIbsfs2jopIvVMbqQfanc3agMELGTQAh5zyhgzlg/dpc4JbNdCJUspe8nYgTlc4v8707nCMB1/cz6/eOJFY8ZzGGm5dt5Rlzjrs+XK7hOqAlyq/F9cYhgGrqSXfQHI7dsf2m8DN2B3e9+XaQUTmAHEniASAK7A7wx8Hrge+49w+5uzyOPBjEfkudmf7cuBlY0xSRPpE5CLsprXPAf8yaJ/rgc3ANcDT2j+iVGH5sWIJi1/84SD//tJ++qN2raWhNsDNa5u5eOmsgmoSGkBmpnwDSQB4wBjzA0j3fQSAXIlu6oGHnG1dwKPGmF+JyGbgURG5ATgAfBzAGLNDRB4F3gISwG1O0xjALZwY/vuE8wNwP/Cw0zHfiT3qS6kJdddT745YW+RLV6w4Ka9dSH4sYwybdh3n3k0tHO6JAFDp9/C59yzmo2cvwOvOP7GiS+wAUh3QADITST5f4EVkC3CFMSbkPK4AfmuMubjE51d0q1atMlu3bp3o01DT1F1PvcudT+/GJXayQsvYP19+37KSB5NQNEFHKJpXZ/rOI73cs3EPbx7sBeyaxFVnL+Cz71lMdSD/OR0aQGYOEdlmjFmV6bl8ayT+VBABcOaGaLY0pYa57/m9uMQepQR2MElYFvc9v7dkgSSetOjIMz/Wsb4oP3iuhafebk+XXbx0FjetbWZRXf7/0i4RqpwAMpZUKGp6yTeQ9IvIecaYVyE903ygdKel1NTUH0syfKkNl9jlxVZIZ/pALMlPX2nlp1tbiTqJFZvnlHPrZUs5b3Ft3q+pAURlkm8g+UvgZyKSGi1Vj84gV2qEcp89GXDwZ6xl7PJiisTtmemxRO7OdMsYfrvjKPc/v5eOfjuxYm3Qyw1rmvjg6fPzDgYaQFQueQUSY8wrIrISOAV7WPlOY0xhq90oNQPcuKaJO5/eTcKyhvSR3LimqSjHL6Qz/fXWbr63cQ+72+1Waa9b+MSqRj65unFIKpVcNICofOT8axKR9xljnhaRPxn21HIRwRjz8xKem1JTTqofpBSjtvJdbOpg1wDrN7Xw/O4TCR7et3IuN17axPwqf16vpQFEFWK0ryWXAU8Df5zhOQNoIFFqmC9dsaKoHev5dqb3ReL8+5YD/OIPB0k4I7dOq6/i1nVLOW1BVV6vpQFEjUXOQOKkfXcBTxhjHj1J56SUcvSE43SGYzk70xNJi1++cZiHXtxHr5OMcV5VGTdd2sy6U+bkNaFQA4gaj1EbSo0xloj8BaCBRKmTJJqwZ6bn6kw3xvDS3k6+/2wLBzrtucFBnzudWNE3fPhYBhpAVDHkO2rrdyLyFewFqfpThcYYzWulVBEZY+jsj6VTtmfTcizEPRv3sO1AN2APMf7wmfV8/uIl1JX7Rn0dDSCqmPINJH+O3Sdy67Dy0q4fqtQUtHFnO+s3tdDaFaaxgBUSw7EEHaFYzvxYnf0x/u2FfTyx/XA6seL5i2u55bJmmueMnlhRRKjye6gJ+jSAqKLJN5Cchh1E1mAHlOewF7ZSSg2ycWc733h8B163UBPw0t4X4RuP7+CbkDWYJC1DRyhKKJq9Mz2WsNiwrY0fvXSAAWdt9UV1Qb54WTMXNtWN2g+iAUSVUr6B5CGgF7jLefxJp+wTpTgppaaq9Zta8LolPU8j6PMQjiVYv6klYyDpjcTpyrHYlDGGZ945xg+ea+FobxSAKr+H6y9ewh+fVY9nlMSKIkKl30NNwDvqtkqNVb6B5BRjzNmDHj8jIq+X4oSUOpnG2gyVTWtXmJphSQ8DXjdtXUMTZeez2NTbh3v53jN7eOuwnVjR4xKuPncBn71oMZX+3IkVRYSKMg+1QQ0gqvTyDSR/EJGLjDFbAETkQuCF0p2WUqU3lmao0TTWBmnviwyZOT4QT9JQaydEzCc/1tHeCD94bi9P7zyRWHHNstnctLYpfZxcKvweaoO+gtLAKzUe+QaSC4HPicgB5/Ei4G0ReRMwxpizSnJ2SpVQoc1Q+bh5bTPfeHwH4ViCgNfOuxVPGm5e2zxqfqxwLMFPXm7lZ9va0tssm1vBreuWck5jzaivXVFm94HkM+xXqWLKN5BcWdKzUNNesZuQiiHfZqhCrFs5l29iB6m2rjANtUG+cGkTZzRUc6g7c8LspGV4cvsRHnhhL11he9jvrHIfN6xp4gOnz8M1Ske6BhA10fJN2ri/1Ceipq9SNCEVw2jNUGO1buXc9HX1R+0hvb1Z5oW8eqCLezbuYc8xe3pWmcfFtasauXZ1IwFv7ozB5WUeaoJeyjzFzSysVKHyrZEoNWalaEIqhlzNUOOVSFp09MfozzKk90BnmPXPtrC5pSNd9oHT5nHDmibmVJblPHbQZwcQ/yiBRqmTRQOJKrlSNCEVQ6ZmqGI0ufWE43SFY1gZOtN7BuI8vHk/j71+KD3k98yF1dy6bimnzK/MedyAz01t0KcBRE06GkhUyZWqCakYBjdDjVcknqSjP0Y0PnJIbzxp8dhrh3h4y376nMSK9dV+bl7bzKXLZ+ecUKg1EDXZaSBRJVdoE9Jk7JjPxbIMXeHM+bGMMby4p8Op9did7eU+N5++aDF/cu7CnB3kGkDUVKGBRJVcIU1I2Trmr2nrZnNL56QLLuFYguN9mReb2t0e4u6Ne3it9VXpaS4AACAASURBVERixY+ctYDPX7yYmmD2xIoaQNRUI7nWOZiOVq1aZbZu3TrRp6Gy+OS9W0Y0gx0PRejsj9NQGxhSo/nmR09n3cq5E1KDyZUfqyMU5YEX9vHk9iOk/rtWL6nl5suW0jS7POsxNYCoyUxEthljVmV6TmskalLJ1DHfE46TtEzGUV/ASR9anC0/ViSe5Gfb2vjJyweIxO0ayuJZQW65bCmrm+qyHk8DiJrqNJCoSSVTx3w0aeEfNlciNerrZA0t3riznXue3cP+zn7mVwa47oJGVjfbwcEyhqd3tvODTXs5FrITK1YHvHz+4iV85Kz6rNl2NYCo6UIDiZpUMnXMe1wuKv1D/1RTo75OxtDiZ94+ytcf24FLoLLMQ0d/lDuf3sWXWU6wzM33Nu7hnSN9AHjdwp+e18CnLlxERVnmfy8NIGq60UCiJpVMHfNXnb2ADa8ezDjqa/2mlnENLb7rqXe57/m99MeSlPvc3LimiS9dsSL9fCSe5K6nd+MS0jPNA143fZE433lyJ92DRmqtXTGbmy5tZkFNIONraQBR05UGEjXpZJrbcVZDTdZRX2OdnX7XU+9ypxMkPC47AN359G4Abnvfcjr6o4QiCQ71DFDl1IiSlqEzHKM7HE93pJ8yr5Jb1y3lzIbqjK+jAURNdxpI1JSQbeLgeGan3/f8XieI2HM5XAIJy+IHz7Vw1bkL053p9VUBjocixJKGjlCMpDPS0esWvvKBU7j81LkZEyvqTHQ1U2ggUVPeWGen98eSDJ4PaIxBMPTHkkNGZJ23qIYfbtlPwikT7ISJf/OBU1izYvaI42oAUTNNyfJOi0ijiDwjIm+LyA4R+bJTXicivxORXc5t7aB9viYiu0XkHRH54KDy80XkTee5u8TJJyEiZSLyU6f8JRFZUqrrUdNPuc+NZewAYozBAJY50Reyr6Of23/+Jg+8uC8dRAJeF6fVV/H1D586Ioj4vW7qqwPUVwc0iKgZpZQ1kgTw/xpjXhWRSmCbiPwO+Dzwe2PMd0TkduB24KsichpwHXA6sAB4SkRWGGOSwD3ATcAW4NfY66M8AdwAdBljlonIdcAdwLUlvCY1jdy4pol//v0ujBhEwBg7kHz0rHrufGoXv3zjEKmKydkN1dyybikr5o1MrOj32jWQl1o6plRqF6WKpWSBxBhzGDjs3O8TkbeBhcBVwDpns4eAjcBXnfJHjDFRYK+I7AZWi8g+oMoYsxlARH4IXI0dSK4C/tY51gbgX0VEzEybrq8KlrQM161eRFd/jEe3tTEQT+L3uDhtQRWPv3mY/qideHFhTYCb1zZzybJZIxIrlnnd1Aa9BH2eSbvmilInw0npI3GanM4FXgLmOUEGY8xhEUn9ly3ErnGktDllcef+8PLUPq3OsRIi0gPMAo4Pe/2bsGs0LFq0qFiXpaao3kiczpCd5v2zFy/hM+9ZzHO7jrN+Uwtb99t5sSrKPHz2PYu5+pwFI9Y+93lc1JX7hgw5nqxrrih1MpQ8kIhIBfAfwF8aY3pzpMvO9ITJUZ5rn6EFxtwL3At2rq3RzlkVV7ZcWIWWj1csYXE8FCUyKM37u0f7uHvjHt5o6wHskVtXnbOQz120mOrg0ImOPo+L2qCP8gwTDSfrmitKnQwlDSQi4sUOIj8yxvzcKT4qIvVObaQeaHfK24DGQbs3AIec8oYM5YP3aRMRD1ANdJbkYtSY5Mrmu+HVg3mXj6eJyBhDdzhO90CcVKvnsb4oD7ywl9/sOJre7qLmOr64dimLZg2dzOh1u6gt92WdqQ6Te80VpUqtZIHEGVl1P/C2Mea7g556HLge+I5z+9ig8h+LyHexO9uXAy8bY5Ii0iciF2E3jX0O+Jdhx9oMXAM8rf0jJ0e+tYb1m1qIJ5N0hBLEkhY+t4uqgIf7nt/LnMqyEU1B2crH2kQ0EEtyPBQlnrSTKA7Ek/z0lVYefaWVSMIua55dzhcva2bVkqGJFfMJICk3r23mKxte52D3AEnL4HYJFWUe/ucfnVbwOSs11ZSyRnIJ8FngTRF5zSn779gB5FERuQE4AHwcwBizQ0QeBd7CHvF1mzNiC+AW4EEggN3J/oRTfj/wsNMx34k96kuV2Mad7fz1htfpiyRIWBbH+6L89YbX+Ydrzh7xYb+rvY+ecByXS3C7hIRlONoTxQJ6IwlcArPKfcyvtlPEh6IJEkmLuGXwuV3MqSyjosxTcBNRImnR2R9Lp3m3jOF3bx3lvuf30hGKAVAb9PJnlzTxoTPmD0ms6HW7qAl6qfR7Mx47GwFwhhNjJGO7q1LTUSlHbT1P5j4MgMuz7PNt4NsZyrcCZ2Qoj+AEInXy3PHkTrrCcdwuweN2YQx0hePc8eTOEYEklrBASM/8TlgWg5eAsgwccz7Y3S7BAHHnG33CMhzqjjCrwsuSWRU5z2lwDam+ys815zdwgZO6/fXWbu7euIdd7SHAnpH+iVWNfHJ145CmqFQAqSjz5Fz6NpP1m1qoCniZX30iz5Z2tquZQme2q4K1HO/HNSg4iIARQ8vx/hHbet3CQNxejlaE9MS+4Y6FYk6/iIdQNImx7ONaGDr74/x/H2vO2Tn/jcd34HFB0OvmSG+Ef/79Lj6zehFb9nXy3K4Tg/jee8ocvrC2mflV/kHnOPYAkqKd7Wom00CiSmrFvCr2Hg/RF7H7SFKEkcPrEklDld9Lld/H8VA03acS8NrDb7PN0/j+s3vsnFluFxjwuV10h6P84+/eTb/GafWV3LJuKacvOJFY0et2UR30UjmOAJKine1qJtNAogrWNCvI7mP9iDV0Rviy2SM/NFPri8yv9hDwutlxqBdDhjHajsM9EU6ZX0WV8+0+HEswt9KfdZ7G3Rv3cKCzn0q/B2MZegbiHO+PpWekz60s4wuXNvO+lXPSwcLjclFTXpwAMvg6/3rD6xzsGiBhWek1VLSzXc0EGkhmsLHO17j9Q6fylQ2vE4om0iOUasq83P6hU0dsOzI7b4C2roERgcSF3ZQVSxqO9UXoiySIJizcLuGqsxfw6La2IU1Hxhg8LuFAZz/zKv3sau8jHLeGHLO+ys8Dn19FmZP3yuOyayBV/uIFkMEMgGAfW7IHS6WmGw0kM9R4Unq80dZNfzRBJG4hwPwqP3931RlZ9xuenfeup97lu0/tSj92YacbSVoWJmnoCsdJWBZlTtPThlcPUuGz1xoJ+jwkLUPCshiIJakO+GjtCo8IIgCnL6ikzOvG7RKqA16qA96SBBCwA2V1wEu9drarGUgDyQyVbX7HaB98gxeDKvMIloFDPRHeaOvOul+mms/KeRXsPtaPW8TuVLcMlrE7540xWBYMWBZWf5zachCfm1giSSIZw+dx0R9N0j0Qz1i7SdnS0klduY8qvxdXlnXTR5NvrU0729VMVrI08mpy29Xex/G+GIlBQ22P98XY1d6Xc7/Bi0G5xOXc2uWZpGo+7X2RITWfD59ZT03Qi7ggaQzislO0x5KGWPJEaIgkLI72RDnaF+G29y6jOuDjcE+EI70RwrFkzuaj/liSmqBvXEEk07lv3Nk+YtvG2iADg1KvgHa2q5lDA8kMNXh+hyD2UF5xynPojyUZ/rnsErs8k8Gd5CL2rdctbG7p5B+vOZtzG2uZX+Xn3MZaGmqDpFqeBnfIW0AkliQcS9DeFyUUTWIZqPJ7+Iv3Lss6WWmsAWTwuccSSY70RHjnaB9HeiLEEknWb2oZse3Na5uJJw3hWAJj7Nt8l/xVaqrTpq0JVKrkhPkYPr8jlVjG58794Vvuc9MfS2BMEmPsDnIRKPdl/lPK1eQzvO9kzR1Pky3BTSRh8c1fvQ2AxyVcfe4CPnvRYir9Xh54fg/h+Mgdg96R11LI7/zdo710heMYYwe1RDLJQDxJIjky2I5nyV+lpjoNJBNkotevGD6/w+d2Uen30jQ79wzyy1fO4RevHU4/Nk7V4fT6kQs+QWHzKxprgxzqHsgYTFLDeS9ZNoub1zY7tReh0u/hrIZadh7ppTeSwDJ2DanK7+HU+uohxyj0dx6OJRk8f9I415ut9jXWJX+Vmuq0aWuCZGvyydRsUgo3r23G53Ezv9rPKfMqmV/tx+dxj9oUc6Q3RtA78s9m64HujH0HuZp8Nu5s55P3bmHNHU/zyXu3cMGSGrJMfMct8H8/fhZ/d9UZNNaVUxXw0lgbYHZFGV+8bClVAR9Ns8s5Y0EVTbPLqQr4RlxLob/zwWu0Oy1/Q8qVUjatkUyQiR7lM9ammNauMKm+8MENR/GkyZhrK9vrwImZ6tV+D4d7Bnh0a4gqv4feSGLIMSp8bpbOqeC8xXVU+j3UBLz2LPYcr/Ge5jrWb2rh649tTzdhFfo7d4ngcRlnXXc7mLgHpYZRStk0kEyQyZBSYyxNMY21Qdq6BuwHqc9TJ7BkyrWV7XU+ee8WvG6hzOMmYRkSSYuO/hjx5IlaQG3QS8DnxjJww5omGmsDQwJIttfI1oRVWeZJz0VJyfU7b55dzq72EF63pPuRkpaheXZ5Hr8ppWYObdqaIFN1lM+I83OCiKfAv6QDnf14XEI4mqCtK0xbdyQdRM5trOHU+VX4PC7mVwX41lVn8NFzF2YNIsNlG21ljCnod/7VK1dSG/Qi2GnpU8Htq1euzLj98Ka6TE19Sk1HWiOZIFN1lM+6lXNpqPHT1h2xm3sgvZZH06z8alM94Ti1QR/7OvoJRU90XPvcLhbPCvLda8+hosxDTdA7Yr30fLx71O54dyG4RUgkDR39MRJJi3/8+Dl5/87XrZzLP1xzdl7bT/TgCaUmkgaSCVTsUT5jHU5c6H7fuvrMEbm2Kso8GXNtDRaJJznSM8CGbW3sOdafnsDncQnVAQ9et4vb1i1jYU0AX4FVnMHX0D1g1zg8zjFSM+djSVPw7zzf7bMlldQUKWom0EBSZBM1N2Ss34jHst+6lXP5xzy/qQP8/q2jfO+Z3bQcDzEQt4g6kx7LPC7qyn1YlkVDbTm3XNbMFafPH/e1H+4ewDIQTybTC29hKDg4FaK1K0w0nmDv8f70EORZ5d5RJ3gqNR1oICmiiWzeGOs34rHul883dWMM//XGYf72lzvS2XxTLmyq4/2nzuOJ7Uc40juAz+NK94EUGoyHX4Pf6yaSsOeAJJ0le6vKR19lcVyM4Vgonn5or/wYp6HGXbrXVGqS0EBSRBPZvDHW4cSlGoY8EEvyzpFevvHYDjrDsXR50Oem0u+hoy/CQ5v34fO4qA360kH3mrZuNrx6sKBg3NoVxi3QcixELGnhFsGy7HEALmPsbMElHsjQ2W8HkcEDg82gcqWmMw0kRTSRc0PGOpw4tV8iadKrErpdwpK6sQ1DTiQtDnUP8NDmffz4pdZ0P4jPLcypKKMy4MUlsOdYPw21gRFB977n91Je5i4oK3FlmYdd7SHcLsHtEpKWSefpSlhgGYtIPPNs9GKJJi28LkgOmnPiEbtcqelOh/8W0URmgB3rcOKb1zbTMxDnYPcAcWeIa2qUU7bhq5mGuRpj6OqP8uCL+7jm+5u5//l9DMST9qJXAS9Ns8upKffhdbvSTVwB79Bmn4DXTSiaKDgrsUnlVHH6QuJJM+x5O93Jd554O/cvcRzKfW4Qe16M3+umzGM/Lvdp05aa/jSQFNFEzg1Zt3Iu3/zo6cyt9NMzEGdupZ9vfvT0UZvU1q2ci9/jwjL2qKaEZagLeqkKeDOmDsmUWv3rj23nH3/zDp+67yW+9V9v094XxeMSPrGqgb/749Op9HtIWAaB9O+keXZ5xqCbWl2wkKzEoViShTV+PG4hOSxRV6qpKWnsWlCp3LimCctAwrKwjOXc2uVKTXfatFVEEz03ZCzDiTfubOdwbwSPy/7QNga6BuIEfJmb5FL9QImkoaU7RDRhYYDvbdyT3mbt8tn8xfuWcVZDDX6vmwW1gawpUsKxBAGvvfphPGkIel1EElZBWYlTzXPNc+zO9DcP9px4ctDs+1LmyPrSFSsAe12W/liScp+bG9c0pcuVms40kJTIVEjrt3FnO1965A8kLbDE4HX6GLDgaF+UcxtrR+zT2hUmEotzvD8x4rmFNQFu/9BK3rdyLuVlJ/60sgW4TEF3/aaWgrMS37y2eUhQGiE1+36UFPnj9aUrVmjgUDOSBpIimkqzm1PnGo4lcYvd9BNLWkjSngOBkYxNcgGPi7aukUEEIOh18ZGz6vNeFz1bgPnG4zuYX+0ZUlNJZQvONCx4eE0w4LX7YUyq4xs72eJSzZGlVEloICmiqTS7ObVm++ARTmB/eU8aaKzxDznnSDzJk9uPsL8z+wi0Pcf68w4i2eTKFvzXG16nL5IgYVkc74vy1xte5x+uOTsdTAYnbRzLzHul1NhoICmi4fMZfG4Xsyt8Jy01fCF2tffRE45nbILzuE6MNkokLbYd6OK7v32Xl/Z25jymBdz11Lvjbt7JVFP50D9voiscx+2S9Gz1rnA8a+r6QmbeK6XGRwNJEQ2fz5CwDAe7IyyfW8IZ1WOUWrNdGNmf48JwLBRlz7EQ//r0bh577WB6walM2w/2/WdbStJP0HK8H9egtUBEwIgpKHW9Uqo0NJAU0ZD5DINuTbaFyCdQas32TJIGusNx/uiu54jE7WG3C2r8+D0uQpE4x/vjWVcyDJd44p9SavLReSRFNHw+g8ctLKzxZ13jeyKtmFdFuc+dsXaRNPZPJG5RXubmtvcu5b/+26XEkoa5VQEaT+LiWylNs4JYxs7ia4zBsuyVC/NNXa+UKp2SBRIReUBE2kVk+6CyOhH5nYjscm5rBz33NRHZLSLviMgHB5WfLyJvOs/dJU5vroiUichPnfKXRGRJqa4lX421QTxuF81zKlg5v4rmORV43K6Tuuphvt7TXDdiSdvhvC7hv/7bpXzlA6dQW+5Lz9yvGpYGJl/jWfjp9g+dStDrIm5ZRBIWccsi6HVpB7pSk0ApayQPAlcOK7sd+L0xZjnwe+cxInIacB1wurPP3SKSmhBwD3ATsNz5SR3zBqDLGLMM+CfgjpJdSZ6m0qqHT2w/Mupkl4RlWDK7PD0Sa/D1FSrTjPhvPL5DVxFUahooWSAxxmwChg/zuQp4yLn/EHD1oPJHjDFRY8xeYDewWkTqgSpjzGZjdzT8cNg+qWNtAC6X8Y49Haexpikplo072/nQP2/ilK8/wSlff4Ir/+nZjB/UlmXY3d43NFVtBsPjTOr6vK7sO2Z7ZvDQaBH71uuWjGlYMrnjyZ2E4xZetwu/14XX7SIct7jjyZ157a+UKp2T3dk+zxhzGMAYc1hEUp+wC4Etg7Zrc8rizv3h5al9Wp1jJUSkB5gFHB/+oiJyE3athkWLFhXtYjKZqNFCG3e289cbXqcjFCOVlWrn0RC3/mgbd3/6fNatnIsxhu6BOD/b2ko8j6S02YJCOMfOnixBZrxDowsdtaWUOnkmS2d7pk8fk6M81z4jC4251xizyhizas6cOWM8xclt/aYWOsMngkhKOG7xPx/bTiia4NdvHua69Vv4P7/O71t8mWfkrzg1kTFbpWRZlqHOlWUeDnZHhmT1PdgdoaJMBw4qNdWd7P/ioyJS79RG6oFUu0sb0DhouwbgkFPekKF88D5tIuIBqhnZlDYtZUoV0toVJtvSF61dA9z679vYtOtEZa3c5x51NFk0MTIupyYyZhv+a0zmkxjv0OimWUF2H+tHBiVztAwsmz35BjIoNdOc7BrJ48D1zv3rgccGlV/njMRqwu5Uf9lpBusTkYuc/o/PDdsndaxrgKfNZJywUWTZOq0rR/lmnwoiK+dXcvenz6M66GVxXSDnehmZfpmpiYzZ7DyaualpvEOjddSWUpNXyWokIvITYB0wW0TagP8FfAd4VERuAA4AHwcwxuwQkUeBt4AEcJsxJvUJcwv2CLAA8ITzA3A/8LCI7MauiVxXqmuZTLLl8xoths6tLOOmtc386XkN1AS9PLx5P+19EWZXlNGfI3/WcLkmMuYyPNU72GuTzK30530Mn9eNzzLp/Fm+TJl+lVInXckCiTHmk1meujzL9t8Gvp2hfCtwRobyCE4gmkmydVp3h3MPyd1wy3tYWBO008RjD+X9itM5n82s4Mj5IivmVbH3eIgjvdGCznt4qvfBWX3zsX5TC9UBL/XVgXTZZE2IqdRMM1k621UeNu5spzMUY3/nAOFYEgHiSYu2rgG6+nNXExbVlaeDSEo4lsw5lWTtitkjym5e24zPU3hNYLxDo1u7whmX5p2MCTGVmml0yMwUkeobiSbsFj8DxJJj7xL6n49tJzxK/8STO47yT8PKUmneP//gKxn3yTU1ZTxDo1NNY6kmPbCX5p2MWQOUmmk0kEwR6ze1EEskGWvsGD7Sq7VrYNR9BrLMF1m3ci6NtQFauwaGBA4DNNQGMu4zXuNtGlNKlY42bU0RBzr76R1LL7dj+EivfOSqXfzdVWcQdJI+pn6CPjd/d9WI7qyimOisAUqp7LRGMskZY+gOx5lT6edgd34BIJPhI73y4RK7JpPtwzroc2OZE6OogjmGEheDrjGi1OSkNZJJyhhDbyROa+cA7x7tY3/H+FKBDO+oHo1LYE5lWdZcWKlRVMvnVrJyfhXL51ZSHfDmnTtLKTV9aI1kEuqLxOkOx+kdiPPIKwd4dGsb0UQeybGyELE7pvOtiZT73MyuKKPS78k6Kqq1K0zNsHTyOopKqZlJA8kkkgog0USS3+44yv3P76WjP/s8j3wtrPan07+nOqory9z0RZMjls6dU+FjvjNXIxxLZB0VpaOolFIp2rQ1CfRF4rR2hjnWF+WVfZ188d9f5e9/8w4d/TF8HhefvjC/jMWZOsddAt+6+swRHdX/8snz+KsrllPp96T7NyrL3FQFvHmtpTKV1l5RSpWW1kgmyMad7dy9cQ8HOvuZXxXgilPnsnlvBy/s7khvc/nKudxwaRMLawL86KUDY3qdq86uT3dQD++oXrdyLl+6YsWQc1q/qYW2rjANTjLIbJ3bqfkk+W6vlJq+NJDkIVO23fF8YD755mG++au30jWB3cf6eK2tO/38afVV3PbepZxaX0Wl30tduS+v41YHPPRGEljGrolU+T0c6c2/aazQUVE6ikopBRpIRpWaUe51y5Bsu99k5Df80QzEknSGY3z/2RZcApF4koPdsXRKdq9buP3Klaw7ZQ4+j5s5lWX4Cxht1R9L4nW50mnW+2NJdh3tLegclVKqUBpIRpEt224hyQKjiSRd/fF0f8K+jhD9MXtmNti1h9qgF49LeN+p86gNeqkOeBm8cnCV365tjMblOrGCoGWZcaVRUUqpfGhn+yjGkywwlrBo741wsGuAcCzBnmMh/mbDG3QPJNJBpNrvYcmsIEGfh4W1QRpqA9QEfQxffv7GNU05X0sADFjGYDBYxoABn0ffYqVUaWmNZBRjGeYaS1h0D8QIOTWIzv4Y//bCPp7YfjjdjOXzuKgNeKkKeIgmLAzwpfctx+vO/MH/pStW8OjWVtqyzG5fWOMnaQy9A4l0evmqci9LZmVe+lYppYpFv66OopBhrqkaSFtXmFAkQTSe5McvHeCz97/Mf71pB5FFdUH+z8fO4H9/5DTqqwP0R5MsqA7wravOGLWp7FtXn8miuiA1AU96zXQR+Ng59Xzr6jPxut3Mr/ZzyrxK5lf78brdOhxXKVVyWiMZRT7DXGMJi+5wjFDUroEYY3jmnWP84LkWjjoLQFX5PXz+4iV85Kx6PG4XXreLj53fUFBn+mjnosNxlVITQWbAMudDrFq1ymzdurUoxxoeQADeOtTL3Rt389bhPgA8LuFj5y7kMxctotJvd6Bn6kxXSqnJTES2GWNWZXpOayRjkEhadIXjhKIn1ko/0hvhvuf28vTO9vR2lyybxRfXLmWhs0ZHwMlhla0fRCmlpiINJAVIJC26B+L0RU4EkHAswU9ebuVn29qIOYkVl8+t4NZ1Szm7sQYAj8tFbbmXSv/INdCVUmqq00CSh6Rl6A7H6B0UQJKW4cntR3jghb10he0Fp2ZV+LhxTRPvP20eLqfZqirgpS7oS8/vUEqp6UYDSQ5Jy9AzYKdztwb1Jb26v4u7n91DyzF7jZAyj4trL2jk2gsa03NO/F43syp8lHlKu9iTUkpNNA0kGVhOAOkZFkAOdIZZ/2wLm1tOJFb8wGnzuGFNE3MqywBwu4S6cp82YymlZgwNJIMYZ0Jf90CMpHUigPQMxHl4834ee/1QuvzMhVXcsm4pK+dXpbdLJVh0azOWUmoG0UBCalnbBD3hOAnrxEqE8aTFY68d4uEt++lzZqnXV/u5aW0za5fPTg/f9XlczK4oLMGiUkpNFzM6kBhj6Ism6O4fGkCMMbywu4P1m1o42D0A2MvPfuaixXzs3IXp/FUuEWqDPqqD2oyllJq5ZmwgSS1rG08OXQt919E+7nl2D6+19gB2Zt4/PmsB11+8mJrgiXVByss8zCr34dE5IUqpGW7GBRLLGNq6wuk5HykdoSj3P7+P3+w4kl7DfHVTHTevbaZpdnl6O4/LxexK35AkjkopNZPNuE/DRNIMCSKReJKfbWvjJy8fIBK3yxfPCnLruqVcsKQuvZ2IUOX3UKtzQpRSaogZF0hSLGN4emc7P9i0l2MhO7FiTcDL9U5ixcEjr8q8bmbrnBCllMpoygcSEbkSuBNwA/cZY74z2j7bD/Zw98Y97DxiJ1b0uoU/Pa+BT124iIqyE78Slwi15T6qA9qZrpRS2UzpQCIibuB7wPuBNuAVEXncGPNWtn0OdQ/wpUdeSz++bMUcvnBpEwtqAkO2C/o8zK7QznSllBrNlA4kwGpgtzGmBUBEHgGuArIGkr5oggrglHmV3LpuKWc2VA95XmemK6VUYaZ6IFkItA563AZcOHwjEbkJuMl5GNp/x0fe2Q/8FmYDx0t+lhNrJlwjzIzr1GucPqbidS7O9sRUDySZhk+NtWg0TQAABkFJREFUWKnLGHMvcO+InUW2ZluoZbqYCdcIM+M69Rqnj+l2nVO9A6ANaBz0uAE4NEHnopRSM9JUDySvAMtFpElEfMB1wOMTfE5KKTWjTOmmLWNMQkT+AvgN9vDfB4wxOwo4xIjmrmloJlwjzIzr1GucPqbVdYoxI7oUlFJKqbxN9aYtpZRSE0wDiVJKqXGZMYFERPaJyJsi8pqIbHXK6kTkdyKyy7mtnejzLJSIPCAi7SKyfVBZ1usSka+JyG4ReUdEPjgxZ12YLNf4tyJy0Hk/XxORDw96bipeY6OIPCMib4vIDhH5slM+bd7LHNc43d5Lv4i8LCKvO9f5v53yafNejmCMmRE/wD5g9rCyvwdud+7fDtwx0ec5hutaC5wHbB/tuoDTgNeBMqAJ2AO4J/oaxniNfwt8JcO2U/Ua64HznPuVwLvOtUyb9zLHNU6391KACue+F3gJuGg6vZfDf2ZMjSSLq4CHnPsPAVdP4LmMiTFmE9A5rDjbdV0FPGKMiRpj9gK7sdPMTGpZrjGbqXqNh40xrzr3+4C3sTM3TJv3Msc1ZjPlrhHA2ELOQ6/zY5hG7+VwMymQGOC3IrLNSZkCMM8YcxjsP3Jg7oSdXXFlu65MKWVy/SNPdn8hIm84TV+pZoIpf40isgQ4F/ub7LR8L4ddI0yz91JE3CLyGtAO/M4YM23fS5hZgeQSY8x5wIeA20Rk7USf0ATIK6XMFHEPsBQ4BzgM/F+nfEpfo4hUAP8B/KUxpjfXphnKpsR1ZrjGafdeGmOSxphzsLNtrBaRM3JsPmWvM2XGBBJjzCHnth34BXbV8aiI1AM4t+0Td4ZFle26pk1KGWPMUeef1QJ+wImmgCl7jSLixf6A/ZEx5udO8bR6LzNd43R8L1OMMd3ARuBKptl7OdiMCCQiUi4ilan7wAeA7djpVK53NrseeGxizrDosl3X48B1IlImIk3AcuDlCTi/cUv9Qzo+hv1+whS9RhER4H7gbWPMdwc9NW3ey2zXOA3fyzkiUuPcDwBXADuZRu/lCBPd238yfoBm7FERrwM7gP/hlM8Cfg/scm7rJvpcx3BtP8FuDohjf7O5Idd1Af8De1TIO8CHJvr8x3GNDwNvAm9g/yPWT/FrXIPdnPEG8Jrz8+Hp9F7muMbp9l6eBfzBuZ7twDec8mnzXg7/0RQpSimlxmVGNG0ppZQqHQ0kSimlxkUDiVJKqXHRQKKUUmpcNJAopZQaFw0kSpWYiCwQkQ0lfo1fp+YuKHWy6fBfpZRS46I1EqVyEJHPOGtLvCYi651kfCER+baz3sQWEZnnbLvUefyKiHxTREJO+ZLUWioi8nkR+bmIPOmsS/H3g17rAyKyWUReFZGfOTmphp9PvYhscs5nu4hc6pTvE5HZIvLFQet67BWRZ/I9tlJjpYFEqSxE5FTgWuyEn+cASeDTQDmwxRhzNrAJ+IKzy53AncaYC8idK+kc57hnAtc6Cz7NBr4OXGHs5KJbgb/KsO+ngN8453M29uzwNGPM953nLsDOAvDdAo6t1Jh4JvoElJrELgfOB16x00QRwE60FwN+5WyzDXi/c/89nFhj4v9v7455ogqiKI7/T0NBZShoaQyxNFBY2NhjYoEFJBbEmsIYGhq/gDYkNERjIibaGuw0aGVYpJBY8CG0gYpQmGMxg6zrPuPjLdKcX7LJ292Ze2eLzc2+2cx9BTxpiLtt+whA0gEwBVyhNDj6VHONATtD5u4Bz+vhh29s7w8ZA6WofbD9VtLtf4wdcS4pJBHNBLywvfrbi9KKzzYXf9D+e3TSd306X5S+FYsDuW4AG/XpI9tbtQXCHPBS0mPbmwNzlijFabnvc/wRO2JUcmsrotk2cFfSJPzquT31l/E9YL5eL7TM1QNuSrpac41Lmra9a/t6fWzV/N9sP6WcpDvTH0TSLLAC3HM5lr0xdsv1RTRKIYloYPuAsrfwTtJX4D2l73iTB8BDSZ/ruKMWub4DS8DrmqsHXBsy9BawL+kLpWitDby/DEwAH+uG+7MWsSPOJX//jRgRSePAsW1LWgAWbd+57HVFXLTskUSMziywXhs4HQL3L3k9Ef9FfpFEREQn2SOJiIhOUkgiIqKTFJKIiOgkhSQiIjpJIYmIiE5+AgketDp/VY2OAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1f11dc29b0>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>0.801118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.801118</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.801118\n",
"price 0.801118 1.000000"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1f11d24c50>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.000000</td>\n",
" <td>0.082269</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.082269</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.000000 0.082269\n",
"price 0.082269 1.000000"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1f11bdddd8>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1f11b60e48>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de5hddX3v8fcnyTSEUm6ZAcMMGkpiMVCNTUrxeCkSEwhewAoSH5XxNMd4KBJaWj1iPRXP0zyVthqfiQUFwQyghIC3iBlJDCDYxsRBYiABm1GijInJTLgYzMVcvueP9dvOnsnO3PasvWeSz+t59jNrf9f6rfVba/be3/1ba+3fTxGBmZnZYI2qdgXMzGxkcyIxM7OyOJGYmVlZnEjMzKwsTiRmZlaWMdWuQKXV1tbGxIkTq10NM7MR5bHHHuuMiLpS8466RDJx4kRaW1urXQ0zsxFF0i8ON8+ntszMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEYmZmZXEiMTOzsuT+OxJJo4FW4FcR8TZJNwAfBDrSIh+PiOVp2euBucABYH5EPJDi04DFwDhgOXBtRISkscAdwDRgB3BFRGzOe5/MzAaqqamJtra2AZVpb28HoKGhYcDbmzRpEvPnzx9wucGoRIvkWuCpHrGFETE1PQpJZAowBzgbuAi4KSUhgJuBecDk9LgoxecCz0fEJGAhcGOue2JmVkG7d+9m9+7d1a5Gn3JtkUhqAN4KLACu62PxS4AlEbEXeEZSG3CupM3A8RGxOq3zDuBSoCWVuSGVvw/4vCSFR+sys2FmMK2DQpmmpqahrs6QyrtF8jngo8DBHvEPS1ov6XZJJ6VYPfBs0TLtKVafpnvGu5WJiP3Ai8D4npWQNE9Sq6TWjo6OnrPNzKwMuSUSSW8DtkfEYz1m3QycCUwFtgKfKRQpsZroJd5bme6BiFsiYnpETK+rK9nnmJmZDVKeLZLXA+9Ip6aWABdIuisitkXEgYg4CNwKnJuWbwdOLyrfAGxJ8YYS8W5lJI0BTgCey2d3zMyslNwSSURcHxENETGR7CL6gxHxPkkTihZ7J/Bkml4GzJE0VtIZZBfV10bEVmCnpPMkCbgS+FZRmcY0fVnahq+PmJlVUDW6kf9XSVPJTkFtBj4EEBEbJC0FNgL7gasj4kAqcxVdt/+2pAfAbcCd6cL8c2QJy8zMKqgiiSQiHgYeTtPv72W5BWR3ePWMtwLnlIjvAS4fqnqamdnA+ZftZmZWFicSMzMrixOJmZmVxYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmw0BnZyfXXHMNO3bsqHZVzAbMicRsGGhubmb9+vU0NzdXuypmA+ZEYlZlnZ2dLF++nIhg+fLlbpXYiONEYlZlzc3N7N+/H4B9+/a5VWIjjhOJWZWtWLGCwugHEcEDDzxQ5RqZDYwTiVmVnXrqqb0+NxvunEjMqmzbtm29Pjcb7pxIzKps1qxZZIN/giQuvPDCKtfIbGByTySSRkt6XNL96fnJklZK2pT+nlS07PWS2iT9VNKFRfFpkp5I85rSkLukYXnvSfE1kibmvT9mQ62xsZGamhoAampqaGxs7KOE2fBSiRbJtcBTRc8/BqyKiMnAqvQcSVPIhso9G7gIuEnS6FTmZmAe2Tjuk9N8gLnA8xExCVgI3JjvrpgNvdraWmbPno0kLr74YsaPH1/tKpkNSK6JRFID8FbgS0XhS4DC/Y3NwKVF8SURsTcingHagHMlTQCOj4jVkd3ackePMoV13QfMKLRWzEaSxsZGXv3qV7s1YiNS3i2SzwEfBQ4WxU6NiK0A6e8pKV4PPFu0XHuK1afpnvFuZSJiP/AicMjXOUnzJLVKau3o6Ch3n8yGXG1tLYsWLXJrxEak3BKJpLcB2yPisf4WKRGLXuK9lekeiLglIqZHxPS6urp+VsfMzPpjTI7rfj3wDkkXA8cAx0u6C9gmaUJEbE2nrban5duB04vKNwBbUryhRLy4TLukMcAJwHN57ZCZmR0qtxZJRFwfEQ0RMZHsIvqDEfE+YBlQOBHcCHwrTS8D5qQ7sc4gu6i+Np3+2inpvHT948oeZQrruixt45AWiZmZ5SfPFsnhfBpYKmku8EvgcoCI2CBpKbAR2A9cHREHUpmrgMXAOKAlPQBuA+6U1EbWEplTqZ0wM7NMRRJJRDwMPJymdwAzDrPcAmBBiXgrcE6J+B5SIjIzs+rwL9vNzKwsTiRmZlYWJxIzMyuLE4mZmZXFicTMzMriRGI2DHR2dnLNNdd4vHYbkZxIzIaB5uZm1q9f7/HabUSqxg8SjxhNTU20tbUNuFx7e9YHZUNDQx9Ldjdp0iTmz58/4O3Z8NbZ2UlLSwsRQUtLC42Nje680UYUt0iqYPfu3ezevbva1bBhorm5mULPPgcPHnSrxEYct0jKMNjWQaFcU1PTUFbHRqiVK1eyb98+APbt28eKFSu47rrrqlwrs/5zi8SsymbOnNltzPZZs2ZVuUZmA+NEYlZlb3/7239/aisieMc73lHlGpkNjBOJWZV9+9vf7tYiWbZsWZVrZDYwTiRmVbZy5cpuLZIVK1ZUuUZmA+NEYlZlb3zjG7s9f9Ob3lSlmpgNTp5jth8jaa2kn0jaIOlTKX6DpF9JWpceFxeVuV5Sm6SfSrqwKD5N0hNpXlMaKZE0muI9Kb5G0sS89sfMzErLs0WyF7ggIl4DTAUuknRemrcwIqamx3IASVPIRjg8G7gIuEnS6LT8zcA8suF3J6f5AHOB5yNiErAQuDHH/THLxaOPPtrt+SOPPFKlmpgNTp5jtkdEvJSe1qRHb+OpXwIsiYi9EfEM0AacK2kCcHxErE7jsd8BXFpUpvDrrfuAGYXWitlIMXPmTMaMyX7SNWbMGN/+ayNOrtdIJI2WtA7YDqyMiDVp1oclrZd0u6STUqweeLaoeHuK1afpnvFuZSJiP/AicEjfEpLmSWqV1NrR0TFEe2c2NBobG39/19aoUaNobGysco3MBibXRBIRByJiKtBA1ro4h+w01Zlkp7u2Ap9Ji5dqSUQv8d7K9KzHLRExPSKm19XVDXAvzPJVW1tLfX323ei0005zP1s24lTkrq2IeAF4GLgoIralBHMQuBU4Ny3WDpxeVKwB2JLiDSXi3cpIGgOcADyX026Y5aKzs5MtW7KX9JYtW9yVvI04ed61VSfpxDQ9DngL8HS65lHwTuDJNL0MmJPuxDqD7KL62ojYCuyUdF66/nEl8K2iMoXzAJcBD0bhhnyzEaK408aIcKeNNuLk2SKZADwkaT3wI7JrJPcD/5pu5V0PvBn4O4CI2AAsBTYC3wWujogDaV1XAV8iuwD/M6AlxW8DxktqA64DPpbj/pjlolSnjWYjSW69/0bEeuC1JeLv76XMAmBBiXgrcE6J+B7g8vJqalZdM2fOZPny5ezbt4+amhrftWUjjn/ZblZlvmvLRjonErMqq62tZfbs2Uhi9uzZvmvLRhwPbGU2DDQ2NrJ582a3RmxEciIxGwZqa2tZtGhRtathNihOJGZmA9TU1ERbW1vu29m0aRMw+GG9B2rSpEmD2pYTiZnZALW1tbHhiac48dhTct3Owd9lN2H86mf5/0j1hV3bB13WicTMbBBOPPYU3nzWnGpXY8g89PSSQZd1IjEbYoM57dHenvVL2tDQ0MeShxrs6QizoeJEYjYM7N69u9pVMBs0JxKzITaY1kGhTFNT01BXxyx3/kGimZmVxYnEzMzK4kRiZmZlcSIxM7Oy+GJ7UqlfqkJlf63qW0PNLG9OJElbWxuPP7GRg8eenPu29LtsNLzHfvbrXLczapdHHTaz/OWWSCQdAzwCjE3buS8iPinpZOAeYCKwGXh3RDyfylwPzAUOAPMj4oEUnwYsBsYBy4FrIyIkjQXuAKYBO4ArImLzYOt88NiT2TPlbYMtPuwcs/H+alfBzI4CeV4j2QtcEBGvAaYCF0k6j2w43FURMRlYlZ4jaQowBzgbuAi4SdLotK6bgXlk47hPTvMhSzrPR8QkYCFwY477Y2ZmJeSWSCLzUnpakx4BXAI0p3gzcGmavgRYEhF7I+IZsvHZz5U0ATg+IlZHRJC1QIrLFNZ1HzBDhaHmzMysInK9a0vSaEnrgO3AyohYA5waEVsB0t9C95n1wLNFxdtTrD5N94x3KxMR+4EXgUOGl5M0T1KrpNaOjo6h2j0zMyPnRBIRByJiKtBA1ro4p5fFS7Ukopd4b2V61uOWiJgeEdPr6ur6qraZmQ1ARX5HEhEvAA+TXdvYlk5Xkf4WOsFvB04vKtYAbEnxhhLxbmUkjQFOAHyrkplZBeWWSCTVSToxTY8D3gI8DSwDCgNTNwLfStPLgDmSxko6g+yi+tp0+munpPPS9Y8re5QprOsy4MF0HcXMzCokzxbJBOAhSeuBH5FdI7kf+DQwU9ImYGZ6TkRsAJYCG4HvAldHxIG0rquAL5FdgP8Z0JLitwHjJbUB15HuADOzkauzs5NrrrmGHTvyHxXQhkZuvyOJiPXAa0vEdwAzDlNmAbCgRLwVOOT6SkTsAS4vu7JmNmw0Nzezfv16mpubue6666pdHesH97VlZsNGZ2cnLS0tRAQtLS1ulYwQTiRmNmw0NzdTuMx58OBBmpub+yhhw4ETiZkNGytXrmTfvn0A7Nu3jxUrVlS5RtYfTiRmNmzMnDmTmpoaAGpqapg1a1aVa2T94URiZsNGY2MjhV6ORo0aRWNjYx8lbDhwIjGzYaO2tpbZs2cjidmzZzN+/CE9Htkw5PFIzGxYaWxsZPPmzW6NjCD9TiSSXgFMjojvpV+qj4mInflVzcyORrW1tSxatKja1bAB6NepLUkfJOum/Ysp1AB8M69KmZnZyNHfayRXA68HfgMQEZvo6v7dzMyOYv1NJHsj4neFJ6mnXXeOaGZm/U4k35f0cWCcpJnAvcC386uWmZmNFP1NJB8DOoAngA8By4FP5FUpMzMbOfp719Y44PaIuBWyIXRTbFdeFTMzs5Ghvy2SVWSJo2Ac8L2hr46ZmY00/U0kx0TES4UnafrY3gpIOl3SQ5KekrRB0rUpfoOkX0lalx4XF5W5XlKbpJ9KurAoPk3SE2leUxopkTSa4j0pvkbSxP7vupmZDYX+JpLfSvqzwhNJ04DdfZTZD/x9RLwKOA+4WtKUNG9hRExNj+VpnVOAOcDZZGO735ROoQHcDMwjG353cpoPMBd4PiImAQuBG/u5P2ZmNkT6e43kb4F7JW1JzycAV/RWII21vjVN75T0FFDfS5FLgCURsRd4Jg2fe66kzcDxEbEaQNIdwKVkw+1eAtyQyt8HfF6SPG67mVnl9KtFEhE/As4iGzv9b4BXRcRj/d1IOuX0WmBNCn1Y0npJt0s6KcXqgWeLirWnWH2a7hnvViYi9gMvAof08iZpnqRWSa0dHR39rbaZmfVDr4lE0gXp718BbwdeSXZq6e0p1idJxwFfA/42In5DdprqTGAqWYvlM4VFSxSPXuK9lekeiLglIqZHxPS6urr+VNvMzPqpr1Nbfwk8SJZEegrg670VllRDlkS+EhFfB4iIbUXzbwXuT0/bgdOLijcAW1K8oUS8uEx7+rX9CcBzfeyTmZkNoV4TSUR8UtIooCUilg5kxenOqtuApyLis0XxCen6CcA7gSfT9DLgq5I+C5xG1vJZGxEHJO2UdB7ZqbErgUVFZRqB1cBlwIO+PmJmVll9XmyPiIOSPgwMKJGQdfL4fuAJSetS7OPAeyRNJWvRbCb7pTwRsUHSUmAj2R1fV0fEgVTuKmAx2e9XWtIDskR1Z7ow/xzZXV9mZlZB/b1ra6WkfwDuAX5bCEbEYU8jRcQPKH0NY3kvZRYAC0rEW4FzSsT3AJf3WnMzM8tVfxPJX5O1IP6mR/yPh7Y6ZmY20vQ3kUwhSyJvIEsojwJfyKtSZmY2cvQ3kTSTDWrVlJ6/J8XenUelzMxs5OhvIvmTiHhN0fOHJP0kjwqZmdnI0t++th5Pt98CIOkvgP/Mp0pmZjaS9DeR/AXwX5I2p76vVgN/mXrkXZ9b7eyI19nZyTXXXMOOHTuqXRUzG6T+ntq6qO9FzAauubmZ9evX09zczHXXXVft6pjZIPS308Zf9PbIu5J2ZOrs7KSlpYWIoKWlxa0SsxGqv6e2zIZcc3MzhR5tDh48SHNzc5VrZGaD4URiVbNy5Ur27dsHwL59+1ixYkWVa2Rmg+FEYlUzc+ZMampqAKipqWHWrFlVrpGZDYYTiVVNY2MjWSfRMGrUKBobG6tcIzMbDCcSq5ra2lpmz56NJGbPns348YcMbmlmI0B/b/81y0VjYyObN292a8RsBHMisaqqra1l0aJFfS9oZsOWT22ZmVlZckskkk6X9JCkpyRtkHRtip8saaWkTenvSUVlrpfUJumnki4sik9L3bG0SWpKw/giaayke1J8jaSJee2PmZmVlmeLZD/w9xHxKuA84GpJU4CPAasiYjKwKj0nzZsDnE3WJctNkkandd0MzCMbx30yXV22zAWej4hJwELgxhz3x8zMSsgtkUTE1oj4cZreCTwF1AOXkI1lQvp7aZq+BFgSEXsj4hmgDThX0gTg+IhYHdnPoO/oUaawrvuAGYXWipmZVUZFLranU06vBdYAp0bEVsiSjaRT0mL1wA+LirWn2L403TNeKPNsWtd+SS8C44HOHtufR9ai4eUvf/lQ7ZYVaWpqoq2tbcDl2tuzf21DQ8OAyk2aNIn58+cPeHtmQ6G9vZ0Xd+3koaeXVLsqQ+aFXduJ9t2DKpv7xXZJxwFfA/42In7T26IlYtFLvLcy3QMRt0TE9IiYXldX11eVrYJ2797N7t2De/Ga2fCQa4tEUg1ZEvlKRHw9hbdJmpBaIxOA7SneDpxeVLwB2JLiDSXixWXaJY0BTgCey2VnrFeDbR0UyjU1NfWxpNnw0dDQgPbu4M1nzal2VYbMQ08vob5hcD8KzvOuLQG3AU9FxGeLZi0DCr8+awS+VRSfk+7EOoPsovradBpsp6Tz0jqv7FGmsK7LgAej0J2smZlVRJ4tktcD7weekLQuxT4OfBpYKmku8EvgcoCI2CBpKbCR7I6vqyPiQCp3FbAYGAe0pAdkiepOSW1kLZEj5+uB2RFgMNfOBnvdDHztrFpySyQR8QNKX8MAmHGYMguABSXircA5JeJ7SInIzI4MvmY28riLFDPLzWBaB75uNvK4ixQzMyuLE4mZmZXFp7bMejHYH1oO1KZNm4DB30Y9UL4obUPJicSsF21tbTy+4XE4MecNHcz+PP6rx3PeEPBC/puwo4sTiVlfToSD5x+sdi2GzKiHfUbbhpZfUWZmVha3SJL29nZG7XqRYzbeX+2qDJlRu3bQ3r6/2tUwsyOcWyRmZlYWt0iShoYGtu0dw54pb6t2VYbMMRvvp6HhZdWuhpkd4dwiMTOzsjiRmJlZWZxIzMysLE4kZmZWFl9sN7N+cXcxdji5JRJJtwNvA7ZHxDkpdgPwQaAjLfbxiFie5l0PzAUOAPMj4oEUn0bXoFbLgWsjIiSNBe4ApgE7gCsiYnNe+2N2tGtra+PpdevI+z7AwmmSF9at63W5ofDr3LdwdMizRbIY+DzZh32xhRHx78UBSVPIRjc8GzgN+J6kV6YREm8G5gE/JEskF5GNkDgXeD4iJkmaA9wIXJHf7pjZy4C5hx2vbuS5DY/MPRRyu0YSEY+QDX/bH5cASyJib0Q8A7QB50qaABwfEavTWOx3AJcWlWlO0/cBM9KY7mZmVkHVuNj+YUnrJd0u6aQUqweeLVqmPcXq03TPeLcyEbEfeBEYX2qDkuZJapXU2tHRUWoRMzMbpEonkpuBM4GpwFbgMyleqiURvcR7K3NoMOKWiJgeEdPr6uoGVmMzM+tVRRNJRGyLiAMRcRC4FTg3zWoHTi9atAHYkuINJeLdykgaA5xA/0+lmZnZEKno7b+SJkTE1vT0ncCTaXoZ8FVJnyW72D4ZWBsRByTtlHQesAa4ElhUVKYRWA1cBjyYrqMM2qhdz1Wk91/t+Q0AcczxuW5n1K7nIPd7bMzsaJfn7b93A+cDtZLagU8C50uaSnYKajPwIYCI2CBpKbAR2A9cne7YAriKrtt/W9ID4DbgTkltZC2ROeXUd9KkSeUUH5BNm3YCMPnMvD/kX1bR/TKzo1NuiSQi3lMifFsvyy8AFpSItwLnlIjvAS4vp47FKvmDpMK2mpqaKrZNM7O8uIsUMzMrixOJmZmVxYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmZlYWj5Boh6jUSHhQ2dHwPBKeWT6cSOwQbW1t/PeTP+blxx3oe+Ey/cG+rFG8Z/OPct3OL18anev6zY5mTiRlGOw398F+C6/kN+qXH3eAT0x/qSLbqoR/bj2u2lUY8drb29nJkTWq4Fbgpfb2Ppez3jmRVMG4ceOqXQUzsyHjRFIGn2+3o0lDQwMvdHYecWO2n9jQ0PeC1isnErNetLe3w4sw6uEj6AbHF6A9fDrHhs4R9O4wM7NqcIvErBcNDQ10qIOD5x+sdlWGzKiHR9FQ79M5NnRya5FIul3SdklPFsVOlrRS0qb096SieddLapP0U0kXFsWnSXoizWuSpBQfK+meFF8jaWJe+2JmZoeX56mtxcBFPWIfA1ZFxGRgVXqOpClkQ+WencrcJKlw4//NwDyycdwnF61zLvB8REwCFgI35rYnZmZ2WLklkoh4hGws9WKXAM1puhm4tCi+JCL2RsQzQBtwrqQJwPERsToiArijR5nCuu4DZhRaK2ZmVjmVvth+akRsBUh/T0nxeuDZouXaU6w+TfeMdysTEfuBF4HxpTYqaZ6kVkmtHR0dQ7QrZmYGw+eurVItiegl3luZQ4MRt0TE9IiYXldXN8gqmplZKZW+a2ubpAkRsTWdttqe4u3A6UXLNQBbUryhRLy4TLukMcAJHHoqzcwsFy/s2s5DTy/JdRsv7XkegOOOOamPJcv3wq7t1Jc+qdOnSieSZUAj8On091tF8a9K+ixwGtlF9bURcUDSTknnAWuAK4FFPda1GrgMeDBdRzEzy9WkSZMqsp1Nm7LvxvVnDu4DfiDqGT/o/cotkUi6GzgfqJXUDnySLIEslTQX+CVwOUBEbJC0FNgI7AeujohC17NXkd0BNg5oSQ+A24A7JbWRtUTm5LUvZmbFKtU9UmE7TU1NFdneYOWWSCLiPYeZNeMwyy8AFpSItwLnlIjvISUiG1rt7e38dufoI6rH3F/sHM0fupdXs1wMl4vtZmY2QrmLFDtEQ0MDe/ZvPeLGIznGvbya5cKJxMysAgYzEF45Q1FXciA8JxKzvrxQgW7kC42/SlyWeoGun/UO0K/Jf4TEHelv/vcpZftzYgW2M1gjZRA8JxKzXlTuNs/sm+fk+sn5b6x+cPtVqWPRkY7FiZPzPxYnUrn9OpIHwnMiMeuFb/Ps4mNhh+O7tszMrCxOJGZmVhaf2jKz3BzJdypZFycSMxtWRsqdStbFicRK+uVLlekiZduu7OzqqcfmOyb6L18azStz3YKV4tbB0cGJxA5RqdshAX6XTmMcMzHfWz1fSWX3y+xo4kRih6jkt0jf6mk28vmuLTMzK4sTiZmZlaUqp7YkbQZ2AgeA/RExXdLJwD3ARGAz8O6IeD4tfz0wNy0/PyIeSPFpdA16tRy41qMkWrX5llc72lSzRfLmiJgaEdPT848BqyJiMrAqPUfSFLLRD88GLgJukjQ6lbkZmEc2NO/kNN9sxBk3bpxve7URazhdbL+EbGhegGbgYeD/pPiSiNgLPJOG1j03tWqOj4jVAJLuAC6layheq6DBfAuHwX8TH87fwodrvczyUq0WSQArJD0maV6KnRoRWwHS31NSvB54tqhse4rVp+me8UNImiepVVJrR0fHEO6GlcvfxM1Gvmq1SF4fEVsknQKslPR0L8uqRCx6iR8ajLgFuAVg+vTpvoaSA38LNzt6VaVFEhFb0t/twDeAc4FtkiYApL/b0+LtwOlFxRuALSneUCJuZmYVVPFEIukPJf1RYRqYBTwJLAMa02KNwLfS9DJgjqSxks4gu6i+Np3+2inpPEkCriwqY2ZmFVKNU1unAt/IPvsZA3w1Ir4r6UfAUklzgV8ClwNExAZJS4GNwH7g6og4kNZ1FV23/7bgC+1mZhWno+1nF9OnT4/W1tZqV8PMbESR9FjRzzW68S/bzcysLE4kZmZWFicSMzMrixOJmZmV5ai72C6pA/hFtesB1AKd1a7EMOFjkfFx6OJj0WW4HItXRERdqRlHXSIZLiS1Hu4OiKONj0XGx6GLj0WXkXAsfGrLzMzK4kRiZmZlcSKpnluqXYFhxMci4+PQxceiy7A/Fr5GYmZmZXGLxMzMyuJEYmZmZXEiGUYknSjpb4qenybpvjT9AUmfP0y5l3Kqz0RJTw5g+UslTeljmfMl3X+YeZsl1Q60niXWk8vxyNtAj7cNb0P9/yy8P3p+TgwHTiTDhKTRwInA718gEbElIi6rXq0G7FKg10RiZn2T1NsQH90+J4YDJ5Iikq6UtF7STyTdKekVklal2CpJL0/LLZbUJOm/JP1c0mUpfo+ki4vWt1jSuySNlvRvkn6U1vWhNP98SQ9J+irwBPBp4ExJ69LyPb/RnC7pu5J+KumTh9mHjxRt51NDcFhGS7pV0gZJKySNk/TBtI2fSPqapGMl/Q/gHcC/pfqfKWmSpO+l5X4s6cy0zuMk3SfpaUlfSQOTFXxE0tr0mJT26e2S1kh6PK3v1BQ/TtKXJT2R9vddPY5FraTVkt46BMeh39Lgbd9J+/2kpCskTZP0fUmPSXpAXaOBTkvLrQauLlrHREmPpuP243R8C6+Zh3s5fsOCpI9Kmp+mF0p6ME3PkHSXpJsltabX1aeKyl2c9usH6T12f4qfLOmb6f/8Q0mvTvEbJN2ejsnPC9scRvr1/oHff158VtJDwI2Sxqcyj0v6Il3Di/f8nFD6+2R6L1yR1ne+pEckfUPSRklfkJTPZ35E+JHduXY28FOgNj0/Gfg20Jie/zXwzTS9GLiXLBFPAdpS/J1Ac5r+A+BZss+vmtoAAAh5SURBVEG35gGfSPGxQCtwBnA+8FvgjDRvIvBkUZ1+/xz4ALAVGJ/W+SQwPc17Kf2dRXaroFLd7gfeVMYxmUg2mNjU9Hwp8D5gfNEy/wxcU3RcLiuatwZ4Z5o+Bjg27fOLZEMjjwJWA29Iy2wG/jFNXwncn6ZPousOw/8FfCZN3wh8rmh7JxWOB9kAamuAmVV4Lb0LuLXo+QnAfwF16fkVwO1pej3wl2n634r+38cCx6TpyUBrmj7s8RtOD+A84N40/SiwFqgBPgl8CDg5zRsNPAy8Or1Gni16P9xd9BpYBHwyTV8ArEvTN6RjO5asK5EdQE2197+M98/9wOj0vAn4pzT9ViDSPk6k++fEu4CV6VieSjYw4IT0WtkD/HGat5Ki9+dQPtwi6XIBcF9EdAJExHPA64Cvpvl3Am8oWv6bEXEwIjaS/fMgG6HxAkljgdnAIxGxm+wD/kpJ68g+3MaTfThANmzwM/2s48qI2JHW+fUe9SFtZxbwOPBj4Kyi7QzWMxGxLk0/RvYiPid9W34CeC9ZEu5G2XDK9RHxDYCI2BMRu9LstRHRHhEHgXVpnQV3F/19XZpuAB5I2/tI0fbeAvxHoWBEPJ8ma4BVwEcjYuWg9ro8TwBvkXSjpDcCpwPnACvTa+ATQIOkE4ATI+L7qdydReuoAW5N+3wv3U8Z9nb8hovHgGnpdbCXLOFNB95IlljeLenHZK/Vs8n27yzg50Xvh7uL1vcG0vGJiAeB8en4AXwnIvam9+52ut6Pw8FA3z/3RtcIsG8C7gKIiO8Az1PaG4C7I+JARGwDvg/8eZq3NiJ+ntZ5N4d+ZgyJagy1O1yJLOP3pnj+3h5liYg9kh4GLiT71nl30fxrIuKBbhuUzidrkfRXz/r1fC7gXyLiiwNYZ1+K9/MAWWtoMXBpRPxE0gfIvvn01Nvplp7rLH4dRonpRcBnI2JZOmY3FG2j1P9sP9mb9kKyN1VFRcR/S5oGXAz8C9k3wQ0R8bri5SSdyOFfc38HbANeQ9by2FM0r7fjNyxExD5Jm4H/SdZiWA+8GTgT2A38A/DnEfG8pMVkrZHeXjOl5hWO3XA+HgN9//T8POjPD/16O259fWYMCbdIuqwi+5Y0HrJzsmRvgDlp/nuBH/RjPUvI3jxvBAqJ4wHgKkk1ad2vlPSHJcruBP6ol3XPTOeKx5Fd2P7PHvMfAP5a0nFpO/WSTulHnQfqj4CtaX/eWxT/ff0j4jdAu6RLU13GFs4F9+GKor+r0/QJwK/SdGPRsiuADxeeSDopTQbZqcizJH2svzs1VCSdBuyKiLuAfwf+AqiT9Lo0v0bS2RHxAvCipMK3xOJjeQKwNbU63k92amKkeYQsYTxC1gr532QtqOPJPjBfVHa9a3Za/mngjyVNTM+v6LGu98Lvv4B1ptfYSHS4909Pxfs8m+wULxz6OfEIcIWya7F1ZC2ZtWneuZLOSNdGrqB/n2EDNpwyd1VFxAZJC4DvSzpA1uSeD9wu6SNAB1mC6MsK4A5gWUT8LsW+RNak/XG6MNpBlgh61mGHpP9UdoG9haLTNskPyJr3k4CvRkRrj/IrJL0KWJ2uv75Edk52ez/qPRD/l+wU3S/ITuMUXtRLyE7HzAcuI/sA/KKk/wfsAy7vx7rHSlpD9iXnPSl2A3CvpF8BPyS7vgTZ+eX/SMfrAPApslN+RMQBSXOAb0v6TUTcVMb+DtSfkt10cJBsv68iayU1pdMxY4DPARvIXlO3S9pF1xcPgJuAr0m6HHiIgbVch4tHgX8EVkfEbyXtAR5N38QfJ9v/n5O+EEXEbmW3tX5XUiddH4aQvQa+LGk9sIvuXyhGmsO9f3r6FHB3OgX4fbJrH6U+Jz5Kdhr4J2Rfoj4aEb+WdBbZl7FPk70mHwG+kccOuYsUMxs2JB0XES+lL1z/AWyKiIXVrtdIlFpu/xARb8t7Wz61ZWbDyQfTDQkbyE7vDeX1PsuJWyRmZlYWt0jMzKwsTiRmZlYWJxIzMyuLE4lZP6iMnlzVS4/HA1zPB9JvVPpabkh6UTbrLycSs5HjA0CficSs0pxIzPpvjKRmZT3Q3qes1+MZqXfWJ5T1QjsWQNJFSr3YAn+VYqMkbUq/Pi48b+vZeki/UF6srt5c/05ZD9PTga8o6/X1rZK+UVRmpqSv96ywpPcp60l5naQvKhuuwGxIOZGY9d+fALdExKuB3wDXkfWbdEVE/CnZL9avknQMcCvwdrKucl4GkLo7uYuubjHeAvyk0FFokalkHV6ek9b75Yi4j6zX6PdGxFRgOfCqQlIi+4X8l4tXkno5uAJ4fSpzgN675DAbFCcSs/57NiIK/ZvdBcwg6931v1Osmayfo7NSfFNkP9S6q2gdt5N1kQ9Zf2DdPvyTn5P1ObVI0kVkSaubtN47gfelzh9fR9ZdRrEZwDTgR+lHfjPIuhQ3G1Lua8us/wby692Sy0bEs5K2SbqArDPH96bTTY+lRZZFxD9Jeg1Z78VXA+8mSzo9fZlszJw9ZN2P7+8xX2Tj41w/gHqbDZhbJGb99/JCD75kHUp+D5ioNJIjWSeV3yfrxfYMdY0I+Z7uq+FLZK2UpWkMiQMRMTU9/ildMxkVEV8j6+Dvz1K5br2+RsQWYAvZ+CaLS9R3FXBZoQfo1HP0Kwa782aH40Ri1n9PAY2pB9qTgYVk1ybuVTZI0UHgCxGxh2xUzO+ki+2/6LGeZcBxlD6tBVAPPJxORy0GCi2KxcAX0oXzcSn2FbJTbht7riTFPgGsSHVeSTZyntmQcl9bZhUmaTqwMCLeOATr+jzweETcVn7NzAbH10jMKigNtHUVQ3D3lKTHyMYp+fty12VWDrdIzMysLL5GYmZmZXEiMTOzsjiRmJlZWZxIzMysLE4kZmZWlv8Pi7JOxTzT6oUAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1f11aa3390>"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1f11a1e160>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</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>...</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>diesel</th>\n",
" <th>gas</th>\n",
" <th>aspiration-std</th>\n",
" <th>aspiration-turbo</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\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>...</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",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>100.000000</td>\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>0.899108</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>...</td>\n",
" <td>10.164279</td>\n",
" <td>103.402985</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>8.044957</td>\n",
" <td>13207.129353</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" <td>0.820896</td>\n",
" <td>0.179104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>58.167861</td>\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>0.040933</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>...</td>\n",
" <td>4.004965</td>\n",
" <td>37.365650</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>1.840739</td>\n",
" <td>7947.066342</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" <td>0.384397</td>\n",
" <td>0.384397</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\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>0.799331</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>...</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>4.351852</td>\n",
" <td>5118.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>50.000000</td>\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>0.869565</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>...</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>6.911765</td>\n",
" <td>7775.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>100.000000</td>\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>0.904682</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>...</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>7.833333</td>\n",
" <td>10295.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>150.000000</td>\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>0.928094</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>...</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>9.400000</td>\n",
" <td>16500.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>200.000000</td>\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>1.000000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>...</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>14.687500</td>\n",
" <td>45400.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 21 columns</p>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 symboling normalized-losses wheel-base length \\\n",
"count 201.000000 201.000000 201.00000 201.000000 201.000000 \n",
"mean 100.000000 0.840796 122.00000 98.797015 0.837102 \n",
"std 58.167861 1.254802 31.99625 6.066366 0.059213 \n",
"min 0.000000 -2.000000 65.00000 86.600000 0.678039 \n",
"25% 50.000000 0.000000 101.00000 94.500000 0.801538 \n",
"50% 100.000000 1.000000 122.00000 97.000000 0.832292 \n",
"75% 150.000000 2.000000 137.00000 102.400000 0.881788 \n",
"max 200.000000 3.000000 256.00000 120.900000 1.000000 \n",
"\n",
" width height curb-weight engine-size bore ... \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 ... \n",
"mean 0.915126 0.899108 2555.666667 126.875622 3.330692 ... \n",
"std 0.029187 0.040933 517.296727 41.546834 0.268072 ... \n",
"min 0.837500 0.799331 1488.000000 61.000000 2.540000 ... \n",
"25% 0.890278 0.869565 2169.000000 98.000000 3.150000 ... \n",
"50% 0.909722 0.904682 2414.000000 120.000000 3.310000 ... \n",
"75% 0.925000 0.928094 2926.000000 141.000000 3.580000 ... \n",
"max 1.000000 1.000000 4066.000000 326.000000 3.940000 ... \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.402985 5117.665368 25.179104 8.044957 \n",
"std 4.004965 37.365650 478.113805 6.423220 1.840739 \n",
"min 7.000000 48.000000 4150.000000 13.000000 4.351852 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 6.911765 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 7.833333 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 9.400000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 14.687500 \n",
"\n",
" price diesel gas aspiration-std aspiration-turbo \n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 0.099502 0.900498 0.820896 0.179104 \n",
"std 7947.066342 0.300083 0.300083 0.384397 0.384397 \n",
"min 5118.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 7775.000000 0.000000 1.000000 1.000000 0.000000 \n",
"50% 10295.000000 0.000000 1.000000 1.000000 0.000000 \n",
"75% 16500.000000 0.000000 1.000000 1.000000 0.000000 \n",
"max 45400.000000 1.000000 1.000000 1.000000 1.000000 \n",
"\n",
"[8 rows x 21 columns]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>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",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</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>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>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>153</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make num-of-doors body-style drive-wheels engine-location \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 5 3 2 \n",
"top toyota four sedan fwd front \n",
"freq 32 115 94 118 198 \n",
"\n",
" engine-type num-of-cylinders fuel-system horsepower-binned \n",
"count 201 201 201 201 \n",
"unique 6 7 8 3 \n",
"top ohc four mpfi Low \n",
"freq 145 157 92 153 "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <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": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>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": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>hatchback</td>\n",
" <td>7603.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>12647.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4wd</td>\n",
" <td>wagon</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>fwd</td>\n",
" <td>hardtop</td>\n",
" <td>8249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>8396.387755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9811.800000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>23949.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>hardtop</td>\n",
" <td>24202.714286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>14337.777778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21711.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 4wd hatchback 7603.000000\n",
"1 4wd sedan 12647.333333\n",
"2 4wd wagon 9095.750000\n",
"3 fwd convertible 11595.000000\n",
"4 fwd hardtop 8249.000000\n",
"5 fwd hatchback 8396.387755\n",
"6 fwd sedan 9811.800000\n",
"7 fwd wagon 9997.333333\n",
"8 rwd convertible 23949.600000\n",
"9 rwd hardtop 24202.714286\n",
"10 rwd hatchback 14337.777778\n",
"11 rwd sedan 21711.833333\n",
"12 rwd wagon 16994.222222"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_gptest2=df[['body-style','price']]\n",
"gptest_bodystyle=df_gptest2.groupby(['body-style'],as_index=False).mean()\n",
"gptest_bodystyle"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</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>...</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>diesel</th>\n",
" <th>gas</th>\n",
" <th>aspiration-std</th>\n",
" <th>aspiration-turbo</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Unnamed: 0</th>\n",
" <td>1.000000</td>\n",
" <td>-0.162764</td>\n",
" <td>-0.241092</td>\n",
" <td>0.125517</td>\n",
" <td>0.161848</td>\n",
" <td>0.043976</td>\n",
" <td>0.252015</td>\n",
" <td>0.064820</td>\n",
" <td>-0.047764</td>\n",
" <td>0.244734</td>\n",
" <td>...</td>\n",
" <td>0.144301</td>\n",
" <td>-0.022505</td>\n",
" <td>-0.195662</td>\n",
" <td>0.027956</td>\n",
" <td>-0.078346</td>\n",
" <td>-0.118214</td>\n",
" <td>0.121454</td>\n",
" <td>-0.121454</td>\n",
" <td>-0.082739</td>\n",
" <td>0.082739</td>\n",
" </tr>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>-0.162764</td>\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>...</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075810</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>-0.029807</td>\n",
" <td>-0.082391</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" <td>0.054615</td>\n",
" <td>-0.054615</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>-0.241092</td>\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>...</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217300</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>0.181189</td>\n",
" <td>0.133999</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" <td>0.006911</td>\n",
" <td>-0.006911</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>0.125517</td>\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>...</td>\n",
" <td>0.250313</td>\n",
" <td>0.371178</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>0.577576</td>\n",
" <td>0.584642</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.256889</td>\n",
" <td>0.256889</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>0.161848</td>\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>...</td>\n",
" <td>0.159733</td>\n",
" <td>0.579795</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>0.707108</td>\n",
" <td>0.690628</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.230085</td>\n",
" <td>0.230085</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>0.043976</td>\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>...</td>\n",
" <td>0.189867</td>\n",
" <td>0.615056</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>0.736728</td>\n",
" <td>0.751265</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.305732</td>\n",
" <td>0.305732</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>0.252015</td>\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>...</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087001</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>0.084301</td>\n",
" <td>0.135486</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.090336</td>\n",
" <td>0.090336</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>0.064820</td>\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>...</td>\n",
" <td>0.156433</td>\n",
" <td>0.757981</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>0.836921</td>\n",
" <td>0.834415</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.321955</td>\n",
" <td>0.321955</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.047764</td>\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>...</td>\n",
" <td>0.028889</td>\n",
" <td>0.822668</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>0.783465</td>\n",
" <td>0.872335</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.110040</td>\n",
" <td>0.110040</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>0.244734</td>\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>...</td>\n",
" <td>0.001263</td>\n",
" <td>0.566903</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>0.559112</td>\n",
" <td>0.543155</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.227816</td>\n",
" <td>0.227816</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.162490</td>\n",
" <td>-0.008153</td>\n",
" <td>0.055045</td>\n",
" <td>0.158018</td>\n",
" <td>0.123952</td>\n",
" <td>0.188822</td>\n",
" <td>-0.060663</td>\n",
" <td>0.167438</td>\n",
" <td>0.205928</td>\n",
" <td>-0.055390</td>\n",
" <td>...</td>\n",
" <td>0.187871</td>\n",
" <td>0.098128</td>\n",
" <td>-0.063561</td>\n",
" <td>-0.033956</td>\n",
" <td>0.047089</td>\n",
" <td>0.082269</td>\n",
" <td>0.241064</td>\n",
" <td>-0.241064</td>\n",
" <td>-0.218233</td>\n",
" <td>0.218233</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.144301</td>\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>...</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214489</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>-0.223361</td>\n",
" <td>0.071107</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" <td>-0.307522</td>\n",
" <td>0.307522</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>-0.022505</td>\n",
" <td>0.075810</td>\n",
" <td>0.217300</td>\n",
" <td>0.371178</td>\n",
" <td>0.579795</td>\n",
" <td>0.615056</td>\n",
" <td>-0.087001</td>\n",
" <td>0.757981</td>\n",
" <td>0.822668</td>\n",
" <td>0.566903</td>\n",
" <td>...</td>\n",
" <td>-0.214489</td>\n",
" <td>1.000000</td>\n",
" <td>0.107884</td>\n",
" <td>-0.822192</td>\n",
" <td>0.840627</td>\n",
" <td>0.809607</td>\n",
" <td>-0.169030</td>\n",
" <td>0.169030</td>\n",
" <td>-0.251159</td>\n",
" <td>0.251159</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>-0.195662</td>\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>...</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107884</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>0.017694</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" <td>0.190057</td>\n",
" <td>-0.190057</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>0.027956</td>\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>...</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822192</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>-0.909024</td>\n",
" <td>-0.686571</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" <td>0.189237</td>\n",
" <td>-0.189237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>-0.078346</td>\n",
" <td>-0.029807</td>\n",
" <td>0.181189</td>\n",
" <td>0.577576</td>\n",
" <td>0.707108</td>\n",
" <td>0.736728</td>\n",
" <td>0.084301</td>\n",
" <td>0.836921</td>\n",
" <td>0.783465</td>\n",
" <td>0.559112</td>\n",
" <td>...</td>\n",
" <td>-0.223361</td>\n",
" <td>0.840627</td>\n",
" <td>0.017694</td>\n",
" <td>-0.909024</td>\n",
" <td>1.000000</td>\n",
" <td>0.801118</td>\n",
" <td>-0.158091</td>\n",
" <td>0.158091</td>\n",
" <td>-0.210720</td>\n",
" <td>0.210720</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.118214</td>\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>...</td>\n",
" <td>0.071107</td>\n",
" <td>0.809607</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>0.801118</td>\n",
" <td>1.000000</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" <td>-0.179578</td>\n",
" <td>0.179578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>0.121454</td>\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>...</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169030</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>-0.158091</td>\n",
" <td>0.110326</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-0.408228</td>\n",
" <td>0.408228</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>-0.121454</td>\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>...</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169030</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>0.158091</td>\n",
" <td>-0.110326</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.408228</td>\n",
" <td>-0.408228</td>\n",
" </tr>\n",
" <tr>\n",
" <th>aspiration-std</th>\n",
" <td>-0.082739</td>\n",
" <td>0.054615</td>\n",
" <td>0.006911</td>\n",
" <td>-0.256889</td>\n",
" <td>-0.230085</td>\n",
" <td>-0.305732</td>\n",
" <td>-0.090336</td>\n",
" <td>-0.321955</td>\n",
" <td>-0.110040</td>\n",
" <td>-0.227816</td>\n",
" <td>...</td>\n",
" <td>-0.307522</td>\n",
" <td>-0.251159</td>\n",
" <td>0.190057</td>\n",
" <td>0.189237</td>\n",
" <td>-0.210720</td>\n",
" <td>-0.179578</td>\n",
" <td>-0.408228</td>\n",
" <td>0.408228</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>aspiration-turbo</th>\n",
" <td>0.082739</td>\n",
" <td>-0.054615</td>\n",
" <td>-0.006911</td>\n",
" <td>0.256889</td>\n",
" <td>0.230085</td>\n",
" <td>0.305732</td>\n",
" <td>0.090336</td>\n",
" <td>0.321955</td>\n",
" <td>0.110040</td>\n",
" <td>0.227816</td>\n",
" <td>...</td>\n",
" <td>0.307522</td>\n",
" <td>0.251159</td>\n",
" <td>-0.190057</td>\n",
" <td>-0.189237</td>\n",
" <td>0.210720</td>\n",
" <td>0.179578</td>\n",
" <td>0.408228</td>\n",
" <td>-0.408228</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>21 rows × 21 columns</p>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 symboling normalized-losses wheel-base \\\n",
"Unnamed: 0 1.000000 -0.162764 -0.241092 0.125517 \n",
"symboling -0.162764 1.000000 0.466264 -0.535987 \n",
"normalized-losses -0.241092 0.466264 1.000000 -0.056661 \n",
"wheel-base 0.125517 -0.535987 -0.056661 1.000000 \n",
"length 0.161848 -0.365404 0.019424 0.876024 \n",
"width 0.043976 -0.242423 0.086802 0.814507 \n",
"height 0.252015 -0.550160 -0.373737 0.590742 \n",
"curb-weight 0.064820 -0.233118 0.099404 0.782097 \n",
"engine-size -0.047764 -0.110581 0.112360 0.572027 \n",
"bore 0.244734 -0.140019 -0.029862 0.493244 \n",
"stroke -0.162490 -0.008153 0.055045 0.158018 \n",
"compression-ratio 0.144301 -0.182196 -0.114713 0.250313 \n",
"horsepower -0.022505 0.075810 0.217300 0.371178 \n",
"peak-rpm -0.195662 0.279740 0.239543 -0.360305 \n",
"city-mpg 0.027956 -0.035527 -0.225016 -0.470606 \n",
"highway-mpg -0.078346 -0.029807 0.181189 0.577576 \n",
"price -0.118214 -0.082391 0.133999 0.584642 \n",
"diesel 0.121454 -0.196735 -0.101546 0.307237 \n",
"gas -0.121454 0.196735 0.101546 -0.307237 \n",
"aspiration-std -0.082739 0.054615 0.006911 -0.256889 \n",
"aspiration-turbo 0.082739 -0.054615 -0.006911 0.256889 \n",
"\n",
" length width height curb-weight engine-size \\\n",
"Unnamed: 0 0.161848 0.043976 0.252015 0.064820 -0.047764 \n",
"symboling -0.365404 -0.242423 -0.550160 -0.233118 -0.110581 \n",
"normalized-losses 0.019424 0.086802 -0.373737 0.099404 0.112360 \n",
"wheel-base 0.876024 0.814507 0.590742 0.782097 0.572027 \n",
"length 1.000000 0.857170 0.492063 0.880665 0.685025 \n",
"width 0.857170 1.000000 0.306002 0.866201 0.729436 \n",
"height 0.492063 0.306002 1.000000 0.307581 0.074694 \n",
"curb-weight 0.880665 0.866201 0.307581 1.000000 0.849072 \n",
"engine-size 0.685025 0.729436 0.074694 0.849072 1.000000 \n",
"bore 0.608971 0.544885 0.180449 0.644060 0.572609 \n",
"stroke 0.123952 0.188822 -0.060663 0.167438 0.205928 \n",
"compression-ratio 0.159733 0.189867 0.259737 0.156433 0.028889 \n",
"horsepower 0.579795 0.615056 -0.087001 0.757981 0.822668 \n",
"peak-rpm -0.285970 -0.245800 -0.309974 -0.279361 -0.256733 \n",
"city-mpg -0.665192 -0.633531 -0.049800 -0.749543 -0.650546 \n",
"highway-mpg 0.707108 0.736728 0.084301 0.836921 0.783465 \n",
"price 0.690628 0.751265 0.135486 0.834415 0.872335 \n",
"diesel 0.211187 0.244356 0.281578 0.221046 0.070779 \n",
"gas -0.211187 -0.244356 -0.281578 -0.221046 -0.070779 \n",
"aspiration-std -0.230085 -0.305732 -0.090336 -0.321955 -0.110040 \n",
"aspiration-turbo 0.230085 0.305732 0.090336 0.321955 0.110040 \n",
"\n",
" bore ... compression-ratio horsepower peak-rpm \\\n",
"Unnamed: 0 0.244734 ... 0.144301 -0.022505 -0.195662 \n",
"symboling -0.140019 ... -0.182196 0.075810 0.279740 \n",
"normalized-losses -0.029862 ... -0.114713 0.217300 0.239543 \n",
"wheel-base 0.493244 ... 0.250313 0.371178 -0.360305 \n",
"length 0.608971 ... 0.159733 0.579795 -0.285970 \n",
"width 0.544885 ... 0.189867 0.615056 -0.245800 \n",
"height 0.180449 ... 0.259737 -0.087001 -0.309974 \n",
"curb-weight 0.644060 ... 0.156433 0.757981 -0.279361 \n",
"engine-size 0.572609 ... 0.028889 0.822668 -0.256733 \n",
"bore 1.000000 ... 0.001263 0.566903 -0.267392 \n",
"stroke -0.055390 ... 0.187871 0.098128 -0.063561 \n",
"compression-ratio 0.001263 ... 1.000000 -0.214489 -0.435780 \n",
"horsepower 0.566903 ... -0.214489 1.000000 0.107884 \n",
"peak-rpm -0.267392 ... -0.435780 0.107884 1.000000 \n",
"city-mpg -0.582027 ... 0.331425 -0.822192 -0.115413 \n",
"highway-mpg 0.559112 ... -0.223361 0.840627 0.017694 \n",
"price 0.543155 ... 0.071107 0.809607 -0.101616 \n",
"diesel 0.054458 ... 0.985231 -0.169030 -0.475812 \n",
"gas -0.054458 ... -0.985231 0.169030 0.475812 \n",
"aspiration-std -0.227816 ... -0.307522 -0.251159 0.190057 \n",
"aspiration-turbo 0.227816 ... 0.307522 0.251159 -0.190057 \n",
"\n",
" city-mpg highway-mpg price diesel gas \\\n",
"Unnamed: 0 0.027956 -0.078346 -0.118214 0.121454 -0.121454 \n",
"symboling -0.035527 -0.029807 -0.082391 -0.196735 0.196735 \n",
"normalized-losses -0.225016 0.181189 0.133999 -0.101546 0.101546 \n",
"wheel-base -0.470606 0.577576 0.584642 0.307237 -0.307237 \n",
"length -0.665192 0.707108 0.690628 0.211187 -0.211187 \n",
"width -0.633531 0.736728 0.751265 0.244356 -0.244356 \n",
"height -0.049800 0.084301 0.135486 0.281578 -0.281578 \n",
"curb-weight -0.749543 0.836921 0.834415 0.221046 -0.221046 \n",
"engine-size -0.650546 0.783465 0.872335 0.070779 -0.070779 \n",
"bore -0.582027 0.559112 0.543155 0.054458 -0.054458 \n",
"stroke -0.033956 0.047089 0.082269 0.241064 -0.241064 \n",
"compression-ratio 0.331425 -0.223361 0.071107 0.985231 -0.985231 \n",
"horsepower -0.822192 0.840627 0.809607 -0.169030 0.169030 \n",
"peak-rpm -0.115413 0.017694 -0.101616 -0.475812 0.475812 \n",
"city-mpg 1.000000 -0.909024 -0.686571 0.265676 -0.265676 \n",
"highway-mpg -0.909024 1.000000 0.801118 -0.158091 0.158091 \n",
"price -0.686571 0.801118 1.000000 0.110326 -0.110326 \n",
"diesel 0.265676 -0.158091 0.110326 1.000000 -1.000000 \n",
"gas -0.265676 0.158091 -0.110326 -1.000000 1.000000 \n",
"aspiration-std 0.189237 -0.210720 -0.179578 -0.408228 0.408228 \n",
"aspiration-turbo -0.189237 0.210720 0.179578 0.408228 -0.408228 \n",
"\n",
" aspiration-std aspiration-turbo \n",
"Unnamed: 0 -0.082739 0.082739 \n",
"symboling 0.054615 -0.054615 \n",
"normalized-losses 0.006911 -0.006911 \n",
"wheel-base -0.256889 0.256889 \n",
"length -0.230085 0.230085 \n",
"width -0.305732 0.305732 \n",
"height -0.090336 0.090336 \n",
"curb-weight -0.321955 0.321955 \n",
"engine-size -0.110040 0.110040 \n",
"bore -0.227816 0.227816 \n",
"stroke -0.218233 0.218233 \n",
"compression-ratio -0.307522 0.307522 \n",
"horsepower -0.251159 0.251159 \n",
"peak-rpm 0.190057 -0.190057 \n",
"city-mpg 0.189237 -0.189237 \n",
"highway-mpg -0.210720 0.210720 \n",
"price -0.179578 0.179578 \n",
"diesel -0.408228 0.408228 \n",
"gas 0.408228 -0.408228 \n",
"aspiration-std 1.000000 -1.000000 \n",
"aspiration-turbo -1.000000 1.000000 \n",
"\n",
"[21 rows x 21 columns]"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8096068016571052 with a P-value of P = 6.273536270651004e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8011176263981975 with a P-value of P = 3.0467845810412534e-46\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 60,
"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": 61,
"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": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". "
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>."
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/DA0101EN_edx_link_Notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment