Skip to content

Instantly share code, notes, and snippets.

@abhiray92
Created March 11, 2019 10:36
Show Gist options
  • Save abhiray92/e2d5805984a32ec74450c98367bfb7e4 to your computer and use it in GitHub Desktop.
Save abhiray92/e2d5805984a32ec74450c98367bfb7e4 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/corsera_da0101en_notebook_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": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 4,
"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": 5,
"metadata": {
"collapsed": 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": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": 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>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_relate=df[['bore','stroke','compression-ratio','horsepower']].corr()\n",
"df_relate\n"
]
},
{
"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": 28,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 55843.65804087087)"
]
},
"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": [
"# 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": 29,
"metadata": {
"collapsed": 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": 29,
"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": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f115c06ca20>"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAEKCAYAAADJvIhZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl83NV96P3Pd3aNFmsd23i3sS1BAgTMlhDiWE5i0tssLWmhbcLtDRdumjZpe5NC7vM0bWnv84SnSxJu2xSScEN6m1BKF2iahGAZYyBsZjFgJC94kzeNJGuf/fc7zx+/38gjWctYI82M5O/79dLLmjO/GR2NpfnqnPM93yPGGJRSSqli8JS6A0oppS4cGnSUUkoVjQYdpZRSRaNBRymlVNFo0FFKKVU0GnSUUkoVjQYdpZRSRaNBRymlVNFo0FFKKVU0vlJ3oNw0Njaa1atXl7obSik1r7zyyis9xpim6a7ToDPO6tWr2b17d6m7oZRS84qIHM3nOp1eU0opVTQadJRSShWNBh2llFJFo0FHKaVU0WjQUUopVTSavTYLdnZEuX/XITr7YqyoC3PnjWvZ3BwpdbeUUqrs6EinQDs7onz18b1EhxLUVviJDiX46uN72dkRLXXXlFKq7GjQKdD9uw7h9wrhgA8R51+/V7h/16FSd00ppcqOBp0CdfbFqPB7x7RV+L0c74uVqEdKKVW+NOgUaEVdmHjaGtMWT1ssrwuXqEdKKVW+NOgU6M4b15K2DLFUBmOcf9OW4c4b15a6a0opVXY06BRoc3OEez52KZHqEAPxNJHqEPd87FLNXlNKqQloyvQs2Nwc0SCjlFJ50JGOUkqpotGgo5RSqmg06CillCoaDTpKKaWKRoOOUkqpotGgo5RSqmg0ZVpplWylVNHoSOcCp1WylVLFpCOdWTCfRwq5VbIBwgEfsVSG+3cdmjffg1Jq/tCRToHm+0hBq2QrpYqp5EFHRLwi8pqI/Mi9vUZEXhSRAyLyjyIScNuD7u2D7v2rc57jK277PhH5SE77NrftoIjcPRf9n+/n6WiVbKVUMZU86ABfBNpzbt8LfN0Ysx7oAz7rtn8W6DPGXAx83b0OEbkEuAW4FNgG/K0byLzA3wA3AZcAt7rXzqr5PlLQKtlKqWIqadARkeXALwDfcW8LsAV41L3kIeAT7ucfd2/j3t/qXv9x4GFjTNIYcxg4CFzjfhw0xhwyxqSAh91rZ9V8HylolWylVDGVOpHgG8AfANXu7Qag3xiTcW8fB5a5ny8DOgGMMRkRGXCvXwa8kPOcuY/pHNd+7Wx/A3feuJavPr6XWCpDhd9LPG3Nu5GCVslWShVLyUY6IvKfgKgx5pXc5gkuNdPcd77tE/XlDhHZLSK7u7u7p+j1uXSkoJRS+SvlSOd9wMdE5KNACKjBGfnUiojPHe0sB0661x8HVgDHRcQHLALO5LRn5T5msvYxjDEPAA8AbNq0acLANBUdKSilVH5KNtIxxnzFGLPcGLMaJxFghzHm14GngJvdy24DHnM/f9y9jXv/DmOMcdtvcbPb1gDrgZeAl4H1bjZcwP0ajxfhW1NKKTWJUq/pTOQu4GER+TPgNeC7bvt3gb8XkYM4I5xbAIwxe0XkEeBtIAN83hhjAYjIbwNPAF7gQWPM3qJ+J0oppcYQZ7CgsjZt2mR2795d6m4opdS8IiKvGGM2TXddOezTUUopdYHQoKOUUqpoynFNRy0w87kgqlJqdmnQWQDK+U09WxDV75UxBVHvgbLpo1KqeHR6bZ4r9yrX870gqlJqdmnQmefK/U19vhdEVUrNLp1eK4K5nP7q7ItRW+Ef01ZOb+or6sJEhxKjh8TB/CqIqpSaXTrSmWOzMf21syPKrQ+8wA337uDWB14Y89hyr3KtRycopXJp0JljhU5/TRe0yv1NXQuiKqVy6fTaHMtn+muq6bfcoAUQDviIpTLcv+vQaKHRe9zrjvfFWF5m2WugBVGVUmdp0Jlj061pTJdSnE/Q0jd1pdR8odNrc2y66a/ppt/Kfc1GKaXOh4505th001+dfTG8Aoe6h0lZNgGvh8aqwOhIZiGcTFrOm1eVUsWlQacIppr+qg76OBAdxusRvB4hYxtO9CdYH6kafWy5r9lMRSsSKKVyadApsdGjJbInTJhx7czvNZvpEiGUUhcWXdMpseGUxbLaED6vYBmDzyssqw0xkrKmf/A8oBUJlFK5dKRTYtnstrVNVaNtsVSGSHWohL2aPVqRQCmVS0c6JVbumzsLtdC/P6XU+dGgU2ILfcf+5uYIN1+5jO6hJO2nh+geSnLzlcsWzPenlDo/Or1WBqZLFJjPKcc7O6I8+uoJmqqDrHRTvh999QSXLa+dN9+DUmr26EinzJX7eTnTKfejF5RSxaVBp8zN9zftzr4YGcvmUPcwHacHOdQ9TMayNXtNqQuUBp0yN99TjquDPk70J8jYZszm16qgzuwqdSHSoFPm5nvttTGbX7MfjN38qpS6cGjQKXPFSDme6pC4Qi30za9KqfOjQafMzXVK9VwnKqyoC+PzeljbVEXzkhrWNlXh83rmzUhNKTW7ShZ0RCQkIi+JyB4R2Ssif+K2rxGRF0XkgIj8o4gE3Page/uge//qnOf6itu+T0Q+ktO+zW07KCJ3F/t7nC2bmyP88I7reOauLfzwjutmNdV4rhMVdHOoUipXKUc6SWCLMeZy4Apgm4hcB9wLfN0Ysx7oAz7rXv9ZoM8YczHwdfc6ROQS4BbgUmAb8Lci4hURL/A3wE3AJcCt7rUqx1wnKiz0za9KqfNTshQi46wkD7s3/e6HAbYAv+a2PwT8MfAt4OPu5wCPAn8tIuK2P2yMSQKHReQgcI173UFjzCEAEXnYvfbtqfplX2AL3MWojTafq2QrpWZXSdd03BHJ60AUeBJ4B+g3xmTcS44Dy9zPlwGdAO79A0BDbvu4x0zWPlE/7hCR3SKyuyvaTeeZGAPx9AWRYaXTX0qpYipp0DHGWMaYK4DlOKOTlokuc/+VSe473/aJ+vGAMWaTMWZTfUMjacumdzjJ0d4YvcNJ0pY9/TczT+n0l1KqmMpih54xpl9EdgLXAbUi4nNHM8uBk+5lx4EVwHER8QGLgDM57Vm5j5msPS+2MQzE0wzE04QDPmoqfGOmoRYKnf5SShVLKbPXmkSk1v28AtgKtANPATe7l90GPOZ+/rh7G/f+He660OPALW522xpgPfAS8DKw3s2GC+AkGzw+0/7GUhlODyScqbdYGtte+FNvs2Uu9wEppeaXUv7ZvhR4yM0y8wCPGGN+JCJvAw+LyJ8BrwHfda//LvD3bqLAGZwggjFmr4g8gpMgkAE+b4yxAETkt4EnAC/woDFmb6GdTls2vSNJ+mIpqkI+akJ+Aj7d7jSZnR1RvvToHoaTGSzb0DOc5EuP7uEvbr5cR1dKXYDkQlgsPx/vvuJK89iTu87rMQt56q1Q277+NAe7R/CKIALGgGUMFzdV8tPf+0Cpu6eUmiUi8ooxZtN01+m75CyIpTLEUhn8Xg+Lwn6qg85GSwWHe2N4BDwe5/UQAWMbDvfOj4KlSqnZpUFnFqUtm56hJH0jKapDfmpCPnxenXpTSqksfUecA5Zt6I+l6OyLEx1KkMxcuMUt1zZWYhsnE9BgsI3BNk67UurCo0FnnNlc4zLGMJzIcKIvzsn+OCPJzPQPWmDu2tZMXdiPABnLRoC6sJ+7tjWXumtKqRLQoDPOO90j/MUT+3j1WB/WLKZFJ9IWXYMXXsr15uYIf37z5bxnZR1LF1XwnpV1/Llmril1wdLstXGCS9ebpbd9A4CGqgBbNkZobYmwPlI1q8kBHhGqQz5qKvz4dd1HKTXP5Zu9pkFnnBUb3mXe/fm/5e1TQ2Pb6ypobYnQ2rKYZbUVs/o1K4M+FlX4CY2r9qyUUvOFBp0Zyu7TOdEfZ0dHlLb2KMfOjE3vbVlaTWtzhM0bI9RXBmbtawf9XmpCPqoWWMr1zo4o9+86RGdfjBV1Ye68ca1Orym1wGjQmaHxm0ONMRyMDrO9PcpT+6L0DKdG7/MIXLmyjq0tEd53cSOVwdnJQPd5PNRU+KgO+fF65nfwyZ5M6vcKFX4v8bRF2jJaVFSpBUaDzgxNVZHAsg1vnhhge3sXu/b3MJyTjRbwebh+bQOtzRGuWVM/K6VxRIQqd+ptvpbaufWBF845ryeWyhCpDvHDO64rYc+UUrNJKxLMAa9HuGJFLVesqOULW9bz0uEztHVE+fk7PaQyNk/v7+bp/d1UBX3cuKGR1uYIl6+oxTPDqTJjDEOJNEMJp8r1ogo/FYH5te7T2RfDK3Coe5iUZRPwemisCszayaRKqflFg84MBXwebljfyA3rGxlJZnj2YA/b26O8dqyP4WSGH795mh+/eZrGqgAf3Bhha0uEiwvIgJuvpXaqgz4ORIfxegSvR8jYhhP9CdZHqkrdNaVUCWjQmQWVQR8fuXQJH7l0CWdGUuzcF2V7e5SO00P0DKf4p1eO80+vHGdVfZgtLRG2NEdmnAE3UamdZw/0lO1C/ej0bXYW14xrV0pdUHRNZ5yZVJmezIk+JwNue3sXnX3xMfddsrSaLc2L+WBzE3XhmWfAvXT4DP9rx0ECPqEy4Cu7hfob7t2BV6BnODVmes028MxdW0rdPaXULNE1nTKwrK6CT1+/it+4biUHosO0tUfZ0RGldyTF26eGePvUEH+78yBXraqjtWUxN1zccN7HIzz8UiceAb/HQ9oyBH1ejMlw/65DZRF0VtSFiQ4lWNt0djotm0iglLrwaNApAhFhw+JqNiyu5o4b17LneD9t7VF2HehmJGnx8pE+Xj7SR9Dn4b3rGtjiZsDlU6ng1GCcmpDz32iMIWMZvB4PR3tHyFh2yatc33njWr76+F5iqcyYlOk7b1xb0n4ppUpDg844Po8QDvhIpC3sOZh69HqEK1fWceXKOr7Yup4XD5+hraOL59/pJZmxeWpfN0/t66Y65OMDG5pobYnw7mWLJs2AW1pTQe9IkoqcagaJtEWkOkRnX5zKoJdFFX6CvtJkvW1ujnAPcP+uQxzvi7G8zNaclFLFpUFnHK9HWLIohDGGRNomnraIpTKkMvasf62Az8P71zfy/vWNDCczPHugh7b2Ll7r7GcokeFHb5ziR2+cIlIdZEtzhNbmCGubKsdkrd1y9Qq+ueMA8bRFyO8hkbbJ2IZbrl4xWuV6OJEh5PdSU+GnMuAtWdbbTEO4VjRQauHQRIJxNm3aZHbv3n1Ou2UbYqkM8bRFImWTsWc/CGX1Did5al83be1R9nWNrQG3qiFMa7OTAXeRmwH30qEzPPxyJ6cH4yypqeCWq1dwzdr6CZ/b5/FQHfJRXaQD5gqtSKAVDZSaH7QiwQxNFnTGS2ac4BNLZ0ik7TlLAe48E3NqwHVEOX5OBlwNrS0RNm88/ww4EaEy4KU6NLcbTgutSHDrAy9wpHeYwXhmNPutpsLH6oYqrWigVBnR7LU5FvR5Cfq8LMKPMcadhrOIpyzS1uyNglbUh7ntvav5zPWr2N81TFtHF091dLsZcIO8fWqQv3nqIJtGM+Aa8woixhiGkxmGk86G05oKZ8OpZ5ZrvXX2xait8I9pq/B7865IcCA6xEAsjSdnc2nPUIq0NTT9g5VSZUeDziwQcZIPsn/NpzI28ZQ1q6MgEWHjkmo2LqnmzhvXsaezn+3tUZ450M1IyuKlI328lJMB19oS4erV+WXApS2b3mFnw2ll0EdNhW9M4kEhayrZlOnckU48bbG8LpzX41MZG4TRRAoRsMXMyRqbUmruadCZAwGfh4DPwyL82PbYUdBsrAV5PcKVq+q4clUdv7t1PS8c7qWtPcoLh8ZmwNWEfHxgYxOtzRHeNUUGXJadU+ste8zC7sNn+KN/fxu/V6it8BMdSvDVx/dyD+QVeApNmfZ7hXgabNsgAtn4HfCe/V7u276f7zx7mJGURWXAy+03rOELWzfk9fxKqeLSoDPHPB6hMugbPfZgtkdBAZ+HG9c3ceP6JoYTGZ450M32jiivH+tnMJHh3/ec4t/35GTAtURY1zR93bNk2qI7bXHfjoN4BEJ+7+iILpbKf/NpoSnTGxbXcLhnmKHE2TWd6pCfNY3O93Df9v180+2jz+OMor654yCABh6lypAmEoyTbyLBbJjLtaCe0Qy4LvZ3DY+5b01j5WgG3JJFU1cGuPXbL1AT8iGIs64igggMxNNFKWMzXfbaZX/8BPG0hc9zdhoxY9tU+L288ccfmfP+KaUc+SYSlGy7uoisEJGnRKRdRPaKyBfd9noReVJEDrj/1rntIiL3ichBEXlDRK7Mea7b3OsPiMhtOe1Xicib7mPukzIry5wdOTRWBVlRH2Z5XZiGyuCsHFvdWBXkU1ct5+9+4yq+95tX85nrVnFRrRNgDveM8J1nD/Nr33mRL/zwNR57/QT9sdSEz7O0poJE2gmGtm1IWzaDiTRLakLY9tz/wbK5OcI9H7uUSHWIgXiaSHVoTLr0SMpifO6DR5x2pVT5KdlIR0SWAkuNMa+KSDXwCvAJ4D8DZ4wxXxORu4E6Y8xdIvJR4HeAjwLXAt80xlwrIvXAbmATzv7DV4CrjDF9IvIS8EXgBeDHwH3GmJ9M1a9ijnSmYmXXgpLO3iBrFt7gjTF0nB6izT0FtS+WHr3P6xE3Ay7C+9adzYB76dAZvrnjAD6PjNl8+sUt67luXcOEiQfFpCMdpcpD2adMG2NOAafcz4dEpB1YBnwc2Oxe9hCwE7jLbf++caLkCyJS6wauzcCTxpgzACLyJLBNRHYCNcaY59327+MEtSmDTrnwepxTQ6vctaBE2mIkmSFWwDSciNCytIaWpTV8bvM6XjvWR1tHlGcO9BBLWbx4+AwvHj5DyOfhvRc3srUlwqZVdWy7ZDGPvHKceNqiwu/lV65azjVr68ckHpSq4sHtN6zhmzsOkrFtPAK2cT5uv2FN0fqglMpfWSQSiMhq4D3Ai8BiNyBhjDklItkV52VAZ87DjrttU7Ufn6B9Xgr5vYT8XhpwUpxjKac8z0yTEbweYdPqejatrud3Wy1eOHyGtvYoLx7uJZGx2dHhVMQOuyOeqqCXpYuCJDOGn77dxcYlNWOqHiTSFom0hdcjVIf8VId8eaVrFyqbLKDZa0rNDyUPOiJSBfwz8LvGmMEp/kqe6A4zg/aJ+nAHcAfAypUrp+tyyfm9HhZVeFhUMTsp2Xs6B3jstZOcGoyzcXE1GxdXc6h3hNeP9RNz10ZiKYszI2mqQz4CPg8Pv9w5Yakdyzb0x1L0x1KEA87U23d2HZrToPCFrRs0yCg1T+T9p6iIrBKRre7nFe46TEFExI8TcP7BGPMvbnOXO22WXfeJuu3HgRU5D18OnJymffkE7ecwxjxgjNlkjNnU1NRU2DdVZNmU7KbqICsbwiyrq6C+MjCa4jyd7JpN70iSmpCPgXianx/q5VevWsHDd1xHVdBL0Of8mGRsQ18sTddgkrdODvCDF49xejAx6XPHUhn+/CcdfKPtALFUBq+Y0ZTm+7bvH71uZ0eUWx94gRvu3cGtD7zAzo7opM+plJrf8go6IvJfgUeB+92m5cC/FfKF3Uyy7wLtxpi/yrnrcSCbgXYb8FhO+2fcLLbrgAF3Gu4J4MMiUudmun0YeMK9b0hErnO/1mdynmvBCvq81IYDXFRbwar6MItrQtRU+Ced6nr45U4ylkXPcJLDPSP0DCfJWBYPv9xJU3WQi5uqiVQHWVUfpj7sx+9uyszYxsmA+/aLfPHh13h8z0kGchITsh555TgYsGxIWZCxDMZ9LJxNiY4OJcZsPtXAUz70jwI1m/KdXvs8cA3OmgvGmAM5ay0z9T7g08CbIvK62/Y/gK8Bj4jIZ4FjwKfc+36Mk7l2EIgBv+n25YyI/CnwsnvdPdmkAuBzwPeACpwEgnmRRDBbxm9MTVvOUQ1xdyrONoajZ0YYiqcRj7MPJ2Mb+kbSZOwR4OzRCT4PNFQFCAe8xNM2GxdX0356kL5YmjdPDPLmiUG+sf0ANSEfH33XUj793lVU+L3EUtaYOU3jfgwlMgwl0vzd0++Qtix6h8cW9MzdfKpHG5RO7j6pmVSkUGq8fINO0hiTktH6V+Jj5sejAGCMeZaJ110AWie43uAEv4me60HgwQnadwPvKqCbC4rf63GKe4acApyJtJsJN662mZVT2+yatfV8kfUTHp1g2YYfvniMH758zEloAAYTGR7e3cm/vHaCGzc0TtoXEegeSrKva4ih+OQFPRfCm958Dpr37zqE3yujtfPOtyKFUuPlG3SeFpH/AVSIyIeA3wL+fe66pYoh5HfWa+Jpi2ROAU2PjK1tds3a+gmTBrwe4dVj/TRWBQn6PIwkMwwmMoykLFKWzfb2yadhKtx1omxBTxEB4/4VIowGvWK86c1lUJjvQbPQKuFKjZdvIsHdQDfwJnAnzlTX/z1XnVLFE6kOYWxn5AHuvwYiNaHRhISpnBqME/J78IiTKr2stoK1jWFqQj6uWLFo0sfVVQYBRteIbNtgG4NlG4wx+DxOJlxnX2zMUdwwu296c72mlBs0sxUo/F7h/l2HZuX559qKujDx9NjqDudTJVyp8fId6VQADxpjvg0gIl63Tf/cmeeMMWNqqhkDljEIUBsOUBt2AkIsZy0oNy17aU0FvSPJMYEhbRnWNlbxV79yOb/yrefoiWXO+brH++Pc/v3dVAR8CJDI2KQtG7/XQ2XAx/K6So6dibG4OsSZWJKq4Nm/tse/6U03Upnq/rkeSXX2xfAKHOoeHl2zaqwKzJuRQqFVwpUaL9+RThtOkMmqALbPfndUsQ2nLJbVhvB5BcsYfF5hWW1oTO0yj1sdIZuWvbwuTENVkMqgj1uvWUH3UIL90eHRj+6hBLdc7WSx98XPDThZh7pHODWQoC+ewTZQXxmgLhzA7/Nyy9UrMMbwqauWk0jbDMRTZCybkWR6zJvedCOV6e6f65FUddDHif4EGduMrlmd6E+MVpood9PVvlPqfOX7kx8yxoyWKjbGDIuIjq8XgOwha2tzjjvIHic9mdHzgir8PP9ON4nM2JySRMawvf20k2wwRbrJJ664iJ37uumPp0lmbKJDKbdPFQynMiTSFtesrWfbaacMz/F0nAq/l9+4diXXrWsAnJHKVNlv091f6CFz0xmtFpF9Hcy49nlgc3NEg4yaNfmOdEbGVXW+CojPTZdUMd1541rSliGWymCM8+/5TJ88/sbpCdvbOrrxeTz4JslP9Al8oXU9X/7wRurCfsIB7+i6UmdfnD/7j3Z+6Vs/578/sod/23OSurCfdU2V1FcGePyNU/zbqyfoPBNjX9cgXQNJtyadIZayiA4mORB1st8ORIfoGUqNGWn0DKVG7y/0+59OPiNJpS4k+Y50fhf4JxHJ7uhfCvzq3HRJFVOhh6xNVvzaACsbwlwcqWJ/1zC5xXk8wMqGSgD+6ZXjztRdlRfbGEaSGfriaRJpm0Ta5rXOfgAG4xmqQz6qQz68wmgZnljKYnzhH8swWr5nuuOuC/3+pzOTkaRSC1leQccY87KINAMbcbJaO4wx524/V/PSdNMnhaQU331TC19+dA9DiQxpy8bnEapCPn5r8zrAyX6rCTk/htkMuKqQj4FYml+/bhV//dRB0pbBMob+eJr+eBqfR+iLpTnSO0I6MzbkZGNg0s24yue467mcPtKFeKXGmnJ6TUS2uP/+EvCLwAZgPfCLbpta4ApNKd7cHOHT160i4POACEG/l9uuX83Nm1awsj7Myvrw6GgkK5G2uag2zC9efhGXLl3E0kVBGisDznPglOAZSVn8l+/tnnTNSMQ5PfXiSDUNlYEx01sNlQHWL64p9KXJiy7EKzXWdCOdDwA7cALOeAb4lwna1QJSaErxzo4oj756wsl8c//Sf/TVE1y2vJbNzRE+v/livvr4XjKWTcjnZcQ9sC6b/ZYtw1MR8FBX6WcwkWE4mSHg9Yw5hG48r0cYjKf55BXLuG/HAZqqg1QGvG5qdnFHGroQr9RZUwYdY8wfiYgH+Ikx5pEi9UmVkUJ3pE8XtCZbU7n+4gbiKYsPNDeBwMMvOWV4lrpleK5eU8fek4P8/iOvk5ngNIeMZdi5L8p1axv4wpazZXyW1c6vMjRKLTTTrukYY2wR+W1Ag84CNdWazXQpxX4PpCd40/e7E7f5BK3JRgJBn5da4Fc2reAXL79otFhp9uTUdy1bRNDnJTNBJphl4J4ftVPh9/L+9Y3ceu0KrlxZh9fjzON1nolR464fZduUUnMv3+y1J0XkS8A/AiPZxpxqzmqemq422HQL4UG/h3Ty3KgTcqPObOyDGV8tO5mxiCUtRlIZ/F7B5wHBqahg2wYb8Ipgu1/rZ2938bO3u6gL+9m8MUJrc4SWpdX0jticiaXYc6yPH7zUycmB+LwryKnUfJNv0PkvOGs4vzWuXVNw5rl8pr9uPt5/zsmf2Tdlj3jwiBN0jMmt4eYEnTtvXMuXHt3Dif44lrtXpiro4w9/4ZIZ9zno8xL0eamrDLBxSQ2He4ZHs+P8Pg+VAS/L6yr5o1+8hKcPdNPW3sWbJ5xjGP71tRP862snuKg2RGtzhKaqID98uROfRwj7vZwaiPOHj73Fn/KuCybwzOcq2Gr+yTfoXIITcG7ACT7PAH83V51SxTNdbbDpEgECPg/elHMWTzYl2bbNaKYZOOf4JN2jDzKWIeg7vyO1p3pT/NwH1vGlR/eMpkrbxmAb+LVrV7Ao7Odjl1/Exy6/iNODCZ7qiNLWHuVQzwgn+xP8/QvHACetelGFH59HCHg9xG2L+3Yc4Oo19aOjq4VqvlfBVvNPvhUJHgJagPuA/+V+/tBcdUoVz3S1waarkrw+Uk1VyEvacjZzpi2bqpCX9RHnNPN7f9rBSNIi4PMQ8jvlc0aSFvf+tCOv/uWTsi0wukFHcM7liVSHuKi2grqwk2q9pCbErdes5Du3beI7n7mKW69ZQaTaqXSdtgw9wykO98bo7IuTzFgc74vRNZjgWG+MvhGn7ttMlfPJm/O9Craaf/INOhuNMbcbY55yP+7A2Siq5rkxtcGyHznt0xXEvH5tPQNuwU610eGPAAAgAElEQVRwKhQMxDNc756/c6hnBI9bEUAQPCJ4xGnPx3RvivfvOoRlG1KWTcaGlGVj2Yb7dx0i5Hem4JbXOfuBGqqChPxe1jZV8V/fv5Yf/Ndrubipisqgl2wuQTxtER1K0T2U4g//7S22t3dxeiBOZ1+c6GCC+HmWryn347jnuuCpUuPlG3ReE5HrsjdE5Frgubnpkiqm6WqDTXeeyk/eOn1OKRzbOO2zYbo3xb0nBzgTSzvrSTjTe2diafaeHBjzGJ/XKVB6UW0Fqxoqaax2qmTf/v411IT8XLQoxEWLgk4NOJzY+9w7vdzzo7f55b97nq/9pJ2n9kU53hej80yM/lh+o59yH0noeTmq2PKdsL4W+IyIHHNvrwTaReRNnJOkL5uT3qk5N11tsOmy1/Z3DU34vNn2NQ1hDnaPIDllaGwDFzfm96Y2XfbbaOHM3Kxnw5QFNb0eoSbkpybk51ObVrAo5Ofbzx7iZH+cDZFqPvmei0haNm3tUV4+coZYyuKJvV08sbcLn0e4Zk09v37tSpqXVFMR8FEV8lEZmDj1utxP3tQyParY8g062+a0F6pkpnvTma4g5mRlaLLtd9/Uwpce3cNwMjOavVYb9HP3TS2z0j/bHWaNPynAnqwS6Thej3DTZUu56bKlo4fVxZIZYimLrS2L2dEe5b4dB0ikbXcKz/Dzd3r5+Tu9LKutoLU5QmtLhJUNlYQDXqqCPrdithOA5vrohELNdcFTpcbLt+Dn0bnuiCqNfN503jjez96TA4ykLAbiad443p/3m9Lm5gh/cfPlM35Tm65/FX4vsfS5o5rxU3L5yB5WVxX0YYwhnrb4yVunqQ37CfmcZImhRIaBeJq0bTjRH+f7Lxzl+y8cZcPiKlqbI3ywOcLimhDhgPM8d7x/DX/072+X9UhCy/SoYlrY+aAqL1O96dy3fT/f3HEQj4DP4/yV/s0dBwH4wtYNBT9/oY8PBzwTBp1w4Oxy5UyPsw4HfHQNJVgU8gFOWrjf59SAOzOS4kOXLGFHR5ToUJL9XcPs7xrm754+xBUra2ltjnDj+ibWRqr40oc28A8vHeNkf1xHEuqCp0FHTek7zx52A47zJu4RyNg233n2MF/YugGPTHymTrEqywwlLTxwznk9Q0knEO3siPLFf3yNwXgGA5zoi/P2qQG++avvYXNzhJ0d0dGjFzK2Tc9Qki8/uoc/v/nyc04W9SAYYxhJZVjdUMXnNq/j9vev4S+f2MeT7VEytsEArx3r57Vj/Xyz7QDXrmmgtSXCn3zsUqpCPqqDfiqD5z8KU2qh0KCjpjSSsvBgSGas0YoDXjm7UL8hUsW+rmFy44647cXi8wpez9mRjWWfDUF/+NhbDMQzCGdzDQbiGf7wsbd4pnkL9/60g75YGq9H8Hk9GAN9sTT3/rRj0jJAlg2/s+ViVtaH+auf7eOne7sYH3e9HiFtGZ492MOzB3uoDHi5YX0jW1sWc8WK2tGyPlVBrf2mFREuLPmmTKsLVNDnIW27C/Vu9lnadtrBSRRoqAoQ8nvwe4WQ30NDVSDvRIFCrWkIY7tVEIwxTu0147QDHO9zT1WXnI+c9un2EU11Ho6I8N1nj5wTcMA5jvsrNzVzzZp6PG6QfmJvF19+9A1+6W9/zl/+bB/PHezmSM8wpwbiDMTTWHkmPywk5b6PSc2+kgYdEXlQRKIi8lZOW72IPCkiB9x/69x2EZH7ROSgiLwhIlfmPOY29/oDInJbTvtVIvKm+5j7JJtSpPJWX+EMhg1OwDHj2rOJAu9ZUceSmhDvWVHHX7hTU8Vw900t1Ib9iAcsYxAP1IbPZsdN9jZ+Pm/v2USKkwMJ9p4c4I3j/aP3TbSeBJC0DB+74iJ+6Yplo0dsZw0lM/zzqyf4rX94jdv+98t8a+c77Ons42jvCCf7nQBUSAWE+aTc9zGp2Vfq6bXvAX8NfD+n7W6gzRjzNRG52719F3ATzqml63H2DX0LuFZE6oE/AjbhvJe8IiKPG2P63GvuAF4AfoyT+v2TInxfC4fHQ1OVn96RNLZx1moaKv1IznRWKbOfpsuOq/B7iKftc1KqK9wq2GsawuyPDpOyzgYPj8CGSCXgJFJ8o+3A6LrVYCLDN9oOANMnUixdVMH3fn6Y4UQGr0fwulWwLduZEkxbhuN9cb7//FG+//xRNi6uZktLhC0bm0arJ1QGfVQGvPi8C3NSotz3ManZV9KgY4zZJSKrxzV/HNjsfv4QsBMn6Hwc+L5x6rO8ICK1IrLUvfbJ7DELIvIksE1EdgI1xpjn3fbvA59Ag855yS6kL1l0dl9J7ubRcjBV0Nt26WL+9fVTE7YDtCytpqNreMx9tnHaAf7u6UPYZuzeU9s47flk7x3ujTkBx+PBGOMURsXGGMO3P30VbW4R0u7hJPu6htjXNcT9T7/DFSucDLj3b2iiKuhzAlDAR2VwYQWgct/HpGZfqUc6E1lsjDkFYIw5JSLZd5NlQGfOdcfdtqnaj0/Qrs7DfN+xfnowRcjnIZFzvGjI5+H0YAqAJ/ZOvHaQbc9On42fjptsWm0qubO7HhEuXbaIdZEqLlu2iAefO8KJ/hgpy2DZhleP9fPqsX6+0XaA69Y6GXDXrWkg4PMQ9HupDHgJB3xjqnnPR3Nx9IUqb+UYdCYz0XqMmUH7uU8scgfONBwrV66caf8WpNnYsV7K7KS9JwdIZOwxPwyJjD1am22y4JFtz9ZhGy/fxcE1DWEORIdJW9boD6VHYH1TJRfVVrD97dP8xZP7GE5msG2DRyAU8LKuqYp9XUMkMzbPHOjhmQM9VAa93Li+idaWCJcvr8XrSeH3eqh0qyCEZrAhthxkq4QbY8BI3q+tmp/KMeh0ichSd5SzFMj+KXocWJFz3XLgpNu+eVz7Trd9+QTXn8MY8wDwAMCmTZsuvBSiaRSyZlPq81pmUpstl98rpCao9eN3MwOm26f00Xcv5a+2H8j90ljGaQf4iyf20TeSHhPY0pbFcCLNP3/uep492MuO9i52H+1jJOlUSPjJW6dpqAqwZaNTgmd9pIr+mHOkQ0XAmYbLLcVTzu7fdYiaCj9LFlWMtuUeIqgWnnIcmz8OZDPQbgMey2n/jJvFdh0w4E7DPQF8WETq3Ey3DwNPuPcNich1btbaZ3KeSxVJqbOTcmuzZT9y26dTHfKd85e3ADUh5++1bMLBeNn2H795Cg9nY57g/NL9+E1nnWl/dHjCkdTh3hh1lUE+fMlivvbLl/HIndfzO1su5hJ3ral3OMU/vXKc//Z/XuU//++X+f7zRzjWG2M4kaFrMMGRXuc8oKFEeadi69EKF56SjnRE5Ic4o5RGETmOk4X2NeAREfkscAz4lHv5j4GPAgeBGPCbAMaYMyLyp8DL7nX3ZJMKgM/hZMhV4CQQaBJBkZU6O6k65GM4mQHGHqddleeJoBsWnz0OO3uyanXIx5pGZ/Pr4Z6Jv49s++He2ISbVw/3OvdPFg8MsKy2gmTGYiiRwSPCJ9+zjE++Zxkn++O0dUTZ0R7l6Bnn4Lnv/fwo3/v5UZqXVNPaEuGDGyOYygAjyQwvHTrFI690cnogwYr6MJ/7wLqyGUVoIsGFp9TZa7dOclfrBNca4POTPM+DwIMTtO8G3lVIH1VhSv2mcvsNa8akPBs37fv2G9bk9fhsIsWSRb4JEymSk5TZzm23jSGTU9HBI+DNc+or6PMSrPLSUBlgKJlhKJHhotoKPn3dKn7j2pUcjA7zDy8c4/nDvaQtQ8fpITpOD/Gtne/wnpV1rGmoZHv7aWIpC8s29Awn+f1HXudPPnYpH7p0ScnXgcohUUUrIhRXOa7pqAWk1G8qly2vpTLgZSRlje4zqgx4uWx5bV6P39wc4ebj/Xzn2cOMpCwqA15uv2FN3m9KkeogndmqCJw9T2jpouB5fR8iZ88ASqSd0c9wMkPfSJoD3cMsrg5igP5Ympj7vb5ytI9XjvaNeR7LMvTH0nx9+wEuXbYIr0f4wQtH+cFLxxhJWVQFfdx+w5q8i7kWqtRHK0xXew+cvVrj//+L9fosRBp01Jwq9ZvK/bsOEXGPGsg6n4XqnR1RHn31BE3VQVa6QfPRV09w2fLavB5v7IkrC0zWno+Q38lUa6gM8Af/tMcpP+RzRiyVAR+xVAa/18uqhjA793ef83gbONIzgmUb/v7nR/je80dH15UGExm+vv0AGdvm9z/cPOM+no9Sbi6ervbebFRZV2Np0FFzrpRvKoWuKd2/6xBpy6J3+OyaTk2FbzRoTZe91j2SxudxrsmdXuseSRf6reHxCKcGnZplxjhlgGzbUBHwMpTI8NVfvISdf/n0hI+1gVu//QJ9I6lzEhkM8MCuw9x81UoqAl7CAS8Vfi+eBViYNLf2Hjj/P0bMaO296aqsz4YLbXpPg45a0FbUhTnSO8xgfGzQWN3gJAJkj9AeL7vkciA6xEAsjcfjpCRnbEPPUIq05RzH7fd6SGbOHbX4c6oGeETG3LYKGOVM9P2NOXrBYxhOZliak4I8mZ7h1KT3JTI2GdtmKGEzlEgj4hRzDft9hIPeMd/PQjaSshi//zZbwHU2lHpLQSlcGD856oJ1/dp6okMpUpaNRyBl2USHUly/th6AZYsmLueTbU9lbBhXhRpx25k8gGTb1zZWOlWwjcFgsI1TBXtt48Sp1ufrzhvXkrYMsVRm9LRT28AXtlxMpGbqUkW/+d7VU95/ZuRsUDLGEE9Z9I4k6TwTo/NMjJ7h5OjXnUs7O6Lc+sAL3HDvDm594IVZrUA9XZXyyoD3nJGsbZz22VDqLQUwt6/vRDToqAXt+UNnaKoKEPB6sA0EvB6aqgI8f8jJqv+zT7ybmqB3dDrMI1AT9PJnn3g3cHYTaO6bEkDAbfd6PHjdKbNstQGvMJoifde2ZurCfgTIWE5lhLqwn7u2Oeslk01Y5TuRNdnRCx9sWTxtWvinr1815f2/cv/z/MGjb/CzvacZcdPOs9KWzWA8zekBZ0/Q6YGEc4z3LFfHzi70v3asj9MDcV471seXH90za2+M01Upv/2GNdjGmVKzje3+m3/243RKvU+pFEdL6PSaWtA6+2I0VgVpyilQaowZ/aXe3BzhvluvnDTRYeJ9Ov7RfTprGsIc7B7BJzI6VWcZM/qX8ubmCH8+RRVsn8c5n2i88ympNldrZraB3Uf72H20j4DvAO91a8Bds6Z+zPSaMc5IK5bK0IsztRgOOBWygz5PQZURplvoL9R0Vcqz6zZzlb1W6i0FuSMtgLCbiDKXFSE06KgFLZ9f6qnetKfbp3P3TS186dE9DCczowUra4P+MYfYTfX8NRXOsRHjLRqX/DAXptujc8/HLqWtI8rzh3pJZWx27u9m5/5uqkO+0Rpwly1fNLoIn5W2bAbiNgPxNB4RfvDiUX44w5Ts6Rb6Z8N0QfsLWzfMWaZaqbcUlGLztgYdtaAV+ks9Xcr3dH8pT2e6igeFqgp4GE6dO5SqCni4qHbqZIMb1jdyw/pGdu3r5sHnjnB6ME7KMgwlMvzHm6f4jzdP0VgVYEtzhK0ti1nXVHnOqOah5w5Pm5J9oWVv5Sr1loJSjLQ06KgFbTZ/qSdbLi9kemu6kVQ+pnrTXl4XPue8oGx7Pl46dIb7nzmEzyOsaggzkrQYTmaoqfBzvC9Oz3CKR3Yf55Hdx1lVH6a1JcKW5shoQPvhy52TpmR/atNKXjvax//3s30EJsneyk5fim1Gpy9tAxc3LpwyOXO9pWCqn49SjLQ06KgFr5yrZBcaFKfr33DKYlV9BT3DqdGRVGNVYDTlt3lxJR1d505VrWt0gsbDL3fi88joYndV0IfXIzRUBvl/PvkudnRE2d4e5XhfnKNnYjz43BEefO4IlyytobUlMuYco1yJjE3asnnwuSMI4PN6yNiGoM+LMWfXFPKZvlSTm+7noxQjLQ06Sk2hGAuthQTF6fqXnT5Z23R2ui735Nef/t5mtn1955jA07y4kp/+3maSGYuuoQRVwbFrPyG/h9ODcZbXhfnM9av59HWrOBAdZnt7F091dNM7kuLtU4O8fWpw2v6fGow7FbvdtHIbJ7Ac6RmmdzjJtWsb+PNfvowHnjlckumn+S6fn99ib97WoKPUFEpdJXs60/Uvn+mTn/7e5gmfO+jzsrqhkq7BOEGfB8sYMJBI2yypObseJCJsWFzNhsXV3HnjOvZ09tPWEWXX/u5JN1FGqpw+L62poHckOSZtOJG2WVxTwUA8zUA8zZqmKr5xyxWE/E51hAtlY+psKMefX/3fU2oKK+rCxMedLlpOpfen699k+3jy/cv2zhvXkrGdTbV+j5C2bCzbcMvVKya83usRrlxVx5c/spF//tx7+fVrVuKdIGN6KGnzV0/u55o1daQtm3jawuBsbs2Me37bGEaSGXqHi78xdb4rx59f0f+0sTZt2mR2795d6m6oMpE7J547UjifN+753r/sQnTu9Nb1Fzc4la4TGexp3kNeOnSG//PiUY6diWEbGElmxiQXLKrwE/R6sIzN8towt16zkmvcihHTEXG+73DQS9jvxaejoDGK+fMrIq8YYzZNe50GnbE06KjxJnrTLYeAk1XK/tm2YTiVYTCeHi0NNJ3e4SRP7eumrT3Kvq6hMfetbnAy4FqbF7NkkhJFUwn6vVQGvFQEvAR9pT0rqFwU6+dDg84MadBRambiKYuBeJpYKjP9xa7OMzF2dERp63Ay4HJdelENW1sifGBDE7XhwHn3x+fxLPgq2eVEg84MadBRqjCpjFOZOpvmnA9jDPu6hmhrj/LUvu4xxUY9AptW17O1JcL71jVSMYNim7lVsisCXgLnU2dI5UWDzgxp0FFqdhjjHLMwmMiQTOd/FIBlG17v7KetPcozB8ZmwIV8Ht57cSOtzRGuXl034zUcv3fsKKiQ+nDKoUFnhjToKDX7khmLwXiGkeT0iQdjHpe2eOHwGdrao7x4uJe0dfaxNSEfH9jYxNbmxVy6rOacGnD5yiYjVPi9OgoqgAadGdKgo9TcsW2ndttg4vyPQRhOZNh1oJu2jiivH+sfkwEXqQ6ypTlCa0uEdU2F1a3zez2E3ABU4ffi1bWgvGjQmSENOkoVRyyVYSCeJj6DUzi7h5Ls3OeU4DkQHVtbbk1jJa3NTg24mWTAjRd0R0HhgLfgoxoWMg06M6RBR6niSmWcYxCGkzPb7HmsN0ZbRxdtHVFO9ifG3Peui2pobVnM5g1NLAoXflyER8QZAQV0X9B4GnRmSIOOUqVRyNQbOIkLHaezGXBR+mJnzynyeoSrV9fR2hzhvRc3nnNa50wFfB7CAZ+OgtCgM2MadJQqvXjKYjCRPueY7HxZtuHVY33s6IjyzIEeYuMy4N53cSOtLRE2rZp5Btx4HhEnG85dC7rQRkEadGZIg45S5SNj2QwmMgwl0nnv+RkvmbZ4/tAZ2jq6eOnwmTEZcIsq/Gze4JyCeulFNbM6UrnQRkEadFwisg34JuAFvmOM+dpU12vQUar8zHTPz3hDiTRP7+9hR0cXezoHxmTALakJsaW5idaWxaxprCy80zk8ImMy4hZiWrYGHUBEvMB+4EPAceBl4FZjzNuTPUaDjlLlLZG2GIynGUlZBVWZ7h5K8pSbAXdwXAbc2iYnA+6DzRGW1BSeATeez+MhFPCM7g9aCFNxGnQAEbke+GNjzEfc218BMMb8v5M9RoOOUvPDbEy9ZR3tHaGtI0pbe5RTA2Mz4N69zMmA+8CGJhZVFJ4BN5GAzzO6OTXkm5914jToACJyM7DNGHO7e/vTwLXGmN8ed90dwB0AK1euvOro0aNF76tSamZma+ot+1ztp4Zo64iyc5IMuK0ti7l+XcOsZcCNJyIEfR7CAS8hv/MxH2jQAUTkU8BHxgWda4wxvzPZY3Sko9T8lS23M9M9P7myGXBODbieMYehhfwebnAz4K5aOXsZcBPxemR0LSgc8JVthYR8g85CP676OJB7xOFy4GSJ+qKUmmNBn5emai8NlYGC9vxAdmRTz9Wr6/ndrRbPv9NLW0eUlw6fIZG22d7urAfVVvj5wMYmWptnPwMOnOA37B6YB8l5nxW30Ec6PpxEglbgBE4iwa8ZY/ZO9hgd6Si1sIwknXI7iQKn3rIG42mnBlx7lD3HB8bct6Qm5BxC1xJhdcPsZsBNpJwqJOj0mktEPgp8Aydl+kFjzP+c6noNOkotTLOV9ZYrOphgx75u2tq7eKd7ZMx965oqaW1ZzJaNTUTmIANuItlRUIXfS8hf3FGQBp0Z0qCj1MI2m1lvuY70jtDWHmVHx9gMOAEuW76I1pYIN65vomaOMuDGK/beIA06M6RBR6kLgzGGoWSGgdjM130me963Tw2yvT3Kzn3dDMTPZsD5PMI1a+ppbY5w/bqGomamZY9smKvjuzXozJAGHaUuPIUcszCVjGXzipsB9+zBHhLps8Gtwu/lhvXOKahXraoralZa9vju7N6goK/w4KdBZ4Y06Ch14ZrNlOvx4mmLnx/spa2ji5eP9I2Z2qut8LN5YxNbWxbTsrS66BlpPs/Y47tnMgrSoDNDGnSUUtk05UJSrqcyEE/z9H4nA+7NE2Mz4JYucjPgmiOsKkIG3Hgz3ZyqQWeGNOgopXKNJJ3gM9tTb1ldgwme6oiyvSPKoXEZcBdHqkZPQW2qDs7J15+O1yOj03BT1YnToDNDGnSUUhNJZWwGE2mGExnsOXrfPNwzwg63BtzpwbEZcJevWERr82Ju3NBIdag4GXATydaJCwd8Y9KyNejMkAYdpdRUCj3hNB/GGPaeHKStPcrO/WMz4Pxe4ZrV9bS2LOb6tfUES1ibTcQZBVWFfFSH/Bp0ZkKDjlIqX7FUhsF4hlhqZiec5iNj2ew+6pyCOj4DLhzw8n43A+49K4ubAZcr5PeyrC6sQWcmNOgopc5X2rIZjKcZTmZmdcPpeE4GXA9tHdFzMuDqwn4+uNEpwdO8pLgZcBp0CqBBRyk1U9kNp4PxNKnM3Ey9ZQ3E0uzc382Oji7ePDE45r6LakO0NkdobV7MyobwnPYDNOgURIOOUmo2zEWtt8mcHkg4CQgdUQ73jM2AWx+porUlwgc3zl0GnAadAmjQUUrNprmq9TaZQ93Do6egRoeSo+1OBlwtW90acFWh2TvZRoNOATToKKXmwmyecJoP2xj2nhgcPQV1MHE22cHvFa5d00BrS4Tr1zYUXAxUg04BNOgopeZaIm0xmEgzkpz7qTc4mwHX1h7luYM9JHLWmyoDTg24rS2LuWJF7Ywy4DToFECDjlKqWCzbMJRIMxjPkLHnNvEgK56yeO6dHtrao7x85Ay5M371lQE+uLGJ1pYIGxfnnwGnQacAGnSUUsVmjGEk5SQezNYJp/noj6XYua+bHR1R3jo5NgNueV0FW5qdGnAr6qfOgNOgUwANOkqpUkpmLAbixZt6yzo1EB8twXOkNzbmvo2Lq9nSEuGDG5torDo3A06DTgE06CilyoFlGwbjaQaLlPWWZYzhUM/ZU1DHZ8BdsbKWrc0R3r+hiaqgkwGnQacAGnSUUuUkm/U2UIQNp+PZxvDmiQF2tEd5en/3ORlw161toLU5wgc2NrG2qVqDzkxo0FFKlat4ypl6m8tab5NJWzYvHzlDW3uUn7/TSzInAFYFfey9Z1teQWf2dgcppZSaUxUB51ybtGUzEJ/bYxbG83s9vHddI+9d10gsleG5g720tXex+2gfw8n8g6AGHaWUmmf8Xg+NVUHqwwGGEs7UW7FSrgHCAR8fumQxH7pkMX2xFM8d7OWL9+b32MK2oSqllCoZj0dYFPazor6CSE2oJGfr1IUD3HzV8ryv15GOUkrNcyJCVdBHVdBX1EKjM6FBRymlFpCQ30vI7y16odF8lWR6TUQ+JSJ7RcQWkU3j7vuKiBwUkX0i8pGc9m1u20ERuTunfY2IvCgiB0TkH0Uk4LYH3dsH3ftXF+v7U0qpUvN5PdRXBlhZH6apOljSY61zlWpN5y3gl4BduY0icglwC3ApsA34WxHxiogX+BvgJuAS4Fb3WoB7ga8bY9YDfcBn3fbPAn3GmIuBr7vXKaXUBUVEqA75WVZbwUW1FVSFfEU9VXS8kgQdY0y7MWbfBHd9HHjYGJM0xhwGDgLXuB8HjTGHjDEp4GHg4+K8cluAR93HPwR8Iue5HnI/fxRolVK+0kopVWIhv5dIdYiV9WHqwoEZVZQuVLllry0DOnNuH3fbJmtvAPqNMZlx7WOey71/wL1eKaUuaF6PUJcz9VboeTrnY84SCURkO7Bkgrv+L2PMY5M9bII2w8TB0Uxx/VTPde4XFbkDuANg5cqVk3RNKaUWluzUW3XITyKdLTQ6t9UO5izoGGO2zuBhx4EVObeXAyfdzydq7wFqRcTnjmZyr88+13ER8QGLgDOT9PUB4AFwyuDMoN9KKTWvZbPe0pbNYDzN0BxVOyi36bXHgVvczLM1wHrgJeBlYL2bqRbASTZ43DhJ6E8BN7uPvw14LOe5bnM/vxnYYcoxaV0ppcqI3+uhoSrIyvowDZVB/N7ZDROlSpn+pIgcB64H/kNEngAwxuwFHgHeBn4KfN4YY7mjmN8GngDagUfcawHuAn5fRA7irNl8123/LtDgtv8+MJpmrZRSampnqx2EWVwToiIwOynXWmV6HK0yrZRSE5vsgLnzOU9HKxIopZTKS9DnJVLtxao0o+s+51toVIOOUkqp85JNua4N+xlOZs7rcDkNOkoppWYkm3J9Psote00ppdQCpkFHKaVU0WjQUUopVTQadJRSShWNBh2llFJFo0FHKaVU0WjQUUopVTQadJRSShWNBh2llFJFowU/xxGRbuDoJHc34pzhU660f4XR/hVG+1eY+d6/VcaYpumeRIPOeRCR3flUUS0V7V9htH+F0f4V5kLpn06vKaWUKhoNOkoppYpGg875eaDUHZiG9q8w2r/CaIYa7GYAAAduSURBVP8Kc0H0T9d0lFJKFY2OdJRSShWNBp1JiMiDIhIVkbdy2v5YRE6IyOvux0dL2L8VIvKUiLSLyF4R+aLbXi8iT4rIAfffujLrX1m8hiISEpGXRGSP278/cdvXiMiL7uv3jyISKLP+fU9EDue8fleUon85/fSKyGsi8iP3dlm8fpP0rdxeuyMi8qbbl91uW1n8/k7Rv4J/fzXoTO57wLYJ2r9ujLnC/fhxkfuUKwP8d2NMC3Ad8HkRuQS4G2gzxqwH2tzb5dQ/KI/XMAlsMcZcDlwBbBOR64B73f6tB/qAz5ZZ/wC+nPP6vV6i/mV9EWjPuV0urx+c2zcor9cO4INuX7KpyOXy+5s1vn9Q4O+vBp1JGGN2AWdK3Y/JGGNOGWNedT8fwvnlWgZ8HHjIvewh4BNl1r+yYBzD7k2/+2GALcCjbnspX7/J+lc2RGQ58AvAd9zbQpm8fuP7No+Uxe/vXNKgc/5+W0TecKffSjb0zSUiq4H3AC8Ci40xp8B54wcipeuZY1z/oExeQ3f65XUgCjwJvAP0G2My7iXHKWGgHN8/Y0z29fuf7uv3dREJlqp/wDeAPwBs93YD5fP6je9bVrm8duD8EfEzEXlFRO5w28rp93ei/kGBv78adM7Pt4B1ONMdp4C/LG13QESqgH8GftcYM1jq/ow3Qf/K5jU0xljGmCuA5cA1QMtElxW3VzlfeFz/RORdwFeAZuBqoB64qxR9E5H/BESNMa/kNk9wadFfv0n6BmXy2uV4nzHmSuAmnOnnG0vcn/Em6l/Bv78adM6DMabLfSOwgW/jvFGVjIj4cd7Q/8EY8y9uc5eILHXvX4rzV3LZ9K/cXkO3T/3ATpy1p1oR8bl3LQdOlqpfWTn92+ZOWxpjTBL435Tu9Xsf8DEROQI8jDOt9g3K4/U7p28i8n/K6LUDwBhz0v03Cvyr25+y+f2dqH+z8furQec8ZH8YXJ8E3prs2iL0RYDvAu3GmL/Kuetx4Db389uAx4rdN5i8f+XyGopIk4jUup9XAFtx1p2eAm52Lyvl6zdR/zpy3pAEZ76/JK+fMeYrxpjlxpjVwC3ADmPMr1MGr98kffuNcnnt3D5Uikh19nPgw25/yuX3d8L+zcbvr2/6Sy5MIvJDYDPQKCLHgT8CNrtplgY4AtxZsg46f819GnjTnfcH+B/A14BHROSzwDHgU2XWv1vL5DVcCjwkIl6cP74eMcb8SETeBh4WkT8DXsMJnOXUvx0i0oQzlfU68N9K1L/J3EV5vH4T+Ycyeu0WA//qxD98wA+MMT8VkZcpj9/fyfr394X+/mpFAqWUUkWj02tKKaWKRoOOUkqpotGgo5RSqmg06CillCoaDTpKKaWKRoOOUnkQkdWSU3E8p/0eEdk6zWP/WES+NHe9U2r+0H06ShXAGPPVUvdBqflERzpK5c8rIt8W53ybn4lIhThntPz/7d1PiJVVHMbx7xMRRuIiGtxJBYGpCJYKxkiEVNQuCgciUkMhJFyouDGQFq0VSWQ2FVQMFGQgkSubRh1DdKY/pkIw4saNgg5qOZU+Ls4ZuV6mvOa9F2Wez+p9z/vnvPfC8OPce+f3vAEg6VVJpyQdlLRTNcelmidpUNKYpA31/C0N29sl7a/bKyR9Xrd3SzqqWzN1VkjaM3ljSS9K+pomklZL+kbSXpUcmfckbVTJmPlR0qP1vEFJOyQNSzouaWkd71HJdBmR1C/pjKTHOvLOxrSRohPRuqeAXbbnAxeB1ycPSJoB9AOv2O4FepqunQu8TOlVta32pRsCltfji4GZdbwXOFDHt9Ysk4XA85IWAvuBp+t/1wOsofQSm8oC4M0674fAH7YXAYeBtxvOe8T2c8B64OM6to3SQuYZSu+tObd5fyJuK0UnonWnG4K/jgGPNxybC4zZPl33B5qu/db2hO3zlCaOs+s9nq09riYohWAxpRBNFp2VkkYoLWXmA/Nc2oh8BrxV+7MtA777l2f+3vYl2+eAcWBvHf+16fkH4GaO1Kx6315Kw0xs76OEskXclXynE9G6iYbta8DDDftTtfX/r2sftP137YS8BhgGfgFeoLSOPynpCWAzsMT2BUmfAjPqPT6hFJCrwFe2/5H0GmV1ArB2inmvN+xf59a//+Z+WG7hNUXcsax0ItrjFPCkSmAdQF+L1w1RCssQZXXzLvBTXc3MAq4A45JmU3JNgJtt588C71Oi1bG9pyFG+OgdPn8fgKReYNz2OHAQWFnHXwLuidDCuL9lpRPRBrb/lLQe2CfpPHCkxUsPAFuBw7avSLpax7D9s6RR4DdgDDjUdO0XQI/tE214CRckDVMK3Tt17ANgQFIf8AMltOtSG+aKaSxdpiPaRNJM25drXssu4Hfb2zs430fAqO27ig+QNAhsbl4dqcQ5X6sf3S0Ddtck04j/LSudiPZZJ2kV8BDli//+Tk0k6Rjlo7dNnZqD8mu1LyU9APwFrOvgXDFNZKUTERFdkx8SRERE16ToRERE16ToRERE16ToRERE16ToRERE16ToRERE19wAMvubm2/v5/8AAAAASUVORK5CYII=\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": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 31,
"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": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f115c055cf8>"
]
},
"execution_count": 32,
"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": 33,
"metadata": {
"collapsed": 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": 33,
"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": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke','price']].corr()\n"
]
},
{
"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": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1150a45400>"
]
},
"execution_count": 40,
"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": 42,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f115c768ac8>"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f115c162518>"
]
},
"execution_count": 44,
"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": 45,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f115098a550>"
]
},
"execution_count": 45,
"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": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 7,
"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": 8,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 8,
"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": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 9,
"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": 10,
"metadata": {
"collapsed": 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": 10,
"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": 19,
"metadata": {
"collapsed": 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": 19,
"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\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": 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": 20,
"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": 21,
"metadata": {
"collapsed": 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": 21,
"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": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 22,
"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": 23,
"metadata": {
"collapsed": true
},
"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": 24,
"metadata": {
"collapsed": 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": 24,
"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": 25,
"metadata": {
"collapsed": 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": 25,
"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": 37,
"metadata": {
"collapsed": 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": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": 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": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": 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": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_test=df[['body-style', 'price']]\n",
"group_test = df_test.groupby(['body-style'], as_index=False).mean()\n",
"group_test"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": true
},
"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": 39,
"metadata": {
"collapsed": false,
"scrolled": 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": 40,
"metadata": {
"collapsed": 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": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 41,
"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": 42,
"metadata": {
"collapsed": true
},
"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": 45,
"metadata": {
"collapsed": 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": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": 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": 48,
"metadata": {
"collapsed": 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": 49,
"metadata": {
"collapsed": 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": 50,
"metadata": {
"collapsed": 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": 51,
"metadata": {
"collapsed": 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": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"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": 52,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": 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": 53,
"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": 54,
"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>5</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>17710.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>18920.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>23875.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16430.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16925.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>20970.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21105.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>24565.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>30760.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>41315.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>36880.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>5151.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6295.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>6575.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>5572.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6377.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>7957.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6229.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>6692.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7609.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8558.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>8921.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>12964.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>6479.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>171</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>9988.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>172</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>10898.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>173</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>11248.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>174</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16558.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>175</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>15998.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>176</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>15690.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>177</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>15750.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>178</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7775.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>179</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7975.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>180</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>7995.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>181</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8195.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>182</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>8495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>183</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>184</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9995.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>185</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>186</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>9980.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>187</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13295.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>188</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>189</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>12290.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>190</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>12940.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>191</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>13415.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>192</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>15985.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16515.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>194</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>18420.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>195</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>18950.0</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",
"5 fwd sedan 15250.0\n",
"6 fwd sedan 17710.0\n",
"7 fwd wagon 18920.0\n",
"8 fwd sedan 23875.0\n",
"9 rwd sedan 16430.0\n",
"10 rwd sedan 16925.0\n",
"11 rwd sedan 20970.0\n",
"12 rwd sedan 21105.0\n",
"13 rwd sedan 24565.0\n",
"14 rwd sedan 30760.0\n",
"15 rwd sedan 41315.0\n",
"16 rwd sedan 36880.0\n",
"17 fwd hatchback 5151.0\n",
"18 fwd hatchback 6295.0\n",
"19 fwd sedan 6575.0\n",
"20 fwd hatchback 5572.0\n",
"21 fwd hatchback 6377.0\n",
"22 fwd hatchback 7957.0\n",
"23 fwd hatchback 6229.0\n",
"24 fwd sedan 6692.0\n",
"25 fwd sedan 7609.0\n",
"26 fwd sedan 8558.0\n",
"27 fwd wagon 8921.0\n",
"28 fwd hatchback 12964.0\n",
"29 fwd hatchback 6479.0\n",
".. ... ... ...\n",
"171 fwd hatchback 9988.0\n",
"172 fwd sedan 10898.0\n",
"173 fwd hatchback 11248.0\n",
"174 rwd hatchback 16558.0\n",
"175 rwd hatchback 15998.0\n",
"176 rwd sedan 15690.0\n",
"177 rwd wagon 15750.0\n",
"178 fwd sedan 7775.0\n",
"179 fwd sedan 7975.0\n",
"180 fwd sedan 7995.0\n",
"181 fwd sedan 8195.0\n",
"182 fwd sedan 8495.0\n",
"183 fwd sedan 9495.0\n",
"184 fwd sedan 9995.0\n",
"185 fwd convertible 11595.0\n",
"186 fwd hatchback 9980.0\n",
"187 fwd sedan 13295.0\n",
"188 fwd sedan 13845.0\n",
"189 fwd wagon 12290.0\n",
"190 rwd sedan 12940.0\n",
"191 rwd wagon 13415.0\n",
"192 rwd sedan 15985.0\n",
"193 rwd wagon 16515.0\n",
"194 rwd sedan 18420.0\n",
"195 rwd wagon 18950.0\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": 54,
"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": 55,
"metadata": {
"collapsed": 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": 55,
"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": 56,
"metadata": {
"collapsed": 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": 57,
"metadata": {
"collapsed": 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": 58,
"metadata": {
"collapsed": 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": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment