Created
March 9, 2019 08:15
-
-
Save wolejnr/b2da2523ea47918a2f9a5ed97e580b74 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
" <a href=\"http://cocl.us/DA0101EN_NotbookLink_Top\">\n", | |
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n", | |
" </a>\n", | |
"</div>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n", | |
"\n", | |
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Exploratory Data Analysis" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Welcome!</h3>\n", | |
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Table of content</h2>\n", | |
"\n", | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
"<ol>\n", | |
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n", | |
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n", | |
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n", | |
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n", | |
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n", | |
" <li><a href=\"#anova\">ANOVA</a></li>\n", | |
"</ol>\n", | |
" \n", | |
"Estimated Time Needed: <strong>30 min</strong>\n", | |
"</div>\n", | |
" \n", | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>What are the main characteristics which have the most impact on the car price?</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Setup</h4>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Import libraries " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"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/cognitive_class_DA0101EN_objectstorage\">HERE</a> for free storage" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"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": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n", | |
"df = pd.read_csv(path)\n", | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"To install seaborn we use the pip which is the python package manager." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%%capture\n", | |
"! pip install seaborn" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"%matplotlib inline " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>How to choose the right visualization method?</h4>\n", | |
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"symboling int64\n", | |
"normalized-losses int64\n", | |
"make object\n", | |
"aspiration object\n", | |
"num-of-doors object\n", | |
"body-style object\n", | |
"drive-wheels object\n", | |
"engine-location object\n", | |
"wheel-base float64\n", | |
"length float64\n", | |
"width float64\n", | |
"height float64\n", | |
"curb-weight int64\n", | |
"engine-type object\n", | |
"num-of-cylinders object\n", | |
"engine-size int64\n", | |
"fuel-system object\n", | |
"bore float64\n", | |
"stroke float64\n", | |
"compression-ratio float64\n", | |
"horsepower float64\n", | |
"peak-rpm float64\n", | |
"city-mpg int64\n", | |
"highway-mpg int64\n", | |
"price float64\n", | |
"city-L/100km float64\n", | |
"horsepower-binned object\n", | |
"diesel int64\n", | |
"gas int64\n", | |
"dtype: object\n" | |
] | |
} | |
], | |
"source": [ | |
"# list the data types for each column\n", | |
"print(df.dtypes)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
"<h3>Question #1:</h3>\n", | |
"\n", | |
"<b>What is the data type of the column \"peak-rpm\"? </b>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click <b>here</b> for the solution.\n", | |
"\n", | |
"<!-- The answer is below:\n", | |
"\n", | |
"float64\n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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": 7, | |
"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": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click <b>here</b> for the solution.\n", | |
"\n", | |
"<!-- The answer is below:\n", | |
"\n", | |
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Continuous numerical variables:</h2> \n", | |
"\n", | |
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n", | |
"\n", | |
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Let's see several examples of different linear relationships:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h4>Positive linear relationship</h4>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's find the scatterplot of \"engine-size\" and \"price\" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(0, 56081.91493366331)" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEKCAYAAADaa8itAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl4XHd58P3vPZtmtEveF9mWHAdnTxzHdjbHQICELWkbIIEmAQLOQi/a63nhJfQp0AdoX2j7QJO2SZyNJBQIIUATWkIIJLaz207IHie2JduSN1m7RqNZz+/945wZj6UZaUaa0Wi5P9elS5rfnHPmHI88t85vuW8xxqCUUkoVgqvUJ6CUUmr60KCilFKqYDSoKKWUKhgNKkoppQpGg4pSSqmC0aCilFKqYDSoKKWUKhgNKkoppQpGg4pSSqmC8ZT6BCba7NmzzbJly0p9GkopNWW89NJLHcaYOblsO+OCyrJly9ixY0epT0MppaYMEdmX67ba/aWUUqpgNKgopZQqGA0qSimlCkaDilJKqYLRoKKUUqpgNKgopZQqGA0qSimlCkaDilJKqYLRoKKUUqpgZtyKeqWUUrkxxtA7GMtrHw0qSimlhgnHEnQEI0TjVl77aVBRSimVYlmGrlCUvjzvUJI0qCillAJgIBKnMxglbuV3d5JOg4pSSs1w8YRF50CUgUh83MfSoKKUUjNY72CM7oEoljEFOZ4GFaWUmoEi8QQdwSiRWKKgx9WgopRSM4gxhq6BKH3hOKZAdyfpNKgopdQMEYraA/GxxNgH4kdT1BX1IrJXRF4XkVdEZIfTVi8iT4jILud7ndMuInKriOwWkddEZFXaca51tt8lItemtZ/tHH+3s68U83qUUmoqSliG9r4wh3vDRQ0oMDFpWt5rjDnTGLPaeXwz8EdjzArgj85jgEuBFc7XRuB2sIMQ8C1gLbAG+FYyEDnbbEzb75LiX45SSk0dfeEYbd0hggWY2ZWLUuT+ugy43/n5fuDytPYHjO0FoFZEFgAfAp4wxnQZY7qBJ4BLnOeqjTHPG7tj8IG0Yyml1IwWjVsc6h2koz9Cwir82Ek2xQ4qBvi9iLwkIhudtnnGmEMAzve5TvsioDVt3zanbaT2tgztSik1Yxlj6AlFOdAzyGC0sDO7clHsgfrzjTEHRWQu8ISI7Bxh20zjIWYM7cMPbAe0jQBLliwZ+YyVUmqKGmu+rkIq6p2KMeag870d+DX2mMgRp+sK53u7s3kb0JC2+2Lg4CjtizO0ZzqPO40xq40xq+fMmTPey1JKqUnFsgwdwQgHewZLGlCgiEFFRCpEpCr5M/BB4A3gUSA5g+ta4BHn50eBa5xZYOuAXqd77HHggyJS5wzQfxB43HmuX0TWObO+rkk7llJKzQgDkTht3YNjTgBZaMXs/poH/NqZ5esBfmqM+Z2IbAceEpHrgP3AJ5ztfwt8GNgNhIDPARhjukTkO8B2Z7tvG2O6nJ9vBO4DAsBjzpdSSk17hczXVUhFCyrGmGbgjAztncD7M7Qb4EtZjnUvcG+G9h3AqeM+WaWUmkIKna8rm9auEJu2Nue1j66oV0qpKaJY+bqG6h2M8ePn9/HIqwfzno6sQUUppSY5YwzdoRi9g7Gi5OtKiiUsHnnlID9+YR/9YbtbbUGNn315HEODilJKTWKDUXuacDHTqxhjeHZ3J5u2NnOgZxCACp+bz6xbyp+ftYiT/jb3Y2lQUUqpSShh2dmE+8PFndW160g/t2/ZwyutvQC4BD52+kKuPW8pteW+vI+nQUUppSaZYCROZ7C46VU6ghHueaaF3795JLVqfM2yOm7YsJxlsyrGfFwNKkopNUnEEhadwSihaPGmCYdjCR7a0cqD21oJOwsll80q58YNyzlnWf24j69BRSmlJoHeUIzuUPGmCVvG8Me327n76RaOBiMA1Aa8fO78ZXz4tAW4XYWpHKJBRSmlSmgipgm/1tbD7ZubeedIPwBet3DF2Yv59JolVJQVNgxoUFFKqRJIlvXtLWJ6lYM9g9y5tZmtuzpSbRtOnMPG9U3Mr/EX5TU1qCil1AQrdlnfYDjOf764j1//6QCxhN2ddtKCKm7asJxTFtYU5TWTNKgopdQESViGzmAkVYVxW3MXD25v5VDfIAuqA1x5TgNrmsY+WJ6wDP/92kHue25f6g5oblUZX7ywkfeunItrAiqua1BRSqkJ0B+O0TUQTU0T3tbcxS1P7sLjEqr9HjoHItzy5C7+mhV5BxZjDC+2dLFpSzP7ukIABLxuPr22gStWLabM6y749WSjQUUppYooGrfoHIgMq8L44PZWPC4h4HzgB7xuBmMJHtzemldQaT4a5I4tzezY1w3Y1QsvPXU+n7+gkfqK/BcvjpcGFaWUKgJjjJ1NOJQ5X9ehvkGq/cd/BPu9Lg73DeZ0/K6BKPc9t5ffvn6I5BrJVUtqufGi5SyfWznu8x8rDSpKKVVguZT1XVAdoHMgkrpTsfezmF8dGPHY0bjFwy+18dNt+wk5dz8NdQFuuGg565rqkQkYNxmJBhWllCoQyzJ0haI5VWG88pwGbnlyF4OxBH6vi3DMIm4ZrjynIeP2xhieeucodz3dzJE+e/Fitd/DNecu4+NnLMDjLmp1+JxpUFFKqQIYiNjThONWbtOE1zTV89es4MHtrRzuG2T+CLO/3jrYx22b9/DWoT4APC7h8rMWcvW6pVT5vQW9jqHyvfPRoKKUUuMwnrK+a5rqRxyUP9wX5u6nW3hyZ3uq7YITZrNxfSOL68rHdL65EhGq/B5qA/kFLQ0qSik1Rn3hGF3BwufrGojE+dm2/fzipbbU4sUVcyu5acNyzmioLehrDZUeTMbSpaZBRSml8hSNW3QEI4QLnK8rYRkee+MwP3q2he6QPS4zq9LHFy5o5AMnzyvq4sXxBpMkDSpKKZUjYww9oRg9RSjru2NvF3dsaaa5YwAAv8fFp85p4JPnNBw3Q6zQROzFlzXjDCZJGlSUUioH4ViCo/2FL+u7r3OAO7Y082JLV6rtQ6fM4/PnNzKnqqygr5Wu0MEkSYOKUkqNwLIMnUUo69sbinHf83v5zasHU4sXT19cw00blnPivKqCvla6ZDCpLfcVrIZKOg0qSimVRTASpyuPacK5iMYtHnnlAA+8sI+BiD0ms7DWz/Xrl3PBCbOKtnjRlRwzKVIwSdKgopRSQ8QTFh0FLutrjOHp3R3cubWZgz1hACrK3FyzbimXn7UIb5EWL7pEqA54qQl4ixpMkjSoKKVUmmKU9X3ncD+3bd7D6wd6AXAJXHbmIq5Zt5Sa8uIsXpzoYJKkQUWpaWLzznY2bW2mtTtEQ105169vYsPKuaU+rSmjGGV9j/ZHuOeZFn7/1pFU27qmem5Yv5wls4qzeLFUwSRJg4pS08Dmne1889E38bqF2oCX9v4w33z0Tb4NGlhGkSzr2xeOF2ya8GAswc+3t/Lz7a1EnKSSTXMquPGi5Zy9tC7rfuMp2lXqYJKkQUWpaWDT1ma8bqHcZ/+XLvd5CEXjbNrarEFlBINRO5twoaYJW8bw+zePcM8zLXQORAGoK/fyufMbufTU+SN+2I+1aNdkCSZJGlSUmgZau0PDcjQFvG7aukMlOqPJLWEZOgciBMOFG4h/pbWH2zbvYXd7EACvW/jk6gauWtOQCvYjybdo12QLJklFDyoi4gZ2AAeMMR8VkUbgQaAeeBm42hgTFZEy4AHgbKAT+JQxZq9zjK8D1wEJ4MvGmMed9kuAWwA3cLcx5nvFvh6lJqOGunLa+8PHfXgNxhJFTzo4FfWFY3SnlfUdrwPdg9yxdQ/P7u5Mtb1/5Vyuu7CR+dX+nI+Ta9Eulwg1AS/VkyyYJE1EAv6/Bt5Oe/x94IfGmBVAN3awwPnebYw5Afihsx0icjJwJXAKcAlwm4i4nWD1H8ClwMnAVc62Ss04169vIpYwhKL2uEAoGieWMFy/vqnUpzZpROMWh3oH6eiPFCSg9Idj3LZ5N5+7b3sqoJy8oJp/v+os/vdHTsoroIBdtCscO74bLr1ol0uEunIfDfXl1FUUd63JeBQ1qIjIYuAjwN3OYwHeBzzsbHI/cLnz82XOY5zn3+9sfxnwoDEmYoxpAXYDa5yv3caYZmNMFPvu57JiXo9Sk9WGlXP59sdPYW6Vn97BGHOr/Hz746foeAr2QHz3QJQDPYPD6sSPRTxh8auX27j6nm08/NIB4pZhXnUZ3/jISfzbVWdy8sLqMR33ynMaiFuGwVgCg/09bhmuWtNAXbmPJZM8mCQVu/vrX4H/F0jmHJgF9Bhjkh2ZbcAi5+dFQCuAMSYuIr3O9ouAF9KOmb5P65D2tYW+AKWmig0r52oQGaKQ+bqMMTzf3MkdW5pp67a7pMp9bj6zdgl/sWoxPs/4/kYfVrSrJsAXzm/kw6cvwDXJA0m6ogUVEfko0G6MeUlENiSbM2xqRnkuW3umdzDjPa2IbAQ2AixZsmSEs1ZKTQeFzte1uz3I7Vv28Kf9PYC9ePHDpy3gs+cto77CV5DXADuwrFs+ixpnAH4qBZOkYt6pnA98XEQ+DPiBauw7l1oR8Th3K4uBg872bUAD0CYiHqAG6EprT0rfJ1v7cYwxdwJ3Aqxevbqw+aqVUpNKvmV9R9IZjPCjZ/fy2BuHU3+xrl5axw0XNdE0p3Lcx0+XHICfqsEkqWhBxRjzdeDrAM6dyleMMZ8RkV8AV2CPgVwLPOLs8qjz+Hnn+SeNMUZEHgV+KiI/ABYCK4Bt2HcwK5zZZAewB/M/XazrUUpNbuMp6ztUJJbgFy+18bNtrQw6K+yX1pdzw4Ym1iyrL2jSx8k6NXisSrFO5WvAgyLyXeBPwD1O+z3Aj0VkN/YdypUAxpg3ReQh4C0gDnzJGJMAEJG/Ah7HnlJ8rzHmzQm9EqXUpFCosr6WMTy1s527nm6hvT8CQE3Ay2fPW8pHT19Y0A/96RZMkqTQ1csmu9WrV5sdO3aU+jSUUgVQyLK+bxzo5bbNe9h5uB+wFy/++VmL+MzapVT6C/f391QMJiLykjFmdS7b6op6pdSUU8iyvod6B7lzawtb3j2aalt/4my+eGETi2oD4z3VlGIXx5osNKgopaaUQk0TDkbi/PTF/fzy5TZiCTswvWdeFTduaOL0xbWFOFWgeGV7JysNKkqpKaFQ04QTluF/Xj/Efc/upWfQPtbsSh9fvLCJ9580F1eBBuElWWlxhgSTJA0qSk0CWgtlZIUq67t9bxe3b97D3k470abf4+KqNUv4xOrF+J1EjuM1U4NJkgYVpUqsULVQpmNgKlRZ35aOATZt2cO2vd2AvR7hQ6fM5/MXLGN2ZVkBztQOJpVlHurKZ2YwSdKgolSJFaIWynQs0lWIsr7doSj3PbeX/3ntEMkckmc21HDjRctZMa9q5J1zpMHkeBpUlCqxQtRCmU5FugpR1jcat5M+/uTF/Qw4SSQX1wW4fn0T5y2fVZDFi8lgUlvuxavBJEWDilIlVohaKNOhSJcxhu5QjN5xTBM2xrDl3Q7uerqZQ71hAKr8Hq45dykfP2NhwT78K/0e6sp9UyKYTHS3qAYVpUrs+vVNfPPRNwlF46lqf/nWQpnqRboKUdb37UN93LZ5D28e7APA7RIuO3MhV69bSs2QgDtWlX4PtQHfuDMST5RSdItqUFGqxDasnMu3sbuw2rpDLB7DX5OFCEylkE9Z323NXTy4vZVDfYMsqA5w5TkNrGmqp70vzN3PtPCHt9tT2563fBbXr2+iob4wQdXu5po6wSSpFN2iGlSUmgTGWwulEIFpovWHY3TlWNZ3W3MXtzy5C4/LXkjYORDhh398l5PfqubZPZ1E4/YdzglzKrlhQxOrltQV5BynajBJKkW3qAYVpaaJiS7SNda++ljCzteVTxXGB7e34nEJAa8bYwzRuMXRYISn+uzUKvUVPq47fxkfPGV+QVKgVDgD8GWewqxdKZVSdItqUFFK5W0sffXGGHoHY3SH8h+IP9Q3SLXf7ro5GowSiR8be7l63RKuPGcJAd/4A8B0CSZJpegW1aCilMpbvn314Zg9EB+Nj20gvi7gY2/XAOHYsf3LfW6W1VfwufMbx3YRaaZbMEkqRbeoBhWlVN5au0O4BZqPBokmLHxuF7MrfcP66i3L0B2K0js4tnxdvYMxfvz8Pt5t708tXvR7XVT77bTx15y7dFzXUe6zg0mhUrRMRhPdLapBRalJYKqlWKkq87CrPYjbJbhdQtwyHOgJs2LusRK7oWicjv6x5euKJSweeeUgP35hH/3OzLD6ci/Vfi+DsTgLao7N/hqLmRBMSkWDilIlNhVTrKTGRJJDI+ZYe8IydAYjBMdQ1tcYw7O7O9m0tZkDPYMAVPjcfGbdUv78rEXjnoUV8LmpK/dpMCkiDSpKldhUTLESjCZYVOunIxhNdX/NryyjPxKnrTuU0zThoXYd6ef2LXt4pbUXAJfAx05fyLXnLaW23Deu89VgMnE0qChVYlMxxUpyqmrTHLu7yzKGYDjGnEp/3gGlIxjhnmda+P2bR1I3Pmsa67nhoiaWzaoY13n6vW7qKzSYTCQNKkqV2FRMsZKcqjoQieHzuBiIJIhbhivPacj5GOFYgod2tPLgtlbCzqywZbPKuXHDcs5ZNraxkiS/174zKcQ0Y5UfDSpKldhUTLGyYeVc/i5ucfuWPRzqHWR+de4D55Yx/OHtdu5+upmOYBSAunIvnzt/GZeeumBcixc1mJSeBhWlSmzDyrlc0dbD3c+0MBBNUOFz84ULGifteEqyrO8J8yr5v588I699X2vr4fbNzbxzpB8Ar1u44uzFfHrNEirKxv5xpMFk8tCgolSJbd7ZzsMvH2BOVRlLnDuVh18+wOmLayddYBlrWd8DPYPctbWZrbs6Um3vfc8cvnhhE/Nr/DkdI1NCyQvfM4d6DSaTigYVpUpsKsz+GmtZ32A4zn++uI9f/+kAsYQ9DL9yfhU3bVjOqYtqcj7O0ISSXaEI/755N/Nr/JPm30jZNKgoVWD5LmSc7LO/xlLWN56w+O/XDnHfc3vpcxYvzq0q44sXNvHelXNw5Vl5MZlQstznweMS/N7JF3iVTYOKUgU0loWMk3X211jK+hpjeLGlizu2NLO/yw6KAa+bT69t4IpViykb49Tew/2D1Ad8uNMqLU6mwKuO0aCiVAGNpStrss3+MsbQNRClLxzPK5tw89Egt29p5qV93QAIcOlp8/n8+Y3UV4xt8WKZ101duZfGWZV24E0LKpMh8KrhNKgoVUBj6cqaTAW2QtE4ncFoXmV9uwai3PfcXn77+qFU0sdVS2q5ccNyls+pHHnnLJLBJBmcJ1vgVdlpUFGqgMbalVWITLLjSUo5lnxd0bjFwy+18ZMX9zPodJE11AW4ccNy1jbWI3mOmwD4PC7qK3zH/fvB5Aq8amQaVJQqoFL9RT2epJR94RhdwdwH4o0xPPXOUe56upkjfREAqv0erj1vGR87fQEed/5JH30eF3XlvhHXqkx0Cnc1NkULKiLiB7YCZc7rPGyM+ZaINAIPAvXAy8DVxpioiJQBDwBnA53Ap4wxe51jfR24DkgAXzbGPO60XwLcAriBu40x3yvW9SiVi1L9RT2WsZyxDMS/dbCP2zbv5q1D9uJFj0v4s7MW8ZfrllDl946y93C5BBM1teT8TorIUmCFMeYPIhIAPMaY/hF2iQDvM8YERcQLPCMijwH/C/ihMeZBEbkDO1jc7nzvNsacICJXAt8HPiUiJwNXAqcAC4E/iMiJzmv8B/ABoA3YLiKPGmPeyuP6lSq4UvxFnc9YjjGG7lCM3sHcy/oe7gtz19ZmnnrnaKrtwhWz2XhhE4vqAnmfrwaT6Sund1REvghsxL67WA4sBu4A3p9tH2P/tgadh17nywDvAz7ttN8P/D12ULnM+RngYeDfxe6UvQx40BgTAVpEZDewxtlutzGm2TnHB51tNaioGSfXsZx8B+IHInF+tm0/v3ipLbV4ccXcSm7asJwzGmrzPk8NJtNfru/sl7A/yF8EMMbsEpFR/xQTETfwEnAC9l3FHqDHGJMcDWwDFjk/LwJanePHRaQXmOW0v5B22PR9Woe0r81yHhuxgyJLliwZ7bSVmnJGG8uJJyy6BqI5D8QnLMNjbxziR8/upTtklwKeVenjixc0cvHJ8/JevKjBZObI9R2OOOMeAIiIh2M137IyxiSAM0WkFvg1cFKmzZzvmX5LzQjtmUYDM56TMeZO4E6A1atX5189SKlJbqSxnN7BGN0DuQ/E79hrL15s7hgAwO9x8alzGvjkOQ0E8ly8qMFk5sn1nd4iIn8LBETkA8BNwG9yfRFjTI+IbAbWAbUi4nHuVhYDB53N2oAGoM0JWjVAV1p7Uvo+2dqVmnGGjuVE4gkO9AzmPBC/r3OAO7Y082JLF2D/NffBU+bx+fMbmVNVlte5aDCZuXJ9x2/GHkh/Hbge+C1w90g7iMgcIOYElABwMfbg+1PAFdgzwK4FHnF2edR5/Lzz/JPGGCMijwI/FZEfYA/UrwC2Yf/Or3Bmkx3AHsxPjtUoNWNZlqE7lPuK+N5QjPue38tvXj2YWrx4xuIabtywnBPnVeX12j6Pi9pyH5UaTGasXN/5AHCvMeYuSI2VBICREu8sAO53tnUBDxlj/ltE3gIeFJHvAn8C7nG2vwf4sTMQ34UdJDDGvCkiD2EPwMeBLzndaojIXwGPY08pvtcY82aO16NU0YxnEeJ45TMQH41b/NcrB/jxC/sYiNh3M4tqA1y/vonzT5iV1+JFr9tFXYUGEwWSy18yIvICcLExJug8rgR+b4w5r8jnV3CrV682O3bsKPVpqGlq8852vvLwqwQjcRKWwe0SKss8/MsVZxQ1sCQsQ+dAhGB49IF4YwxP7+7gzq3NHOwJA1BZ5uHqdUu4/KxFePNYvKjBZGYQkZeMMatz2TbX3wR/MqAAOGtPNJObUkN877G36QnFcIvgFsFY0BOK8b3H3i5aUOkPx+gaiJKwRv8D8Z3D/dy2eQ+vH+gFwCVw2ZmLuObcpdQEcl+8qMFEZZPrb8SAiKwyxrwMICJnA4PFOy2lpqaWzhAuAZcrOVMSjGVo6Sx8ivZ8Cmcd7Y9w9zMtPPHWkVTbuqZ6bli/nCWzcv/7UIOJGk2uvxl/A/xCRJKzqxYAnyrOKSmlRpPrNOHBWIKfb2vl5ztaicTtcZamORXceNFyzl5al/PraTBRucrpN8QYs11EVgLvwZ51tdMYEyvqmSk1BTXNrmBXexAxxr5LMWAZWDGnoiDHzzVfl2UMv3/zCPc820JnMApAXbmXz53fyKWnzsftym0Q3ut2UVvuHVNeLzUzjRhUROR9xpgnReTPhzy1QkQwxvyqiOem1JTztUtW8tWHX6U/HCeesPC4XNSVe/naJSvHddx88nW90trDbZv3sLvdHgb1eVx84uzFXLWmYVhK+Ww0mKixGu037CLgSeBjGZ4zgAYVpdJsWDmXf77ijIJmKR6MJugIRkadJtzWHWLT1mae3d2Zanv/yrlcd2Ej86v9Ob1WMphUlnnGVA9FqRGDipOq3gU8Zox5aILOSakprVBZinOdJtwfjvHA8/v4r1cOpmaAnbygmi+9dzknLajO6bW8bhc15V6qNJiocRr1XtgYYzmLDDWoKDVBcpkmHE9YPPrqQR54fh99TuCZX+1n4/pGLjpxTk7BQYOJKrRcp3I8ISJfAX4ODCQbjTFdRTkrpWaoaNyiIxghPMJAvDGG5/Z0Ol1s9sz+cp+bv1y7hD9ftRifZ/TFixpMVLHkGlQ+jz2GctOQ9uLWSFVqChpLmhZjDD2hGD2jDMTvbg9y+5Y9/Gl/D2AvXvzI6Qv47HnLqCv3jXpuHpeL2goNJqp4cg0qJ2MHlAuwg8vT2EW6lFJpxlIrPhxLcLR/5IH4zmCEHz27l8feOJyq73DOsjpuuGg5jbNHn67scdl3JtV+DSaquHINKvcDfcCtzuOrnLZPFuOklJqq8qkVn7AMXQNR+sPZl3xFYgkeeqmNn23bTzhmB52l9eXcsKGJtY2zRj0ft0uoDfioDmgwURMj16DyHmPMGWmPnxKRV4txQkpNZbnWih9tIN4yhid3tnP30y2090cAqAl4+ex5y/jo6QtGXbzodgk1AS81Aa8GEzWhcg0qfxKRdcaYFwBEZC3wbPFOS6niK0aK+tFqxccS9kD8YDT7QPwbB3q5bfMedh7uB8DrFv5i1WI+vXbJqGlSksGk2u9N5R9TaiLlGlTWAteIyH7n8RLgbRF5HTDGmNOLcnZKFclYxj5yka1W/MYLG+kJRekOZR+IP9Q7yJ1bW9jy7tFU2/oTZ7PxwiYW1gZGfF0NJmqyyDWoXFLUs1DTWimLVmWTz9hHPjLViv/cectYMb+KroFoxn2CkTg/fXE/v3y5jVjCDjjvmVfFTRuWc9rimhFfT4OJmmxyTSi5r9gnoqanYt0RjFeuYx9jkVxRb1mGTmcgPhofPrMrYRn+5/VD3PfsXnoG7cH6OZVlfOHCRt5/0lxcI4yFaDBRk5XmsVZFVaw7gvEabexjvIKROF3BKHEr8zThbS1d3L5lD/ucOit+r4ur1izhE2cvxu91Zz2uBhM12WlQUUVVzDuC8cg29nH9+vGt540lLDpHKJzV0jHApi172La3G7DrSHzolPl8/oJlzK4sy3pcDSZqqtCgooqq2HcEY5Vp7GO8Yz29oRhdoWjGgfjuUJT7ntvL/7x2iOQs4jMbarlpw3JOmFuZ9ZguOTY1WIOJmgo0qKiiGssdwUQN7Bcqm3A4ZqemzzRuEo1b/OrlNn7y4n4GnGnEi+sCXL++ifOWz8q6hkSDiZqqNKioosr3jiDTwP5XH36VWRU+gtHEpJk9BmBZhq5QlL7B4SvijTFsefcod25t4XBfGIAqv4drzl3Kx89YiNedOeljMphUB7w5V2dUajLRoKKKLp87gqED+wnLrnjYH4lzwpzKYbPHSjVdeSASpzPLQPzbh/q4bfMe3jzYB9jjIZefuZCr1y2lOpC5kqJLhGrnzkSDiZrKNKioSWXowP7R/ggusYOLiBw3ewyY8OnKIw3EH+kLc/fTLfxxZ3uq7fzls9i4vonWUexvAAAgAElEQVSG+sxjSCJCtd9DbblPg4maFjSoqEll6MB+NGEhgC+tuyg5e2yipitv3tnOHVv2sL8rxNxqP1eubmBNU33q+VA0zs+2tfKLl9pS4yonzKnkxg1NnLWkLuMxNZio6UqDippUhg7su0WIW+a46bbJ2WMTMV158852/u6RN3AJVJS56QxGuOXJXfw1Kzh7WR2Pv3mYe5/dm1otP6vCx3UXNPKBk+dlDBbJYFIT8OLJMq6i1FSmQUVNKkMH9htnV3A0GMHjFowxx80e27S1eVzTlW/9w7vc/UwLA9EEFT43X7igkS9ffGLq+YRl+LcndyOA32MvSEzOYLvr6WbufAaaj9qFUMs8Lj65ejFXnrOEgG/44kUNJmqm0KCiJp2hA/vJwfhMs8fGuoDx1j+8yy1P7sYl4HHZweiWJ3cD8OWLT6QvHKN7IEpbT4hq/7H/JtG4RddANDU9GODik+byhQsamVvtH/Y6IkKV30OtBhM1Q2hQUZNettlj41nAePczLU5AsT/oXQJxy+Kup5u5YnVDqkb8guoAnQMRfG4XnQPRVI4ugFMXVnPTe5ezcn71sOOLCJVlHurKNZiomUWDiprSxrqAcSCawJP2WW+MQTAMRBOpgAJwxdmL+P7j7xCMxEkulHe7hCtXN/D5C5YNW7woIlSUuakr92Vdi6LUdFa033oRaRCRp0TkbRF5U0T+2mmvF5EnRGSX873OaRcRuVVEdovIayKyKu1Y1zrb7xKRa9PazxaR1519bhUtcadyVOFzp9KlGGMwgGXsMZNk29O7Orh9SzP9YTugCLCwxs//+ejJXHdh47CAUun3sLguwNwqvwYUNWMV804lDvw/xpiXRaQKeElEngA+C/zRGPM9EbkZuBn4GnApsML5WgvcDqwVkXrgW8BqwDjHedQY0+1ssxF4Afgtdt2Xx4p4TWqa+MIFjfzrH3dhTAIRMMYOKp88ezG7jvRz2+Y9vNrWC9hdYx87fSHXnreU2nLfsGNVltlTg5/b3THp6sYoNdGKFlSMMYeAQ87P/SLyNrAIuAzY4Gx2P7AZO6hcBjxg7Gx8L4hIrYgscLZ9whjTBeAEpktEZDNQbYx53ml/ALgcDSoqB5+9oJHuUJSHdrQxGEsQ8Lr56GnzOdgX5ob/fJlkSsi1jfVcf1ETy2ZVDDtGMpj4PK5JWzdGqYk2IWMqIrIMOAt4EZjnBByMMYdEJPk/bhHQmrZbm9M2UntbhvZMr78R+46GJUuWjO9i1JQWjds14sOxBFefu4yrz13GYCzBL3a08uC2VsLO4sVls8q5ccNyzllWP+wYFWUeasu9lHmOTR2erHVjlJpoRQ8qIlIJ/BL4G2NM3wjDHpmeMGNoH95ozJ3AnQCrV6/OXCBcFcVIubmyPVeMfF7GGHpCMXoGj9WIt4zhD28d4e5nWugI2osX68q9fO78ZVx66oJhixfLfR7qKo4PJkmTtW6MUhOtqEFFRLzYAeUnxphfOc1HRGSBc5eyAEgmSmoDGtJ2XwwcdNo3DGnf7LQvzrC9miRG6hKCzHm7rmjr4eGXDxS0GykcS3C0P0IscSz542ttPdy2eQ/vHgkC4HULf7FqMZ9Zu4SKsuP/W4wUTJIma90YpSZa0YKKMxPrHuBtY8wP0p56FLgW+J7z/ZG09r8SkQexB+p7ncDzOPCPyVliwAeBrxtjukSkX0TWYXerXQP8W7GuRx0vl7uJTVubiSUSdAbjRBMWPreL6oAnlQwyU3fR3c+0MKeqrCDdSJZl6A5F6U1bW3Kge5A7n27m6V0dqbb3vmcOX7ywifk1xy9ezNTNlc3165v4ysOvcqBnkIRlcLvsdSrf+MjJeZ2zUlNdMe9UzgeuBl4XkVectr/FDiYPich1wH7gE85zvwU+DOwGQsDnAJzg8R1gu7Pdt5OD9sCNwH1AAHuAXgfpJ8Dmne189eFX6Q/HiVsWHf0Rvvrwq/zzFWcc98G/q72f3lAMl0twu+wcXh39UXoHexiMJTDGnlk1q8LH/JoAAa+bYCROPGERsww+t4s5VWVUlnny7kYaWiM+GI7z4xf28es/HSDuzCU+aUEVN160nFMX1Ry3bz7BJJ0AGLurDSMZ+2eVmu6KOfvrGTKPewC8P8P2BvhSlmPdC9yboX0HcOo4TlONwfd/t5PuUAy3S/C4XRgD3aEY3//dzuOCSjRugdi1QgBEIGYsYmkpTiwDR53xDLdLMEDM+Us/bhkO9oSZVell2azsJXfT75oW1Qa4cnUDZyypBSCesPjNa4e4/7m99IXtdPVzq8r44oVNvG/lnOPWmow1mIB9V1Yd8DK/JpBq04F6NRPpinqVt+aOAVxDgoURQ3PHwHHbed3CYMzuhkpfCwJ2Kvto2hjH0WDUGUfxEIwkMJZ9XAtD10CMq86p56o7X8g4qP/NR9/E47Kn+B7sGeSffv8OX37vCRiBO7Y0s7/LvssJeN18em0DV6xaTJn3WOCoLPNQM8ZgkqQD9UrZNKioojlxXjUtHUH6w8fGVCIJO1hkEk8Yqv1eqv0+u+a7s49LTNbB+01bm3G7wOt2Y1mGgNdNbzjGPzy2k2DEvjNxCVxy6nw+f34j9RX24sVkbq6agBefZ/yr33WgXimbBhWVt8ZZ5ew+OoAMuQM5YfbxH6DJ2ijzazypLMLNRwcQOG4mVrpDvWHeM786VXY3FI1ztD+ScVD/ji172NcVorLMjTGGeMKicyBKb/hYVcazl9Ryw4blLJ9jd58VK2vw9eub+OrDr3Kge5C4ZeFxuajy60C9mnk0qMxgY10PcvOlJ/GVh18lGImnZjrVlnm5+dKTjtsuUxbh0xdV8+hrh7HM8cuFXNh3MNGE4Wh/mP5wnEjcwu0SfG5J5eRK8rld7OscYF51gOaj/fRFEsc9X+Zx8a2PnczaxnpEZELqmRgAsQMXkmXRlFLTnAaVGWo8aUVea+thIBInHLNL/c6v9vOdy07Nmp5+aHvj7Hf5wR92pR67gDKvm4RlYRKG7lCMuGVR5nZRU+6layBGRzDCnCo/ljHEE4ZQNM7cKj9xKzEsoACcv7yedU2zJqw41qatzdQEvCzQgXo1w2lQmaFGWkMy0odgenGrMo9gGTjYG+a1tp6M+2W6G/ryxSfy29cPsfvoAG4Re0DeMljGHtw3xmBZMGhZWAMxKnxuugailHnd+NxCOGYRiiYQouzvHsx4ni+2dFPl946rnkk+d3I6UK+UTfNzz1C72vvp6I8ST5u+29EfZVd7/4j7pRe3conL+W63D5W8G2rvDx93N7R5Zzs3X3oSteVexAUJYxAXBLwuoglDNHGs4ygct+gJxfC5XdQFfHSHYvSH43QOZA8oAKFogjlVZeMKKNnOPZOGunIGY8ffMelAvZqJNKjMUOlrSASxpweL0z6CgWiCISmxcAnHlddNSk+yKGJ/97oldTf0L1ecwVkNdcyv9nNWQx2L68pTM8MMx8YkLOw8XSctrKJ3MJaqvnjivMqsC6FcQ08yT5u2NhONJzjcG+adI/0c7g0TjSdS2QCGun59EzGnW84Y+3uupY2Vmk60+6uEipE4MVeZ1pAA+NwjfxhX+NwMROMYY6+IF7G/KnzDf5VG6xIaOt5ywfefxGQZ3Q7FLH62zU5WPbvSxxcubOLik+by8X97mlBs+E7l3szXkeu/+btH+ugOxTDGDm7xRILBWIJ4lllr4yltrNR0okGlREpdfyPTGpIqv5fG2dlXrgO8f+Ucfv3KodRj49xSnLKgati2+a7daKgr58AIXVp+j4sr1zTwidUNBLxuAj43py6q490jffSF41hO2pdqv4eTFtQM2z+ff/NQNJFaqAnOnZPJfEeWNNbSxkpNJ9r9VSIjdQ1NhOvXN+HzuJlf4+c986qYX+PH53GP2l1zuC9KuXf4r82O/T3DxhtG6xLavLOdq+58gQu+/yRXbnqeMxZXZ52G63MLD1y3hmvOXUZduY+FtQEW1AS4acNyqgM+GmdXcOrCahpnV1Ad8GW8jnz+zZP5wQTnbmxIu1IqM71TKZFSzxYaa3dNa3eI5Dh6egdTLGGG5f4a6TXS7xqqyzwc7B2kpWOAcq+LUOxYF5MANX4Py2ZXsqiunPpyHwGfe9TXAIaldcnn39wlgsdlz0hLdvO501LTKKUy06BSIpMhrcdYumsa6sppS3ZRJT9fnSAzNPfXSK+xaWszHhd4nRxgoWiCzoFoakzF4xLmVPlwiz1t+caLmlhUGxh2nEyvka2bq6rMw2AskdO/edPsCna1B/G6JTXmlLAMTbOHlxVWSh2j3V8lMlVnCw07v1QQyO84+zoHcInQG4qxrzNER9AOKAJ85LQFnLygGgwsrC3nH//sND502oKcj51t5pYxJud/869dspK6ci+CnelYsKtCfu2SlVlfN70776o7X8g6/Vip6UzvVEpkqs4W2rByLotr/bT1hFNBIFl2t3HW6HdZkXiCjmCUyjIP+7pCRNKmMFeWuVlWX8HNl66krsJHZdnYfj2TA/cuBLcI8YShcyBKPGHxL584M6d/8w0r5/LPV5yR8/tT6okXSk0WGlRKqJCzhcY6PXks+3338tOG5f6qLPMMy/2VLlmFcXd7kLufaeHd9mDquQqfmyq/B5cIX3rvCTTU59cFOPQaQs4MreRaleSK/WjC5PVvns+26ZMAYHwVK5WayjSoFFCp1p2M9a/kse6XXLiYy1/xm3e2c9vmPeztDCIIXaEoMWekf361nwqfm1A0zuK6cm7asJz3njRv3NceiVtgwCVpa3AMBUlxn01rd4hILE5Lx0BqavOsCu+oi0mVmm40qBRIKbs/xvpX8nj+us7lr/g/vHWYbzzyBuGYRV/YvqsBuyjWDRc1MavCxy9fPkA4nsDjdqWqMOYTnDNdg8/twjIGj0uO5TWrGLl65LgZw9FgLPXQrmgZY3Ht2At/KTUVaVApkFJ2f4x1enKxpjUbY+gJxfj/HttJR/DYnYkAVX4PS2dVsLS+nH96/B18Hhd15b5UEL6irSdrQa5M/46t3SHcAs1Hg8cCiN9DZyhGQ40/Vcel2JMgugZiqWtM/TuktSs1U2hQKZBSrjsZ6/Tk5H7xhElVWnS7hGV5jmmkC0Xj/Gl/D7c9tZs9R49NMa4q8zC7ykeZ20X3QISfbmvF53ENC8J3P9NCRZk75+zJVWUedrUHcbsklRizKxSj3Otib2coNebz8dPnFzW4RxIWXhck0ta1eMRuV2om0SnFBVLKLLVjnZ58/fomegdjHOgZJOZMm03OlMp3OmwsYfHukX6+8V9vcM2923h2TydgF9NqqA+wuC5Ahc9DzDI01FfQ2h0aVngr4HUTjMTzyp5skgtbzLGvhGXojyRS3W0Jy/DIq4e49Q/v5nVN+ajwuUGEMo8bv9dt17sXsduVmkE0qBRIKdedbFg5l29//BTmVvnpHYwxt8rPtz9+Sk7jIn6PPf4QTRjilqG+3Et1wDtiupih6VV+/XIbt/xxF1fc/hy/fPkACcswv9rPp89pYHalD69zF5HeDZUtCCerJuaaPTkYTbCo1o/HLSSMwZOWEFPSviwDd2wpXgqcL1zQiGUgbllYxnK+2+1KzSTa/VUgpV53MpbpyZt3tnOoL4zHZX94GwPdgzECvuzddskJCdF4gt5QlIPdg7zQ0pV6vsLn5jNrl/DpdUuYXx3gg3s6s/6bfPPRNwlF48eNe5R7XYTjVs7Zk5NdeE1zjg3Cv36g1/5hyABHKJY9GeR4ffniEwG7rsxANEGFz80XLmhMtSs1U2hQKYKpknLw+7/biWVBAoNLjF1wC+FIf4SzGuoy7rNpazN9gxF6Bod/QK9rrOfvPnoyy+dUpvJzZQt22YLwpq3NeWVPvn5907DglE2x03Z9+eITNYioGU+DSoFMtRXVm3e28257MHU3YBmIJixcgBjJ2G0XT1i8fag3Y0AB6B6Icuqi4Snns8kWcL756JvMr/EcdwdzblP9sASRyf2HBqeegSidTi2UdItq/Dmfm1JqbDSoFMhUW1G9aWszAiSGfPBaQEON/7hzNsZwpC/MXU+30DMYz3rMXWmr5McqU5A4t6meH7+wj/5wnLhl0dEf4asPv8o/X3FGKrAMTSj55Z+9TNCpieISqPS5+e7lp437/JRSI9OgUiCZ1kvMrvRNWCr7fO1q789aGyR9xlIwHOPn21vZtLWZ9v7IiMe0gFv/8O64u4CGBolL/3Ur3aEYbpfgcbvssZ9QbFiq/fT9b71q1ZTLq6bUdKBBpUAyrZc40BNmxdwiruIeh5HSh3QMRInGLZ56p50fPvEuOw8fm87rEhipTtXdz7QUfFyhuWMAV1otExEwYjKm2k/SKoxKlYYGlQI5br1E2neTreh6iXndgpB5UkFvKMpf3P7csVlUQG3AS7nPhcfloq1nMGtg6Q9n7x5TSk1/RVunIiL3iki7iLyR1lYvIk+IyC7ne53TLiJyq4jsFpHXRGRV2j7XOtvvEpFr09rPFpHXnX1uFSltSb5M6yUW1fpHrGleSifOqyaQoSwwQMw6Ni33PfOquP0zq6goc1NfUUZNuY+GERZ0FiOENs4qxzJ2pmFjDJZlV2TMJdW+UmpiFXPx433AJUPabgb+aIxZAfzReQxwKbDC+doI3A52EAK+BawF1gDfSgYiZ5uNafsNfa0J1VBXjsftomlOJSvnV9M0pxKP2zWhlRzzcW5TPeERusAE+LuPnMQvbjiXS09bwJL6itR03eoh6WhyMZ4CVjdfehLlXhcxyyIct4hZFuVe14ip9pVSpVG0oGKM2Qp0DWm+DLjf+fl+4PK09geM7QWgVkQWAB8CnjDGdBljuoEngEuc56qNMc8bu3/pgbRjlcRUq+T42BuHRxwbMcB1FzSmAsjQ68tHcrp1e3/4uOnWWhlRqelnosdU5hljDgEYYw6JSHIkdRHQmrZdm9M2UntbhvaSKfWK+s072/n+73amBq8bZ5Vz86UnZXz9WMLKmksrXXqPYvr17TrSl9e5jXe69fd/t5NQzMLrdqXW1YRiVtbZX0qp0pksA/WZxkPMGNozH1xkI3ZXGUuWLBnL+eWkVDOONu9s56sPv0pnMEqyQ2vnkSA3/eQlbvvM2alzsizDnqNBbn1yF6PVjsr0D5yeXoUsKd29ruF7jne69VhmfymlSmOiE0oecbqucL4n+z/agIa07RYDB0dpX5yhPSNjzJ3GmNXGmNVz5swZ90VMNpu2NtMVOhZQkkIxi2888oazeHGQ7/9uJ5f9x7P85tVDox6zsizzr8amrc3EEgkyxA4ATsgwhbqqzMOBnvBxmYcP9ITHXINeKTV5TfT/6keBa4HvOd8fSWv/KxF5EHtQvtfpHnsc+Me0wfkPAl83xnSJSL+IrANeBK4B/m0iL6SUhlZG3NXeT7ayHa3dg9z/3D7u2LKHw31hwC6U5XO76ByIZn2NbJPWdrX30xuKZR2PqQ0M/5Ua73Trxlnl7D46gKQlmbQMnDB7ck6CUGomK+aU4p8BzwPvEZE2EbkOO5h8QER2AR9wHgP8FmgGdgN3ATcBGGO6gO8A252vbzttADcCdzv77AEeK9a1TCaZBr1HWxvy9795k8N9Ydwu4S9WLeK/vnQ+fq+LpfWBrPtEsvSPReNW5r4xx4t7u4e1jXe6tc7+UmrqKNqdijHmqixPvT/Dtgb4Upbj3Avcm6F9B3DqeM5xKso06F1X7uVw38gpVM4/YRZfft8KzlxSS5nHzZL6Clo68s/V5XULgyNUyM10B5MpPX0oGmduVe4JHn1eNz7LpCo5+rxa/EqpyUiLdE0xrd0h4gmL5qNBdh7uo/loEGukucHAv37qTO74y7NZ2zTLrkiIPUX46Ai5vLL9Ypw4r5pZFb68znm80603bW2mJuBlxdwqVs6vZsXcKmpGKSSmlCoNDSpTRHLx4OHeMPu6BlP15GMJi/Zg9rERgI+fsZAq//AFi0MzFKerr8i8wPH69U34PPndJYy1MmVSttLDkzVZp1IzmU6/mQLSqy0mMwvHEoZEwuRUeMqVYarWNx55I8OWx/RlSXGfXK/y2fu2Z3w+2+mMZ7p1svss2eUHdunhyZqtQKmZTIPKFLBpazPReGLYbC0Lckq2NXS22PXrm2jrHhxxn+gIXWobVs6loS5Aa4ZjLK7LPvg/VpmqO07mbAVKzWTa/TUFtHaH6BuMjTp2kk2mFCmjHWm0G6DvXHYq5b7ju6TKfW6+c1nh506Mt/tMKTVx9E5lkosnLOZV+Ue9sxhJphQpo3GJfYcz0gd3uc+NZY7NyBoaZApJ66MoNTXoncoklbAMHcEI+7tCdA6Ex3WsTIPcI3EJzKkqG3F2lc7IUkploncqk4xlGXoGY/QNxth5uI/bN+9hb+fY71JE7EHtoYPc2Qp0gT0wXuX3jDi7qrU7RO2QFPg6I0sppUFlkjDG0DsYo3cwxuHeMPc+28Lv3zwy7qJXi2r8qTUi6YPcl5+5gP96xc4Blv4acyp9VAe8hKLxEWdX6YwspVQmGlRKzBhDXzhObyhGfyTGQ9tb+fn21lQBrcbZFbSMMRuvS+C7l58GZE7J3zj7Xe5+poVgJI4Bavwe5lX7c1qcqDOylFKZyGStoV4sq1evNjt27Cj1afDU20e4bcseWrtCzKvyc+L8Kp56p50OZyFjXbmXz52/jEtPXcAHfrh1TK/xZ2cu4IdXrhp9Q45NO86nFsxY9lFKTT0i8pIxZnUu2+qdSg4yrfMYz4fnY68d4jv/8xZul+BxCW8d7uNVpya81y1ccfZiPr1mCbXlPuZUleV8XJfYubdcAtV+D4f7Rl5pn24ss6t0RpZSaigNKqNIrmb3uuW4dR7fhrw/UIORON0DUTZtbcYyhr5QjGDkWKbe2oCX2z6zigW1AerKvdQEvMdVXxyN13WsMuJANJF3hUallBovDSqjGG8pXICBSJzuUJRo3KI/HOPd9n5CaWnf/R4Xs6t8xBOGpjmVzKr04XUfm+1d7ffQN0p6eziWjkXEnkUWHSm5l1JKFYGuUxnFeJIZDkTitHWHONIXJhSJ86uXD3D1PdtSAcXjEuZXl9FQF8AlwpL6CubX+I8LKABfuKAx62uk38dYxmAwWMaAAZ9H316l1MTSO5VRjGXqbCgapzsUIxJLYIzhheYu7tiyJ5Ury+dxUeZ2UR3wUO5zE00YjIGbNizPeLwvX3wiD+1o5WBveFi9kuTDSp8Lg6RqwFdXeFk2a3hpX6WUKiYNKqPIZ+psejAB2HM0yO2b9/Dy/h7AHkD/8GkL+Ox5y9h9JMhDO1pp7w/TUF8x6uD/dy8/LTW20zcYpXPALulb7nPzoZPn8tL+Xrxu0em9SqmS0inFORht6uzQYNI1EOVHz+7lsTcOpe4szl5ax40XNdE0pxKXCHXlPmrKM9csGct56PRepVSx5DOlWIPKOAwNJpFYgl++fICfvLifQadtSX05N1zUxNrGekSEyjIP9RU+PG4d71BKTQ26TqXIhgYTYwxP7jzKXU830+6U6K32e7j2vGV87PQFeNwuvG4Xsyp9x43NKKXUdKOfcHkYiMTpGTwWTADePNjL7Zv38NahfsCe0fXnqxbxl2uXUun3ICLUBLzUlee35kQppaYiDSo56A/H6AnFiCWsVNvh3jB3Pd3MU+8cTbVduGI2G9c3sajWrn7o97qZXVmmU3uVUjOGBpURZAomA5E4P922n4dfaiPmLC48cV4lN25YzhmLawFwiVBf6aPan99AvFJKTXUaVDJIplNJDyYJy/Db1w/xo2f30jMYA2B2pY8vXNDIxSfPw+V0belAvFJqJtOgkiY9nUq67Xu7uGNLcyoFvd/j4so1DXxidUNqtb3HZQ/EV5TpP6lSaubST0CGz+ZK2ts5wB1bmtnW0gXYKVE+eMo8Pn9+43HZg+2BeF8q95ZSSs1UMzqoZLsz6QlFuf+5ffzmtYOpxYtnLK7hxg3LOXFeVWq7Mq+b2ZU+yjwj13xXSqmZYkYGlWAkTk+GYBKNW/z6Twf4zxf3MeCkpF9UG2Dj+iYuOGFWakrwWFfEK6XUdDfjgko0YdHeFz6uzRjD1l0d3Lm1mUO99nOVZR6uOXcpl5258LiswRVlHmbpQLxSSmU044LK0Kw0Ow/3cfvmPbx+wC5o5XYJl52xkKvPXUpN4NidiA7EK6XU6Kb8J6SIXALcAriBu40x38tlv/a+MHc/08If3m5PtZ23fBYb1zexpP74tPbVAS/1OhCvlFKjmtJBRUTcwH8AHwDagO0i8qgx5q1s+1jG8KNnW3hoRxsRZ0xl+ZwKbrxoOauW1h23rc/jYnZlGX6vDsQrpVQupnRQAdYAu40xzQAi8iBwGZA1qOztGODHL+wHoL7Cx+fPX8aHTpmPO+0uRETGVCNeKaVmuqkeVBYBrWmP24C1I+0Qtww+j4tPnL2Yq9Y0DMsaHPDZ+bqGlvRVSik1uqkeVDLdRgwrECMiG4GNzsPgrn/48Dv/CLP/ETqKenaTw2ym/3XqNU4fM+E6p+I1Ls11w6keVNqAhrTHi4GDQzcyxtwJ3JneJiI7ci06M5XNhOvUa5w+ZsJ1TvdrnOp9PNuBFSLSKCI+4Erg0RKfk1JKzVhT+k7FGBMXkb8CHseeUnyvMebNEp+WUkrNWFM6qAAYY34L/HYMu945+ibTwky4Tr3G6WMmXOe0vkYxQ5eYK6WUUmM01cdUlFJKTSIzJqiIyF4ReV1EXhGRHU5bvYg8ISK7nO91ox1nMhGRe0WkXUTeSGvLeE1iu1VEdovIayKyqnRnnp8s1/n3InLAeT9fEZEPpz33dec63xGRD5XmrPMjIg0i8pSIvC0ib4rIXzvt0+b9HOEap9t76ReRbSLyqnOd/8dpbxSRF5338ufO5CJEpMx5vNt5flkpz3/cjDEz4gvYC8we0vZPwM3OzzcD3y/1eeZ5TeuBVcAbo10T8GHgMey1PWuglQkAAAWvSURBVOuAF0t9/uO8zr8HvpJh25OBV4EyoBHYA7hLfQ05XOMCYJXzcxXwrnMt0+b9HOEap9t7KUCl87MXeNF5jx4CrnTa7wBudH6+CbjD+flK4OelvobxfM2YO5UsLgPud36+H7i8hOeSN2PMVqBrSHO2a7oMeMDYXgBqRWTBxJzp+GS5zmwuAx40xkSMMS3Abux0PpOaMeaQMeZl5+d+4G3sjBHT5v0c4RqzmarvpTHGBJ2HXufLAO8DHnbah76Xyff4YeD9MoXzQ82koGKA34vIS84Ke4B5xphDYP/CA3NLdnaFk+2aMqW0Gek/9FTwV07Xz71pXZdT/jqd7o+zsP/CnZbv55BrhGn2XoqIW0ReAdqBJ7DvsnqMMXFnk/RrSV2n83wvMGtiz7hwZlJQOd8Yswq4FPiSiKwv9QlNsJxS2kwhtwPLgTOBQ8D/ddqn9HWKSCXwS+BvjDF9I22aoW1KXGeGa5x276UxJmGMORM7y8ca4KRMmznfp+x1ZjJjgoox5qDzvR34NfYbfSTZZeB8b89+hCkj2zXllNJmqjDGHHH+41rAXRzrFpmy1ykiXuwP258YY37lNE+r9zPTNU7H9zLJGNMDbMYeU6kVkeTawPRrSV2n83wNuXf3TjozIqiISIWIVCV/Bj4IvIGd0uVaZ7NrgUdKc4YFle2aHgWucWYNrQN6k90qU9GQ8YM/w34/wb7OK50ZNY3ACmDbRJ9fvpw+9HuAt40xP0h7atq8n9mucRq+l3NEpNb5OQBcjD1+9BRwhbPZ0Pcy+R5fATxpnFH7KanUMwUm4gtowp5F8irwJvC/nfZZwB+BXc73+lKfa57X9TPs7oIY9l8712W7Juxb7P/A7tt9HVhd6vMf53X+2LmO17D/Uy5I2/5/O9f5DnBpqc8/x2u8ALvL4zXgFefrw9Pp/RzhGqfbe3k68Cfnet4Avum0N2EHxd3AL4Ayp93vPN7tPN9U6msYz5euqFdKKVUwM6L7Syml1MTQoKKUUqpgNKgopZQqGA0qSimlCkaDilJKqYLRoKJUkYnIQhF5ePQtx/Uav02ujVCqlHRKsVJKqYLROxWlRiAif+nUxnhFRDY5iQKDIvIPTr2MF0RknrPtcufxdhH5togEnfZl4tSCEZHPisivROR3Tl2Nf0p7rQ+KyPMi8rKI/MLJkTX0fBaIyFbnfN4QkQud9r0iMltEbkirS9IiIk/lemylCkGDilJZiMhJwKewk5GeCSSAzwAVwAvGmDOArcAXnV1uAW4xxpzDyDmqznSOexrwKbGLV80G/g642NiJT3cA/yvDvp8GHnfO5wzsVekpxpg7nOfOwc4+8IM8jq3UuHlG30SpGev9wNnAdqe8RQA7oWMU+G9nm5eADzg/n8uxGhk/Bf4ly3H/aIzpBRCRt4ClQC12UapnndfyAc9n2Hc7cK+TmPG/jDGvZNgG7AD3pDHmNyLy0RyPrdS4aVBRKjsB7jfGfP24RpGvmGODkQny/38USfs5ub8ATxhjrhryWmuBTc7DbxpjHnXKNnwE+LGI/LMx5v9v7w5VIoiiAAz/p240WC0iRmGjxTcwaFjBsJg3iPgigk2TxW4UxDpaFIMPoUWT8RjmIrq6i4PX3fJ/MDAwd+65kw4zZ7jnbOyeIW2iGn16jm9zS//Bz1/SZFfAdkQswke/+KUp4xtgq5wPOsZqgPWIWC6xehGxkpk3mblWjosS/ykzT2h3/P3Smz4i+sAhsJvtVvIT5+64PulXTCrSBJn5SFuLuIyIB9oOftNa9u4DBxFxW8a9doj1DAyB8xKrAVZ/GLoB3EfEHW0COxq7PgIWgOtSrD/tMLf0Z/5SLFUSET3gLTMzIgbATmZuzntd0ixZU5Hq6QPHpRnVC7A35/VIM+ebiiSpGmsqkqRqTCqSpGpMKpKkakwqkqRqTCqSpGpMKpKkat4BLLzCbN+H/I4AAAAASUVORK5CYII=\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": 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>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": 10, | |
"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": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7fe5fc1adc50>" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"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": 12, | |
"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": 12, | |
"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": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7fe5fc119cc0>" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.regplot(x=\"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": 14, | |
"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": 14, | |
"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": 15, | |
"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": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute\n", | |
"df[['stroke', 'price']].corr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click <b>here</b> for the solution.\n", | |
"\n", | |
"<!-- The answer is below:\n", | |
"\n", | |
"#The correlation is 0.0823, the non-diagonal elements of the table.\n", | |
"#code:\n", | |
"df[[\"stroke\",\"price\"]].corr() \n", | |
"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
"<h1>Question 3 b):</h1>\n", | |
"\n", | |
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n", | |
"<p>Verify your results using the function \"regplot()\".</p>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f91e528ff28>" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEKCAYAAADaa8itAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztvXucW/V55/9+dJmbZ8Ye22NssMF2MDEhCZcMl2xY6pA0MWkK6ZY2kDaQblKzKfxCfm1SoL8sZEn294NtNhS6LcUhNJA2cah7wc1yKYR4SVocsB0ucXCxY0M8YDy2Z+y5j6Rznt8f53s0Go00I42lkTR63q+XLOmr7zk654ysj57L93lEVTEMwzCMUhCp9AEYhmEYcwcTFcMwDKNkmKgYhmEYJcNExTAMwygZJiqGYRhGyTBRMQzDMEqGiYphGIZRMkxUDMMwjJJhomIYhmGUjFilD2C2Wbx4sa5cubLSh2EYhlEzLF68mCeeeOIJVV0/3dy6E5WVK1eyffv2Sh+GYRhGTSEiiwuZZ+4vwzAMo2SYqBiGYRglw0TFMAzDKBkmKoZhGEbJMFExDMMwSkbdZX8ZhjGZrbt7uO+ZfRzoG2ZFRwvXXbKadWuXVPqwjBrELBXDqHO27u7h1i276BkYZUFznJ6BUW7dsoutu3sqfWhGDVJ2URGRqIj8VES+755/S0T2i8gL7naOGxcRuUdE9orISyJyXsY+rhWRPe52bcb4e0TkZbfNPSIi5T4fw5hr3PfMPuJRoaUhhkhwH48K9z2zr9KHZtQgs2Gp3Ai8kjX2RVU9x91ecGOXAWvcbQNwL4CILARuAy4ELgBuE5EOt829bm643bSrPQ3DmMiBvmGa49EJY83xKN19wxU6IqOWKauoiMhy4NeA+wuYfgXwkAZsAxaIyDLgw8CTqtqrqn3Ak8B691q7qj6rqgo8BHysPGdiGHOXFR0tjCS9CWMjSY/lHS0VOiKjlim3pfJnwB8Dftb4f3currtEpNGNnQIcyJjT7camGu/OMT4JEdkgIttFZPvhw4dnfDKGMRe57pLVJD1lOJFCNbhPesp1l6yu9KEZNUjZREVEPgr0qOqOrJduAdYC5wMLgZvCTXLsRmcwPnlQdaOqdqlqV2dnZyGHbxh1w7q1S7j98rNY0tbE8ZEkS9qauP3ysyz7y5gR5Uwpfh9wuYh8BGgC2kXkb1T1d93rYyLy18AX3PNuYEXG9suBN934uqzxrW58eY75hmEUybq1S0xEjJJQNktFVW9R1eWquhK4CnhaVX/XxUJwmVofA37mNtkCXOOywC4CjqvqQeAJ4EMi0uEC9B8CnnCvDYjIRW5f1wCPlOt8DMMwjOmpxOLHvxWRTgL31QvAf3HjjwIfAfYCw8DvAahqr4h8BXjezbtdVXvd488C3wKagcfczTAMw6gQEiRO1Q9dXV1q/VQMwzCKQ0R2qGrXdPNsRb1hGIZRMkxUDMMwjJJhomIYhmGUDBMVwzAMo2SYqBiGYRglw0TFMAzDKBkmKoZhGEbJMFExDMMwSoaJimEYhlEyrEe9YRh5sd71RrGYpWIYRk6sd70xE8xSMQwjp0WS2bseoKUhxnAixX3P7DNrxciLiYph1DmhRRKPygSLZGgsybL5zRPmWu96YzrM/WUYdU6mRSIS3MejQtJT611vFI2JimHUOQf6hmmORyeMNcejNMQi1rveKJqyi4qIREXkpyLyffd8lYj8RET2iMj3RKTBjTe653vd6ysz9nGLG/93Eflwxvh6N7ZXRG4u97kYxlxkRUdLTotkzZI2611vFM1sxFRuBF4B2t3zO4G7VHWTiPwV8GngXnffp6qni8hVbt7HReQdBO2IzwJOBp4SkTPcvv4C+FWCfvXPi8gWVf35LJyTYcwZrrtkNbdu2cVwIkVzPMpI0ktbJNa73iiWsloqIrIc+DXgfvdcgEuBzW7KgwR96gGucM9xr3/Azb8C2KSqY6q6n6Dd8AXutldV96lqAtjk5hqGUQTr1i4xi8QoGeW2VP4M+GOgzT1fBBxT1ZR73g2c4h6fAhwAUNWUiBx3808BtmXsM3ObA1njF5b6BAyjHjCLxCgVZbNUROSjQI+q7sgczjFVp3mt2PFcx7JBRLaLyPbDhw9PcdSGYRjGiVBO99f7gMtF5DUC19SlBJbLAhEJLaTlwJvucTewAsC9Ph/ozRzP2ibf+CRUdaOqdqlqV2dn54mfmWEYhpGTsomKqt6iqstVdSVBoP1pVf0d4IfAlW7atcAj7vEW9xz3+tOqqm78KpcdtgpYAzwHPA+scdlkDe49tpTrfAzDMIzpqcSK+puATSLyVeCnwDfd+DeBb4vIXgIL5SoAVd0lIg8DPwdSwPWq6gGIyA3AE0AUeEBVd83qmRiGYRgTkMAYqB+6urp0+/btlT4MwzCMmkJEdqhq13TzbEW9YRiGUTJMVAzDMIySYaJiGIZhlAwTFcMwDKNkmKgYhmEYJcNExTAMwygZ1vnRqHtytdK1OliGMTNMVIy6Jl8r3dvBhAUTXKN4zP1l1DX5Wune98y+Sh9axQkFt2dgdILgbt3dU+lDM6oYExWjrsnXSre7b7hCR1Q9mOAaM8FExahr8rXSXd7RUqEjqh5McI2ZYKJi1Bxbd/dw9cZtXHzn01y9cdsJuWOuu2Q1SU8ZTqRQDe7DVrr1jgmuMRNMVIyaotR+fmulmx8TXGMmWPaXUVNk+vkBWhpiDCdS3PfMvhkLgbXSzc26tUu4neCad/cNs9yyv4wCMFExaooDfcMsaI5PGDM/f/kwwa19Zjst3NxfRk1hfn7DKJxKpIWXTVREpElEnhORF0Vkl4j8Nzf+LRHZLyIvuNs5blxE5B4R2SsiL4nIeRn7ulZE9rjbtRnj7xGRl90294iIlOt8jOpgrvj5S5lsYBj5qERaeDktlTHgUlU9GzgHWC8iF7nXvqiq57jbC27sMoL+82uADcC9ACKyELgNuBC4ALhNRDrcNve6ueF268t4PkYVMBcC67ao0JgtKpEWXraYigZ9igfd07i7TdW7+ArgIbfdNhFZICLLgHXAk6raCyAiTxII1FagXVWfdeMPAR8DHivD6RhVRK37+cuRbGAYuVjR0ULPwGj6swbldxeXNaYiIlEReQHoIRCGn7iX/rtzcd0lIo1u7BTgQMbm3W5sqvHuHOO5jmODiGwXke2HDx8+4fMyjBPBFhUas0Ul3MVlFRVV9VT1HGA5cIGIvBO4BVgLnA8sBG5y03PFQ3QG47mOY6OqdqlqV2dnZ5FnYRilZUVHC0eHxth3eJDdb/Wz7/AgR4fGLNnAKDmVcBfPSkqxqh5z7qr1qvo1NzwmIn8NfME97wZWZGy2HHjTja/LGt/qxpfnmG8YRTHbKZfvXb2Q517rJSIQEUh4Pj0DCa4+f2HZ3tOoX2bbXVzO7K9OEVngHjcDHwR2uzgJLlPrY8DP3CZbgGtcFthFwHFVPQg8AXxIRDpcgP5DwBPutQERucjt6xrgkXKdjzE3qUTQ/Nl9vXS2NtAQjeArNEQjdLY28Oy+3rK9p2HMFuW0VJYBD4pIlEC8HlbV74vI0yLSSeC+egH4L27+o8BHgL3AMPB7AKraKyJfAZ53824Pg/bAZ4FvAc0EAXoL0htFUYmg+YG+YRa3NtLZ1pQeU1WLqRhzgnJmf70EnJtj/NI88xW4Ps9rDwAP5BjfDrzzxI7UqGcqsUK/Ehk5hjFb2Ip6o66pxAr9ubKA0zByYaJi1DWV+IKfCws4DSMfVlDSqGsqVYm31hdwGkY+zFIxDMdU5R4MwygMExWjrrE6XIZRWsz9ZdQ1VofLmOtYPxXDmEWsDpcxl5lT/VQMoxawpl/GXGau9VMxjKrH1ozUFtbcrDgqYYmbqBh1ja0ZqR0sqaJ4KmGJW6DeqHtszUhtYEkVxXPdJau5dcsuhhMpmuNRRpJebfdTMQzDKBWWVFE8c7afimEYtclsp6NOhRXinBlzpp+KYRi1TbXFMCypojYwUTEMIyeVSEedCkuqqA3K5v4SkSbgGaDRvc9mVb1NRFYBmwj60+8EPqmqCRFpBB4C3gMcBT6uqq+5fd0CfBrwgM+p6hNufD1wNxAF7lfVO8p1PoZRb1Si18x0WFJF9VNOS2UMuFRVzwbOAda7NsF3Anep6hqgj0AscPd9qno6cJebh4i8A7gKOAtYD/yliERdR8m/AC4D3gFc7eYahlECbGGoMRPKJioaMOiext1NgUuBzW78QYI+9QBXuOe41z/ges9fAWxS1TFV3U/QbvgCd9urqvtUNUFg/VxRrvMxjHrDYhjGTChrTMVZFC8APcCTwC+AY6qaclO6gVPc41OAAwDu9ePAoszxrG3yjRuGUQIshmHMhLKmFKuqB5wjIguAfwTOzDXN3Uue1/KN5xLEnC0xRGQDsAHg1FNPneaoDcMIsRiGUSyzkv2lqseArcBFwAIRCcVsOfCme9wNrABwr88HejPHs7bJN57r/TeqapeqdnV2dpbilAzDMIwclE1URKTTWSiISDPwQeAV4IfAlW7atcAj7vEW9xz3+tOqqm78KhFpdJlja4DngOeBNSKySkQaCIL5W8p1PoZhGMb0lNP9tQx40GVpRYCHVfX7IvJzYJOIfBX4KfBNN/+bwLdFZC+BhXIVgKruEpGHgZ8DKeB651ZDRG4AniBIKX5AVXeV8XwMwzCMaZDAGKgfurq6dPv27ZU+DMMwjJpCRHaoatd086z2l2EYNUM11SIzcmNlWgzDqAm27u7hC5tf5KcH+jjUP8pPD/Txhc0vWj+VKsNExTCMmuCOx17h2HAS9SEqgvpwbDjJHY+9UulDMzIw95dhGDXB/qPDRAQikWDpmgior+w/av1UqgmzVAzDMIySYaJiGEZNsHrxPHwFXxVF8VXxNRg3qgcTFcMwaoKb1q+loyWOACnPR4COljg3rV9b6UMzMjBRMQyjJli3dgl/euXZnHtqB8vmN3PuqR386ZVnW0pxlVFwoF5ETgPWqOpTruxKTFUHyndohmEYE7ECl9VPQZaKiPw+QY+T+9zQcuCfynVQhmEYRm1SqPvreuB9QD+Aqu4B7OeCYRiGMYFCRWXMdVcE0qXp66tomGEYhjEthYrK/xGRPwGaReRXgb8D/rl8h2UYhmHUIoWKys3AYeBl4DrgUeBL5ToowzAMozYpNPurmaBfyTcg6D3vxqw+gmEYs4ZVKa5+CrVUfkAgIiHNwFOlPxzDMIzcbN3dw61bdtEzMMqC5jg9A6PcumWXVSmuMgoVlSZVHQyfuMctU20gIitE5Ici8oqI7BKRG934l0XkDRF5wd0+krHNLSKyV0T+XUQ+nDG+3o3tFZGbM8ZXichPRGSPiHzPtRU2DGMOct8z+4hHhZaGGCLBfTwq3PfMvkofmpFBoaIyJCLnhU9E5D3AyDTbpIA/UtUzgYuA60XkHe61u1T1HHd71O3zHQQthM8C1gN/KSJR52r7C+Ay4B3A1Rn7udPtaw3QB3y6wPMxDKPGONA3THM8OmGsOR6lu8+88NVEoTGVzwN/JyJvuufLgI9PtYGqHgQOuscDIvIKcMoUm1wBbFLVMWC/61V/gXttr6ruAxCRTcAVbn+XAp9wcx4EvgzcW+A5GUZNUe/xhBUdLfQMjNLSMP61NZL0WN4xpdPEmGUKslRU9XlgLfBZ4A+AM1V1R6FvIiIrgXOBn7ihG0TkJRF5QEQ63NgpwIGMzbrdWL7xRcAxVU1ljed6/w0isl1Eth8+fLjQwzaMqsHiCXDdJatJespwIoVqcJ/0lOsuWV3pQzMymFJURORSd/+fgF8HzgDWAL/uxqZFRFqBvwc+r6r9BJbE24BzCCyZ/xlOzbG5zmB88qDqRlXtUtWuzs7OQg7bMKoKiycEdb9uv/wslrQ1cXwkyZK2Jm6//Ky6stZqgencX78CPE0gKNko8A9TbSwicQJB+VtV/QcAVT2U8fo3gO+7p93AiozNlwOhuy3X+BFggYjEnLWSOd8w5hQH+oZZ0ByfMFaP8QQrKFn9TCkqqnqbiESAx1T14WJ2LCICfBN4RVW/njG+zMVbAH4D+Jl7vAX4joh8HTiZwCJ6jsAiWSMiq4A3CIL5n1BVFZEfAlcCm4BrgUeKOUbDqBUqHU+o93iOUTjTxlRU1QdumMG+3wd8Erg0K334f4jIyyLyEvB+4P9277MLeBj4OfA4cL2qes4KuQF4AngFeNjNBbgJ+EMX1F9EIGKGMeeoZDzB4jlGMYjq9HUhReS/EqQQfw8YCsdVtbd8h1Yeurq6dPv27ZU+DMMomtBa6O4bZvksWgtXb9w2yUoaTqRY0tbEdzdcVPb3N6oDEdmhql3TzSs0pfg/E8RQ/iBr3NIuDGOWqFQ8weI5RjEUuvjxHQQLEF8EXgD+nGCRomEYc5wVHS2MJL0JY7Y+xMhHoaLyIHAmcA+BoJzpxgzDmOPY+hCjGAp1f71dVc/OeP5DEXmxHAdkGPVOtWVarVu7hNuhIvEco/Yo1FL5qYikI3IiciHwr+U5JMOoX6o908ravRrTUaioXAj8m4i8JiKvAc8Cv5KRGmwYRgmoxpXz1S50RnVRqPtrfVmPwjDqlGxX156eAZa2N02YU+lMq0yhA2hpiDGcSHHfM/vMBWZMoiBRUdXXy30ghlFvhBZAPCppC2BgNEU8Osbi1nFhqXSmlaUUG8VQqPvLMIwSk8vV1dESp3coWVWZVpZSbBSDiYpRd2zd3cPVG7dx8Z1Pc/XGbRWLDeRqOrW4tZG2xmhVVeK1lGKjGAqNqRjGnCCXy+nWLbu4HWb9iztfkcg1J7XnLH9SqVRjSyk2isFExagrqinofN0lq7l1yy6GEyma41FGkl5eC2Dr7h6+uPlFBkZTpHyfIwNjfHHzi/zplWfPmrCYiBiFYO4vo66opj7nxTSduvPx3fQNJ1EgFo2gQN9wkjsf3z3rx20YU2GWilFXVLovSTaFWgD7jgwREYhI0PBUBFSUfUeGptnSMGYXs1SMusKCzoZRXsomKiKyQkR+KCKviMguEbnRjS8UkSdFZI+773DjIiL3iMheEXlJRM7L2Ne1bv4eEbk2Y/w9blX/Xrdtrr71hpGmVvucr1rUgq/g+4qq4vuKr8G4YVQT5XR/pYA/UtWdItIG7BCRJ4FPAT9Q1TtE5GbgZoIOjpcRtBBeQ1AW5l7gQhFZCNwGdBGUHtohIltUtc/N2QBsAx4lWPn/WBnPyZgD1GLQ+ebLzuQLm19kcCyF5yvRiLCgMc7Nl51Z6UMzjAmUTVRcH/qD7vGAiLwCnAJcAaxz0x4EthKIyhXAQxq0otwmIgtEZJmb+2TYZdIJ03oR2Qq0q+qzbvwh4GOYqBhzkHVrl/C1K88uKq232qodG/XBrATqRWQlcC7wE+AkJzio6kERCT/lpwAHMjbrdmNTjXfnGDeMOUkxFlY1rccx6ouyB+pFpBX4e+Dzqto/1dQcYzqD8VzHsEFEtovI9sOHD093yIZR81RjtWOjPiirqIhInEBQ/lZV/8ENH3JuLdx9WCOjG1iRsfly4M1pxpfnGJ+Eqm5U1S5V7ers7DyxkzKMGqCa1uMY9UXZ3F8uE+ubwCuq+vWMl7YA1wJ3uPtHMsZvEJFNBIH648499gTw/4ZZYsCHgFtUtVdEBlzzsJ8A1xC0OjaMmuaep17l/h/vZyjhMa8hymcuXsXnPnhGUfso9Xoci88YhVJOS+V9wCeBS0XkBXf7CIGY/KqI7AF+1T2HIHtrH7AX+AbwBwAuQP8V4Hl3uz0M2gOfBe532/wCC9IbNc49T73K3U/vZSTpEYsEQnD303u556lXi9pPKdfjWJOu+sXzlZGEx1jKm36yQ4Jkq/qhq6tLt2/fXunDMOqMQn/pv/vLTzhBGf+9l/J9muNRXvryh2f0nidaBPLqjdsmWT3DiRRL2ppyFr40apOU5zOW8kmkxu9Tvg9AR0sDC1sbd6hq13T7sTIthlFmisnEGkp4RFDGUh5+xu+9pJdi6+6eGYnCif5srKYmXeaGKw2JlE/CCwXEI5Hy8fzSGBgmKoZRZu57Zh9Jz+PoYIqE59MQjdDeHMtZGbkxFmE44U1KbRSYIETTfbmWMqW4WuqlWZp08ahqYHV44xZIMuXjl9FDZaJiGGVmT88Ax4eTRCJCNCKkfOXIQIKkNzBp7sLmGMMJb5J1ERUmpARP9+VayhL/xZTon4oTtTKqqW1BNeL7SsLzGUv6jHmB9ZH0grI+s4mJimGUmUTKh6wKw75oMJ5NJEJna5zDg8nxIUAiknY5FfLlWkqX1bq1S7iy+9ikjLRCvshDIdnTM8DAaIqOljiLWxtnZGVUkxuu0qS8idZHICA5Pk8VwKoUG0aZiUcDMcksBgnQEJ28fndFRwvtzQ3Ma4jSGIvQHI8Sj0ZoiEbSLqdC1qCUsq/81t09fHvb6yRSPkIght/e9vq02V+ZWWPDYyl8VY4OJRgYTc1oMWYpz6mWSKR8BsdS9A4lOHh8hNePDvHL3mHeOj5K71CCobFU1QgKmKgYRtk546R2Fs1rIBYVPFViUWHRvAbWnNQ+aW6YCtzeHMP3lZTv46O0NcXSLqdCvlxLmVI80wZhmRZV0hXBjCAcGRwDircy5nrbAs9XRpMe/aNJjgyO8caxEV47MkR33zA9/aMcG04wkvBKFlAvF+b+MowyE8Ykls6PTRuTyOwHn/QGSKR8GqLCqsWtE2IQ08U4TsRllc1MG4RluqsaohESnk/KU8Y82Hd4kPbmGCsXtRZ8HJnX5kTTpCtNmL47Vobsq0pjomLMGao13XSmX4ZN8ShrlrRNmlvI/rbu7mHzzjfobGvkVCc8m3e+wbuXL5i1a5KZNdbaGOPQwFj6taGEx0jS4+rzTy1qn7XYtiDpYh+51n/MRUxUZpFq/dKbC1R7ummhX4ZTnQdQ8OenlJlSqxa1sPfwEOJrYKUo+AqnL546lpGZNXZsODHhNRFA4bGfvVV0CZpqJen54wLiBZlXiZQ/69lXlcZEZZao9i+9SlOKdNNC14JUG5nn3j+SJBaR9NqC8DzufHw3Qwmv4M9PsZlSU13/YhqEZe/nyvNO4dl9vfzi8BACxCJCLBqEcj3fn9aFVo1ki0elUnerFQvUzxJWijw/pagttadngCMDCVLuSy9cC7KnZ/JakGoi+9wHx1L0DidJeP6E89jbM1jU56eYTKnprn/YIOzcFR0sbW/i3BUdfO3KsyeJWa79bN75BtddsprGWIR4dFxQagHfBc6PjyTpGRhNB84PZGReDY6m6tIamQqzVGYJy7HPTylcNUWtBakiss89xPOVWCSSPo+Ur0WVsi9mweJ9z+wjkZpo5bU1TbTyCnHfTfV3nKkLbbaYYH2EK8+rKE23ljBRmSWqpdRFNVIKwY1HhZFk8Osy/NKC3GtBqolc5w7BF+5IMijXEokEK+pHkl7Bn59ikgNePdRP/2iKCEJUhJQXrCdJeVP11CvsXMK/41eueGfBLrRyoaokPc0Z+zBLo3SYqMwSpSp1MRcpheCecVI7+48MMjCa+Ws7zqrFhaesVoLsc49HI4xlWlcC6sPJHc3pNRqFfn4KTQ4IvmiV7NKTCa+4L9qp/o6hC2020oHD1eahgKQyhMQoPyYqs0Qp1w3MNUohuMWsBakE+QLh2efuu1TTWESIRQRV8FSZ1xDl5svOLMuXciJPr4x84/mY7u9Y6nRgz9esYHlwX85iicb0mKjMEtWwbqBaKcWitmpeGDdd5l/mcUciETpbogwnxrO/lrY2MpTwyrZGI5nnB3zmeCHZeeX8G4TiMZb00iIyVxYLzjXK2U74AeCjQI+qvtONfRn4feCwm/Ynqvqoe+0W4NOAB3xOVZ9w4+uBu4EocL+q3uHGVwGbgIXATuCTqjoxGT4HSU/p6R9FRNKrhCMiRCKTH0dFiESkJOtLrMLq1JTiC7NaF8ZN97fPPO6wIdbS+ZMbYpWLMJ4g4T8aOMLC8WLS4U/0bxC6qZIpdS4ssz5mG1+VobEU/aMpBkdT9I8mKWatZjktlW8B/wt4KGv8LlX9WuaAiLwDuAo4CzgZeEpEwhVRf0HQdrgbeF5Etqjqz4E73b42ichfEQjSvdMdlK/K4Fiq4JN4bl8vdz+9J/hSiEd589gwf/JPL3PTh9dy8ZrFRCOCSFDSfIJICenXwLK/6pli/vaViL21NsYYSqRQDRIcRCAiMM+JYKl/EIUB84QX9PZIerUTMH9uXy+bnj/Awf4RlrU3c9X5K7hg9cJKH1ZOPF8ZGE3SP5piYDTJwGhq/PFIIBYD7nkwPj7vRP4KZRMVVX1GRFYWOP0KYJOqjgH7RWQvcIF7ba+q7gMQkU3AFSLyCnAp8Ak350HgyxQgKsWy6fkDxCJCUyxI52yMRfGTHn/9r6/xruXzp91enMXT2drI0aGxCUHM0aTHSe1NHB9JThAkST9295HqzmAypqaYRIRKuPE+c/Eq7n56L9FIICa+S/f9zMWrgJn9IPL8IDju+UrKCwpjplwMJOVXv3jkIvyBGYsI7U0xjg6NcffTe7iRNWUVlkTKTwtAvxOEUAgGxyaPheIwlCguJpaPaESY3xzn9QLnVyKmcoOIXANsB/5IVfuAU4BtGXO63RjAgazxC4FFwDFVTeWYPwkR2QBsADh5+YqiDvZg/wjtTRMvU1M8wlv9IwVtr6qkVPl41wrufnoPQ2MpmuIRRpPBf64rz1vO0cGxafeTKTih6GTeC4EIhW49CMZw8yW4DkGKapZwZVpURukp1voolRuvULdtWCYlO4kkHJ9KFDP7eqQzruaou2rT8wdIpjyOJTySnk88GmFeQ5RNzx+YVlRUldFkljiEVsJIDksiY85YidZaNcaC9UdtTXHaM+5bm2K0NcVob4pPGGtvDh43x6MsnNfIwlsLe5/ZFpV7ga8QuGy/AvxP4D/DpO6puDm5lt/qFPNzoqobgY0A7zrnvKI+7cvamzk6NDZh4dlo0mdpe3Mxu+GC1Qu5kTVsev4Ab/WPsLRI09lXLet/1NCiEicy2bGlULgkMlGgsgUuFCoTqXEqYX0UWxbocx88Y0INrqCKrocqfOq9p/GVR1/B85M0xSOMJAO31cfOOZlf9taP+/bd0otiAAAgAElEQVS1o0HKevi5DxdJjiT6+aefvjFBCPpHkww6qyEcS5UosaClIZoWh1AM2p0whGOhOLQ3u+eNMRqzFs+Wi1kVFVU9FD4WkW8A33dPu4FME2I58KZ7nGv8CLBARGLOWsmcX1KuOj+wMEaS3gQL46rzi7N4IBCWavW/hhYVQLIEVnNmIsQEocqIP4UiFcmyoOaiQM12EsFUcZBLzugk5Qc/UkIXVTJ0UXk6yT21ZmkbN6w7fdIPovNXVednuRBSns/A2MQ4wnTxhmMjGbHYDH0YSvrc8/Teot5fIG0htDXFaWvMEIAJQjEuHG3NQbXneJWXuplVURGRZap60D39DeBn7vEW4Dsi8nWCQP0a4DmCa7/GZXq9QRDM/4Sqqoj8ELiSIAPsWuCRchzziVoY9Yqq4ilM7rZePNkClS04E+JRGSKVtq5Cd2DG8wnuwBqPWflOIDxVfB9Svs/rR4dob46R8nyXyQVREfYfGeS1o8UXcfz3t/rZ0zPASNJjYDTFv7/VX/T/gXIEuXPGG8ZS9I8kZyXeAMFnacXClgmC0JbtUnKC0O4ez2uMpUsKzTXKmVL8XWAdsFhEuoHbgHUicg6Bzr8GXAegqrtE5GHg50AKuF5VPbefG4AnCFKKH1DVXe4tbgI2ichXgZ8C3yzXuVSzhVEPlFKg8jEp3hTJcu+FczKTKJz1Jel95Ngv49ZXrtdCYcy0DEIRCB5rEOz2gzbEmRaFr5p3rcaStqZJbtuRpFe02xbg2//2Gg9ue93F32As5fHgtiBs+8n/sLKgfUwV5D5/VUfVxBtCQWhtijE/w5XU1hTjH3e+Qd/wGKOp4PrHo0JrY5TlHa18/eNnl+Q45gJSi1kYJ8K7zjlPH3nymUofhpFFLaVqlptSXIvn9vXyle/vYjjpp4OQLfEI//WjZxW9r1//8x8zlvKIRsbdLp7v0xiL8s//18XpMV+V4TEvpzh87/luBseSRETw/MCqSmWUgSl5vKExsAjG3UcxWrMC1Jmxh0LiDZnCmOkKv/HS8mZ/VQMdLQ0sbG3coapd0821FfVGxalUqmY1Uqpr8e9v9acFBQLrZzjpF+S2yl7fMJwICltmdisUgu6N139nZyAgzt1UCm0QSH/hBxZDIAjZ8YbW9OMg3tDWGCtraX1zhReGiYpRccK1QKGrJky7LSRVc66x6fkDpDyPY8PjaautjYWlrWby8I7udLp4+D3v+crfPvdLGuLRCS6lwQLiDdlaET5/5WD+fjXRiKQD0If6RxlL+el4FgQuvs7WRv7wQ2ekxWLPoQEeeeFN3hoYpbO1seq+tPO5ws3SHsdExag4J7oWaC7xeu8QAyNJJBIsek16Pr2DPonUIHt7BguKNwyMptLC4GVVGk54WrLGcC3xCJ+48LQJbqa2xhhtGesbwsy9z3zreV7vHU7HrFTBR2ltjHKByyJ7bl8v3/jx/qq2WHOJB2CWdgYmKkbFKdVaoGpmqnjDhAD0SBJPQTydYB0cH02x4ds7Tvg4BHjbkta0+yg7GJ0ZqA7dTJ/61vMkUh7HhlPp+MyClhiNsSifuPDUgt53KOlxUnsjfcPJtAXW0dLAcEb+erVbrM/t6+XOJ3Yz5HrC9A0luPOJITqa41V93LONiYpRcUq5FqjczLSeUrHxhqmmCkHflSVtjSxb0JSxzmE88Lz9tV5+sPuwyy4LLAMFrr3otIIztkJC0e9sHS9qOZL0WDSvseh9rMgoTTOS9FiSsY9qt1g3/mgf/SNJIhEhGg3aEvSPJOkfSbK6c96EudV03LONiYpRcSoRAM1c35AzZXUktziUan1DRGB+czxjBXRgGez8ZR/DYymSXpAhFfwCjtDe3EAi5ROPCs0N0bTw/ua5y3Nepw+dtZQVHa/x8I5uRpIezfEov/2e5UULCgSif+cTuzk0MIrvK5GIMK8hxvXrTi9qH9P9cKh2i/VA33B6TRS4NHFRkn5wnNV63LONiYpRFcxkLVA11FOKR8XVSMpe8Db++FD/GI/vOkg8EqG5IRIIhq98/gNnTDrnfGmr8YhALFKUi+WT/2HljEQkL66K8UyWCxXyw6GWLNZMYpEgJbrWjrtcmKgYFafweMNkcSjl+obWxvEiepnxhtamOPPDuINLXW1vjhdcT+kPv/ciUYH+0SRHh6bO6Mr35XvXD14lKnCgbywjJhE/YRdLZpUCcFUHsuq6/d2ObtqbY5zU3pTO3BpOemze2c0H3nES6hqwhH+JsC+LICjBKn9flUve3smvrO1kfLnoOIryH9/eSTQifOe5X/LW8RGWzg+FZ1FVVDVesaCZ13uHwdfxZAOF0xa2sOGSt1mqscNExSgZmfGGwZzikGL/kSF+cXiQ0aSXrgM2mvRKtr6htSk2QRxyxRsyXU7h43LWU8rO6Er5St9QkpSfu1xKLqtt3o9ivH50KFjF7/ZxqH+MlYvmEY9GMmqrke7vE3Vla6K5GtEVUVPt0MBoIGi9w+lulItbGzjUP0pn29RxlWIb3P3W+Sv4rRy/8FXVfYkHCQy+ex6OhePBXJzIKb4G24b3Xsbj8W0pSLQ2XPK2IFCfSKXdgO0NcTZc8jarupGBiYoxiUTKzx+MztHTYebxhtz/kaMuNbM1o8hee1Z2UnbGUigm0Sqs45VI+ZBlDXgS9BaZilB0Y1Eh4q6VqLME3KWLR4UVCyf3ZSklbY0x9vQMBkLlBO2NY6OsWdI65XbFVkqeinSJnJwFyk+cUHjSApUhOL4q6sOH37mUlsYoD/7b6xw8PsLS+U38zgWncsHqRUWJ01zHRGWOUky8YXDMiYMbHy1TvOH1I8OMpVKuQm7wC7q5IUJnaxN/vP7tOdc3zAXiUWEsFRR+DN0mAA1RobUpRjwSIRqVdJuBaESIRSY2Zxv1lOUdzRwZTATWQizCstaGkhZGzMXW3T28dnSIlB/EgWLOIoLpv0Dve2YfSc/j6GAqbeG0N8fS62ROtEV3KQlaP0B0GtG6/JxTuPycvK2b0uLk+ePi5IVC5U+0qnyXkudnWFW+rxOsr1rERKXKqYZ4Q1M8MqEcRmb/hgnxhmnqKf3mvf9GylMkIsQiwZfr8JhHbyTBmpPaSnKs1ULMCUU8Ipy+pI1f9g4xOJr55drAqsWtBfeeDxtlre4ctw7C3vXFupgKJbQ0kp4Si4CnkPSVpphwyvymaQVtT88Ax4ddCq6zcI4MJBgcPcYXN7/oPqM+RwbG+OLmF/nTK8+uqLCUgrQ4lchizqxAHYqN5wdxKs89Dt16nhOkUNAqhYnKLDFb6xvykSveMDEwHXc1lsbrKYX9HkoVb5ipG6haiYgQj0VoiAa3eEyIRyPEsjpp3vD+07l1yy7amuIz7jufr3vke1cvLImLKZcwhZZG6NqJCMSioUsuMq0g5vp7+6IMJTxGkn56P6rQN5zkzsd317yolJpIRIggRX9Rayg+mUKk40kTme66fG6/mbryTFSKpJh4Q9gEqH80ydBY6fpFZ8cbMktkZAao25uDaq1tTUH/hkrHG6ZyA1UrIoErKh6NEIsK8Uhw3xCLFCy2pej8mG8fUzXjKnT/+WIffUNjDCfGkyh8Bd9TfL8wUYxHhZHk5L+3r0EabqbYqCj7jhTf58XIjUgQizsRMoWpmK+OuhQVVWU05TMwMtFdlGs9Q1pAyhRvyExPzQ5KT+gnPQfiDSsXtdLdN8TQhB7fMZZ3zJt+4zITdcIRn8bqmCml6PyYax9feuRnLGiOTxhrjkfp7iu8zW8+YRpygiJMTKlQ4PbLz5r2fM44qZ39R4IWvKHbr60pzqGBsbzb3PPUq9z/4/0MJTzmNUT5zMWrJrQ5NmaPmQpTOZt0PQB8FOhR1Xe6sYXA94CVBE26fltV+yT4X3s38BFgGPiUqu5021wLfMnt9quq+qAbfw/wLaAZeBS4UQuw135xeJD1d/+IpFeeeMNEUchuCVpc/4a5Rrgy23N/Js8135rNRWIigZXREI1MuK+0FTdTwlhLKAgQlD9Z3lF4RtiBvuGcwhRaKNn/UyJSmGstdNktnR+b4LI7ZX4Tb/WPIVnrPRY0Rbn76b24dZ6MJD3udm16TVhqh3JaKt8C/hfwUMbYzcAPVPUOEbnZPb8JuIyghfAa4ELgXuBCJ0K3AV0En+0dIrJFVfvcnA3ANgJRWQ88Nt1Bhf24M8m7viGjuc/8pqyiezXSL7raSHo+idS4H6QhWr54Smh9NMQiNMbC+7kl5vliLcXEa/IJU7aFEpLyA4si84s+X7LAld3HJlke716+gM99dyeDzhKKCLQ2RBlKeE5Qgv9TEQl6uNz/4/1VLyrlSpaoRcomKqr6jIiszBq+gqDFMMCDwFYCUbkCeMhZGttEZIGILHNzn1TVXgAReRJYLyJbgXZVfdaNPwR8jAJEZdn8Ju74T++aUEajGuIN9cDGH+1jJOERj46XPx9JeGz80b4TXjgWj0ZojEdojEZdvEPK2rCpWihFvCafMMUikMyj+ZkWRL6YzJXdx9i88w062xo51e138843AGiIR2lwacrRiAQ9XgYTNMQm/j+MCGVPmz5RSrkeZy4w2zGVk1T1IICqHhSR8IqfAhzImNftxqYa784xPi1tTfF0/wZjdslXkO9AEf5/cALirI7GeODCitTAj4Jy/Zo90XhNPmH6wuYX6R1MkFtXNG1BZMZk+keSHBkcYyzlc/fTe5nfFGMs5U9Yp3L/j/fT2dbIsvnjBReHEyn6hpOTgsK+wryG6rYuS5EsMZeolkB9rm8EncF47p2LbCBwlXHy8vos8larRERoikdpijsRidWGgGSzdXdPVa/NyCVMa5a08Vp0kIPHJwfWPR8Gx1JA8GNhLJniF4fHs7eiEqxr6R1OEo9OXKfiqXJqVhWA5niUec4FlvJ9IuKyzRQ+c/GqMpxx6TjQN0xUYN/hwQllbIpJlphLzLZ/4JBza+Hue9x4N5D5bb8ceHOa8eU5xnOiqhtVtUtVuxYuWnzCJ2HMjBULmvF8GEv56ZvnB+MQxECaG6LMb47T2dbI8o4WVi6ex9L5TSxoaaC5IVr1grJ1dw9Xb9zGxXc+zdUbt7F1d/ARv/Px3fQNJ1EI1mYwvjajWrnuktXEo5OthPAvkM6K830ODyYnzMkMW3q+IriV+K7m2EhyoktrJOlx1snzufzdS/EVxlJBKuvl715a9fGUtsYYbxwbJeVceWEZm9bGavnNPrvMtqhsAa51j68FHskYv0YCLgKOOzfZE8CHRKRDRDqADwFPuNcGROQilzl2Tca+jCrlV87onORK8YFfe/cyTl3YwmmL5rFsfjOLWhtpa4rTEKutmEjoW+8ZGJ3gW9+6u4d9R4bSrr/wCzYiVPXajHVrl3D75WdN+pII9aIlHohK70hqyv2kF9m5dLKWuNA/kmTPoQFeOXicPYcG6B9J8t7VC9nxy+OsXNTCO09uZ+WiFnb88nhamKuVdNKpZtyY+eLBWqecKcXfJQi0LxaRboIsrjuAh0Xk08Avgd9y0x8lSCfeS5BS/HsAqtorIl8Bnnfzbg+D9sBnGU8pfowCgvTG7BIuHGx0CwV3HRxgaXsD/SMpkr6mfezbXz82J4Lq09W6qlVam2L0j44LR0SgvSnGmcvmAzA8TSA9IkH6eLhOZUFznCNDibTVggTfw4++fJBEauL1a2uKVX1sYjDhccqCpvG6bNEIS1sbqz7BoFyUM/vr6jwvfSDHXAWuz7OfB4AHcoxvB955IsdolIaIjK8wbwhXnkcjLstr3F315vERFrc20dk2Pqaqc8b3nK/WVdIbYNWiFvYeHpq0NuP0xeWtMHwibN3dw+e+u5P+rGoQYYWBQtOWVcdXZ3u+IiLMb45PCtTvPTyUrkQcFSHlKUeHEqS8/pKeV6mZqi5bPVL7Pw+NWachFqG9Oc6S9iZOXRjEPU5e0ExnWyPzW4IU7YZYZNJK9BUdLTl96cUs1KtmEikfX5Wk5zOW9El6wfNEyufmy85kQUsciQS/2iUCC1ri3HzZmbNybPliPVPxpX96eZKgACQ8zZ8Vk0W41iXTIjk8OLFlMASBes+5xyKuikEYP0uUaKFyubjuktUkPWU4kUI1uC92rdBcwkTFyEtEhMZ4lLamOItaGzl5QTMrF81jeUcLi1sbaW2MFeW2muv/+Xz18dKlzIN7T0HVZ93aJXztyrM5d0UHS9ubOHdFB1+bpcyvqWI9U/HG8dG8r8WjknbrTbXGKxYV5jVEWbu0nTVL2pjfHCeR8nP+uIhFxZWCV1cKPriQ1R5bC2NPS9qaOD6SZElbU0FlbOYq9ZmeYExARIhHJ5YvCetglZJ8K6znyn++sTwrBUfdeCnqf82EqWI94fHkWkMzVZz50PGxdGWKeCRIMc6JMqE7ZHM8SkNU0j8uMhdbvm3xPHoGxjg2Mr5eZUFznDVLqr8tQqX+ttWIiUqdEY1IulxJKCLZsY9ysXV3D9/e9jqJlI8QuIW+ve113r18wZz4D5lv9Xm+8dliT88AfUOJtAWV8jxG3Rc5BH+XL2x+kcGxFJ6vHBkc4wubXyQCeRY+BuMDLnjfEIsylkrldIktbmugrWm8rthI0mPNSe3pCsuZiy1f6j7G3U/vDcrruHUqx0dTvNfa9NYUJipzmGhE0uIR1r6qZK2yOx/fzZHBRPrLJ+X7jA0mrI/GCTJdZd/hhDdh3YgSuOXCrK07HnuFY8PJoOukCOrDseFkXkEJGXMVuxtikXSnynQSgq80xSPEo9Gcdcly/bK/75l9dLY2ZFU1jvHsvl4+V4oLZcwKJipzhCD+Mb7qvDEWqbo03VcPDUz6Natu3BinmHIu9zz16rSVfUfzpLaG4/uPuvI5kYz+JkV0hluzpI3Xjg7SP5LhXpsXZ+Wi1pwWSb5zOdA3zOLWRjozsqbmUnZgvWCiUoOEMZCw9lVjjVTfzZfEU+XJPQWTz11UjLQXW5zw/h/vn7ay71QurBPlnqdenVDiPuX5HBoYo2cgwYLmBADf3XBRQfsqRRl/o/JU109ZYwLRSFD3qq0pzqJ5jSyd38SKhS2sWhxkYHW2NdLeFK8JQakHTuloLmo8F5nFCUWC+8xMq2zCcvGZFFvZd/XieemWsmHWVdCdcfo421+5YP+V553Cm8dGeL13hLGkz6KWOAnPLyjLLGSuZwfWC2apVAFh46gw7tHgMq+sHH9tMZLIXa4k33guDvQNk0h67D8ylM6AWjyvIej3noN5DVG32n2iiLQ3Ff5f+6b1a8eLXXo+sUiEjpY4n7zoNO7/0b6ca1VChhMeW3f3sHnnGyhBa2gR4dhIipbGcUEsJGZWijL+RuUxUZllIlkCEgbSjdrn6FCyqHGYHD8ZTXocGUwguIWDCj2DCVbksXbaG6MTSqhkjhfKurVL+NMrz875Zf7u5Qu475l9PLvvaN7tQ+vK85WoBKLioxweGGPV4nlFxUQsNbf2MVEpI7GIszxiE1vX1ivtTTEGRiemngrQVsSv6momX2go33iucvijziLJ3ubIYO6+7t05ytJnjxcS68n3ZR6Or7z5f+c5i/F2xA3RCCkvKEMjAgnPt5hIHTI3/jdXmMy2tWEDKXNfTeYzF69KZyrVUr+MchGWw49Ggi6V+RYbRjixUiXxWIREyp8k5vEifuDkay0sjAfYF7c28ubxEfBBCawWi4nUHyYqRRDGPhqimSvP66NtbSkIs5GmWlNRyxSb/ZVZDh9cJ0yHhP9osM+WE7Bww2KWgWsqcKl5qqxaVLgFEW6XazzM/opHhZPnN3FoYIyUB2/rnMdN69eaO6vOMFHJQ7jyvCEaoTEerXvXVan43AfPmDMikk0pLIIQTf8TsLB55v9Vb77szAkr5qMRYUFjccUsWxtjDI0FrkvVQEwEmNcYmxRgP3dFhwXY6xgTFcZjH+PB8+pbOGhUP1NZBLkWNOYqhw/OsnHuwYjAonlxJDLzz+O6tUu45qLTAgvR82iORrjmotOK+tIPXZfRPK5LC7AbIXX3zSkEv7oWzmtg6fwmTls0j1MXtbB0fhMd8xqYV2TlXcMIufmyM2mJR0j6PqMpn6Tv0xKP8JF3LctZJfgj71o2qRx+PCosaInTHI8SjwrN8SixaCRvsDue56OaOR6m/Ha2NXLm0jY62xrZvPONojoqfu6DZ3DjpafTHI+S8oPCkDdeevqctTqNmVMRS0VEXgMGCJLrU6raJSILge8BK4HXgN9W1T7XLvhugs6Qw8CnVHWn28+1wJfcbr+qqg9O994NsQhL2udm85xiynsYs8ejLx9ML2gEaGmIMZxI8ey+Xr6Wlcq7tL2BLS+9lU5mSHg+PQMJrj4/d1HFQqoUZC6ozHz/YjsqzmXXpVE6Kun+er+qHsl4fjPwA1W9Q0Ruds9vAi4D1rjbhcC9wIVOhG4Dugi8zztEZIuq9s3mSVQLxZb3MErPnY/vZjjpE49G0u6s4aTPL44M8faTJpZvb45H6e4bnuQ2unrjtqKKKuYr0ZU5Hqb85np/wyg11eTnuQIILY0HgY9ljD+kAduABSKyDPgw8KSq9joheRJYP9sHXS0UW97DKD2Z2VyCEBEJanF5WnDHy7Co4urOVtYubWd1ZyuLWxvzCkA0owhkeMsch7nfcdOoLiolKgr8i4jsEJENbuwkVT0I4O7Dn2+nAAcytu12Y/nGJyEiG0Rku4hsP3z4cAlPo3o40Decs0Wr/RqtPLGIFFzTqlgBuPzdS4GwD/x4sD8cB6upZcwulRKV96nqeQSuretF5JIp5uZaQahTjE8eVN2oql2q2tXZ2Vn80dYA9mu08qxa1BJkRfmKquL7QWHGt3XOK7jdbLECcNdV5/Eb5yxLWybRiPAb5yzjrqvOS8+xdrfGbFKRmIqqvunue0TkH4ELgEMiskxVDzr3Vpia0g2syNh8OfCmG1+XNb61zIdetYQL0HI1RDJmh6nWgxSacjuToop3XXUed101/X5NRIzZQHSqRtTleEOReUBEVQfc4yeB24EPAEczAvULVfWPReTXgBsIsr8uBO5R1QtcoH4HEP4k2wm8R1V7p3r/rq4u3b59e3lOrsKE2V9W4bVy2N/AmKuIyA5V7ZpuXiUslZOAf3Q90WPAd1T1cRF5HnhYRD4N/BL4LTf/UQJB2UuQUvx7AKraKyJfAZ53826fTlDmOvZrtPLY38Cod2bdUqk0c9lSMQzDKBeFWirVlFJsGIZh1DgmKoZhGEbJMFExDMMwSoaJimEYhlEy6i5QLyKHgdezhhcDR3JMN8axazQ1dn2mxq7P1FT79TkCoKrTlsKqO1HJhYhsLySroZ6xazQ1dn2mxq7P1Myl62PuL8MwDKNkmKgYhmEYJcNEJWBjpQ+gBrBrNDV2fabGrs/UzJnrYzEVwzAMo2SYpWIYhmGUjLoRFRFZISI/FJFXRGSXiNyYY46IyD0isldEXhKR83Ltay5S4PVZJyLHReQFd7u1EsdaKUSkSUSeE5EX3TX6bznmNIrI99xn6CcisnL2j7QyFHh9PiUihzM+Q5+pxLFWEhGJishPReT7OV6r+c9PJXvUzzYp4I9UdaeItBH0tH9SVX+eMecyYI27XQjc6+7rgUKuD8CPVPWjFTi+amAMuFRVB0UkDvxYRB5zba5DPg30qerpInIVcCfw8UocbAUo5PoAfE9Vb6jA8VULNwKvAO05Xqv5z0/dWCqqelBVd7rHAwR/1Oz2w1cAD2nANmCBaxg25ynw+tQ17nMx6J7G3S07KHkF8KB7vBn4gIjk6lI65yjw+tQ1IrIc+DXg/jxTav7zUzeikokzKc8FfpL1UsF97+cyU1wfgPc698ZjInLWrB5YFeBcFy8QdCZ9UlXzfoZUNQUcBxbN7lFWjgKuD8BvOvfyZhFZkeP1ucyfAX8M+Hler/nPT92Jioi0An8PfF5V+7NfzrFJXf3Smub67AROU9WzgT8H/mm2j6/SqKqnqucQtK++QETemTWlrj9DBVyffwZWquq7gacY/1U+5xGRjwI9qrpjqmk5xmrq81NXouL8vH8P/K2q/kOOKd1A5i+n5cCbs3Fs1cB010dV+0P3hqo+CsRFZPEsH2ZVoKrHgK1Adi2k9GdIRGLAfKDuOpLmuz6qelRVx9zTbwDvmeVDqyTvAy4XkdeATcClIvI3WXNq/vNTN6Li/JLfBF5R1a/nmbYFuMZlgV0EHFfVg7N2kBWkkOsjIktD/66IXEDw+Tk6e0dZWUSkU0QWuMfNwAeB3VnTtgDXusdXAk9rnSwGK+T6ZMUoLyeI3dUFqnqLqi5X1ZXAVQSfjd/Nmlbzn596yv56H/BJ4GXn8wX4E+BUAFX9K+BR4CPAXmAY+L0KHGelKOT6XAl8VkRSwAhwVa194E+QZcCDIhIlENSHVfX7InI7sF1VtxAI87dFZC/BL8yrKne4s04h1+dzInI5QbZhL/Cpih1tlTDXPj+2ot4wDMMoGXXj/jIMwzDKj4mKYRiGUTJMVAzDMIySYaJiGIZhlAwTFcMwDKNkmKgYRpkRkc+LSMsMtnutXheXGrWLiYphlJ/PAzlFxa3pMIw5g4mKYZQQEZknIv/bFd38mYjcBpwM/FBEfujmDIrI7SLyE4ICnR9w/TVeFpEHRKQxa5/NIvK4iPy+e/67rm/JCyJynwmTUU2YqBhGaVkPvKmqZ6vqOwmq0r4JvF9V3+/mzAN+pqoXAtuBbwEfV9V3EVS5+GzG/loJijB+R1W/ISJnEvTXeJ8r3OgBvzML52UYBWGiYhil5WXggyJyp4j8R1U9nmOOR1C4E+DtwH5VfdU9fxC4JGPuI8Bfq+pD7vkHCIowPu/K6XwAWF3qkzCMmVJPtb8Mo+yo6qsi8h6CGnL/n4j8S45po6rqucfTNWD6V+AyEfmOq7MmwIOqekvpjtowSodZKoZRQkTkZGBYVf8G+BpwHjAAtOXZZDewUkROd88/CfyfjNdvJagE/Zfu+Q+AK0VkiWdfCBkAAACVSURBVHu/hSJyWmnPwjBmjomKYZSWdwHPOdfU/wN8FdgIPBYG6jNR1VGCath/JyIvE3QE/KusaZ8HmkTkf6jqz4EvAf8iIi8BTxJUBzaMqsCqFBuGYRglwywVwzAMo2SYqBiGYRglw0TFMAzDKBkmKoZhGEbJMFExDMMwSoaJimEYhlEyTFQMwzCMkmGiYhiGYZSM/x/cTliEArXTOQAAAABJRU5ErkJggg==\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": 17, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f91e526d198>" | |
] | |
}, | |
"execution_count": 17, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.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": 18, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f91e519def0>" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.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": 19, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f91f0c84c18>" | |
] | |
}, | |
"execution_count": 19, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# 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": 16, | |
"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": 16, | |
"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": 17, | |
"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": 17, | |
"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": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"fwd 118\n", | |
"rwd 75\n", | |
"4wd 8\n", | |
"Name: drive-wheels, dtype: int64" | |
] | |
}, | |
"execution_count": 18, | |
"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": 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>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": 19, | |
"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": 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", | |
" </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": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n", | |
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n", | |
"drive_wheels_counts" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Now let's rename the index to 'drive-wheels':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 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>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": 21, | |
"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": 22, | |
"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": 22, | |
"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": 23, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array(['rwd', 'fwd', '4wd'], dtype=object)" | |
] | |
}, | |
"execution_count": 23, | |
"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": 24, | |
"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": 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>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": 25, | |
"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": 27, | |
"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": 27, | |
"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": 28, | |
"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": 28, | |
"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": 29, | |
"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": 29, | |
"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": 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>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": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Write your code below and press Shift+Enter to execute \n", | |
"df_gptest.groupby(['body-style'], as_index=False).mean()" | |
] | |
}, | |
{ | |
"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": 32, | |
"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": 33, | |
"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": 34, | |
"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": 35, | |
"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": 35, | |
"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": 36, | |
"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": 37, | |
"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": 38, | |
"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": 39, | |
"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": 40, | |
"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": 41, | |
"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": 42, | |
"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": 43, | |
"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": 44, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n" | |
] | |
} | |
], | |
"source": [ | |
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n", | |
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h5>Conclusion:</h5>\n", | |
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Highway-mpg vs Price</h3>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"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": 46, | |
"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": 46, | |
"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": 47, | |
"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": 47, | |
"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": 48, | |
"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": 48, | |
"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": 49, | |
"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": 50, | |
"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": 51, | |
"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": 52, | |
"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/DA0101EN_NotbookLink_Top_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 © 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