Skip to content

Instantly share code, notes, and snippets.

@mlarocca
Created April 10, 2019 16:34
Show Gist options
  • Save mlarocca/261e6691e7c46f60310e3cf0df6e3283 to your computer and use it in GitHub Desktop.
Save mlarocca/261e6691e7c46f60310e3cf0df6e3283 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 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/DA101EN_object_storage\">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": 8,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"text/plain": [
"(0, 56043.32371459977)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 9,
"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": 9,
"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": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff594be1cf8>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff594b62da0>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEKCAYAAADaa8itAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztvXt4nNV16P1bc9PFki3ZlrFjG2wnTsylhYDCJcnxcUkKJs3B9HvoKbRNaE5a0xS+pKdNCvS0JJ9J+0DSNgk9LceU0EDbxKFu88VfDoRCiOumBwM2lySOHezIgAwGybZsXUbSXN71/fHukUajGWlGmvus3/MMM7Pe/b7v3oz8rr3XWnstUVUMwzAMoxgEKt0BwzAMo34wpWIYhmEUDVMqhmEYRtEwpWIYhmEUDVMqhmEYRtEwpWIYhmEUDVMqhmEYRtEwpWIYhmEUDVMqhmEYRtEIVboD5Wbp0qW6Zs2aSnfDMAyjpti/f/8JVe2arV3DKZU1a9awb9++SnfDMAyjphCRV/NpZ+YvwzAMo2iYUjEMwzCKhikVwzAMo2iYUjEMwzCKhikVwzAMo2g0XPRXI7D7UB/b9/TQOxBldWcrN29cx6YNyyrdLcMwGgBbqdQZuw/1ceeuA/QNjdHREqZvaIw7dx1g96G+SnfNMIwGoORKRUSCIvKCiHzHff+aiBwVkRfd6yInFxG5V0SOiMgPReTitGvcJCKH3eumNPklIvIjd869IiKlHk+1s31PD+Gg0BoJIeK/h4PC9j09le6aYRgNQDlWKp8CDmbIPqOqF7nXi052DbDevbYC9wGIyGLgs8BlwKXAZ0Wk051zn2ubOm9zKQdSC/QORGkJB6fIWsJBjg1EK9QjwzAaiZIqFRFZBfwS8EAezbcAD6vPXqBDRFYAVwNPqOopVR0AngA2u2MLVfVpVVXgYeC60oykdljd2cpoPDlFNhpPsqqztUI9MgyjkSj1SuXLwB8CXob8T52J60si0uRkK4HetDbHnGwm+bEs8mmIyFYR2Sci+/r7++c8mFrg5o3riCeVaCyBqv8eTyo3b1xX6a4ZhtEAlEypiMiHgT5V3Z9x6A5gA/AeYDFwW+qULJfROcinC1XvV9VuVe3u6po1H1pNs2nDMrZdez7L2ps5MxpnWXsz264936K/DMMoC6UMKX4fcK2IfAhoBhaKyD+o6m+44+Mi8nfAp933Y8DqtPNXAW84+aYM+W4nX5WlfcOzacMyUyKGYVSEkq1UVPUOVV2lqmuAG4CnVPU3nC8EF6l1HfBjd8ou4KMuCuxy4IyqHgceB64SkU7noL8KeNwdGxKRy921Pgp8u1TjMQzDMGanEpsf/1FEuvDNVy8Cv+PkjwIfAo4AUeBjAKp6SkTuAp5z7bap6in3+RPA14AW4DH3MgzDMCqE+IFTjUN3d7daPRXDMIzCEJH9qto9WzvbUW8YhmEUDVMqhmEYRtEwpWIYhmEUDVMqhmEYRtEwpWIYhmEUDVMqhmEYRtEwpWIYhmEUDVMqhmEYRtEwpWIYhmEUDatRbxhVxO5DfWzf00PvQJTVna3cvHGdJQc1agpbqRhGlbD7UB937jpA39AYHS1h+obGuHPXAXYf6qt01wwjb2ylUofYbLc22b6nh3BQaI34/yxbIyGisQTb9/TY72fUDLZSqTNstlu79A5EaQkHp8hawkGODUQr1CPDKBxTKnVG+mxXxH8PB4Xte3oq3TVjFlZ3tjIaT06RjcaTrOpsrVCPDKNwTKnUGTbbrV1u3riOeFKJxhKo+u/xpHLzxnWV7pph5E3JlYqIBEXkBRH5jvu+VkSeEZHDIvJNEYk4eZP7fsQdX5N2jTuc/KcicnWafLOTHRGR20s9llrAZru1y6YNy9h27fksa2/mzGicZe3NbLv2fPOnGDVFORz1nwIOAgvd93uAL6nqDhH5X8DHgfvc+4CqvkNEbnDtflVEzsMvR3w+8DbgSRF5p7vWXwO/iF+v/jkR2aWqPynDmKqWmzeu485dB4jGErSEg4zGkzbbrSE2bVhmSsSoaUq6UhGRVcAvAQ+47wJcCex0TR7Cr1MPsMV9xx3/gGu/BdihquOqehS/3PCl7nVEVXtUNQbscG0bGpvtGoZRSUq9Uvky8IdAu/u+BDitqgn3/Riw0n1eCfQCqGpCRM649iuBvWnXTD+nN0N+WbEHUIvYbNcwjEpRspWKiHwY6FPV/eniLE11lmOFyrP1ZauI7BORff39/TP02jAMw5gPpTR/vQ+4VkRewTdNXYm/cukQkdQKaRXwhvt8DFgN4I4vAk6lyzPOySWfhqrer6rdqtrd1dU1/5EZhmEYWSmZUlHVO1R1laquwXe0P6Wqvw58H7jeNbsJ+Lb7vMt9xx1/SlXVyW9w0WFrgfXAs8BzwHoXTRZx99hVqvEYhmEYs1OJNC23ATtE5PPAC8BXnfyrwN+LyBH8FcoNAKp6QEQeAX4CJIBbVDUJICK3Ao8DQeBBVT1Q1pEYhmEYUxB/MdA4dHd36759+yrdDcMwjJpCRParavds7WxHvWEYhlE0TKkYhmEYRcOUimEYhlE0TKkYhmEYRcOUimEYhlE0TKkYhmEYRcPKCRuGUXGsBHb9YErFMKqIRny4pkpgh4MypQT2Nqj7sdcjZv4yjCoh9XDtGxqb8nDdfaiv0l0rKVYCu74wpWIYVUKjPlytBHZ9YUrFMKqERn24Wgns+sKUilE37D7Ux4337+X99zzFjffvrTmzUaM+XG/euI54UonGEqj671YCu3YxpWLUBfXgj2jUh6uVwK4vLPrLqAvS/REArZEQ0ViC7Xt6aubhtGnDMrbhj+XYQJRVDRL9BVYCu54wpWIUlUqFxPYOROloCU+R1aI/wh6uRq1j5i+jaFTSBNWo/gjDqDZKplREpFlEnhWRl0TkgIj8P07+NRE5KiIvutdFTi4icq+IHBGRH4rIxWnXuklEDrvXTWnyS0TkR+6ce0VESjUeY3a27+khlkjy5pkxfvrWEG+eGSOWSJYlJLZR/RGGUW2U0vw1DlypqsMiEgZ+ICKPuWOfUdWdGe2vwa8/vx64DLgPuExEFgOfBboBBfaLyC5VHXBttgJ7gUeBzcBjGBXh5bcGGRxLEEAIipBIKidHYiSSgyW/dyP7IwyjmiiZUlG/TvGw+xp2r5lqF28BHnbn7RWRDhFZAWwCnlDVUwAi8gSwWUR2AwtV9Wknfxi4DlMqFSOe9H/eQMBfMIqA5ymxZHlKVps/wjAqT0l9KiISFJEXgT58xfCMO/SnzsT1JRFpcrKVQG/a6cecbCb5sSzybP3YKiL7RGRff3//vMdlZCcSCoCCp4qieKqgTm4YRkNQ0n/tqppU1YuAVcClInIBcAewAXgPsBi4zTXP5g/ROciz9eN+Ve1W1e6urq4CR2Hky/pl7bQ3h4gnPcbiHvGkR3tziPXL2ivdNcMwykRZppCqehrYDWxW1ePqMw78HXCpa3YMWJ122irgjVnkq7LIjQpxxbrFnBlLEAwITSEhGBDOjCW4Yt3iSnfNqHJqPRuCMUkpo7+6RKTDfW4BPggccn4SXKTWdcCP3Sm7gI+6KLDLgTOqehx4HLhKRDpFpBO4CnjcHRsSkcvdtT4KfLtU4zFm5+meU3S1RYgEA3gKkWCArrYIT/ecqnTXjCqmHrIhGJOUMvprBfCQiATxldcjqvodEXlKRLrwzVcvAr/j2j8KfAg4AkSBjwGo6ikRuQt4zrXblnLaA58Avga04DvozUlfQXoHoixta6KrvXlCpqo1twHRKC/1kA3BmKSU0V8/BN6dRX5ljvYK3JLj2IPAg1nk+4AL5tdTo1is7mylb2hs4uEAtgHRmJ16yYZg+FhYjlE0bAOiMRcsG0J9YUrFKBqWbdaYCzYZqS8soaRRVGwDolEolg2hvrCVimEYVUN5ci8YpcSUimEYFcVCiusLM38ZRaVS9VSM2sVCiusLW6kYRcNmnMZc6B2I0hIOTpFZSHHtYkrFKBrpM04R/z0clLLUUzFqFwspri9MqVQJ9ZD7yGacxlywkOL6wpRKFVAvZiObcRpzwfY31RfmqK8C6sVRefPGddy56wDRWIKWcJDReNJmnEZe2P6m+sFWKlVAvZiNbMZpGIatVKqAekrEaDPO+WEh2UatYyuVKsAclQbUj2/NaGxMqVQBZjYywEKyjfqgZOYvEWkG9gBN7j47VfWzIrIW2IFfn/554COqGhORJuBh4BLgJPCrqvqKu9YdwMeBJPBJVX3cyTcDXwGCwAOqenepxlNqzGxkWF0Rox4o5UplHLhSVS8ELgI2uzLB9wBfUtX1wAC+ssC9D6jqO4AvuXaIyHnADcD5wGbgb0Qk6CpK/jVwDXAecKNraxg1iYVkG/VAyZSK+gy7r2H3UuBKYKeTP4Rfpx5gi/uOO/4BV3t+C7BDVcdV9Sh+ueFL3euIqvaoagx/9bOlVOMxjFJjvjWjHiipT8WtKF4E+oAngJ8Bp1U14ZocA1a6zyuBXgB3/AywJF2ecU4uuWHUJOZbM+qBkoYUq2oSuEhEOoBvAedma+beJcexXPJsCjFrOQYR2QpsBTj77LNn6bVhVA7zrRm1Tlmiv1T1NLAbuBzoEJGUMlsFvOE+HwNWA7jji4BT6fKMc3LJs93/flXtVtXurq6uYgzJMAzDyELJlIqIdLkVCiLSAnwQOAh8H7jeNbsJ+Lb7vMt9xx1/SlXVyW8QkSYXObYeeBZ4DlgvImtFJILvzN9VqvEYhmEYs1NK89cK4CEXpRUAHlHV74jIT4AdIvJ54AXgq679V4G/F5Ej+CuUGwBU9YCIPAL8BEgAtzizGiJyK/A4fkjxg6p6oITjMQzDMGZB/MVA49Dd3a379u2rdDcMwzBqChHZr6rds7Wz3F9VguV8MgyjHrA0LVXA7kN9fHrnS7zQO8Bbg2O80DvAp3e+ZDmfDMOoOUypVAF3P3aQ09E46kFQBPXgdDTO3Y8drHTXDMMwCsLMX1XA0ZNRAgKBgL8lRwTUU46etJxPhmHUFrZSMQzDMIqGKZUqYN3SBXgKniqK4qniqS83DMOoJUypVAG3bd5AZ2sYARJJDwE6W8PctnlDpbtmGIZREKZUqoBNG5bxxesv5N1nd7JiUQvvPruTL15/oYUUG4ZRc+TtqBeRc4D1qvqkS7sSUtWh0nWtsbBEgoZh1AN5rVRE5Lfxa5xsd6JVwP9bqk4ZhmEYtUm+5q9bgPcBgwCqehiwabVhGIYxhXyVyrirrghMpKZvrKRhhmEYxqzkq1T+TUT+CGgRkV8E/gn4/0rXLcMwDKMWyVep3A70Az8CbgYeBf64VJ0yDMMwapN8o79a8OuV/C34teedzPKIFAnLUmwYRj2Q70rle/hKJEUL8GTxu9OY7D7Ux527DtA3NEZHS5i+oTHu3HXAshQbhlFz5KtUmlV1OPXFfW6d6QQRWS0i3xeRgyJyQEQ+5eSfE5HXReRF9/pQ2jl3iMgREfmpiFydJt/sZEdE5PY0+VoReUZEDovIN11Z4Zpj+54ewkGhNRJCxH8PB4Xte3oq3TXDMIyCyFepjIjIxakvInIJMDrLOQngD1T1XOBy4BYROc8d+5KqXuRej7prnodfQvh8YDPwNyISdKa2vwauAc4Dbky7zj3uWuuBAeDjeY6nqugdiNISDk6RtYSDHBsw66JhGLVFvj6V3wP+SUTecN9XAL860wmqehw47j4PichBYOUMp2wBdqjqOHDU1aq/1B07oqo9ACKyA9jirncl8GuuzUPA54D78hxTSSnER7K6s5W+oTFaI5M/x2g8yarOGReDhmEYVUdeKxVVfQ7YAHwC+F3gXFXdn+9NRGQN8G7gGSe6VUR+KCIPikink60EetNOO+ZkueRLgNOqmsiQZ7v/VhHZJyL7+vv78+32nCnUR3LzxnXEk0o0lkDVf48nlZs3rit5Xw3DMIrJjEpFRK507/8X8F+AdwLrgf/iZLMiIm3APwO/p6qD+CuJtwMX4a9k/iLVNMvpOgf5dKHq/ararardXV1d+XR7XhTqI9m0YRnbrj2fZe3NnBmNs6y9mW3Xnm/RX4Zh1Byzmb/+M/AUvkLJRIF/melkEQnjK5R/VNV/AVDVt9KO/y3wHff1GLA67fRVQMrclk1+AugQkZBbraS3ryi9A1E6WsJTZLP5SCyhpGEY9cCMSkVVPysiAeAxVX2kkAuLiABfBQ6q6l+myVc4fwvALwM/dp93AV8Xkb8E3oa/InoWf0WyXkTWAq/jO/N/TVVVRL4PXA/sAG4Cvl1IH0uF+UiMcmJ7nIxqYlafiqp6wK1zuPb7gI8AV2aED39BRH4kIj8EfgH47+4+B4BHgJ8A3wVuUdWkW4XcCjwOHAQecW0BbgN+3zn1l+ArsYpjPhKjXNgeJ6PaENXZ80KKyJ/ghxB/ExhJyVX1VOm6Vhq6u7t13759Jb9PavZ4bCDKKps9GiXixvv3TlsVR2MJlrU3842tl1ewZ0a9ISL7VbV7tnb5hhT/N3wfyu9myG3qnQPzkRjlYC7+O8MoJflufjwPfwPiS8CLwF/hb1I0DKOCrO5sZTSenCIz/51RSfJVKg8B5wL34iuUc53MMIwKYv47o9rI1/z1LlW9MO3790XkpVJ0yDAamUIjuTZtWMY2MP+dUTXkq1ReEJHLVXUvgIhcBvxH6bpl1BsW9jo7qUiucFCmRHJtg1kVi/2/NKqFfM1flwH/R0ReEZFXgKeB/5wWGmwYObGw1/ywbNVGPZDvSmVzSXth1DXpD0uA1kiIaCzB9j09NsNOY66RXLYKNKqJvJSKqr5a6o4Y9YuFvebHXDIxzNVkZhilIl/zl2HMGQt7zY+5RHKZycyoNkypGCXHwl7zYy7ZqnsHoiSSHj39wxx6c5Ce/mESSc9WgUbFyNenYhSI2bknsbDX/Ck0kqstEuRI/whBEYIiJJLK66fHeEfXghL20jByY0qlBOw+1Mdndr7E0FiChOdxYmicz+x8iS9ef2HDPkgt7LU0+MnA8XN5pyoMaZrcMMqMmb9KwD3fPcRANI4CoWAABQaice757qFKd82oM4bGE6zsaCYUEJKeEgoIKzuaGR5PzH6yYZQAW6mUgJ4TIwQEAm62KAIqSs+JkVnONIzCSEWMretqm5ClshQbRiWwlYph1DAWBGFUGyVTKiKyWkS+LyIHReSAiHzKyReLyBMicti9dzq5iMi9InJERH4oIhenXesm1/6wiNyUJr/E7eo/4s6tCkPy2iWteAqep6gqnqd46ssNo5jMJWLMMEpJKc1fCeAPVPV5EWkH9ovIE8BvAt9T1btF5HbgdvwKjtfglxBej58W5j7gMhFZDHwW6Mav6bJfRHap6oBrsxXYCzyKv/P/sRKOKS9uv+ZcPr3zJYbHEyQ9JRgQOprC3H7NuZXumlGHWBCEUU2UTKm4OvTH3echETkIrAS2AJtcs4eA3fhKZQvwsPqlKPeKSIeIrHBtn0hVmXSKabOI7AYWqurTTv4wcB1VoFQ2bVjGn19/oYXQ1hkWJm4Ys1MWR72IrAHeDTwDnOUUDqp6XERS/ypXAr1ppx1zspnkx7LIqwKbPdYXlg7FMPKj5I56EWkD/hn4PVUdnKlpFpnOQZ6tD1tFZJ+I7Ovv75+ty4YxDUuHYhj5UVKlIiJhfIXyj6r6L078ljNr4d5T+c+PAavTTl8FvDGLfFUW+TRU9X5V7VbV7q6urvkNymhIegeitISDU2SWFNMwplMy85eLxPoqcFBV/zLt0C7gJuBu9/7tNPmtIrID31F/xpnHHgf+LBUlBlwF3KGqp0RkSEQuxzerfRS/1LFh5EUhPpK5ZBAu9B7lGIdhlJpSrlTeB3wEuFJEXnSvD+Erk18UkcPAL7rv4Edv9QBHgL8FfhfAOejvAp5zr20ppz3wCeABd87PqAInvVEbFFo4bC77QcpRnMwKoBnVhvjBVo1Dd3e37tu3r9LdMCrMjffvnbbySO1E/8bWy7Oek1oR5BvRN5d7zGUcR08MMzSWIJb0iAQDtDeHWLu0rWj3MAwAEdmvqt2ztbM0LfPETA/VQyG/Re9AlKBAT//wxMN4aVskLx9JvtOwchQne/mtQQbHEgSYzFJ8ciRGIjlTTIxhlA5L0zIPzPRQPRT6W7Q3hXj99BgJtzk14fkp49uass+z5vJbl6M4WTzpZ2yIex7jCY+45+F5SiyZW/XtPtTHjffv5f33PMWN9++1v1ejqJhSyZNs/xAtzLR6KPS3mDD7atorXT7P60P58nIlFSaGo/73XNhEyCg1Zv7Kg1wb30bG46xY1DKlrYWZZqfUZsJCTU3DsSQrO5o5MRybMH8tb2tiJJbM2n4upqxyFScLCHg69Xsu0pUjQGskRDSWYPueHjPbGkWh4ZTKeMLjtZNRwiEhHAwQDgaIBANEQgGCOf415vqHGE8qo/FkwWGmjUY5dqMXGvJbaMr4uYYUlzqzgqpOUSjgK5hcK65y+HmMxqYhzV8Jz2M0lmRwNM7J4XGOnxnl1ZMjvHpyhDdOj9I/NM6ZaJxoLEEi6eXc+BYJBSzteB6Uw0xYqKmp1O3LRS5TVy55Ofw8RmPTkEolF0lPGYsnGRqLc3JknDfPjPHaqShL25roGxrjSN8QB4+f4Wd9Q5wYHmP9snZLO54H5diNXmgK+Lm0v/7ilfQPjXPwzSH6h8a5/uKVFf+tY4ns5rpc8mpVjkb90HDmr7nw7lWLeKn39EQoacLzGI3HuOaCNtYvb+feG989YUKLhExPZzJX01GhFGpqKqT97kN97Hz+dbramzg7HGQ0nmTn86/z86s6iqpYCvU9BQMBVD0/1kD9KqPi5Nkol5/HQu0bF1MqefBvh09kl798go9csYbxDHNCKOArl3BQCIcChAMBQkHfh9OI3LxxHXfuOkA0lqDFPZBLMTu+98mXeeAHRxmJJVkQCfJb71/LJz/4zqJcuxwO7rn4ntYuaeVI/wghEb9stUJSdcaCcKX281hG58bGlEoe9A5ECQUgkDb78zzf15KNhOeRiHnT5CLiKxoXIJD6HAkGCMwUslPjlGN2fO+TL/OlJw9PrCYHxxJ86cnDAEVRLPPZLJkv2/f0EE8mOTk8uTt+YUtoRsVVjQXh5jIOo34wpVJGVJVYQoklpiucYEAIpRRN2somHMwdlVZLlHp2/FffPzJtp7s6eTGUSlskyJH+EYIyuXP99dNjvKNrwbyvneJw3xBnonECAZnYkHliKEY8OZTznGosCDeXcRj1gymVPFjd0cKrp6Lg6YSJwVM4p7Nl9pPzJOkpSS/JeHz6sYAIoaAQCQYmFU8DrHAKIZ4j3CmXvFBEBM9TkqKTvgv15cUilvBA/N/bvyd4kn0Skk61FYSb6ziM+sCUSh5s3fh27nn8ECOxBJ6nBALCwkiYrRvfXpb7ezOscNL9N6lAgUgwUNSHnQF9Q2NIADT1EyhIAPqHxop2j3BQGIn5EYipKnSBAESCtfVbhoPCaBy8tEkY1N44jLlhSiUPLl23mNuu3sCO53p5c3CU5QtbuOE9q7l03eJKdy2n/2bCnObeJxSPKZw5EU8qybT/zQokPWbMsVUoy9qbGRiJ+9rEaRX1oCvHhsxq5Z1nLcySOTnM2qVts5+cJxZdVr2YUsmTS9ctrgolki8T5rQsx0LOZxPK8N+EnAKqRX75ohV868XjWeXFYLb9IMV4yKn6q+BgRiRXrZWnSEX7LV8UKkm0n0WXVTemVBqQhOeR8IAs/hsRccpFCAX81U3Kj1PNq5wtF63i8Z/0EU3L3dUaCbLlolUznJU/8RzugLhXvIdcofnIUlTbrL3U0X6Wv6y6KWU54QeBDwN9qnqBk30O+G2g3zX7I1V91B27A/g4kAQ+qaqPO/lm4CtAEHhAVe928rXADmAx8DzwEVWNlWo8jYKqEk8q/tab6Q+zVERaapUTDk0qn0oqnO17elixqHlaQaxiPWhSqwVJ/UddcmPVooXQFpqPDKp31l7K4AHLX1bdlNLW8TVgcxb5l1T1IvdKKZTzgBuA8905fyMiQREJAn8NXAOcB9zo2gLc4661HhjAV0hGiYknPaKxhJ83zaWyOTYQ5eiJEV47GZ3InXY6GmN4PMF4IomXmfGwBPQOREkkPXr6hzn05iA9/cMkkl7RHjRtTSGCAT+SCRf9FQz48sN9Q5wYik2pzXJiKMbhvsJCaOeSQqURyy9Y/rLqpmQrFVXdIyJr8my+BdihquPAURE5Alzqjh1R1R4AEdkBbBGRg8CVwK+5Ng8BnwPum+1GL781xHV//R8sbAnT1hSivTnk3sNpn0O0NYdoT5O3N/v24Wo1/1QDKbPaWHz6CiczcGAiRLpIfpz2phCH+4YJpu2NeP30GOuXFcc5/FvvX8tXnjpCMDCZat5TX/7AD44WJYR2LmajRpy1lytDgzE3KuFTuVVEPgrsA/5AVQeAlcDetDbHnAygN0N+GbAEOK2qiSztpyEiW4GtAJHl72BwLMHgWCJX85wEA5KhiJzSaXJKyCmitjRFlFJMzeHq9UeUg5kCB1J+nFSWgZQPpxCzmjqHdiyhk+G4kjsFfKF88oPv5OiJYXb98E3iSX9Fcu3PL+eTH3wnDz39StFCaAs1G5Urr1o1Ua78ZcbcKLdSuQ+4C98cfRfwF8B/w5mqM1Cym+dSz4xs8qyo6v3A/QBvP/fn9X98+FyGxhLuFWdoPMHwWIKhcV/mf44zMj51xp30lDOjcc6MZvFwz0IwIFOVTw5ltDBjldTWHKI5VN8KadKPkz21TSggNIVcdgHnywkGfHlq82f/8HjWHfUnhrOpscLZfaiP/a+dYc2S1onZ8f7XzrD7UF9ZQmhz0aiz9mrb8GlMUlaloqpvpT6LyN8C33FfjwGr05quAt5wn7PJTwAdIhJyq5X09jPS2hRi07vy+2NMesrw+KSSmVQ4ThmNTVVGE7LxxJQopNS1To/GOT0HhRQKyIQimlwhZayWMr6nPjfVuEKaSeHAZLaB8YRHQJhiSku4uu3FYKaIo1KH0M6EzdqNQvBX9JNBJqns1opOKUmd+p5qV0j29bIqFRFZoaqpzQS/DPzYfd4FfF1E/hJ4G7AeeBZ/RbLeRXq9ju/M/zVVVRGScLGaAAAgAElEQVT5PnA9fgTYTcC3i93fYEBY1BJmUUuYZ3tG2fFcL8cHR1mRx+bHpKdTlFHqNZz2fXg8weBYfEIxDTt5phMy4SkD0TgD0cIVkgALmkIsXhChrSnEwpY0H1LaSilTIS1sDtGUUQOlGkllGwgHA4zFkiQ1zQSlvpI5emKEgPN5pHwuqc8BYWJvSDDg7w8Jin88PQXOTL6Lanmw19ZulsYiZYZNf1ADUx7qqeNT3lHnv1PU8989VZLuQl4WBTCTcpgrna2RvNuWMqT4G8AmYKmIHAM+C2wSkYvwx/gKcDOAqh4QkUeAnwAJ4BZVTbrr3Ao8jh9S/KCqHnC3uA3YISKfB14AvlqqsTzbc4qvPHWYUEBY2Bzi5Mg4X3nqMJ9ifU7FEgwIi1rDLGoNZz0+E4mkx/D4pOLJppCGnMKaTSEp+Kut8cJ9SOGgTDfTZTXbhWhvCtPeMmm2K3ddmXMWL+D10yMMjyeJJz3CwQBtLSFWdixAVUkqJEmFSudHuhJa1t7EyeFxWtxKRfB9F8sXNjM0FufSdYu5/O1Lppw/nkj618hQUMWkWkOKS01qb85rp0ZY3dnK1v+0jo3v6prxIZ16QKfP0Mn2UE6/hmZ/8E9RDFkUQaoNzO9hXotIow345y66WL/9xJ6Czvn9b77EyZHxKdULR+NJlixo4i9/9cJid3Fe/PcdL9I/PE4kGCCpOlHNsiUS4qrzzppmxhsemzTdjRUx4V8kFJhQOAubQ7Q1hTOi6tJ8SBmrpLkopGd7Tvn52dJSwC9oCnHb1RuKkgnh2Z5T3PWdA0Tj3oRTrzUc4E8+fH5e1xcRFzzgr4Z82aTcL64lPH3kBH//zKscPzPGikXN/MZl5/DedyxNu85Uh+In/uF5TgyPTSg78P82u9qa2P6RSybunU5qtqs6WdgLJvfgCP4KLrNvk53IGFzGg3ni2jnWTqlrTTme8fCeaea992cn+fL3/EleczjAWNwj4SmfujL3JM+YH52tERa3Ne1X1e7Z2tqO+jw4PjhKUKB3YHxiFtzZGubNwdFKd20abw6NsbA5NOUhsKApyNBYgo9ccc6M58aT3pRAhQkT3ejkKmnqymnSfJfpu4glPE4mYpwcKXw/alMo4JRRnj6kpjBDY3F/RijuIVnkhcFP3xycUCjgP/CicY+fvjmY14MsNQP2ZpjEpa+I25qC9A+N88V//SmfSng573HstF/npe/kyJS/zWMD0TkFlNQC33i2l1BAJiZ5KT/Wjud6TalUAaZU8mBBJMSrJ0cIuGijhKe8NTjOOUuKV0ujWKxY2DJtVTUW91i+cPY0/eFggMULIixekL/9NEUskTLZpZnoxhMMp75nrIrSI+4y93OMJzzGh2OcHJ57ggTxlCEvwZ89dpAr3r7E+YnC031IaWa7mfbLPLL/GMHA1DK9Sc/jkf3H+Mh718y5n+nseK6XRDLJ6WiaCa8pOOPDckE4yKunor4PyNV5eWtwnHMWVzak+NmeUwX5IAvh+OAoC5unPrqaw4GqnOQ1IqZU8mHSWJrxXn2mwxves5qvPHWY0Xhyimnghvesnv3keRAJBVgcmrtCmqJociikaUENWRRSCsUPcBgcS/D4gbeytsmkORzwlUyWza/RWNJfAbnsACmTUTSWJJH0irKB89VTIwyNxpG0ycvASJyEN5L7pHTbVWp1pmnyCjAXH2QhzGfiZJQeUyp5MBJPctbCJgai8TQTQ4RoIV7fMnHpusV8ivVVmaY/F5FQgCVtTSxpayr43PF4kqHxBL/+wN6sTvigwC9sWDYZ+JAWEp5ZwGss7jEWH6c/x94W1ezmq6u+/O+0hIMTymiKD2mK+S6cFn3nr5LamkMTlT2zFbdKzrIzfySWmP632RYhGis8MKNY7HiutOapSk2cjPwwpZIHqZnR6rRdyqPxJMsWFP4QLAe1lqZ/PjSFgzSFgyRz6HdV+KMPTa/XrqqMJ7w0P1GaD2lscpWUUkY9/SM5lQ34fw+j8SR9Q4VvtmyNBGlrCjEWT+Kpb1ZL5RjDZQX4/qG+tIg739fU1hyqyr/NUpunanHi1EiYUskDmxlVP7nm8rnkIkJzOEhzOEhXe34P4L//P6/wyP5jRGNJWsIBPvxzK7jqguUMjSd4/pXT7H65j4FojAWREOu6FtAaCWXdKJvMSLAZjSWnbZbVNFNrNO5x1/8+mLVPTaEA8aQ32V4gHBDWLl3A1595bcKMl66Q2ptDLGiaXCEVm3KYpxpp4lRrmFLJg0aeGYmIy6E1c+RSI/CR967J6pR/tucUTx56i1BAWLGombG4xysno1lDXFWVsXh2H9JPXj/Dvx3un2ibSPqb3Ba1hEkkNatCmpYxQP1qlHsOn2DP4RMzjmdBU3DCBNee4UPKjLpLT8C6oCk0YaLLhk3CGpuGUyoB8VNsBJxjMz0mP5N0ydUXLOfqC5bn9H/KTDGsWQ6lX8ffC+D6MYdYWEUnzsvsX7b+pt8jc9/DpDz7/5f0fU2pY6qTm8oyrzFr3zM3mzF1M9nEngr80rq5NqoFBbJV9i1HWfRCorZEhJZIkJZIkMytiddcsJz/tL4r5+QlpZDSAxbu/d5hzozGCQYEz/OVUDzh79NZ2dniQsLjDI8nyNBHjIwn/fx2g4WNN5WlYULhNE8mUU0pnsvXLuGF1wY4MRyjq62J6y5ayXlvW4inOqNCypdSRpcZ86PhlEo4GGD5otqq+V1NZFW+Iu7hnfthce+TL/PAD44yEkuyIBLkt96/lk9+8J0znlMIb+tooXdgus3+bR0trFmyYFIxZe6MTlNcKcXopclSqTASnkciqVlXa3OK2srBTGaddIV01kJfNhr3TXFTg0jCeAp/8+sXT5zr12dJpq2O4mlRdc6HNC36zm+XqZAKzdIwEI3zhX/9KV/4158SkEmFNLFKyig3MZHlO8Ns19oUJCBS8ugyY340nFIxys+9T77MV5464id8DPgPwq88dQTAKZb5syASJCipXEiTqe8XRIL+/qIiKa+kpyQ8z70rnueSXRYYtVUs8t1DJeJnGFjQFIKFhd3DcwppQhlNyegdz7oHKRXkMDyWmLKv3lMm9jHBWEH9CAguoMFDUcKBgMvb5vvO7n3qMDcOn501JLw1YrWQyoUplXlSbfXBq5EHfnDUN82kycTJi6VUhmNJVnW2TKnvvrQtMmt990Lxc4FNTbTZFAr4vg2X8iRV6bI5JCxf1EzSUzzPX+2kUuckkv77vP1UZdhDFRC/jlBbU6jgVb6nSnQ8mSXL96RCmsjQkIdCSq+DFM8I+RsaS/AXT7ycYwxMJFJNXx3lKs6XvlHWivMVhimVebD7UB+f2fkSQ2MJEp7HiaFxPrPzJb54/YWmWNIYyng4gP/sG5pDobRcrO5s5ZWTw1NksaTHmiWlr2kyrZ5KKEB7c4i1S9umFM/KRmrl43mkKRx/JRRP+5yLat9DFRChzT2sVywq7FxPlZEsiVUf/MFRBqLjjCc8kl6qtLNf1K2jNczg2PRaSCmFVIzifBM+pIzEqhMKqsGL85lSmQf3fPcQA9H4RKlcVd9+fM93D1VUqRRr9VSs6+R6JBYzluyKdYt59pVTLsW9r1D6hmLc+J7S29jnU08l28onE1Xf1JZI6oRvJ+H5Cuhti6pvn0qxCIjLkt08NdN378kRHtr7qquf4y/Kkp7yG5eumojOS3pOIWX4hgbHpvuU0ushDY8lpq1u51OcL5SmkNpnU0ZN9aGQTKnMg560Oh3gz5hUlJ4ThTtoi0WxUqHXWkr1p3tO0dUWyai+GOLpnlN8ssT3LnU9FREhHBT8bR9TFdCnPrCeO3cdIOF5NDuFpgq/9f61tDeHpyiheslI/kLvGRa3hhmJTUbbLYgEeaH3DB9xbYIBYWFLmIUthZeeyFacL7P8RHpmhuGx5EQZikyFlChCcb5J01x4auZv9z2bD6mSxflMqdQZM1UoLOQhV6zrgL9yyGbBKebeu96BKEvbmuhqn7T5qyrHBqLFu8kMVKq87aYNy7j+2OlpkXUfvuht09omXVBBwpnVYklf4cRnMbHNhVInlOxcEGHxgsk/IEWLtmM/vTgfFLZhM10hDbrVUTaFNJilYF/mBtj5FOcLB2XSh5S2UpqpOF9q5TTf4nylLNL1IPBhoE9VL3CyxcA3gTX4Rbr+q6oOiK9SvwJ8CIgCv6mqz7tzbgL+2F3286r6kJNfAnwN/1d/FPiUlnkqtnZJK0f6RxBvstqgp/COpZXLEDtThcJKXAegsyXEyeh0W3ZnS/H+/FZ3ttI3NDbFhzEaT7Kqs3i/RTUGZew+1MfO51+nq72Js91KZefzr/Pzqzqm9W0mU5vnqa9kiqBwGjmhZLpCWjkXhTSDMiqkOF88OT+FlKl8lhRgTi3lSuVrwP8EHk6T3Q58T1XvFpHb3ffbgGvwSwivBy4D7gMuc0ros0A3vgl+v4jsUtUB12YrsBdfqWwGHivheKZx+zXn8slvPM9wzM/ZFBBoiwS5/ZrpuabKRbEerkV9SOdYhhdzeZ7ya0RjiTnViZ9NYVRrUMb2PT2cGBojGp8MX24NBwpeUQYCQnMOhZNa4cTTFM1MQQSWUHJuzKdabDy9Wmya4hkcm2rGS1dGqU20mcX54knl1EiMU3OohQQlVCqqukdE1mSIt+CXGAZ4CNiNr1S2AA+7lcZeEekQkRWu7ROqegpARJ4ANovIbmChqj7t5A8D11FmpQIQCQeJOKdpMCBEKlzXfb4P12JfB5i2rE9RzHDf+fg18vEfVWtQxvOvnSRzD2I07vHCayeLdo/UCqc5y992SuHEkh7xhEc86Zuh2i2hZFlJRf0VUks+RbbifJmrpFjC43/meb1y+1TOUtXjAKp6XERS/xpXAr1p7Y452UzyY1nkZWX7nh4WtYRZsWhymTtXv0OxyGVjL7Q/xXQ+J3KYT3LJ58pc/Rr5+I/84AslntSJErwBoaJBGcA0hZKiiNHaM5JN4axd2kbf0Bgt4cBESp1oLMHbOloIBwNFCRqwhJL5M5t/K5/ifJ2tkapVKrnIZgfROcizX1xkK76pjLPPPnsu/ctKMf0OxaIQG/tsFM35XI6Y4nnQO+CX5O3pH56ycTL9d/RUceVOXDp6SCiIVMkgqojUKheStISDEyn9P3nlela7ipQTpjTPX+EkPD8DQT1FqVUDz/ac4p7HDzHikpEOjMS45/ERbrt6Q8mU8vzL1RXGW86shXvvc/JjQLpBdBXwxizyVVnkWVHV+1W1W1W7u7q65j2IFKs7W6c5yIrtHC6U9Fm3iP8eDgrb9/RUrE/hUPY/s1zyctPeFOL102MknAkz4Smvnx6jrWlyzhVyoWqT+cOmyitFrrtXslebNizj+otX0j80zsE3h+gfGuf6i1dOmaCEgwFaIkEWNodZ0tbEWQubWb24lbVLF7B6cSvLFzWzZEET7c1hWiJBwsHa3LNRae7/9x4GR+MoEAwKCgyOxrn/30v3PCj3SmUXcBNwt3v/dpr8VhHZge+oP+PMY48DfyYina7dVcAdqnpKRIZE5HLgGeCjwF+VcyDgz8g+s/MlXh8YJeF5hAL+3og/+aXzyt2VCapx9ZRr5lnsGWnupJV59i8j1Ul6/1ojQZdzahLBzy1WSQI5sjNXUtfNd7UcDgYIBwOQxRqTbYWTkjV6aYZs9A5Ep+2lQ5TeEj4PShlS/A18R/tSETmGH8V1N/CIiHwceA34Fdf8Ufxw4iP4IcUfA3DK4y7gOdduW8ppD3yCyZDix6iAkx7c8yeVIl4qb9EpR2htocSyPfVmkM+F+SStHI4lWdnRPCVv2PK2pimBBMvamxkYiU+YvkRAlCn7YipCKpY9m7xCbN/TQyyR5OTw1I2oxfA1+goHWsgdNJAZpRZPeKZwykgpo79uzHHoA1naKnBLjus8CDyYRb4PuGA+fZwv1eioL2bUVrHItc+hmBvuHvjBUVAlOeHryD9pZUoRr+uazBMWjSVYlrGR0s+IKxPP8aRO2v8rtYdlQSTISCwxkcZfxH9VcgX18luDDI4lCOD//0oklZMjMRLJAgu3FMhMUWqJpB+ZFnNKJ570iCf8tDf1zOqOFl49FYWMvXTndJZuT091GLVrlN6B6JQNWFB5U9OmDcvYdu35LGtv5sxonGXtzWy79vyKb9IrNcPjCZI6tcBXUsmr5sfNG9cRTyrRWMLVHUlMU8TDsSSdrSHinsdYwiPueXS2hhiJJSdCkvuGxqaEJO8+1DfDXYvDBzZ0kfQmU/77Ne59eaWIuxVoICB+sTdniyvmyrRQQs6Hs6glzNK2JlYsauHsJa2sWbKAt3W00NXexKKWMK2REKFA/TwWt258OwtbwkjADzaRACxsCbN149tLds9qif6qSarR1ASVSxlSScRNwzIfW/k4d/MJn25vCvHmmTHnMMbtU0mwflkz2/f0EE9ONfcsbCmOuWc23hyM0dESYnAsMbEBd2FziDcH57ZxrRhEQgFGY0n/IZayzqkvrzZSmz4zVzcpU9p4wl/VxNx7sdPZlJpL1y3mtqs3lHVPjymVeVCNpiaoznQipSYc8Gfo2eT5MJsiVmfqiiV0ShEwVeVw3xADI7GJ1UIimWTM/S2Umt6BKOGMmsnhoFR0tbx+WTs/fXOQ06PxCUXX0RJm/bL2ivWpUHKZ0tL9NnHnt6n2UOhy7+kxpTIPSp2dFgpXELsP9fHpnS/55iBPOTE8zqd3vsSf13mNl0goyHgiMS06KxIqjm/hRJrSgElT04mRGNFYkqT69xPxDyY1dyaBoqJK//BkfidPoX84zqqOyvlUUmUIggEh7JKJnhlLcEUdbFbMpWxUdULJTGQYSDZmkIAplXlSSlPTXPJN3f3YQU5H4wTFd5KqB6ejce5+7GCdK5UAIVdSd8Ih6WnRTC7RWDJrobFoLEkskZz4nt4oJS8l/UPjBcnLQSXLEFQKESESkqx/bxNBAglvSqBArZnS8sWUShUzl3xTR0+6uPRAWo0XTzl6snLmkHJQapPLWI5Vx1gsSTgUQNWb2BiZijwLlsHhO57DxJZLXg7KUYZgrnuSKkEoGCAUhJbIdFNapqKJJWpf2ZhSqWKqNd9UNVJqk0uuwFOPyRIIoYxw47VLKhuwUSlKHcBy75Mv8+XvHZ6o0TM4luDL3zsMzL4nqZoIBoSWSHDanpsJZZPwGE8mXZBA9fpsMqm+cAxjglS+KXWeYVVIeMxoo123dAGe+m0Uf5exp768nnm65xTtTUGSnjKe8LNGtzcFebrn1Ownz5PbrzmXjlY/bDPpwjY7WsMVLYFQSfIJ0Z4P/2tPz7Sib5768nogpWwWtYZZ1t7Mqs5W1ixpZWXnZOhzSyRIsMIpgnJhSqWKmUu+qds2b6CzNYzg23IF6GwNc9vmDaXubkVJbbhLPWw89Wewh98q7YY78P1qf379hbx7dSfLFzbz7tWdZQuMaM1RaiGXvByUeq9UrgCIsgRGVAgRoSkUpN3lSluxqIVzlizgnCULWLGoZSJPWnM4WPF9Nmb+qmJaI0HGE96EQklFF820W3rThmV88foLSxqRVo0Mjyezzl6HxsvzoClWwEah0X5nL27m0FvTzaFnL65s+phG3CtVCSZMaBnPhFQlz/R9NrEyRaKZUqli3nnWQo6eGJ4WRbN2aduM5zXiP+hYIrvXI5e8UAJk96sUc044l2i/w/3Znd+55EZjkGtTZ6pUdDyhjCeTJQl7NqVSxaQ2Vy5fFKqqzZXVSKlLtoRDAWKJ6VmKi5m+fy7RfuXIq1ZttIQDjManq/iWfHe6NjB+JFoqA/RkNvPMCp7zqW9jSqWKKcfmynohEpSsuaUiweI4M1MRXpkJJYsZ4dVzYmRamnIVtWi/DBY0hRiPx9CMjNELmuxxNldm29RZSNJr+xWqnHowZblN5lnlxWJZW4RjZ6Zv+FvWVnjN7mzcfs25UzIVBANCR1PjRnhVkvXL2nklOMzg6NRca2uWzGwWNgontamzEGy9aJSclR3Znca55HMiEKCrLTxRnCog0NUWRooUCbNpwzI+evk5RIIBPIVIMMBHLz+nqAp/7ZJWPxzcmRw8zw8Hb9T9Lrm4eeM6wsEgyxc1866z2lm+qJlwMGhm4SrBlIpRcj5/3c/RmmHvbg0H+Px1P1e0e6zubPXTm4eDhINCSzhIKBgo2oa79GqG5y5vp6u9iZ3Pv17U9PZz2e+SKw6wsvUoS0ujlneoFSpi/hKRV4AhIAkkVLVbRBYD3wTWAK8A/1VVB8TPXf4V/MqQUeA3VfV5d52bgD92l/28qj5UznEY+dPaFMJj0nTUOov9u9DQ2tSO+oDLOhBLevQNxbjxPbl31Bdyj+17eggHZWKXeGskVPSCbKn9LoX40HIFTNfvjg2fejAL1yuV9Kn8gqqeSPt+O/A9Vb1bRG53328DrgHWu9dlwH3AZU4JfRboxjfZ7xeRXao6UM5BGLNTaIXMVNGrcFCmFL3aBjkfJIUmMSz0Hr0DUTpawlNkpSjIZg9Lo9apJvPXFiC10ngIuC5N/rD67AU6RGQFcDXwhKqecorkCWBzuTttzE6hFTLTVwUi/ns4KGyfIQ1HKonhuq42NixfyLquNpa2NRXtHqs7WxmNT53/V0NBNsOoNiqlVBT4VxHZLyJbnewsVT0O4N5T07WVQG/aucecLJd8GiKyVUT2ici+/v7+Ig7DyIdCH8hzKdNc6nuUOp/VXLlibWdBcsMoNZVSKu9T1YvxTVu3iMjGGdpmi2fTGeTThar3q2q3qnZ3dVWudnejUugDeS6rglLfo1qdw9+4+b3TFMgVazv5xs3vrVCPjEanIj4VVX3DvfeJyLeAS4G3RGSFqh535q1UWM0xYHXa6auAN5x8U4Z8d4m7bsyBQjdxzqVMc7nuUWklkg1TIEY1IeXO0S8iC4CAqg65z08A24APACfTHPWLVfUPReSXgFvxo78uA+5V1Uudo34/cLG79PPAJao6Y67z7u5u3bdvX2kGZxSNVGRWKTMJlOMehlEviMh+Ve2erV0lVipnAd/yI4UJAV9X1e+KyHPAIyLyceA14Fdc+0fxFcoR/JDijwGo6ikRuQt4zrXbNptCMWqHcqwKqnXlYRi1TNlXKpXGViqGYRiFk+9KpZpCig3DMIwax5SKYRiGUTRMqRiGYRhFw5SKYRiGUTQazlEvIv3Aq5XuR5lYCpyYtVX9YeNuHBpxzFCZcZ+jqrPuHm84pdJIiMi+fKI16g0bd+PQiGOG6h63mb8MwzCMomFKxTAMwygaplTqm/sr3YEKYeNuHBpxzFDF4zafimEYhlE0bKViGIZhFA1TKjWIiARF5AUR+Y77/jUROSoiL7rXRU4uInKviBwRkR+KyMVp17hJRA67102VGku+iMgrIvIjN759TrZYRJ5wY3hCRDqdvN7H/TkReT3t9/5QWvs73Lh/KiJXp8k3O9kRlwW8qhGRDhHZKSKHROSgiFxR7793jjHX3m+tqvaqsRfw+8DXge+4718Drs/S7kPAY/gFzS4HnnHyxUCPe+90nzsrPa5ZxvwKsDRD9gXgdvf5duCeBhn354BPZ2l7HvAS0ASsBX4GBN3rZ8A6IOLanFfpsc0y7oeA33KfI0BHvf/eOcZcc7+1rVRqDBFZBfwS8EAezbcAD6vPXqDDFUC7GnhCVU+p6gB+TZvNJet06diC/w8R935dmryex52LLcAOVR1X1aP45SIuda8jqtqjqjFgh2tblYjIQmAj8FUAVY2p6mnq+PeeYcy5qNrf2pRK7fFl4A8BL0P+p27p/yURaXKylUBvWptjTpZLXs0o8K8isl9EtjrZWap6HMC9p4qj1Pu4AW51v/eDKTMQ9TPudUA/8HfOzPuA+AX96vn3zjVmqLHf2pRKDSEiHwb6VHV/xqE7gA3Ae/CX+relTslyGZ1BXs28T1UvBq4BbhGRjTO0rfdx3we8HbgIOA78hWtbL+MO4Vd0vU9V3w2M4Ju7clEP48415pr7rU2p1BbvA64VkVfwl7VXisg/qOpxt/QfB/4OfwkM/ixlddr5q4A3ZpBXLar6hnvvA76FP8a3nJkD997nmtf1uFX1LVVNqqoH/C3193sfA46p6jPu+078B249/95Zx1yLv7UplRpCVe9Q1VWquga4AXhKVX8j7R+a4NuZf+xO2QV81EXHXA6ccWaDx4GrRKTTLaevcrKqREQWiEh76jN+f3+MP75URM9NwLfd57oed+r3dvwyU3/vG0SkSUTWAuuBZ/FLbq8XkbUiEsH/29lVrnEUiqq+CfSKyLuc6APAT6jj3zvXmGvxt65EjXqj+PyjiHThL31fBH7HyR/Fj4w5AkSBjwGo6ikRuQv/DxBgm6qeKm+XC+Is4Fu+ziQEfF1VvysizwGPiMjHgdeAX3Ht633cfy9+2LjiR4fdDKCqB0TkEfwHcAK4RVWTACJyK/4DNQg8qKoHyj2YAvm/8f+uI/hRWx/DnwTX8++dbcz31tpvbTvqDcMwjKJh5i/DMAyjaJhSMQzDMIqGKRXDMAyjaJhSMQzDMIqGKRXDMAyjaJhSMYwKIH5m6esr3Q/DKDamVAyjBhCRYKX7YBj5YErFMApARNa4ehcPuSR/O0WkVUQuEZF/c4kfH0/LcvDbIvKciLwkIv8sIq1ZrnmXW7kEMuSbROT7IvJ14Ee57u3aviIifyYiT4vIPhG52PXjZyLyO5n3NIxSYUrFMArnXcD9qvrzwCBwC/BX+DVtLgEeBP7Utf0XVX2Pql4IHAQ+nn4hEfkCfrbdj7n8TplcCvwPVT0vx71/N61tr6peAfw7rsYOfn2RbfMcr2HkjSkVwyicXlX9D/f5H/DrdlwAPCEiLwJ/jJ/ID+ACEfl3EfkR8OvA+WnX+ROgQ1Vv1typLZ519TJy3fv9acdSOZ5+hF+oakhV+4ExEemYwzgNo2As95dhFE6mAhgCDrhVQiZfA65T1eV/g3kAAAD6SURBVJdE5DeBTWnHngMuEZHFLk/VZcB2d+xO/JXIyCz3Tv8+7t69tM+p7/Zv3SgLtlIxjMI5W0RSCuRGYC/QlZKJSFhEUiuSduC4iITxVyrpfBe4G/jfItKuqs+o6kXulSuzbOa9f1CsQRlGMTClYhiFcxC4SUR+iF8U7a/w/Rf3iMhL+Jmi3+va/gnwDH4p20OZF1LVf8Kvk7FLRFrmcO/75jkWwygqlqXYMApARNYA31HVCxrp3oaRL7ZSMQzDMIqGrVQMwzCMomErFcMwDKNomFIxDMMwioYpFcMwDKNomFIxDMMwioYpFcMwDKNomFIxDMMwisb/DzFoylTERvYQAAAAAElFTkSuQmCC\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": 13,
"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": 13,
"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": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff594a377b8>"
]
},
"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": [
"# 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": 18,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff594a1d518>"
]
},
"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=\"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": 19,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff594943f98>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"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": 20,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff5a0498cc0>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# 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": 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>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": 21,
"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": 22,
"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": 22,
"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": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 23,
"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": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </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": 24,
"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": 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>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": 25,
"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": 26,
"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": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['fwd', 'rwd', '4wd'], dtype='object', name='drive-wheels')"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"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 th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"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": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 30,
"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": 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>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
]
},
{
"cell_type": "code",
"execution_count": 32,
"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": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 36,
"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": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_bs = df[['body-style','price']]\n",
"grouped_test_bs = df_bs.groupby(['body-style'],as_index=False).mean()\n",
"grouped_test_bs"
]
},
{
"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": 37,
"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": 52,
"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": 53,
"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": 54,
"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": 54,
"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": 55,
"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": 56,
"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": 57,
"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": 58,
"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": 59,
"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": 60,
"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": 61,
"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": 62,
"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": 63,
"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": 64,
"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": 65,
"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": 65,
"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": 66,
"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": 66,
"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": 67,
"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": 67,
"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": 68,
"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": 69,
"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": 70,
"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": 71,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment