Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save akshayjain2907/c3853e0a1c7a29141bd540912781e96a to your computer and use it in GitHub Desktop.
Save akshayjain2907/c3853e0a1c7a29141bd540912781e96a to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<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": {},
"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": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 5,
"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": 6,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn\n"
]
},
{
"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": 7,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": 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": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 9,
"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": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 20,
"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": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56359.35256963119)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# 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": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 22,
"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": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fe5cc9ad2e8>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEGCAYAAABcolNbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXzc1Xno/88zm2a0WtvYwrvxIgGBAMZsDhiLBLK0oS1JILcJaeBC0+RCb369TdL+mnDTm/uDtr8moWlSyHIDWSCEJg1tQwi2MYZgMDa7kbCNvMjraLO22ed77h/f78gjeaTRNpqR/LxfL70knZnv6OiLmUfnnOc8R4wxKKWUUvniKnQHlFJKzW0aaJRSSuWVBhqllFJ5pYFGKaVUXmmgUUoplVeeQneg2NTV1Zlly5YVuhtKKTWr7Nq1q9MYU5/tMQ00IyxbtoydO3cWuhtKKTWriMjB0R7TqTOllFJ5pYFGKaVUXmmgUUoplVcaaJRSSuWVBhqllFJ5pVln02Rra4j7t7XR3hNmcXUpd1y1gg2NwUJ3SymlCk5HNNNga2uILz++m1B/lHkBL6H+KF9+fDdbW0OF7ppSShWcBpppcP+2NrxuodTnQcT+7HUL929rK3TXlFKq4DTQTIP2njABr3tYW8Dr5nBPuEA9Ukqp4qGBZhosri4lkkgNa4skUiyqLi1Qj5RSqnhooJkGd1y1gkTKEI4nMcb+nEgZ7rhqRaG7ppRSBaeBZhpsaAzy1d8/l2CFn95IgmCFn6/+/rmadaaUUmh687TZ0BjUwKKUUlnoiEYppVReaaBRSimVVxpolFJK5ZUGGqWUUnmlgUYppVReaaBRSimVV5rerACtPq2Uyh8d0SitPq2Uyisd0UyT2TwiyKw+DVDq8xCOJ7l/W9us+R2UUsVLRzTTYLaPCLT6tFIqnzTQTIPZfh6NVp9WSuVTwQONiLhF5BUR+Q/n+xoReUpE9jqfqzOe+yUR2Scib4vIdRntF4vIG85j94mIOO0lIvIzp/1FEVmWj99hto8ItPq0UiqfCh5ogLuAlozvvwhsNsasAjY73yMi5wA3AecC1wPfFpH0u/t3gNuBVc7H9U77rUCPMWYl8HXg3nz8ArN9RKDVp5VS+VTQZAARWQR8EPga8Hmn+cPABufrB4GtwBec9keMMTFgv4jsA9aJyAGg0hiz3XnNh4AbgCeca+52Xusx4FsiIsYYM52/xx1XreDLj+8mHE8S8LqJJFKzbkSg1aeVUvlS6BHNN4C/BKyMtvnGmGMAzuf0u99CoD3jeYedtoXO1yPbh11jjEkCvUDtyE6IyO0islNEdnZ0dEz4l9ARgVJKja5gIxoR+RAQMsbsEpEN47kkS5sZo32sa4Y3GPMA8ADA2rVrJzXa0RGBUkplV8ipsyuB3xeRDwB+oFJEfgycEJEGY8wxEWkA0jnCh4HFGdcvAo467YuytGdec1hEPEAV0J2vX0gppdTpCjZ1Zoz5kjFmkTFmGfYi/xZjzB8DjwO3OE+7BfiV8/XjwE1OJtly7EX/Hc70Wr+IXOZkm31yxDXp17rR+RnTuj6jlFJqbMVYGeAe4FERuRU4BHwEwBizW0QeBd4CksBnjTHpVK/PAD8EAthJAE847d8HfuQkDnRjBzSllFIzSPQP/OHWrl1rdu7cWehuKKXUrCIiu4wxa7M9VuisM6WUUnNcMU6dqTloNhcdVUpNjQaaOaKY38jTRUe9bhlWdPSrUDR9VErlj06dzQHFXj16thcdVUpNjQaaOaDY38hne9FRpdTU6NTZDMnn1FZ7T5h5Ae+wtmJ6I19cXUqoPzp0sBrMrqKjSqmp0RHNDJiOqa2trSFufuAF1t+7hZsfeGHYtcVePVqPIVDqzKaBZgZMdWorV6Aq9jdyLTqq1JlNp85mwHimtsaaWssMVAClPg/heJL7t7UNFfP8qvO8wz1hFhVZ1hlo0VGlzmQaaGZArjWKXOm/4wlU+kaulCpWOnU2A3JNbeWaWiv2NRillBqLjmhmQK6prfaeMG6Bto4B4ikLn9tFXblvaMQyF07wLOYNpUqp/NJAM0PGmtqqKPGwNzSA2yW4XULSMhw5GWVVsHzo2mJfgxmLVgZQ6symgaYIDFXQThfSNiPamd1rMLmSGZRSc5uu0RSBgXiKhfP8eNxCyhg8bmHhPD+D8VTui2cBrQyg1JlNRzRFIJ2VtqK+fKgtHE8SrPAXsFfTRysDKHVm0xFNESj2DZdTdcdVK+iLJNh7op+WY73sPdFPXyQxZ34/pdTYdERTBMaz2D/bs7YMgICIgJxajlJKzX0aaIrEWIv9sz1r6/5tbVQFvDRUBYbaNBlAqTOHTp3NAsV+DEAumgyg1JlNRzSzQLEfA5DL4upSDnQN0BdJDm1IrQx4WFZbnvtipdSspyOaWWC2l6C5fEUNof448ZSFSyCesgj1x7l8RU2hu6aUmgEaaGaB2Z6Vtr2tm/pyHz63C8uAz+2ivtzH9rbuQndNKTUDdOpsFpiJEjT5PgG0rryE+ox9QcaYWTP1p5SaGg00s0Q+S9DkO6tNN2wqdWYr2NSZiPhFZIeIvCYiu0XkfzrtNSLylIjsdT5XZ1zzJRHZJyJvi8h1Ge0Xi8gbzmP3iYg47SUi8jOn/UURWTbTv+dskO+sttk+9aeUmppCrtHEgI3GmAuAdwPXi8hlwBeBzcaYVcBm53tE5BzgJuBc4Hrg2yKSzpn9DnA7sMr5uN5pvxXoMcasBL4O3DsTv9hsk+/0Yz3KWakzW8GmzoxdmnjA+dbrfBjgw8AGp/1BYCvwBaf9EWNMDNgvIvuAdSJyAKg0xmwHEJGHgBuAJ5xr7nZe6zHgWyIiJrMs8giWMcSSKUo87tGeMufMxNTWbK4+rZSamoJmnYmIW0ReBULAU8aYF4H5xphjAM7n9LvTQqA94/LDTttC5+uR7cOuMcYkgV6gNks/bheRnSKys6OjgyM9EY6ejDAYS07Xr1rUdGpLKZVPBQ00xpiUMebdwCLs0cl5Yzxdsr3EGO1jXTOyHw8YY9YaY9bW1tUDEE2kONEXpb07TG84gWXN3epcOrWllMqnosg6M8acFJGt2GsrJ0SkwRhzTEQasEc7YI9UFmdctgg46rQvytKeec1hEfEAVcCENm8kUhZdgzF6wnHK/R6qAl687rm3/UintpRS+VLIrLN6EZnnfB0ArgVagceBW5yn3QL8yvn6ceAmJ5NsOfai/w5neq1fRC5zss0+OeKa9GvdCGwZa31mLJYx9EUStHeHOd4bJTJHDiWbKfdt2sP5dz/J2X/1a86/+0nu27Sn0F1SSs2QQo5oGoAHncwxF/CoMeY/RGQ78KiI3AocAj4CYIzZLSKPAm8BSeCzxpj0u/1ngB8CAewkgCec9u8DP3ISB7qxs9amLBxPEo4n8XlcVAa8VJTYacEqu/s27eGbW/bhEvC47ESDb27ZB8Cd164ucO+UUvkmk/wDf85690UXm188+cyErnG7hAq/l0q/B88cnFabqvPvfpJIIoXHdereJC2LgNfN63dfN8aVSqnZQkR2GWPWZnusKNZoZruUZTgZjnMyHKesxEOl30vAd+akR+cyGE/hGRF/XWK3K6XmPg0002wwlmQwlsTrPjWt5nKd2dNqZT43kUSKzNtgGbtdKTX36TxPniRSFl0DMQ51h+kciBFPWoXuUsHctn45lrGnyyxjOZ/tdqXU3KcjmhEGY0lSlsE9TaOQdLZaXyRBwOemKuAdtgP/TJBe8P/ec/sZjKco87m5bf1yTQRQ6gyhyQAjlDSsMud85p+5Zk2Q5qYgjQsqpj2jzOt2UVWq2WpKqbljrGQADTQjlDSsMg23fGPo+7Pm+WluDNLcOJ8ltdNb1l6z1ZRSc4UGmgk49/wLzc3/+ydsbg2xv3Nw2GOrguU0NwW5Zk2Q+oqSaf25cz1bLZ8HqymlCk8DzQRk7qNp6xhgc2uIzS0hQv2xoecIcMHiKjY2zufq1XVU+L3T9vPnYrZa5sFqAa+dgZZIGa2nptQcooFmArJt2LSMYfeRPra0hti6p4PeSGLoMY9LuHR5Dc1NQS5bUYvfOz0jEpcIFX4PlXOgttrND7xw2jEE4XiSYIWfh2+/rIA9U0pNF92wOUUuEd61qIp3Laris9ecza5DPWxuCfHcvk6iCYvfvdPF797pIuB1855VdTQ3BbloSfWUMtcsY+iNJOiNJCj1eagMeGZttlp7T5h5geGjvuk8WE0pVdxm5ztXAXncLi5dXsuly2uJJFI8v6+Lza0neOlAD5FEit++dYLfvnWC6lIvG9YEaW4M0tQwtcy1dG212Zqttri6lANdA/RFksRTFj63i8qAh2W15YXumlJqBmigmYKA101zk50G3RtO8MzeDja3nOCNI330hBP88pUj/PKVIzRU+e3nNQZZWls26Z+XSFl09sfoGYxTXjJ7ptUuX1HDjgPduMQuPRNPWYT649x8SU2hu6aUmgG6RjPCZIpqjnSiL8rTrSE2tYZo6xieubayvpyNTUE2rqknWOmf0s+BU9lqL7Z1FW1W180PvMD+zgH6o6dGNBV+D8vrynWNRqk5QpMBJmA6Ak2m/Z2DbHEy1473RYc9dv6iKpobg1y9up7KwOQz13a0dXPflr34PC7KfG6iSauosrrW37uFeQHvsOk+46xBPfuFjQXsmVJqumgyQAEtryvj1vXL+fSVy9h91Mlce7uDk5EErx/u5fXDvfzTln1csszOXLvi7Ilnrj3yUjtul+Bzu0hYBp/bhTEp7t/WVhSBZnF16WlZZ5FEikXV07sBVilVnDTQjCCAiDDdIz0R4byFVZy3sIo/23A2Lx86yaaWE/xuXxeRRIrtbV1sb+vC73WxfqWdubZ2ac24MteO9UWo9Dv/KQ2kjF2r7UDXIOF4suDZandctYIvP76bcDw5bB/NHVetKGi/lFIzQwPNCG6XsLSmlEgiRTieIhJPkbSmt/Kyx+1i3fIa1i2vIZpIsf2dLja1hNhxoJtowmJTS4hNLSHmBbxcvaae5sYg555VOWqmWUNlgK7BGIGMkVA0YTG/ws/x3qi9CdTvpdzvmbZioROxoTHIjYdPnlZUsxhGW0qp/NM1mhHWrl1rdu7cOawtlrQDTjieIprI32FdvZEEz+7tYFNLiNcP9w57bEGlnbm2sTHI8rrhmWs72rr55pa9eFyC3+simrBIWoa7Nq5i3YpTmV0iQlmJm0q/d9o2lo7HdFQG0BI2ShU3TQaYgGyBJlPKMs5oJ0kkniJl5ef+hfqiPP12B5tbQuzrGBj22Ir6Mpobg1zTGGSBk7m2o62bR15q53hfhAWVAW66ZPGwIDOSz3Oq1E2+9+RMtTKAlrBRqvhpoJmAXIFmpKgzxRaOJ/N2uNmBrlOZa8d6h2euvWthJc1N87l6VT1VpRPPXEuXuqnwe/GNPG95mkw16+zmB14YdcOnpkcrVRw06yyP/F43fq+bmjIfyZRFOGFPs0XiKaxpCuLLasv49JXL+ZMrltFyrJ/NrSG2vh2iJ5zgjSN9vHGkz8lcq6a5McgVK+uGrdeMJbPUTcBnT6uVlZz+z2IqU1dTzTrbG+qnN5zA5RLcLiFpGTr74yRS/eO6XilVWBpoppHH7aLSWXg3xhBNWE75mBSJ1NRHOyLCOWdVcs5ZlU7mml1z7dm9nUQSKV5o6+aFtm78HhdXDmWuVY/7rJt0gPS4XM4oxz4nJ3Pqal7AS6g/ypcf381XYVzBZqpZZ/GkBWKPvuz7AJaYM/p4bKVmEw00eSIiBHxuAj43tdjlY9JZbNHE1Ec7bpdwybIaLllWw3+/NsX2tm42t5zgxf3dRJOWfbxBa4hKv2eo5tq5CyuH3qzHkrQsesJxTkYSlPncfHvrO3jdMjQiKfV5CMeT496ns6ExyFeB+7e1cbgnzKIJjoi8biGSAMsyiED61vncp36X+zbt0aOilSpSGmhmiNftoirgoipwarQTSaQYjCWnPNop8brZsKaeDWvq6Y8m2Lank82tJ3itvZe+aJLHXzvK468dZX5lCRsb7aCzoj53QUtjDAOxJAe7B6nye0lZBpc4QXSC1Zc3NAYnvXC/en5llhI2XpbX2b/DfZv28M0t+3AJeFz2tNw3t+wD0GCjVBHQQFMAmaOdmjLfsNFOJJGa0mbRCr+XD57fwAfPb6CjP8bTb9tJBHtDA5zoi/HwjnYe3tHO8jo7c21jY5AFVWPXXBvapwNDU1jx5Mzt7E9PvS2o8mSdevvec/udIGNPEbrEHpV977n9GmiUKgIFK/0rIotF5GkRaRGR3SJyl9NeIyJPiche53N1xjVfEpF9IvK2iFyX0X6xiLzhPHafOOlNIlIiIj9z2l8UkWUz/XuOhz3a8bKgys+y2lIaqgJUTUNl5vqKEj66djH3f+JifvipS/jkZUs5a54dVPZ3DvK95/bz8e+9yJ0Pv8KvXj1CbziR9XVuumQxSSet2xjDYCxJJGFx48ULGYglp72KwkgbGoN89ffPJVjhpzeSIFjhH5baPBhPMXIfqkvsdqVU4RUsvVlEGoAGY8zLIlIB7AJuAD4FdBtj7hGRLwLVxpgviMg5wMPAOuAsYBOw2hiTEpEdwF3AC8CvgfuMMU+IyJ8B5xtj/lREbgL+wBjzsbH6NdH05nxLZ7JFndHOVPftGGNoPW5nrj3dameupbldwtql1TQ3Bbny7DoCvlOZaz96/gCP7jpMJJEi4HXz0YsX8Ykrlg1dV+H3UukkD8y08+9+kkgiNTSiAXtEE/C6ef3u68a4Uik1XYoyvdkYcww45nzdLyItwELgw8AG52kPAluBLzjtjxhjYsB+EdkHrBORA0ClMWY7gIg8hB2wnnCuudt5rceAb4mImFm0eSgzkw3sfTvRhB10oglrwqMJEaGpoZKmhko+c7Wdubal1c5cC8dTvLi/mxf325lrV6yso7kxiDGG37x1gpoy31Dlgd+8dYI1CypZt6KGlGU4GY7T6yQPVAZmtvLAbeuX880t+0haFi4By9gft61fPmN9UEqNrijWaJwprQuBF4H5ThDCGHNMRNIryAuxRyxph522hPP1yPb0Ne3OayVFpBeoBTpH/PzbgdsBlixZMl2/Vl6k9+3Mwx6dRBKn1nYmmu6bmbn2580pXtjfzaaWE+xwMte2tIbY0hrC7RL8HhfVpT4wDK2TPPJS+7DqA+nkgYFYkhKvm0q/h/IZqDyQXofRrDOlilPBA42IlAP/Cvy5MaZvjDelbA+YMdrHumZ4gzEPAA+APXWWq8/FQsROOU6nHSdTdiZbJJEiGrcmVAz0tfZefvXKUY71RVgzv4I18yto6xrk1UMnSVmGwXiKwXgEj8upJFDi5ljv6FlnsUSKjkSK7sE4FX4vD/1uPz94/kDeAsGd167WwKJUkRr3hLqILBWRa52vA866ypSIiBc7yPzEGPMLp/mEs36TXscJOe2HgcUZly8Cjjrti7K0D7tGRDxAFdA91X4XK4+T9hus8LOktpSF1QFqy0oo9Y09qkgX5ewajFHp99AbSfB8Wxcfu3gxP7vjMs6q8uN19qwkLUNPOMGhnii9kSQ/efEgx3ojo752yjL806Y93Pf0PsLxJG4xQ+nH923aM/S8ra0hbn7gBdbfu4WbH3iBra2hUV9TKTW7jCvQiMh/xV7juN9pWgT821R+sJMZ9n2gxRjzjxkPPQ7c4nx9C/CrjPabnEyy5cAqYIczzdYvIpc5r/nJEdekX+tGYMtsWp+ZqhKPm6rS3Nlsj7zUTjKVonMgxv7OQToHYiRT9tRYXXkJd25cRV15CQsqS6gp8+JxUryiSYvvP3eA//K9HXzup6/wy1eO0BOOn9aPR3cdts/JsSCegmTKYCzDd59tA04VzQz1R4dVHsgMNhqICkvvv5qK8U6dfRY72+tFAGPM3oy1k8m6EvgE8IaIvOq0/RVwD/CoiNwKHAI+4vzM3SLyKPAWkAQ+a4xJ569+BvghEMBOAnjCaf8+8CMncaAbuGmKfZ61slYqiKUIJ+wNmf2RBOISXE4tsZ7BBElrEIB1K2q4i1VD1aHPbahk/ao6jjsVprsH47x1rI+3jtk11ypKPHzgvAV84oqlThWB1LD5SuN8DMRShPqifHvrOyRSKboGhhfNTFcemGoJnGIwm485mAv3XxXWeANNzBgTl6FaU+Ihy1rHRBhjniP7GgpA8yjXfA34Wpb2ncB5WdqjOIFKDed1u6gqdVGFl2TKriXmFrEXvQRSI2qJrVtRk/XYgT+9+mwe2dHOT3ccIpqwA0p/LMnPdh3mF68eYf3KulH7IAIDsSR7Q/30R+yimfZmy+FFM+/f1jalEjjjkc9AMNvfqGfi/qu5bbxrNM+IyF8BARF5L/Bz4N/z1y01k3weFwaIJa2hD8vYtcRyZYy5XcKugz3Ulfs4u76Mhko/5SV2anMiZXj67Y5R/yJJr/uki2baP0sQwHAq0LX3hE+rRj3REjhjGc/U3VRkvlGnEzi8buH+bW3T8vr5lu/7r+a+8QaaLwIdwBvAHdibIv/ffHVKzaxghR9jMTS+FPudngVVAZbVlrKgyk/lGJUKjvVF8HtdQ2fbnFUVYEVdKZV+DxctmTfqzxUEY8xQwLEsgzFmaFOqR+x9Q4ur7aO1M03kmIFc8h0IZvsbdb7vv5r7xjt1FgB+YIz5LoCIuJ222fF/ihqTMcY+60VkqDpyythv+iNTqONJyz7WOpEc2jA6VAst4800kTKsqCvnHz5yAe/7+jNk2+ITTVp8+oc78Xs9iPN9ImXhdbso83lYVF3G0ZMR/uiihXxj016MSVDq82Q9ZiDX1NdYj7f3hJkXGH5o3HQGgsXVpaMe3DYbTPWYB6XGO6LZjB1Y0gLYJWDUHDAQT7Fwnh+PW0gZg8ctLJznz1orzOdxUVXqpaEqwNKaUuZX+vmTK5dxvDfCntDA0Mfx3gg3XWJno49VNedgd5jjfVF6InbgSln2fqCUYej6i5ZW896mICf6Yrx1rI9QX5QbL1o4FCi2tob4H4+9xiuHejjeG+GVQz38j8deG5r6yjU1lu+/2C9fUUOoP048ZVcuiKcsQv1xLh/jqO1ikqvWnFK5jHdE4zfGDB1cb4wZEBEdN88R6RMwM48OCMeTBCvGrurscgllJR4e2XGQxIgRS8KCR146yLoVNYyVUP6Rixfxm93H6Y8mh9ZyEhb0R5PsOtTDuQsr2X2k77QSOI+81M7Z9eW8/10N3PubVnrCCdwuweN2YQz0hBPc+5tWNjQGuX9b25hZbfn+i317Wzf15b4Rxxx42N7WzZ3T8hPybyrHPCg13kAzKCIXGWNeBrtaMjD6Lj01q0z1jXb7/p6s7a8e7qMy4KXM5yacSGHMqVIOIvb01Gc2nM2e4/0c7Y0QS1oMxJJYxs48+/muw/zqtaOUet14XEJZqRdBhvr43Wf3c+7CKt7pGMAYQyJlMMZ+bZdAW6ednp3rKOipHsyWS3tPmLryEuozArcxZtas0Sg1VeMNNH8O/FxE0jvuG4AxqyCr2WM8b7STTf+tKy/h9qtW8I3Ne3G7GFb08qMX2wUdjvdHmecEEcsYwvEUfdEEAzG7fls6+6w7HKe8xEOl34Pf6+J4XwTLGCxjSGWMmozz+iJ243iOgs7nX+zpEWN6nQt0MV2dWcYVaIwxL4lII7AG+w/SVmNM9sNL1Kw01hvtVPeBjCx6Wep18akrlnHLlcuJxFPDkglcIpSXeHC7hOW1Pj5w/gK+/fQ79Dsjnb5okr5oErdATVkJe070n3YWTVr6pOfxHAWdT7qYrs50YyYDiMhG5/MfAr8HrMYu/fJ7Tps6A0xH+u/5i+Zx7llVNFT5OW/hPC5eWkNdeQmLa0r53DVnYwzEkikMdi20pGX4L5cu4bpzF/DXH2giWFHCvIAXv8f+J5sy0DEQ409//DKJUc43c4vQ3h1meV05NaXeYckOtWU+Vs2vnI7bk5MupqszXa4RzdXAFuwgM5IBfpGlXc0xU03/zTUiuvbcBXjcLntqrnuQs+aV8vF1i3n3kmosY1i3oobPX7t6qAROdamPRdUBWo/3094TGXVDaAq71M6NFy3im1v2UlfupsznIZayZnxEoYvp6kw2ZqAxxnxFRFzAE8aYR2eoT6rITHWNYTwlTLK9ERtjiCYsBuNJrlxVd1oJHGMMe0MDfObHL2cNNtGExW/ePM76VXXctfFUrbaGqgC3rV/OVavrJ3AXlFKTlXONxhhjicjnAA00c9hYi/251hjc2KOHkdLbNyc7IsosBAr2on44niQct08ZFRFWz6/A4xa7InSW1/i7J9/m65v2cPnZtfzBRQu5dHkNPmf67VB3mLISDxV+z4yeCKrUmWa8WWdPichfAD8DBtONxpg5e7bLmSTX1FaurDRxAVl2/ouzAjhdWVc+jwufx8e8Uvucm3TQWTwvwMHuMC6nsoFlGSwDAZ+bhGVnl23b08m2PZ2Ulbi5alU9zY1BLlg8j/5ogv5ogpcP9vCzne0cPRlhSU3ZrKqurFSxG2+g+TT2msyfjWjXtJk5YCLVebONGtwuF8ZYdvl/Zx+LOO1gj4j+4rHXOHIyQsoyuF12ZtnffPCcSffZ7RIq/F4q/F7+5kPn8BePvcZALEnKMrjcQoXPwxeua+S8RZU8t6+LzS0n2HWwh8FYiifePM4Tbx6ntszHhjX1NFT6eezlw3jdLkp9Ho72RvibX73J33LeGRNsZvMxBqr4jTfQnIMdZNZjv9c8C/xLvjqlZlZ7Txi3QFvHwNDO9bpy39DUVq4Rz4q6Mt4+3o+RjEBkYEVd2dDPSKQsYgk7GCVThhLP+I+ZTvdhtDfCa5rmc8vly4bSp0vcLj62dhFXrqojkbJ43znzed858+kJx3nm7Q42tYR461gfXYNx/vXlIwB4XEKl34NbhBKPi4iV4r4te7loWTXlPg+u0XKo54DZfoyBKn7jrXX2INAE3Af8k/P1g/nqlJpZFSUejpyMknRGG0nLcORklPIS+++QXOnN7z9vAWTsTzHO9v/3n7cAgHt/08pgLIXP48LvdeHzuBiMpbj3N63j6l+uWmVbW0M89vIR6itKaFpQQbDSz6/fPME7oQEWVZdSU5XwmmEAACAASURBVOajxOumutTHDRcu5Fsfv5Af37qOT1+5jKU19vRd0jJ0hxMc6A5zsDtMJJGivTtMZ3+MQ91hOvpjREfLox7n71CsJ1TO9mMMVPEbb6BZY4y5zRjztPNxO/bmTTUHDJ1ubTI+Mtpzlbnf3tZNqW/446U+N9vb7CW8ts5BXM7OfEFwiQwrEZNLrjfC+7e1MRBNsL9zkDeP9rG/c5CBaIL7t7Xh87iYV+pj4bwAS2vLqK8oobzEw6LqUv74sqX84FNrWR0sp6LEM3REdSxp0TkQp2Mgzl/8/DX+8/WjHDsZ4ejJCId7wvRGElhjVQodId/n3UzVbD/GQBW/8QaaV0TksvQ3InIp8Lv8dEnNtFzVm3NVN959tJeB2PDHB2Ipdh/tnZb+5Xoj3H20l+5wwl4fwh5RdYcTp/389LpOsNLP0tpSGqoCVJX6uO09yyn3e1hQWcLCeX7KfG7S5729fOgkf//bPfzRvzzPVx7fzaa3TnDsZISD3WFC/VEiWSpcj1TsIwY9b0bl23jXaC4FPikih5zvlwAtIvIGYIwx5+eld2pG5KrenCu9uT+azPq66fbltaXs6xhEMkrAWAZW1o3vjSxX1lo6II4cY2Q75iAtM3X6o5csobrUx/3b2jjSE2ZVsIIbL14IAptbQjz/ThexpMWzezt5dm8nLoELF1fzsUsWceGSako8bsr9HspLPEOp05nyfd7NVGmJHJVv4w001+e1F6qgcr3RbGgMcuPhk0OL7WU+N7etXz60UDzaJFK6/YvvbxqWFeZ2CfNKvHzx/U3T0r/UKNNYo7Vn895zF/Dec+01pUTKYjCWZCCW5Iqz63h2Twdf37SXaCJF1DnmetehHnYd6qHGyVy7tinImvkVlHjdVPi9Q/XaoPiLaua7erVS4y2qeTDfHVGFk+uNZmtriIdeODjs4K6HXjjI+YvmjevNaENjkH+48YJJv5Hl6l+6IvRImYlikz2BM5Gy+I/Xj1EZ8BCsKCFpGQaiSU5GEsRTFt2DcX7x8hF+8fIRFlUH2NgYZGNjkKW1ZQS89kjn9vcs5yv//lZRjxi0RI7KJzFjnUp1Blq7dq3ZuXNnobtRVK7/+jPs6xg87ajnlfVl/Oa/X82yL/7nqNceuOeDee/fii/+Z7b9oriAtns+OHQCZ380SdKy8Ljsg8f+/sYL2NAYHJbemxkI0oUv19+7ZWjqyzL2SMkyFj3hBDe8eyGbWk5woGv4NFhtmY+Prl3EhjVB5lf6efXQSX664xDHeiM6YlBzkojsMsaszfbYeKfO1Blsf1fYzhpznTrPxViG/c6ba0WJm/7Y6eshFSUzU9bF63GRSFrDgo3LaQc7vbp7MI7lHLyWsiwSg/Fxn8CZOfXlFjupYDCWYlltGbdcsYxkMsWDXfbyZfrPtq7BON95po1/eaaNCxbPo7kxyF9/sJHq0hLKSuyRjlJnCv3XrsbFMoZkMjXsBEu3k5p13sJ5tB7vpTdinxnjEqgKeGhcUDUjfUsnG3hHjLiW19prIPtCA6TMqZM9MfYxA/tC9unkuU7gzLZGlLTgc9esZHFNKf/6yhGclz2NAV5tP8mr7Sf5x6f24PO4aKj0c6uzxlVe4qFslCSCM4lWJpjbzux/3Wpc7LWJ4Rsyk5bdDvYbcYXfx/K6Ms47q5LldWVU+H0ztgbxxfc32Sd0uuwAIy6YV3oq2SCZ7nh6zcb5nG7PPIEzvc8HYegEzlznyQzGU1hkDzRfu+E83r2oaigQxZIWB7rDfPnx3dz1yCv89q3jHOwapL07TM9gfNipn2eKYt9npKZORzQqpzKfG7ez4O5s+sctdjsUPmspV7KBWyBpTgXKtImcwPn64ZPsPtrLYDxFbyTB64dP5vz9BLj2nPn8fNdhass89EZTQ1WmDfYenZcPnaS61MuGNUGubQrSuKACn8d9Ro10JlJrT81OBQ00IvID4ENAyBhzntNWg10lehlwAPioMabHeexLwK3YVenvNMY86bRfDPwQCAC/Bu4yxhgRKQEeAi4GuoCPGWMOzNCvN2cMxFMsqg7QORAfVgstc59KobOWxvr5K+vLaT0xkLUdYPX8St443MNA/NRootznGjqB875Ne/jG5r1DmW190STf2LwXsI+pHiufZn6ln/buQXrDSVwuwesRu7q0Za95JS1DTzjBL185wi9fOUJDlZ/mpiDNTuaaz+MaCjpe99wMOsW+z0hNXaH/5f6Q0/fofBHYbIxZBWx2vkdEzgFuAs51rvm2iKRXm78D3I59zPSqjNe8FegxxqwEvg7cm7ffZA5bXF2Kx+1iRX05jQsqWVFfjsftKpp9ILl84F0NyIg2cdoBFlT6hgUZgIG4xYJKHwD/8kwbVnqNx/mwjN0OufcRJVIGcQlulwsXgsflwuWCEo+Ln/7XS7lt/XIWVNqbY4/1RvnxC4f4kx/u5PYf7eJH2w/y9vF+2rvDHO6xp9diycnXXCtGi6tL6RyI0dYxQOvxPto6BugciM2af18qt4IGGmPMNmDkmTYf5lTBzgeBGzLaHzHGxIwx+4F9wDoRaQAqjTHbjZ2r/dCIa9Kv9RjQLCIj33NUDndctYJEyj7/xRj780T3gRSyqOQTbx7PGmieePM4AE/uzt6XdHs4caryQEYpuKH2XLzOFFy6Plp6BFTiEZbXlbGyvpxYMoXHzbB+7gsNcP+2Nm564AU+/+ir/OLlIxzsGuRIT4T27jBdA1Mr9FksLl9RQ4czWk7v0+oYiHP5iBNV1exVjGs0840xxwCMMcdEJD0fshB4IeN5h522hPP1yPb0Ne3OayVFpBeoBTozf6CI3I49ImLJkiXT+svMBVNdgyl0Gfp9oQEsnDdxZ1Xe4lTW2WgBI90+WkbZeP9iWT2/MmtW3poFVTRUBfg/v2ujJ5w47brKEg/iEnojCV5t7+XV9l7u27yXdctraG4McvnZtfi9btwuu5xOqc9Dqdc964402N7WTbDCR19keHr59rZu7ix059S0KMZAM5ps//eYMdrHumZ4gzEPAA+AvWFzsh2cy6ayBlPoxd6sWWcmoz0Hr1uIp05/bnqkkqsyweUranhxf9fQcywDvZHk0F/sezuyV7HujyV58s/fw86DPWxpDfHcvk6iCYvn3+ni+Xe6CHjdrF9VR3NjkIuXVjMQTdo13LxuSkvclHrdeGbBuk57T5jashLqyv1DbcYYXaOZQ4ox0JwQkQZnNNMApOc1DgOLM563CDjqtC/K0p55zWER8QBVnD5Vp/Ks0Iu9ubLOcqnwe+geTAz7C0WASmfT5epgGa0nTg8Wq4P2wW+/fuMYmFMjI8H+4tdvHOPOa1dnDVLOUyjxurlsRS2Xraglkkix/Z0uNrWc4KUDPUQSKZ566wRPvXWCeQEvG9bU09wU5JyGSsJxu6BpidcOOAGfG793ZjbQTlSx14JTU1eMgeZx4BbgHufzrzLafyoi/wichb3ov8MYkxKRfucYgxeBT2Ifzpb5WtuBG4EtRmvuzLhCv5GsrC9nz4mBofWV9IL+yoxq1WNZPb+S/Z0D9EdPTe1U+D0sr7Ov39+ZPWCm2/d3hfG4Zehoa7CrE+zvyh1ol9SUMhBL0udUwk7XUuuNJNi2xz4t9I0jvZyMJPi3V4/yb68epaHKz8bGIM1NQZbVlhFLpHjyzW5+trOd431RFleX8pmrV3BN0/xx/f75ptWj575Cpzc/DGwA6kTkMPAV7ADzqIjcChwCPgJgjNktIo8CbwFJ4LPGmPTk+mc4ld78hPMB8H3gRyKyD3skc9MM/FpqhEK/kXzx/U3c+fDLDMRPVTYo97knXD16QZUna/9jWabVRrYnU4Z46tRakF0iJ/eQSsQ+Q6fC7yWWTNEXSTIYS1IV8PJ7F5zF711wFif6ojz0/EGe3hMimrA41hvlJy8e4icvHuLs+jJWByt4Zm+IsJNZd6w3ylvHevnbD5/HtefMt0vrFHBdp9D7sMBOYR9ZnfzOa1cPPa6VC6amoIHGGHPzKA81j/L8rwFfy9K+EzgvS3sUJ1CpwimGNxKf143PMkPHFPgmMI2U65iEXCpK3HSO2PFvMfFacCUeN/UVbmrLfAzEk/RFEsSTFgc7w7x6+CT15SWIwMlwgsFYipQxvNMxyDtZ1oAGnKO0L1g8D4jx8IsHeeSldgbjKcpLPKe90eZbIfdh3bdpD9/csg+XgMdlj7a/uWUfYO+T2toaGnbMRedAjL947DX+wSnKqnIrxqkzNQcV8o3k/m1tVAW8NFQFhtomkoywtTXEYy8fob6ihCXOiOaxl4+M+5iEcDx7WZnR2nNxuYRKv5dKv5doIsXPdx3G45KhU0gXVLqd0aOHcxdW8m+vHs36Osf7Yvbv8lI7P9x+cGgNqi+a5Oub9pJIWfw/1zVOqo+zyfee2+8EGXtq0yWQtCy+99x+7rx2Nfc80cLJcAK3CG4RjGUH83ueaNFAM04aaNScN9VkhFzVnXOJpSy8LruQZ3rqzi12+1T5vW5O9Eep8nswCCnLYIwh4HPTH01wZ/OqUQMNwB9953niSeu0VEwDfPfZ/dy4djEBn5synz1tONtSp8djMJ5iZKUfl5w6oTVX9fLpMNen5jTQqDlvcXUpB7oGTtunsazWXszPrG+WKb21N1d1Z7dLsp7mmV73KPPZo6CSjFTjpGVRNk1ZYMOOMXDZJW4GYgkWZIzgRhNNjB7sokmLlHPQ22xNnR6P9H+fzBhqmVO1/PKt0PvMZsLc+Jei1BguX1FDqH/4zvNQ/6md5wur/FmvS7fnqu7sGyVPOt1+2/rlWMYOLpaxnM92+3QYWbkhmkxhEP7bNSupLvWNee3n3zv2Osz+zlPrO+mqEJ39MQ7NcEmc+zbt4fy7n+Tsv/o159/9JPdt2jNtr53rv8+KujIsYx+VYTBYxmAZu306ZO4zE7E/e93C/dvapuX1xyPflTs00Kg5b3tbN/XlPnxuF5YBn9tFfbmP7W32lqr/dcO7qCxxD/1F6xKoLHHzv254FzC8hIwxZqiUTDqQlPrsazP3g7oyqlvfee1q7tq4koDXTdKyp+3u2rhyaLF9tMmo8U5SjXaMQfM586kuGzvQfOj8hjEfv/XBndz20E4e3nGI433RYY/FkxY94fhQSZzOgRiReIrp3kGQXqyPJFLDFuunK9jk+u/zhesbqS71IkAyZSFAdamXL1w/PetX7T3hofW1tJncZzYTxzTo1Jma89p7wtSVl1BfkX3n+YbGIPfdfNGoWXHZ99F4h/bR5NpnA/ab2WhZXB4XZJvBmsgJAflMtmjrGKStYz/ffXY/71pYycbG+WxYXU9V6al1r0TKIhGx6IskcIlQ6nMPlcWZaup0rsX66TDWf58NjUH+foxjKKaq0PvMZqJyhwYaNeeN53/ksd6oc+2jyfV4LpUBL12Dp9c6qxqRwDBZLiDbSoxgVw4Yyz9//EI2t4R4+u0QPeEEbxzp440jfXzr6X2sXVrNtU1BrlhZN+wvcssYBmJJBmJJIIbf6+bH2w/woxcOEk5YWfepjCXXYv1MyGcgL/Q+s5mo3KGBRs15U/0fOdc+mqnuExrPiGgqPvzuBn756rHT2m94dwML542dMNDUUElTQyUXL6nm+7/bz9HeCHEnSeDF/d28uL8bv8fFlSvraG4KsnZp9WlJAt995p2s6dPGGO567xpg7KyrQi/W59tM7DMb6/7OxIhKA42a86aj+nSufTRT+Yt3qiOidB9HeyM53hdnXsBDX/RU9ehKv4fjffFxvfaOtm6+tXUfHpewuDpAOJ5iMJbirHkB9ob6iSYtNreG2NwaotLvYcMa++C2cxdW4hLh4Zfas6ZPf+eZNj62bim7DnRzz29a8XlcWbOublu/nG9u2UfSsoYKmE5nMkUxyOeIKVdW20yMqDTQqDNCMVefzvcxDO3Oa2YexZS5RnX58mq27+857XUvWlwFwCMvtQ/bEFrm8+ASwed28difXs6zezvZ1BLitfaT9EWTPP7aUR5/7SjBihI2NgaJJrOnUEeTFuF4ku8+ux+w12BSlnGKf6aG7m96im2sEjFqdLn+/c7EiEoDjVI5zMQcdj4DYa6pkYfvuIKb739+WLC5fHk1D99xBfGkxYn+KOUlw98q/F4Xx/siVPi9fOBdDXzgXQ109MfY+naITS0h9oYGCPXHeOSl9pz9P9YXodLvwRhDymCXCRLhYNcgkXgKv9c15mK9Gtt4/v3mu3KHBhqlcih0VlAuud5IxjM18vAdV2R9bZ/HxbLaMk70RfB7PfYeEssQTVgsqBy+vlNfUcJH1i7mI2sXc6g7zJYWezrtyMlI1teuL7P73FAZoGswNiyhIJJIEazwc6w3gkvsg90Cvrm1UXSmFMO/X/0vplQO03GUdT4tri4lMuKU0Mw3ktH22Yz3L9g7rlpB0sI+btolQxsaP75u8ajXLKkp5VNXLuOhT1/CZ68+O2uqdlc4wZd+8QZrFpQTT1lEEikMhkgiRdIy3HSJ/fqWMQzGTt8oOheOsZ4JxfDvV/R4luHWrl1rdu7cWehuqCKTXmwvVPXpsWSu0WSOWCYSTMbzM0b+/levqac/lqQ3nCCRo27bjrZuHt5xiEM9YQRhMJ4klrF243ULZT4PYFhSU8bH1y1hnVO5YSwel8vZr+Oes7XYpsNM/PsVkV3GmLVZH9NAM5wGGjUbFToQRuIpeiOJoZM9c4klUrywv5strSFeaOsikXF2T6Xfw9Wr69nYFORdC6vskj/jICL4vS5KvR78PhclnrmR/jxbaKCZAA00Sk1ePGnRF00wEE1ijfO9ZSCa5Nm9HWxqDfHqoZPDUqHry0vY2FhPc9N8zq4vG5Y5l0t6tFNWYo92JnKtmjgNNBOggUapqbMsQ380SV8097Raps6BGFvf7mBzS4i3T/QPe2xpbSnNzlHWZ+XYaDrSdJfFUafTQDMBGmiUml7heJLeSILIBEvGtHeH2eJsBD3cMzxz7ZyGCpqb5rNhTX3OCtXZ+L3uocCjU2zTQwPNBGigUSo/JjOtBvbm0j0nBtjceoKnWzvoGjxV0cAlsHZpNRub5rN+Ze2wFN7x8rhc+H0uSn0eSjWhYNI00EyABhql8muy02pgb+Z8rf0km1tDbNvbwWDs1CipxOPi8hW1NDcFWbe8Bu8k9tuICCUel452JkEDzQRooFFq5kx2Wg3sEdIL+7vY0hJi+4jMtQq/h6tW1dPcFOT8RePPXBtJ06fHTwPNBGigUWrmxZMWvZEEA7HkpA5OG4gleW5vJ5tbTvBK+0kyT9auK/exsdEu9LkyWD7p7DNNnx6bBpoJ0ECjVOGkLMPAJKfV0roH40M111qPD89cW1LjZK41BXMekZBLem0n4NVMNtBAMyEaaJQqDoMxO+BMZlot7UhPhC2tITa1nKB9ROZa44IKrm0KsmFNkJocR16Ph89jB52A78zct6OBZgI00ChVXCabrZbJGMPe0ACbW0JseTtE18DwzLWLllTT3BRk/co6ykqmXms4c5ot4HPjm8i53LPUGR9oROR64JuAG/ieMeae0Z6rgUap4jSVbLVMKcvw2uGTbGkNsW1Pp3PktM2XzlxrtDPXpitAeN3Dkwrm4mjnjA40IuIG9gDvBQ4DLwE3G2PeyvZ8DTRKFb/BmJ2tNtUKzvGkxY793WxutTPX4hmFPstK3Fy9yq65dsGiedO2BiMiQ1NspT73pNKwi9GZHmguB+42xlznfP8lAGPM/5ft+RpolJo9Ykm7mOdgLDWpbLVMg7Ekv9tnnxb68qGeYZlrteU+Nq4J0twUZNUUMteymSujnTM90NwIXG+Muc35/hPApcaYz2U853bgdoAlS5ZcfPDgwYL0VSk1OSnL0BdJ0BdNkLKm/p5mZ651sLn1BC3HhmeuLa4O0NwUpLlxPgurp5a5NtJsHu2c6YHmI8B1IwLNOmPMf8v2fB3RKDV7GWMYcKbVMqfBpuLISTtzbXNLiEPdw4/vblxQQXNTkGumKXNtJK/brlJQ6vPg97qKerRzpgcanTpT6gwUTaToczaBTgdjDPtCA2xuDbGlNUTniMy1CxfPY2PTfN6zqo7yachcG6nYj7Q+0wONBzsZoBk4gp0M8HFjzO5sz9dAo9TckkxZ9EWT9E/TtBrYx0u/friXLa0hntnTQX/0VDDzuoXLV9SysSnIZctr85banN63UyyjnTM60ACIyAeAb2CnN//AGPO10Z6rgUapuckYM+6jpycinrR46YB9Wujz73QNO6K6zOfmPavqubYpyAWLpy9zbaTM0U7AW5i1nTM+0EyEBhql5r6JHj09XuF4kt/t62Jzywl2HhyeuVZT5uOaNXahzzXzK/I6AinE2o4GmgnQQKPUmSORsuiLJOifQtWB0ZwM25lrm1pCvHWsb9hji6oDQ4U+F9eUTuvPHWmm1nY00EyABhqlzjyWZU+r9UWmd1ot7VhvuuZaiINdwzPX1syvYGNTkI1r6qktL5n2nz2Sz+Mc8uZz4/dOXwVqDTQToIFGqTNbOJ6kL5Kc9mk1sNeJ2joGhzLXQv2xoccEuHDJPJobg7xnVT3l/unPXBvJ7crctzO1CtQaaCZAA41SCqanmOdYLGN440gvW1rszLW+EZlrly63Twu9bHkNJdM48hhLideeXgtMYrSjgWYCNNAopTLle1oN7LUiO3Otg+f3dRIdkbm2flUdzY1BLlxSPWPn3rhdMjTSCXjdOX+uBpoJ0ECjlBpNvrLVRv6M373TyeaWEC8d6B6WuVZd6uUaJ4mgcUF+M9dG8nudemw+d9bTRTXQTIAGGqVULulstYFYcto2gWZzMhznmT125truo8Mz1xbOCwydFrokz5lrI6VPFy31eSj1unG5RAPNRGigUUqNV742gWZzrDfC060dbGo5wYERmWurguVDNdfqK/KfuZZJRCjxuFhYXaqBZrw00CilJmMmptXS2jrsmmubW07PXLtgsZ25dtXqOir83rz3Je3sYIUGmvHSQKOUmop0tlp/NDnlM3JysYxh95E+NreG2Pp2aFjmmsclXLq8huamIJevqM175poGmgnQQKOUmg4py9AfTdAXSZK08jutBnbx0J0He9jSGuK5fZ1EE6d+ZsDr5j2r6mhuCnJRnjLXNNBMgAYapdR0MsYw6EyrxaZ49PR4RRIpnt/XyebWEC8d6BmWsFBd6mXDGjtzralh+jLXNNBMgAYapVS+RBPpo6fzv46T1htO8MzeDja3nOCNI8Mz1xqq/M5poUGW1pZN6edooJkADTRKqXzLZzHPsRzvi/K0k0TQ1jk47LGV9Xbm2sbGyWWuaaCZAA00SqmZMhNVB0azv3Nw6Ijq433RoXYBzl9URXNTkKtW1VMZGF/mmgaaCdBAo5QqhHA8SW8kQSQ+M+s4acYYdh9NZ6510BtJDD3mcQmXLLMz1644u3bM+mcaaCZAA41SqpBiyfQ6Tirv6dEjJVMWuw71sLnl9Mw1v9fF+pV25trapTWnZa5poJkADTRKqWKQsgx9kQR90URey9yMJppI8fw7XWxuCbHjQPewPswLeLl6jX1E9TkNlYiIBpqJ0ECjlCom6TI3fZEE8eTMruOk9UYSPLvXrrn2+uHeYY81VPnZ2Bjkf//h+aMGmvyfrKOUUmrSRIRKv5dKv3dGy9xkqgp4+dD5Z/Gh888i1Bdly9t2uvQ7HYMc643ykxcPjXm9BhqllJolAk6Z/njSoj868+nRAMFKPzddspibLlnMga5BNrfYp4UeHOManTobQafOlFKzRSHTozMZY1g5v1KnzpRSaq5xuYSqgJeqgD2t1hed2aoDabnK2GigUUqpOSA9rZZIWfRHk/QXKFstGw00Sik1h3jdLmrKfFSXehmI2ZtAC5WtluYqxA8VkY+IyG4RsURk7YjHviQi+0TkbRG5LqP9YhF5w3nsPnHGaiJSIiI/c9pfFJFlGdfcIiJ7nY9bZur3U0qpQhMRKvxeFlWXcta8AOUlnmmr1DxRBQk0wJvAHwLbMhtF5BzgJuBc4Hrg2yKSrnnwHeB2YJXzcb3TfivQY4xZCXwduNd5rRrgK8ClwDrgKyJSncffSSmlipLf6yZY6WdxdYB5pb68nEczloIEGmNMizHm7SwPfRh4xBgTM8bsB/YB60SkAag0xmw3dprcQ8ANGdc86Hz9GNDsjHauA54yxnQbY3qApzgVnJRS6ozjcabVltSUUl9Rgs8zMyGg2NZoFgIvZHx/2GlLOF+PbE9f0w5gjEmKSC9Qm9me5ZphROR27NESS5YsmfIvoZRSxSw9rVbh987IGTl5CzQisglYkOWhvzbG/Gq0y7K0mTHaJ3vN8EZjHgAeAHsfzSh9U0qpOcfvdeP3uofOyBmIJac9Wy1vgcYYc+0kLjsMLM74fhFw1GlflKU985rDIuIBqoBup33DiGu2TqJPSik153ndLmrLS6gp89EfS9Ibnr5NoIVKBhjN48BNTibZcuxF/x3GmGNAv4hc5qy/fBL4VcY16YyyG4EtzjrOk8D7RKTaSQJ4n9OmlFJqFOnaaotrSmmoClDqm/p4pCBrNCLyB8A/AfXAf4rIq8aY64wxu0XkUeAtIAl81hiTPgXoM8APgQDwhPMB8H3gRyKyD3skcxOAMaZbRP4WeMl53leNMd35/+2UUmpuyNwEOpWjp7XW2Qha60wppbIbq7baWOfRFFvWmVJKqSKVWVttIkdPa6BRSik1YaU+D6U+D/GkRW8kMeZziy0ZQCml1Czi87iorygZ8zkaaJRSSuWVBhqllFJ5pYFGKaVUXmmgUUoplVcaaJRSSuWVBhqllFJ5pYFGKaVUXmmgUUoplVcaaJRSSuWVFtUcQUQ6gINjPKUO6Jyh7kyG9m9qtH9To/2bmtncv6XGmPpsD2igmSAR2TlahdJioP2bGu3f1Gj/pmau9k+nzpRSSuWVBhqllFJ5pYFm4h4odAdy0P5NjfZvRld3CgAABwBJREFUarR/UzMn+6drNEoppfJKRzRKKaXySgONUkqpvNJAMwYR+YGIhETkzYy2u0XkiIi86nx8oEB9WywiT4tIi4jsFpG7nPYaEXlKRPY6n6uLrH/Fcv/8IrJDRF5z+vc/nfZiuX+j9a8o7l9GP90i8oqI/IfzfVHcvzH6VzT3T0QOiMgbTj92Om1Fc/9G6d+k7p+u0YxBRK4CBoCHjDHnOW13AwPGmH8ocN8agAZjzMsiUgHsAm4APgV0G2PuEZEvAtXGmC8UUf8+SnHcPwHKjDEDIuIFngPuAv6Q4rh/o/Xveorg/qWJyOeBtUClMeZDIvJ3FMH9G6N/d1Mk909EDgBrjTGdGW1Fc/9G6d/dTOL+6YhmDMaYbUB3ofuRjTHmmDHmZefrfqAFWAh8GHjQedqD2G/uxdS/omBsA863XufDUDz3b7T+FQ0RWQR8EPheRnNR3D8YtX/Frmju33TSQDM5nxOR152ptYJODQCIyDLgQuBFYL4x5hjYb/ZAsHA9s43oHxTJ/XOmVV4FQsBTxpiiun+j9A+K5P4B3wD+ErAy2orm/pG9f1A8988AvxWRXSJyu9NWTPcvW/9gEvdPA83EfQc4G3g3cAz4/wvZGREpB/4V+HNjTF8h+5JNlv4Vzf0zxqSMMe8GFgHrROS8QvUlm1H6VxT3T0Q+BISMMbsK8fNzGaN/RXH/HFcaYy4C3g981pmqLybZ+jep+6eBZoKMMSecNwAL+C6wrlB9cebu/xX4iTHmF07zCWd9JL1OEiqm/hXT/UszxpwEtmKvfxTN/UvL7F8R3b8rgd935vEfATaKyI8pnvuXtX9FdP8wxhx1PoeAXzp9KZb7l7V/k71/GmgmKP2PwPEHwJujPTfP/RDg+0CLMeYfMx56HLjF+foW4Fcz3TcYvX9FdP/qRWSe83UAuBZopXjuX9b+Fcv9M8Z8yRizyBizDLgJ2GKM+WOK5P6N1r9iuX8iUuYkySAiZcD7nL4Uxf0brX+TvX+e6e/i3CEiDwMbgDoROQx8BdggIu/Gnr88ANxRoO5dCXwCeMOZxwf4K+Ae4FERuRU4BHykyPp3c5HcvwbgQRFxY//B9agx5j9EZDvFcf9G69+PiuT+jaZY/v2N5u+K5P7NB35p/z2GB/ipMeY3IvISxXH/RuvfpP79aXqzUkqpvNKpM6WUUnmlgUYppVReaaBRSimVVxpolFJK5ZUGGqWUUnmlgUapcRKRZZJRyTuj/asicm2Oa+8Wkb/IX++UKl66j0apKTLGfLnQfVCqmOmIRqmJcYvId8U+I+a3IhIQkR+KyI0AIvIBEWkVkedE5D5xzkFxnCMiW0WkTUTudJ7/lxlff11EtjhfNzslXRCR74jIThl+Lk2ziPwy/cIi8l4R+QUjiMinROTfROTfRWS/iHxORD4v9hktL4hIjfO8rSLyDRF5XkTeFJF1Tnu92OeivCwi94vIQRGpy8udVXOWBhqlJmYV8M/GmHOBk8AfpR8QET9wP/B+Y8x6oH7EtY3Addj1ob7i1ILbBrzHeXwtUO60rweeddr/2hizFjgfuFpEzge2AE0ikv4ZfwL8n1H6fB7wcefnfg0IG2MuBLYDn8x4Xpkx5grgz4AfOG1fwS7fchF2vaslOe6PUqfRQKP+b3v37lpFFEVx+LdEfICkE1u1Em0EtQiksbG3SRpBFANiazpt/AtsFLEQAyIBLSxEtFMjRhBjfOADhKSzUCGEGEzUZFmckxAvURO8g6jrgwt3zuXMmbnFbPbMsHeszJjt+ZI6w8DmRb9tA0Ztj9XtgZa5N2zP1EZS7yhlPoaBXbWu1Azl4r+bEnzmA023pMfACLAD2O5S0uMScKDWROsEbv7gmG/bnrT9HpgArtfx5y3HPwALfZg66n67KEUpsX0LGP/JfxOxpDyjiViZmUXfZ4H1i7a1wrmrbX+pFYYPAUPAM2AvpRT7K0lbgD5gj+1xSf3AurqPi5SgMQ1ctf1V0n5KFgJwZIl15xZtz/H9NaC1HpWXcU4Rv5SMJqJ9XgNbVRq9AfQsc94gJZgMUrKYo8CTmrV0AFPAhKRNlN4gwEIZ97fASaC/jl2zvbN+Hq3w+HsAJHUBE7YnKC2ku+v4PuCPN/qLv08ymog2sf1J0jHglqQPwMNlTr0HnAAe2J6SNF3HsP1U0gjwAhgF7rfMvQxstP2yDacwLmmIEtwO17FTwICkHuAupdnVZBvWiv9IqjdHtJGkDbY/1n48Z4E3tk83uN4ZYMT2hd/czx2grzULkrQWmK235TqBc7XrZ8SyJaOJaK9eSQeBNZSH9+ebWkjSMOW22vGm1qC8ZXZF0irgM9Db4Frxj0pGExERjcrLABER0agEmoiIaFQCTURENCqBJiIiGpVAExERjfoGgnK6ALxKZB0AAAAASUVORK5CYII=\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": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.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": 24,
"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": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fe5cc923c88>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 26,
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"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": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f4dd5c6c9b0>"
]
},
"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.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": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f4e02f70c50>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.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": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f4e02eab9b0>"
]
},
"execution_count": 12,
"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": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 13,
"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": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>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": 14,
"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": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 15,
"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": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 16,
"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": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 17,
"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": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"drive-wheels \n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 19,
"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": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 20,
"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": 21,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 22,
"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": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 23,
"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": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 24,
"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": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 25,
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n"
]
},
{
"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": null,
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": 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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 27,
"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": 29,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"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": 31,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.369057428260101e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"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": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <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": 33,
"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": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
".. ... ... ...\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 36,
"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": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 37,
"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": 38,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment