Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save tejas-2232/ab4ff1e9618db3323b714abd9991f39c to your computer and use it in GitHub Desktop.
Save tejas-2232/ab4ff1e9618db3323b714abd9991f39c to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"http://cocl.us/DA0101EN_NotbookLink_Top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/cognitive_class_DA0101EN_objectstorage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"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": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"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": 5,
"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": 6,
"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": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke','compression-ratio','horsepower']].corr()\n",
"# df.corr('kendall')\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56095.68521335254)"
]
},
"execution_count": 16,
"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": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 48292.03011673621)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x='highway-mpg',y='price',data=df)\n",
"plt.ylim(0,) \n",
"# negative linear relationship"
]
},
{
"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": 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>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": 18,
"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": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f57a6a496d8>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEGCAYAAABcolNbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXyc1Xnw/d81+2hfRzbeZctI7ItxIBAwtlKg6ZOkKaHQNwl5SwpPmj6Q9k0a0vdtkoc2n4anfbLQPEmhSRqSpiGUpoVmIUUyxpAYjFkcYiRsI++LRpZkbTOj2c77x33PeCSPNNpGM5Kv7+ejj6Qzc4+ObsRcPudc5zpijEEppZTKF0ehO6CUUmpx00CjlFIqrzTQKKWUyisNNEoppfJKA41SSqm8chW6A8Wmrq7OrF69utDdUEqpBeWVV145ZYypz/aYBppxVq9eza5duwrdDaWUWlBE5NBEj+nUmVJKqbzSQKOUUiqvNNAopZTKKw00Siml8koDjVJKqbzSrLM5sq0zyMPbuzjSH2JFdQn3XN/IpuZAobullFIFpyOaObCtM8jnntpDcChCld9NcCjC557aw7bOYKG7ppRSBaeBZg48vL0Lt1Mo8bgQsT67ncLD27sK3TWllCo4DTRz4Eh/CL/bOabN73ZytD9UoB4ppVTx0EAzB1ZUlxCOJca0hWMJlleXFKhHSilVPDTQzIF7rm8kljCEonGMsT7HEoZ7rm8sdNeUUqrgNNDMgU3NAR5474UEyn0MhGMEyn088N4LNetMKaXQ9OY5s6k5oIFFKaWy0BGNUkqpvNJAo5RSKq800CillMorDTRKKaXySgONUkqpvNJAo5RSKq80vVkBWn1aKZU/OqJRWn1aKZVXOqKZIwt5RJBZfRqgxOMiFI3z8PauBfM7KKWKl45o5sBCHxFo9WmlVD5poJkDC/08Gq0+rZTKp4IHGhFxishrIvIT+/saEXlGRPbZn6sznvtZEdkvIm+JyE0Z7VeKyBv2Yw+JiNjtXhH5kd3+koiszsfvsNBHBFp9WimVTwUPNMB9QEfG9/cD7caYJqDd/h4RuQC4HbgQuBn4hoik3t2/CdwNNNkfN9vtdwH9xph1wFeAB/PxCyz0EYFWn1ZK5VNBkwFEZDnwHuCLwJ/Zze8DNtlfPwpsAz5jtz9mjBkFDojIfmCjiBwEKowxO+zX/B7wfuDn9jVfsF/rCeDrIiLGGDOXv8c91zfyuaf2EIrG8budhGOJBTci0OrTSql8KfSI5qvAnwPJjLYGY8wJAPtz6t1vGXAk43lH7bZl9tfj28dcY4yJAwNA7fhOiMjdIrJLRHb19PRM+5fQEYFSSk2sYCMaEfkdIGiMeUVENk3lkixtZpL2ya4Z22DMI8AjABs2bJjRaEdHBEoplV0hp86uBd4rIr8N+IAKEflnoFtElhpjTojIUiCVI3wUWJFx/XLguN2+PEt75jVHRcQFVAJ9+fqFlFJKna1gU2fGmM8aY5YbY1ZjLfJvNcZ8CHgKuNN+2p3Ak/bXTwG325lka7AW/Xfa02tDInK1nW32kXHXpF7rVvtnzOn6jFJKqckVY2WALwGPi8hdwGHggwDGmD0i8jjwJhAHPmGMSaV6fRz4LuDHSgL4ud3+beD7duJAH1ZAU0opNY9E/4E/1oYNG8yuXbsK3Q2llFpQROQVY8yGbI8VOutMKaXUIleMU2dqEVrIRUeVUrOjgWaRKOY38lTRUbdTxhQdfQCKpo9KqfzRqbNFoNirRy/0oqNKqdnRQLMIFPsb+UIvOqqUmh2dOpsn+ZzaOtIfosrvHtNWTG/kK6pLCA5F0gerwcIqOqqUmh0d0cyDuZja2tYZ5I5HXuS6B7dyxyMvjrm22KtH6zEESp3bNNDMg9lObeUKVMX+Rq5FR5U6t+nU2TyYytTWZFNrmYEKoMTjIhSN8/D2rnQxzwfs5x3tD7G8yLLOQIuOKnUu00AzD3KtUeRK/51KoNI3cqVUsdKps3mQa2or19Rasa/BKKXUZDTQzINcaxRH+kPEE0m6eobpPDlIV88w8UQyPWIp9jUYpZSajE6dzZPJprbKvS72BYdxOgSnQ4gnDcdOR2gKlKWvLfY1mFyKuXKBUiq/NNAUgXQF7VQhbTOunYW9BqMlaJQ6t+nUWREYjiZYVuXD5RQSxuByCsuqfIxEE7kvXgCKvXKBUiq/dERTBFJZaY31Zem2UDROoNxXwF7NnWKvXKCUyi8d0RSBxb7Yr1lzSp3bNNAUgcW+c/6e6xsZDMfY1z1Ex4kB9nUPMRiOLZpAqpSanE6dFYlci/0LPWvLAAiICMiZvAel1OKnI5oFoNjPm8nl4e1dVPrdNAXKaV5SQVOgnEq/W5MBlDpHaKBZABZ61lauDalKqcVNA80CsNAPDiv3ujh2OkI8acZsSC3z6sytUucCDTQLwELP2hqzITX1wdgNqUqpxUsDzQIwH+nPkx2sNluLfUOqUmpyGmgWgHynP+c72WBFdQkup4PG+jKal1TQWF+Gy+lYMCMypdTsFGySXER8wHbAa/fjCWPM50WkBvgRsBo4CNxmjOm3r/kscBeQAO41xvzCbr8S+C7gB34G3GeMMSLiBb4HXAn0Ar9vjDk4T7/inMpnrbNcB6vN1j3XN/K5p/YQisbxu52EY4lFtSFVKTW5Qo5oRoHNxphLgcuAm0XkauB+oN0Y0wS0298jIhcAtwMXAjcD3xCR1Ar5N4G7gSb742a7/S6g3xizDvgK8OB8/GILTb6TDRb7hlSl1OQKNqIx1krwsP2t2/4wwPuATXb7o8A24DN2+2PGmFHggIjsBzaKyEGgwhizA0BEvge8H/i5fc0X7Nd6Avi6iIjRVegxcp0AOhcWcvVppdTsFHSNRkScIvI6EASeMca8BDQYY04A2J9T707LgCMZlx+125bZX49vH3ONMSYODAC1k/XpXIxAi73WmlKqsAoaaIwxCWPMZcByrNHJRZM8XbK9xCTtk10z9oVF7haRXSKyKxgMcrg3xOlQlETy3Ag7OrWllMqnotgxZ4w5LSLbsNZWukVkqTHmhIgsxRrtgDVSWZFx2XLguN2+PEt75jVHRcQFVAJ9WX7+I8AjAJddcaWJJ5P0jUTpD8Uo9Tqp9LvxupzjL1tUdGpLKZUvBRvRiEi9iFTZX/uBVqATeAq4037ancCT9tdPAbeLiFdE1mAt+u+0p9eGRORqERHgI+OuSb3WrcDW6azPGGMYjsQ51h/m+Okww6Nx3WSolFLTVMgRzVLgUTtzzAE8boz5iYjsAB4XkbuAw8AHAYwxe0TkceBNIA58whiT2vH3cc6kN//c/gD4NvB9O3GgDytrbUYisQSRWAKXw0GF30W5z43TkW1mTmXzUNtevvXCAUaiCUo9Tj523RrubV1f6G4ppeaB6L/Qx7rsiivNj3/xXM7nicg5M602Ww+17eVrW/fjEHAIJI31cd/mdRpslFokROQVY8yGbI9pZYAZ0mm1qfvWCwdwCLgcDhzisD9b7Uqpxa8okgEWOp1Wm9xINIFr3D9pHILWOlPqHKEjmjmUylY73BeiZ2iUaDxZ6C4VhVKPk/GZ4kljtSulFj8NNHlgjGEoEuNof4gTA2FC0Xihu1RQH7tuDUljBeKkSdqfrXal1OKngWacI30htnYGicTmZlonHE1wciDCkb4QA+EYyXNkE2ime1vXc9/mdfjdTuJJq46aJgIode7QrLNxvEubzNI7v4rf7eS6pjpaWwJcsbJ6ztZcHCKU+1xU+N24nRrnlVKLw2RZZ5oMME6514XLIYRjCZ55s5tn3uymusTNjecH2NISoHlJOda+0JlJGsNAOMZAOEap10Wl343PrWsVSqnFS0c041x2xZXmn/6jje17e2jrCPLGsYExjy+v9rOlOUBrSwPLqv1z8jM9LgcVfjflXtesglgx29YZ5OHtXRzpD7GiuoR7rm/UkjdKLSKTjWg00IwzfsPmycEIWzuCtHV0c7B37PkszUvKaW0JsOn8ADWlnln/7NS0WrnPjWd8PvACljrB0+2UMQefaeFOpRYPDTTTMFFlAGMMXT0jtHV0s7Wzh57h0fRjDoErV1WzpaWB69bVjjnXZab8HicVPjclHueCH+Xc8ciLZ513E4rGCZT7+OHdVxewZ0qpuaJrNHNARFgbKGNtoIw/ur6RXx8doK2jm+17TzE8Guflg/28fLAfr8vBO9fW0trSwFWrq3HNcME/HE0QjlqbQK1RjmvGr1VoR/pDOAW6eoaJJpJ4nA7qyjxzdoKnUqq4aaCZAYcIl62o4rIVVdy7uYmXDvTR3tHNjq5eRuNJnn2rh2ff6qHC52LT+QFaWwJceF7FjEYm8WSS/lCU0+EYpR4nFQsweaDc62JfcBinQ3A6hHjScOx0hKZAWaG7ppSaBxpoZsnjcvCupjre1VTHcCTO8/t6aOsM8vrh0wxG4jy1+zhP7T7O0kofm5utoLOqtnTaP8cYw/BonOHROF63kwqfi7IFkjyQnp5NzdKace1KqUVNA80cKvO5uOXipdxy8VJ6hkbZ2hmkvSPI/p5hTgxE+MFLh/nBS4dZFyijtSXAjecHqC/3TvvnjMYS9MQS9I1EKfe5qfC5eGHfqaLN6hqOJlhW5ePUcDQ9dbakzKu1zpQ6R2gywDhTPSZgOg72jtDeYQWdk4ORdLsAl66o4t0tAd61vp4y78zi/s4Dffz91v14XEKpx1V0WV2aDKDU4qdZZ9OQj0CTYoxhz/FB2jqCbHsryGDkTA00t1O4prGWLS0NvGNNzbTSm//sR7vpHRnF77Yy1JwOIRKL01DhL4o3ck1vVmrx06yzaXCKUOp1EY4mSM5xEBYRLlpWyUXLKvnEjWvZdbCfto5ufvW2lUSwfd8ptu87RZnXxfXr62htaeCS5ZU4cqzDnBgMU+Gz/lMaY4gnDE6Hg0O9I8QTyYJnq21qDvAA8PD2Lo72h1heZFN7Sqn80kAzjgg0VPgwxhCOJQhFE4RGE8STc1vy3+10cM3aWq5ZW0soGueF/b20d3TzyqF+hkfj/OyNk/zsjZPUl3nZ3FxPa0sDjfWlWRf/l1b40yOalEgsQaDcx5H+cFFlq+n4Walzj06djbNhwwaza9eus9pH49a+lpFogtE5quycTd9IlGffCtLWEeStk0NjHltdW0JrSwNbWgI0VPjS7Tu7+vja1n24HILP7SASSxJPGu7b3MTGxpr08wpV6mYups60hI1SxU3XaKZhokCTKZFMjXbihKMJEnkq/X+kL0S7nbl27HR4zGMXL6uktSXADevrqfC72dnVx2MvH+HkYJglFX5uv2rFmCCTyemQdLbafEyrzTYZYFtnkE8/sZuhSJx4MpnexPq3t16qwUapIqGBZhqmEmjGi8Ss0U7YPtJ5rhljeKt7iLaOIM92BukPxdKPuRzCxjU1tLYEuKaxFu80p8fmo4L0dQ9upcrvHjOKMnYV6+c/sznn9bd8dXt6w6cIGGMF+6ZAGT//5PV567dSauo0GSDPfG4nPreTasaOdiLR5Jys7YgIzUsqaF5SwcdvWMurh/tp6wjy/L4eIrEkv3q7l1+93UuJx8m7murY0hzg8imeoTMyGmdkNJ5zWm02U1crqkvOGtGEYwmWV5dM6fquUyM4hHRShAgYMXSdGpnS9UqpwtJAM8ecDqHM60rviUmt7YSiczPacTqEq1bXcNXqGv60tYlfvd1LW0c3Lx/sJxRN8Is93fxiTzc1pR5uPL+ed1/QQFOgLOeaTDSe5NTQKP0jUcq8YytIZ66xVPndBIcifO6pPTwAUwo291zfyOee2kMoGh+zRnPP9Y2zvh8puoajVPHSqbNxZjJ1NlX5XNsZCMXYttdKIthzfHDMYyuq/bS2NLC5JcCyqqmfoZOqIP2xR3fNesNlKhDMJL355q88x/6eEZySMXVmDOvqS3n6T2/QNRylioCu0UxDPgPNeJFU+nQ0TjQ+d+nTJwbC6UoEh/rGVki+YGk5W1oauPH8eqpKpnaGzh/844tUlXhwOSQ9MprOGstsbesM8qkndjM8GieRNOlR49/ZgUTXcJQqPF2jKVKptZ2aUg/xRJJQKqlglptFl1b6+dDVq/i/3rGS/cFh2jqCbH0rSO9wlDdPDPHmiSH+z7P72bDaSiK4dm0dfs/EyQBLUvt0PE4c6coDU19jma1NzQH+7tZLJxwR6RqOUsWtYIFGRFYA3wOWAEngEWPM10SkBvgRsBo4CNxmjOm3r/kscBeQAO41xvzCbr8S+C7gB34G3GeMMSLitX/GlUAv8PvGmIPz9CtOi8vpoMLpoMLnxhhDJJYkFI0TiiaIJWY22hERmhrKaWoo5+7rG9l99DTtHUG27+1hJJpg54E+dh7ow+dycO26Ora0BNiw6uwzdG6/agVf27qPcDSBz+1gZDRJwhg+cs0qjDHzsidnU3NAp8GUWqAKOaKJA/+PMeZVESkHXhGRZ4CPAu3GmC+JyP3A/cBnROQC4HbgQuA8oE1E1htjEsA3gbuBF7ECzc3Az7GCUr8xZp2I3A48CPz+vP6WMyAi+D1O/B4ntUAskSQUPZNCPZPpTqdDuGJlNVesrOa+LU282NVLW0eQlw70Eoknrf06nUGq/G5uOL+e1pYAFyy1ztDZ2FjDzScbePyVo4RjCfxuJ7dduZzzl5RzpC9Mmc81b3tysllTW8L+nhEkadJTZ0kD6+rmZ8SllJpc0azRiMiTwNftj03GmBMishTYZow53x7NYIz5G/v5vwC+gDXqedYY02y332Fff0/qOcaYHSLiAk4C9WaSX3o+12hmIrM0TngWo52UoUiM7XtP0d7ZzetHBsY8trTSx5aWAIEyLz98+UjOygOlXhcVPvek03D5kGsNRymVf0W/RiMiq4HLgZeABmPMCQA72KTeKZZhjVhSjtptMfvr8e2pa47YrxUXkQGgFjg17uffjTUiYuXKlXP1a+WFiFDicaUzwKLxJOHYzEc75T4377lkKe+5ZCnBwQhbO4O0dQbp6hnhxECEf37xMEA6tdntOFNG5rGXj4wJNKk9OW7nmT05jins5ZmtXGs4SqnCmnKgEZFVQJMxpk1E/IDLGDOU67opvG4Z8G/AJ40xg5PM92d7wEzSPtk1YxuMeQR4BKwRTa4+FxOPy4HH5aDS757VaCdVwubEYJilFX4+uaWJ7qEI7R1BgkOjxBKGnuEoPcNRStxOyn1Ojg+Esr5WLJGkd9jek+NzUe5z8fC2t/nWCwcYiSYo9Tj52HVruLd1/VzdBl3DUaqITWlSXUT+CHgCeNhuWg78x2x/uIi4sYLMD4wxP7abu+0pM+zPQbv9KLAi4/LlwHG7fXmW9jHX2FNnlUDfbPtdrFKjnboyLytqSlheXUJtqRe/xznpgn2qKGfvyCgVPhe9I6P8aNcRLl1Wxb/80TtYV19GqcdJanASiiXoHorSMxTlf/7nm/xy/6msQS1pDIPhGF/6aQdfbd9HKBrHKVYw/NrW/TzUtjf93G2dQe545EWue3ArdzzyIts6g2e9nlJqYZrqiOYTwEasqS2MMfsyprRmRKx3vm8DHcaYL2c89BRwJ/Al+/OTGe3/IiJfxkoGaAJ2GmMSIjIkIlfb/fsI8PfjXmsHcCuwdbL1mcUmPdrBTTI5drSTWRrnsZePEE8kOB2yRkFup4MyrzM9Nfax69bwta37qC5xkzCG06G4NU0HPLe3h+f29lDuc3HD+nq2tAS4eNnYM3Qef+UoGEgYKwNEMAjwrRcOcG/r+ilVHtCd/4Wl91/NxlQDzagxJirpfQriYvZHi1wLfBh4Q0Ret9v+AivAPC4idwGHgQ8CGGP2iMjjwJtY71efsDPOAD7OmfTmn9sfYAWy74vIfqyRzO2z7POC5XBYB7qVejPWdqIJQrE4h/pGGArHEIfgcAjxpKF/JEY8ae1D2dhYw300patDn99QzvsvO49wPEFbR5DXDvczFInzk1+f4Ce/PoHbKbyzsY6PvHMVa+pKCUUTY/5YjP0xFLHWdB7e3kUskaB3OE40kcTjdFDhd/Hw9i42NQdmXQKnGCzkN+rFcP9VYU010DwnIn8B+EXk3cAfA/85mx9sjHmB7GsoAFsmuOaLwBeztO8CLsrSHsEOVGqszNFOPJEEsU4XNVgbHhNixlQr2NhYk/XYgZsuXELbm918/dn96RpmsYThuX09PLevh8b60gn7IALdgxE6Tw4yFI7hcFibQeNJw6mhKLGEtQT48PYu3E5JJ0CUeFyEovF0IJoL+QwEC/2Nej7uv1rcprrx4X6gB3gDuAdrr8r/l69OqfnlcTkwwGg8mf5IGvA4ZUqbMX/2xkkq/W7W1JayuqaEmhI3LntBp6tnZMKhr9tpPScatwKdiICx//UhpAPdkf7QmNNDAfxuJ0f7sycjTFcqEASHImMCwVytE2W+UafW0dxO4eHtXXPy+vmW7/uvFr+pBho/8B1jzAeNMbcC37Hb1CIQKPdhkqTHlyKAgSWVflbVlNBQ4aPc58blyP7ncmIwjM9tPeZxOagr87K61k9NiZvfvXxZ1mvsn0Q0nkwHnGTSkDSGRNJgjMHlsGqWraguITyu8vV0jhnIJd+BYKG/Uef7/qvFb6qBpp2xgcUPtM19d1QhGGNwOASPw4HP5cDjcOBwSLq91OuivtzLytrsmWxLK/xEYmOzzkbjhpU1pfyPzetwTfBXNhpP8nvf/BUOcVDiceJ0WJlqLnuKaWVNGYf7Qty2YTmjcaskjzGGUDR+1jEDubLWJns834FgRXUJvSOjdPUM03lykK6eYXpHRhfMG/U91zcSS5hJ779Sk5lqoPEZY4ZT39hfL4z/S1ROw9EEy6p8uJxCwn6jX1blYyR69vk5HpeDyhI3Syv9rK4tYUmljz+8djUnB8LsDQ6nP04OhLn9KisbfbLTEEaiCfpCUQYjCSJxQyJp7cOJJw23X7UCYwyXrqji3c0BugcivHlikOBghFuvWDYmI+3TT+zmtcP9nBwI89rhfj79xO50MMk1NZbvf7Ff01hDcChKNJHEIRBNJAkORblmgqO2i82m5gAPvPdCAuU+BsIxAuU+Hnjvhbo+o6ZsqskAIyJyhTHmVUgXsQznuEYtEKkTMBvry9JtqfNmJpOaZvrhzkOMG9AQS8JjLx9iY2MNkyWU37t5Hf/x+nEO28cZGCCehMFInK1vBVlR6+dIb5in3+ymutTDUrsEzmO7jnB+Qzk3XbyUB5/upD8Uw+kQXE4HxkB/KMaDT3eyqTmQM6st3wez7ejqo77Mw1DkzM8v97nY0dXHvXPyE/JPN8Sq2ZhqoPkk8K8iktoIuZQFUJxSTc1s32h3HOjP2v760UGqSjyUep1WirM5U8pBxJqeev/ly9i+9xSxeIJowjAUiRFNGJIG/uvNbv7rzW5KPU7cTge1pR6EMyVwvvlcFy3nVfJ2zzDGWNluxliv7RDSxwTsCw4xEJo4q21Tc4AHIG8lbI70h6gr81KfEbiNMQtmjUap2ZpSoDHGvCwizcD5WO8TncaYWF57pubNVN5oZ5r+W1Pq4e53NfLV9n04HVYASNrVlW+70irocGIwTIXPhSDUlLgZjScZjMQYjMRJGuwpvASnwzFKPU7KfS5KvU5ODoaJJ5NWAsG4jTpxAyJWYyqrLfO8muS49O18/os9NWLMPKFUF9PVuWTSQCMim40xW0XkA+MeahIRMsrGqAVusjfa2e4DSdU0S9U6K3E7+Og7V3PntWsIRxMsTR2s5rYSDHxuJwZYVVPKh65Zxd/8rJP+UBSDFXRGogkEqCpxs/NAH+PrdqZijp3MhtsphGNWVlvqGAGw0rfnQ76n5pQqdrmSAW6wP/+3LB+/k8d+qSIyF+m/lyyv4sLzKlla6eOiZVVcuaomXZPtEzeuJWkgEk9gsErlxJOGOzau5MpV1fz5TefTUOGlttRDqX0EgcFah7n/x2+QJWcBsDagBgcjrK0vp7bUMybZobbUQ1NDxRzcndx0MV2d6yYd0RhjPi8iDuDnxpjH56lPqsgc6Q9R5XePaZtO+m+uEdG7L1yC2+mwpub6Rlha6eeOjSu5fFU1xhg2NtbwSdanS+CsqSulKVDO26eG+fXRgQl/bgIYHo3zgcuX8dDWfdSXeyn1OInEk/M+otDFdHUuy7lGY4xJisifABpozlGzXWOYSgmTbG/EyaQhFEsQGo1z9drarCVwugcj/ME/vpS1+kAkluSJV46yuTnAvZvP1GpbXl3Cf19AtcaUWuimmnX2jIh8CvgRMJJqNMYs2pL755rJFvtzrTE4sUYP46W2QM50ROSwT8os87rSZ+2MjCYIRa2TNAEaKuz9PwlDttN3vrHtbf7hube5fGU1N13UwHXr6tKFRY+fDlPhd1Oa4xgFpdTsTDXQ/CHWtPgfj2vX1cxFINfUVq6sNHFAtnd5sVcAV1SXcODU8Fn7SNbUlZ190QTGnizqJWIfeTAyGmdFlZ9DfSHcIlZGWdJKjy71OjEIw6NxXjnUzyuH+vmKax/vbKxlS0uAjWtqiMQSOB3C7iOn+cFLhzl2OrzgqisrVeymGmguwAoy12EFnOeBf8hXp9T8mk513mxTVE6HA2OSVvl/ex+L2O1g7YzfedDKDkvtjO8ZjvIHG2e+M97nduJzO6kp9fAX72nhz//t14yMWiMdh1Mo97j4zE3NXLayip0H+mjr7GbH271E40m27e1h294eKnwubji/nmUVfv5j9zHcTgelHicnB8L85ZO/4a+46JwJNgv5GANV/KYaaB4FBoGH7O/vsNtuy0en1Pw60h/CKdDVM5wecdSVedJTW7lGPI11pbx1cggjGYHIQGOddUTAjq4+Kn0uTodjxIwVbKr87mntjJ/sjbD1giV89Pgg33rhAMOjcfxOBx+8cjnvWFuLMYbrmuq4rqmO4dE4z+87RXtHN68dPs1gJM5/7j4BgNMhVPpcOAS8LicJk+Drz+7nmnW1eF3Oybq24C30YwxU8ZtqoDnfGHNpxvfPisjufHRIzb9yr4t9wWGcGTvnj52O0BSwprZyjXhuuWgJb3UPpfenpEY1t1y0BLB25g9F4ridjvQ+lqFInH3BoSn1L9cb4bbOIE+8eswq/Flj1cliFvMAACAASURBVC17ek831zTWsrGxllDUWtcp87q45aIl3HLREk4Nj/JsZ5C2jiD7gsMkkoa+UIy+UAyvy0G518mh6AjH+sN43dYm0TKPC8f4TTtTVMwjBj1vRuXbVItqvmYflQyAiLwD+GV+uqTmW/p0a5PxkdGeq7rxjq4+SjxjHy/xONnRZeWKZO7MF8TaoZ9x3kwuufbxPLy9i+FIjAOnRvjN8UEOnBphOBLjkecPpCtPr6ot5bwqP5V+N26ndZTBBzes4OEPX0lzQzkVPhduO4iMxpOcGonRMxzlzx7fzb+/epSDPSMc7gsRHIqkqxhPVb7Pu5mthX6MgSp+Ux3RvAP4iIgctr9fCXSIyBuAMcZckpfeqXmRqt58ajianjpbUuZNV2/Old685/gAw6Nj886GRxPsOW7tcZntzvxcWWt7jg8wGIlbNdSwXr8vFEv//JTUuk4tMBpPEIkmCcXifPTa1XytfR8VPhcInA7FCEUTJA28fuQ0rx85zdfa93G1nURw9Zpa/B4npXZGnM89+dRasY8YtESOyrepBpqb89oLVVC5qjfnSm8eisSzvm6qfX1DRZasM/eUs85yvRGmAuL4MUa2Yw5SvC4nXpeTStzctmEFVX43//j8AY6fDrGuvpwPXrkccUBbR5Bf7T9FJJ7k+X2neH7fKRwCV6ys5o6NK7h0RRVelz215nXhcp49STDbDa/5piVyVL5NtajmoXx3RBVOrjeaTc0Bbj16Ol2rrNTj5GPXrUn/a3yiSSQz7vWXVLpm9EaWq3+JCQ68mah9PIdDuPnipdx88VLAGu2ERhOMRONc3VjL83t7+HLbPkZjCSL2Mde7DvWz61A/dWUeNjcHaG1pYG19KaVeN2U+15i9OcU+Ysh39WqlpjqiUYtYrjeabZ1BvvfioTEHd33vxUNcsrxqSm9Gs30jy3V9qiL0eJnr9rkW4yd6PJZI8pNfn6DK78Jb7iWeTDIUiTMQto4zODUc5fFdR3l811FW1ZbQ2hJgS3MD51X5KfE6Kfe6F8SIQUvkqHyS6Sxqngs2bNhgdu3aVehuFJWbv/Ic+3tGcNobIo2BhDGsqy/l6T+9gdX3/3TCaw9+6T1571/j/T/NWhXAAXR96T1jstYy3+hThS1zPX7dg1vTU1/WEQeGRDJJ/0iU91xyHu2dQY72jz0H8KLzKtjS0sCm8+upLfXy+pF+fvDSYY6fDuuIQS1KIvKKMWZDtsd0RKNyOtAbsjZbOs6c52KShgO91hpDudfJ0OjZ6yHl3vnZf+J2OYjFk2OCjcNuhzNZaafDMZIZ+3hSi/G5TuDMnPpyCjgRovEEa+rKuOeGtXzkmlV85Zm9PL2nm7g9tPrN8UF+c3yQrz+7n6tWV/PulgY+/98uoMLvTpfVUepcoX/takqSxhCPJ8acYOm01yAuWlZF58kBBsLx9Bt5pd9F85LKeenbmtoS9veMpEvQpEZca2rPZMVNlpWW6wTObFNf8SR84sZ1nFfl56v/9RY/fePkWWtVLvu1Xuzq48UuqzKCx+XgvEo/d127hs0XBCjzuiidxf6cxaKY9xmp2ZvqPhp1DguUe4knGbMhM5602sF6Iy73eVhTV8pF51Wwpq6Ucp9n3tYg7r+lhaoSN+KwAow4rEPR7r+lBcjIPpOMj4z2XPt8cp0n88jzB7KX5hH4y/e00LKkHLCm3SKxJF2nRvjLp37Dpx7fzfP7ejjYO8LJgQhDkRjJKSYwLCbFvs9IzZ4GGpVTqceZPq0y8/TK1CFkhT7Ya1NzgL+79VIuX1HNkgofl6+o5u9uvTT981Nv3sac+chsd9u/XDJpMMak2zP3+fz66Gn2HB/g+ECEPccH+PXR0+nHQrHsadSjCcN7L1uG1+2ktvTMhlCwgs4v3+7lj3/wGh/5zk6+uW0/rx8+zaG+0DkXdObiYD1V3Ao6dSYi38E6qTNojLnIbqvBOo5gNXAQuM0Y028/9lngLqyq9PcaY35ht18JfBfwAz8D7jPGGBHxAt8DrgR6gd83xhycp19v0RiOJlhe7R+zobOuzDNmn0qhs5Ym+/nlPheDWfb6lPusP//1DRW8cbSf4eiZVZ4yjyN9AudDbXv5avu+dGbbYCTOV9v3AWeOqZ5IfbmXI30jDITiOByCxyVWdekkYGfLHe0P8+iOQzy64xDNS8ppbQmw6fwAtWVe/G4npV7nop5eK/Z9Rmr2Cj2i+S5nbwa9H2g3xjQB7fb3iMgFwO3AhfY13xCR1GrzN4G7gSb7I/WadwH9xph1wFeAB/P2myxiK6pLcDkdNNaX0bykgsb6MlxOR9HsA8llS3P9pO1LKjxjggzAcDTJkgoPAP/wXBdJM3bmLWms9qmIJQziEJwOBw4El8OBwwE+l4NHPnwlt21YblUlADpPDvH1Z9/mtod38JkndvPk68c43BtKj3QGI7Ep7w9aKFZUW/XpMhXTPiM1ewUNNMaY7cD4w9Peh1UZGvvz+zPaHzPGjBpjDgD7gY0ishSoMMbsMFau9vfGXZN6rSeALaInXE3bPdc3EkuYdI2vUDRedPtAJtN5cpjx/9HFbgf4xZ7sawGp9tTU2LhScBNOmY2XOTUHqaKjgt/t4LIVVVyxshqHgMuRXj4iaWDnwX7+5ued/N43f8Vf/eRNtnZ2c/J0mMN9IU4MhBdN0Lnn+kYGwjH2BYfoPDloJWeEYwvm70vlVoxZZw3GmBMAxpgTIpKaD1kGvJjxvKN2W8z+enx76poj9mvFRWQAqAVOZf5AEbkba0TEypUr5/SXWQzmYud4IbOK9geHMdhv4gIYK1jsD1qBZqKAkWq3LznLVP/Fsr6hImtW3vollQQqfPzTC10MhuNj0rMF8HucxBJJIvEkWzuDbO0MUul3s2l9PVtaAlx4XgW9Dgdel4NSjwu/x4nHVehJipkRsP67GANGpnxv1cJQjIFmItn+9swk7ZNdM7bBmEeAR8DasDnTDi5ms1mDKfR5J/HU6n/qr8GOHPEpblZ2O4Vo4uznpkYquSoTXNNYw0sHetPPSRoYCMe5ptE6+K2rN3TWhlMDROMJfvzxa9m+r4e2jiC7j5xmIBzjyd3HeXL3cZZW+uzyNwFW1ZbCCNbhbV4XJR5nzmKfxeLh7V1U+N0sqfSn24qp6KiavWL850+3PR2G/Tk1r3EUWJHxvOXAcbt9eZb2MdeIiAuo5OypOpVnhc4qSmfMjcs6m2LxaMp9rqxTb6l1lfWB0qzXpdp/9sYJMGPjHMZux1rDySaehPoKL7998VK+fNulPHb31dx9fSNr663XPTEQ4QcvHeb//u4u7vn+K/zrriOcGAhzOhTl+Okwh3tD9AyNTvtYg/mmxxQsfsU4onkKuBP4kv35yYz2fxGRLwPnYS367zTGJERkyD4v5yXgI8Dfj3utHcCtwFZTzP/HLVKFzipaV1/G3u7h9PpKakF/Xf3Uqkdnrz7tSlefPnAq+++Raj/QG8LllPTR1gCJZDJdWWEySyv9xBJJhiNxXA4Ht1+1gtuvWsGBUyO0d3TT3hmke3CUfcFh9gWH+Yfnurh8ZRVbWhp4V1Md8aSLoUiMlw/08fiuo5wYDLOyuoT/fsPaohktFHvRUTV7hU5v/iGwCagTkaPA57ECzOMichdwGPgggDFmj4g8DrwJxIFPGGNSk+sf50x688/tD4BvA98Xkf1YI5nb5+HXUuMU+o3k/ltauPeHrzIcPVPZoMzjTG/ozCVX9enRCUYkme2TVVbIxe10UF3qobrUQygaZygSZ01dKR97VyN/eN0a9hwb5Ic7D/PyoX4SScOrh0/z6uHTfLVtL9esrWVVdQk/fu0oI3Zm3fHTEfacGODBD1zCTRctxVngtOliKDqqlQnyq6CBxhhzxwQPbZng+V8EvpilfRdwUZb2CHagUoVTDG8kHrcTT9KQSBqcDsEzjfWLXMck5BIo93Iko+imMdY6zdJK77R/jxKPixKPi3jCqiI9FIkTjiY41BdiaYWXhDEMhOKE7Hu8fe+prK8zFEnwwE/epHlpBX6Pk+//6iDff/EQoVgy/fvl2iM0Vwp9TMG2ziCffmI3Q5E48WSSU0OjfPqJ3fxtxqbfh9r2nvXff77uz2JQjFNnapEp9BvJw9u7qPS7WTrDxeZtnUGeePUY9eVeVtqB8olXj035mASTzH5k9UTtU+HKGOV86l+P4XEKXpcVPMu9bkaicZzioKHSy8sH+7O+xsnBUQAe2fY2391xKJ0lMxiJ85W2qW1InSuF3PD74NOd9IdiOB2Cy+nAGOgPxXjw6U42NQd4qG0vX9u6P52CHo4l+NrW/cD83Z+FTgONmheFfCOZ7RpRrurOubLOekZiuBzWczKnznpGYrP91QA4PhCmyu/GYO3VSRhDicfJUCTOg793CZv/93MTXvuxR3dxuC90ViqmAb6x7W3ueMcqSjxO/G7noq1M0HVqxKpOLhnVycXQdWoEgG+9cMAOMtYam0MgnkzyrRcOzFmgWexTdxpo1KK3orqEg73DDIbHBorVtdZifqri83ipJZRc1Z3dTgej8bNHJ+6MY50dImO+T8xiNJPt90utgTmcgtMYhkfjnJcxgptI6s00m0g8yVAkxlAkhojgczso8Vinh2Y7snqxGokmGL89ySGTHxU+HYVO/58P585fizpnXdNYQ3AoOuaE0OBQNL2PZVmlL+t1qfZc1Z0nChqp9sa60vSBaQZD0hiSxmqfC+MrN4RjCZIG7t3SxHlVkwebD1y+bNLHR1NVEYwhHE3QOzzK4b4QR/tD9I9EiUyxOsJsbesMcscjL3Ldg1u545EX57Sy85raEuu/T0ZR1aQhfcxEqcd51og1ac4UlZ2tQqf/Q37vL2igUeeAHV191Jd58DgdJA14nA7qyzzs6LK2VP31+y+mwutMT3U5BCq8Tv76/RcDuas7Ox0OnPZ0mJDKKCOdzvyZm5upLnEjQDyRRIDqEjefubkZmLjCwFQnqiarnp1r0+afbF436eO3/sMOHny6k1fsjLaUaDxJv71f51DvCMGhCMOj8byUxEkt1r92uJ+TA2FeO9zPp5/YPWdvhrmOmfjYdWtIGmu6LGmS9merfS4Ueh/RfBzToFNnatE70h+irsxLffmZkYsxJv0/8qbmAA/dccWEyQrZ99G40/toUgevuSY4eG1Tc4C/vfXSCV/f5YBYlkHRdKrJ5GsNbCSa4Bd7uvnFnm5qSz3c2FxPa0sDTYEyUmUDE0nDcCTOsF0h2+d2Wus6Hmc6QWE2ci3Wz1bqmImJ/vuk1mHylXVW6PT/zBEVWJmNc12ZQQONWvSm8j/yZG/UufbR3H9LC596Ynf6X/ROh1DldY/ZpzPZ61f43fRmSQyoHJfAkA/VJZ5JH79vyzraOoLsOT5I70iUJ145xhOvHGNlTQlbWgJsaQ6cNT0XiSWsKbURawHd73Hy6C8P8OiOgzNKn861WD8XcgXqe1vX5y3DrNDp//OxoVqnztSiN9vq05uaA9x6xTJ6hkbpODlEz9Aot16xLP3GlOvgtVzWN1SwpMJLqceJ2ymUepwsqfCmz8OZrWvWVE/YXl06eaB532XL+Ps7LufPf+t8llT40ps7D/eF+KdfHuRD397Jn/zLa/zHa8c4HYqedX08meQbW/fxf7a9zdBogkTSpNOnH2rbm35evtcIilmhDw6cj2MadESjFr3Z7uOZyj6a2Uxd5RoxTbWPE6bHioMSt4NQxvxcidsBMrV/Z+7s6uP7Lx3C7RTW1PoZiiQYHo3jdAiDkThvnhjkzRODfP3Z/Vy1uoYtLQGuXVeXXnf44ctHJkyf/tA1q9l1oI+//lnHhFlXqalJSZr01GTSwLq6xVOiJt/p/5P9fczHiEoDjTonzOZ/5HzPYc9FIJwsPfZIf4jG+jNrKjB2jaq5oZTO7rOnoZrqS3A7HTz28hFcDkkHjkq/A4/LQU2Jhw+/cxXtHUG27+1hJJrgpQN9vHSgD5/LwbXr6tjSEiCSJfUbrPTp06Eo39j2NmBwO63sLuvnJNL3dypTk2piuf4+5mNDtQYapXKYjznsfAbCXGtUT//pJm7+yrYxwaa5oZSn/3QTAMHhCOVe15i9Rj63g+6hCFesrOaKldXct6WJHV29tHV0s/NAH5F4kvbOIO1TmAI7MRimwuey0ortsY9ThEO9I0RiiZyL9WpyU/mHUr5HVBpolMqh0FlBueQKhFOZGkkFlWxW1ZQSHIrgdztJ2JUHItEkSyrOJAF4XA5uWF/PDevrGYrEeG7vKdo7utl9dGDC120ot9aHllb46R0ZHZPiG44lCJT7OH46jMvh4MJllXzrzg2LukJBvhS6ejpoMoBSORX7Uda5FnNnu9ic+v3DsYRVGSGRxBj40NXZT6Mt97n5nUuW8pXfv4zH/ugd3HLhkqxvNC6nk3995Si/ffES4knr9Q3W53jScPtV1vFT8aRVoaB7MMIh+xjrgVAsvWFWTW4+FvtzET2eZawNGzaYXbt2FbobqsikFlOLceomcw4+c8Qyl5lLE/3+kViCwXCMkWhi0sPVdnb18U+/OsjR/hDRRHLMYW8Ogca6MkbjCUbjCc6rLOH2q1aw0a7cMBm304HP7aTUa9VjkykevXAumY+/DwARecUYsyHrYxpoxtJAoxaiQgfCzGML4jnquCWN4TfHBmjvCLJtbw9D9kZPsKbgrmmspbUlwMY1NWPqw+UiYr2R+j3WhtHpXLvYzcffhwaaadBAo9TMWVOLCQYjMcJTKDoZSyTZeaCPto4gO7p6x0yHlftcbFpfz5aWABctq0xv2Jwqt9NBicdJiceFz+3Q0U6eaaCZBg00Ss2N0XiCgXCMkdHJp9VSRkbjPL/PSiJ47cjpMYUsA+VetrQEaG1pYM0MipE6RNIjnRKPq+Cnii5GGmimQQONUnMrNa02GIlNuehm7/AoW9/qob2jm73dw2Mea6wvpbU5wObmAIGK7JW3c/G6nZTY02y5Co+qqdFAMw0aaJTKD2MMQ6NxBsPTyxg73BuivbObto4gJwYi6XYBLlleyZaWBm5YX0e5b2a14ZyOM2s7fve5ddbOXNJAMw0aaJTKv6lmq2UyxtBxYohnOrrZ9lYPA+EzhUjdTmHjmhpaWxq4prEWz3RKX4/jcVkHvJXoaGdaNNBMgwYapeZPImkYisQYDOfOVssUTyTZdaif9o4gv9x/akyZm1Kvk+ubrCSCS5dXzWo9xiFiBRyPNdWmo52JaaCZBg00Ss2/VLbaQDg27VM7w9EEv3z7FG0dQXYd7BuTRFBb5mHz+QFaWwKsC5TNOvNMRzsT00AzDRpolCqs6WarZeoPRdlmJxG8eWJozGOrUmfotARYWjn5EddT4XSkMtmsqtvneiabBppp0ECjVHFIJA2D4diUNoFmc+x0mK0dQdo6ujnSHx7z2IXnVdDaEmDT+gCVJXNzwFzqZNESj2tWa0QLlQaaadBAo1RxMcYwPBpnMBJndJrTaqnr93YP097ZzdbOHvpGzhzQ5nQIV62uZktzA9euq52z6TC305Het3OulMY55wONiNwMfA1wAt8yxnxpoudqoFGqeM0kWy1TIml47XA/7Z1Bnt93ilBG9QK/28l1TXW0tgS4YmX1nE2FZZbGKfUs3oSCczrQiIgT2Au8GzgKvAzcYYx5M9vzNdAoVfziiSSDkThD09gEOt5oLGGfoRNk54E+4hmvU13i5sbzrfWc5iXlczoiWaylcc71QHMN8AVjzE32958FMMb8Tbbna6BRauGY7bRaykA4xva9PbR1BHnj2NgzdJZX+9ncbGWuzXVpfRHB53ZQ4nbh9zgX9NrOuR5obgVuNsZ8zP7+w8A7jDF/kvGcu4G7AVauXHnloUOHCtJXpdTMjcYTDIbjDI/GZzStlnJyMJJOIjjYO/ZwsPOXlNPaEuDG8wPUlHpm2+WzuBzW2k6qSsFCymQ71wPNB4GbxgWajcaY/5Ht+TqiUWphm+km0PGMMXT1jNDWYSUR9AyPph9zCFyxsprWlgDXNdWNOX11Li2kmmyTBZpz4Sjno8CKjO+XA8cL1BelVJ45HUJViYdKv3tW02oiwtpAGWsDZfzR9Y38+ugAbR3dbN97iuHROLsO9bPrUD/etn28c20trS0NXLW6ek4X+0djCUZjCfpDY/ftlCywI63PhRGNCysZYAtwDCsZ4A+MMXuyPV9HNEotPpGYdUbOTDaBjheNJ3npQB/tHd3s6Oodc1pohc/FJrsSwYXnVeRtoV9E8LocRbVv55yeOgMQkd8GvoqV3vwdY8wXJ3quBhqlFq+5mlZLGY7EeX5fD22dQV4/fJrMd9MlFb50JYLVtdM/Q2c6imHfzjkfaKZDA41Si58xhpFogqEpngQ6FT1Do2ztDNLeEWR/z9gzdNbVl7GlxTpDp77cOyc/byKFOtJaA800aKBR6twSjSft2mpxknP0fniwd4T2jiBbO88+Q+fSFVW0tgS4vqmeMl/+l8kzRzs+V/7WdjTQTIMGGqXOTcnkmYPZYonZT6uBNXLac3yQ9o4gz74VZDASTz/mdgrXNNaypaWBd6ypmZd1ltS+ndSIx+uau0w2DTTToIFGKRW2jywIReO5nzxFqTN02uwzdEYzztAp87q4fn0drS0NXLK8Esc8rbHMZQVqDTTToIFGKZUSSyQZmmWpm2zC0QQv7D9Fe0c3uw71jzlDp77My+bmelpbGmisL53Xhf1UBeqZjHY00EyDBhql1HhzVeomm74R6wydto5uOk+OPUNndW0JrS0NbG4JsKTCN6c/N5dUlYJS79Qy2TTQTIMGGqXUZOZyT854R/tDtHcEae8McnTcGToXL6uktSXADevrqfDPzRk6U5XKZCvxTnyktQaaadBAo5Sairnek5PJGMNb3UO0dQR5tjNIfyiWfszlEDauqaG1JcA1jbV4C1CaJvNIa6/LqkCtgWYaNNAopaYjtSdnMBwjMsfTamAFtFcP99PeYZ2hE874GSUeJ+9qqmNLc4DL5/AMnelwiJVQsKTSr4FmqjTQKKVmKp/TaqnX3/G2fYbOwb4xCQo1pR5uPN9KIljfUDbv1QHWBso10EyVBhql1GwlkobBcIyhyNxPq6UMhGJs29tDe0c3vzk+OOaxFdV+u/xNA8uq/Hn5+eNpoJkGDTRKqbmSmlYbCMfmPFst08mBCO2d3bR1BDk07gydlqXlbGlu4MbmeqpL5v4MnRQNNNOggUYplQ/5nlYDK7C9nT5DJ8ip4Wj6MYfAhlXVbGlp4Lp1dfg9c5tEoIFmGjTQKKXyaT6m1VI/59dHT9PeEeS5fT2MjJ4ZUflcDt65ro7WlgAbVs3NGToaaKZBA41Saj7M17QaWIVDXzzQS3tHkBfHnaFT6XezaX09W2Z5ho4GmmnQQKOUmm/zMa2WMhSJsX3vKdo7u9l9ZGDMGTpLK31sbg7w7pYGVtaWTOt1NdBMgwYapVShzNe0WkrP0CjtnUHaO7p5u2dkzGNNgTJaWwLc2Bygriz3GToaaKZBA41SqtDmc1ot5cCpEdo7umnvDNI9OJpuF+DylVVsaWngXU11lHmzn6GjgWYaNNAopYrJfE6rASSNYc+xQdo6u3nurZ6zz9BZW0trcwMbx52ho4FmGjTQKKWK0XxPq4F1TMLLB/to7wjyy7d7iWacoVPuc3F9Uz2tLQEuXl5JU0PFhIEm/+eIKqWUmjWnQ6gu9VBV4s7bkQXjuZ0O3rm2jneurWNkNM4L+0/R1hHktcP9DEXi/PSNE/z0jRMEyidfw9FAo5RSC4iIUO5zU+5zz+u0WqnXxU0XLuGmC5fQOzzKs2/10N4R5K3uIYJDo5Neq4FGKaUWKJ/bic/tJFE6v9NqtWVebr1yObdeuZwjfdYZOn81yfNnvx1UKaVUQaWm1VbU+AlU+PDN4xk1K2pK+Oi1qyd9jo5olFJqkRARyrwuyrwuRuMJBsNxhkfj85KtNhkNNEoptQh5XU7qy53UlnoYisQZjMSIJeYnW208DTRKKbWIORxCZYmbyhI3oWicwXCcUDSe+8K57MO8/jSbiHxQRPaISFJENox77LMisl9E3hKRmzLarxSRN+zHHhK78puIeEXkR3b7SyKyOuOaO0Vkn/1x53z9fkopVYxKPC6WVPpYUVNCpd89b0c/FyoZ4DfAB4DtmY0icgFwO3AhcDPwDRFJrWp9E7gbaLI/brbb7wL6jTHrgK8AD9qvVQN8HngHsBH4vIhU5/F3UkqpBcHtdFBb5mVlTQl15d4xO/zzoSCBxhjTYYx5K8tD7wMeM8aMGmMOAPuBjSKyFKgwxuww1qrW94D3Z1zzqP31E8AWe7RzE/CMMabPGNMPPMOZ4KSUUuc8EaHC52Z5dQnnVfkp87pmfEzAZIptjWYZ8GLG90fttpj99fj21DVHAIwxcREZAGoz27NcM4aI3I01WmLlypWz/iWUUmqhSe/JyUOpm7wFGhFpA5Zkeej/NcY8OdFlWdrMJO0zvWZsozGPAI+AVetsgr4ppdSil1nqZiSaYDAcIzLLUjd5CzTGmNYZXHYUWJHx/XLguN2+PEt75jVHRcQFVAJ9dvumcddsm0GflFLqnDOXe3KKrTLAU8DtdibZGqxF/53GmBPAkIhcba+/fAR4MuOaVEbZrcBWex3nF8BviUi1nQTwW3abUkqpabD25FjJA7WlXtzO6YWOgqzRiMjvAn8P1AM/FZHXjTE3GWP2iMjjwJtAHPiEMSY1Zvs48F3AD/zc/gD4NvB9EdmPNZK5HcAY0ycifwW8bD/vAWNMX/5/O6WUWpycGXtyRkatTaDhaO5pNT2PZhw9j0YppaYuGk8yEI4RqPBNeB5NsU2dKaWUWkA8Lgf1Oc6j0UCjlFIqrzTQKKWUyisNNEoppfJKA41SSqm80kCjlFIqrzTQKKWUyisNNEoppfJKA41SSqm80kCjlFIqr7QEzTgi0gMcmuQpdcCpeerOFHHLJgAAB0JJREFUTGj/Zkf7Nzvav9lZyP1bZYypz/aABpppEpFdE9XzKQbav9nR/s2O9m92Fmv/dOpMKaVUXmmgUUoplVcaaKbvkUJ3IAft3+xo/2ZH+zc7i7J/ukajlFIqr3REo5RSKq800CillMorDTSTEJHviEhQRH6T0fYFETkmIq/bH79doL6tEJFnRaRDRPaIyH12e42IPCMi++zP1UXWv2K5fz4R2Skiu+3+/U+7vVju30T9K4r7l9FPp4i8JiI/sb8vivs3Sf+K5v6JyEERecPuxy67rWju3wT9m9H90zWaSYjI9cAw8D1jzEV22xeAYWPM3xW4b0uBpcaYV0WkHHgFeD/wUaDPGPMlEbkfqDbGfKaI+ncbxXH/BCg1xgyLiBt4AbgP+ADFcf8m6t/NFMH9SxGRPwM2ABXGmN8Rkf9FEdy/Sfr3BYrk/onIQWCDMeZURlvR3L8J+vcFZnD/dEQzCWPMdqCv0P3Ixhhzwhjzqv31ENABLAPeBzxqP+1RrDf3YupfUTCWYftbt/1hKJ77N1H/ioaILAfeA3wro7ko7h9M2L9iVzT3by5poJmZPxGRX9tTawWdGgAQkdXA5cBLQIMx5gRYb/ZAoHA9s4zrHxTJ/bOnVV4HgsAzxpiiun8T9A+K5P4BXwX+HEhmtBXN/SN7/6B47p8B/ktEXhGRu+22Yrp/2foHM7h/Gmim75vAWuAy4ATwvwvZGREpA/4N+KQxZrCQfckmS/+K5v4ZYxLGmMuA5cBGEbmoUH3JZoL+FcX9E5HfAYLGmFcK8fNzmaR/RXH/bNcaY64AbgE+YU/VF5Ns/ZvR/dNAM03GmG77DSAJ/COwsVB9sefu/w34gTHmx3Zzt70+klonCRZT/4rp/qUYY04D27DWP4rm/qVk9q+I7t+1wHvtefzHgM0i8s8Uz/3L2r8iun8YY47bn4PAv9t9KZb7l7V/M71/GmimKfVHYPtd4DcTPTfP/RDg20CHMebLGQ89Bdxpf30n8OR89w0m7l8R3b96Eamyv/YDrUAnxXP/svavWO6fMeazxpjlxpjVwO3AVmPMhyiS+zdR/4rl/olIqZ0kg4iUAr9l96Uo7t9E/Zvp/XPNfRcXDxH5IbAJqBORo8DngU0ichnW/OVB4J4Cde9a4MPAG/Y8PsBfAF8CHheRu4DDwAeLrH93FMn9Wwo8KiJOrH9wPW6M+YmI7KA47t9E/ft+kdy/iRTL399E/leR3L8G4N+tf4/hAv7FGPO0iLxMcdy/ifo3o78/TW9WSimVVzp1ppRSKq800CillMorDTRKKaXySgONUkqpvNJAo5RSKq800Cg1RSKyWjIqeWe0PyAirTmu/YKIfCp/vVOqeOk+GqVmyRjzuUL3QalipiMapabHKSL/KNYZMf8lIv7/v727CbGqDAM4/v9HlJG4iIZ2UUHgR0gfU2BMREhK7aJwIKIyEkKihUkbA2nhWolEZlEOhAwoZCCSK5vGGiMcp++EYIY2LUqYBjMdTR8X73vletOcS/cQ2fODC+c857znPfcs7sN77+V51GH1GQD1SfWY+qn6trUPSrVUHVWn1Nfq+W+0bW9VD9btlbWkC+oO9YiX9qVZqe5tXVh9XP2ADuqL6ofqPnVafVXdYOnR8rl6Sz1vVN2mjqvfqg/VeJ+lL8pRdUj9Sb21kSebrlmZaFLqzt3A9ohYBvwGPN06oC4AhoAnImIA6OsYuxhYTakPtbnWghsDHqnH+4GFNT4AHKrxTRHRDywHHlWXAweBJWprjrXAzivc8z3As3XeLcAfEXEfcBh4vu28myPiYWA98F6NbaaUb7mfUu/q9qs8n5T+IhNNSt2ZjohWSZ0J4I62Y4uBqYiYrvsjHWP3R8RcbST1C6XMxwTwQK0rNUf58O+nJJ9WolmjHgUmgWXA0iglPd4Hnqs10VYAH13hnj+OiBMR8SswC+yr8W867n8ELvZhWlSvO0ApSklEHABm/ubZpHRZ+RtNSt2Za9s+B9zUtm+XY6+PiLO1wvBaYBz4GniMUor9B/VOYCPwYETMqMPAgnqNnZSkcRrYExF/qk9RViEAL19m3vNt++e59DOgsx5VzOM9pXRVuaJJqXeOAXdZGr0BDM5z3BglmYxRVjGvAF/WVcsi4CQwq95G6Q0CXCzj/jPwJjBcY3sj4t76OtLl/Q8CqAPAbETMUlpIr6nxVcC/3ugv/ffkiialHomIU+p64IB6HPhinkMPAZuAwxFxUj1dY0TEV+ok8B0wBXzWMXYX0BcR3/fgLcyo45Tk9lKNvQWMqIPAJ5RmVyd6MFf6H8nqzSn1kLowIn6v/Xi2Az9GxNYG53sHmIyId//hdUaBjZ2rIPVG4Fz9Wm4FsKN2/Uxp3nJFk1JvrVNfAG6g/Hg/1NRE6gTla7XXm5qD8i+z3ep1wBlgXYNzpWtUrmhSSik1Kv8MkFJKqVGZaFJKKTUqE01KKaVGZaJJKaXUqEw0KaWUGnUB5kn2GWj+EHIAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.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": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f57a68a46a0>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f57a41919e8>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x='stroke',y='price',data=df)\n",
"#its too much varying and not a good fit"
]
},
{
"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": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f57a416a4a8>"
]
},
"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.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": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f57a4191160>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false,
"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": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"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": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"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": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#convert series to dataframe\n",
"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": 11,
"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": 11,
"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": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 14,
"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": 15,
"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": 15,
"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": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 16,
"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": 18,
"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": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]\n",
"df_group_one"
]
},
{
"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": 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>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": 19,
"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": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 20,
"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": 21,
"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": 21,
"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": 22,
"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": 22,
"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": 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>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"dfgroup=df[['body-style','price']]\n",
"dfGrp=dfgroup.groupby(['body-style'],as_index=False).mean()\n",
"dfGrp"
]
},
{
"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": 28,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAD8CAYAAACFK0QrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAXRElEQVR4nO3dbYxc1Z3n8e+v2+ZhIYQEE+K1PQFNrMwA0vBgOUSsVuwwMzEMihkNkRxpA8ogeYOIFrSjrMK8mNnsiFXyYsksSwLxDiw4mwmx8oSVNZNBJCOCxJNhzaPD0hqS4LWFF5IAVgDT3b99UaezRVHddbu72tX33t9HOupbp8699S8Q/zqce865sk1ERNTb2KgDiIiIxUsyj4hogCTziIgGSDKPiGiAJPOIiAZIMo+IaICByVzSMZIelvS4pKclfb5PG0m6UdKEpCcknbM04UZERD8rKrR5E/h924ckrQTul3S37Qe72lwErC/lw8DN5W9ERBwBA3vm7jhUXq4spXel0WZge2n7IHCipNXDDTUiImZTpWeOpHHgUeCDwJdtP9TTZA3wQtfrfaXuQM91tgJbARhbca6OOXFhUS9XDV1N+7vr1406hKGb2P/qqENYEqec9M9GHcKSeOHZp16yffJirjF2wloz+Ualtn795R/Y3rSYzzvSKiVz21PAWZJOBL4r6UzbT3U1Ub/T+lxnG7ANYOy4k33U6X+6gJCXr+nJw6MOYUns2PU3ow5h6D72+XtGHcKS+LefPHvUISyJa//Fb/9s0ReZfIMVH/pYpaZv7fnvqxb9eUdYpWQ+w/avJP0jsAnoTub7gO7u21pg/6Kji4gYFgmNjY86iiVTZTbLyaVHjqRjgT8AftLTbCdweZnVch7wiu0DREQsG2JsxVGVSh1V6ZmvBu4o4+ZjwA7b35f0aQDbtwC7gIuBCeDXwKeWKN6IiIVpeM98YDK3/QTwjoG4ksRnjg1cPdzQIiKGR4DGW5zMIyIaQWKszT3ziIimaPUwS0REI7R9zDwiogmEGFuxctRhLJkk84hoh/TMIyKaIck8IqLupExNjIioO5GeeURE/WmM8Zou1a8iyTwi2kHpmUdE1J7IbJaIiEZIMo+IqLvMM4+IaIIk84iI2pPE2MrMZomIqLcMs0RENEOSeUREA4yNadQhLJkk84hoBUkoyTwiov7Gx8dGHcKSSTKPiHYQ6ZlHRNRdZ9fEJPOIiJoTY0oyj4iotwyzREQ0Q5J5RETNSTC+Isk8IqL21OAx84GTLiWtk/QjSXslPS3pmj5tLpD0iqQ9pfzl0oQbEbEwkhgbq1bqqErPfBL4c9uPSXoX8Kike2w/09Pux7YvGX6IERHD0eQx84E9c9sHbD9Wjl8D9gJrljqwiIhh05gqlTmvMctohaT3SrpH0nPl73u6zrlO0oSkZyV9tKv+XElPlvduVBkHknS0pG+W+ocknTrou81rbWu54NnAQ33e/oikxyXdLemM+Vw3ImLJCcakSmWAmdGK3wXOA66WdDrwOeBe2+uBe8tryntbgDOATcBXJM1s33gzsBVYX8qmUn8l8EvbHwS+BHxxUFCVk7mk44FvA9fafrXn7ceAD9j+PeC/At+b5RpbJe2WtNuTb1T96IiIRRNibMVYpTKXOUYrNgN3lGZ3AJeW483AnbbftP08MAFslLQaOMH2A7YNbO85Z+Za3wIunOm1z6ZSMpe0kk4i/7rt7/T5cq/aPlSOdwErJa3q026b7Q22N2jFMVU+OiJiOMR8boCumul4lrK17yXfPlpxiu0D0En4wPtKszXAC12n7St1a8pxb/3bzrE9CbwCnDTX1xt4A7T8GtwK7LV9wyxt3g+8aNuSNtL5kXh50LUjIo6keUxNfMn2hgHXettoxRzX7veG56if65xZVZnNcj7wSeBJSXtK3V8AvwVg+xbgMuAqSZPA68CW8r8NERHLQmejrSFdq/9oxYuSVts+UIZQDpb6fcC6rtPXAvtL/do+9d3n7JO0Ang38Iu5YhqYzG3fT/9fie42NwE3DbpWRMTIaDhPGppjtGIncAXwhfL3rq76v5N0A/DP6dzofNj2lKTXJJ1HZ5jmcjr3HLuv9QCdzvIPB3WQswI0IlpCjA3n4RSzjVZ8Adgh6Urg58DHAWw/LWkH8AydmTBX254q510F3A4cC9xdCnR+LL4maYJOj3zLoKCSzCOiFTSknvmA0YoLZznneuD6PvW7gTP71L9B+TGoKsk8IlqjyStAk8wjohUkGE8yj4iovyTziIiaE0oyj4ioOwmOGrBUv86SzCOiFSRYkZ55RES9iYyZR0TUnzJmHhFRe52eecbMIyJqLz3ziIiaG5MymyUiognGq+9nXjtJ5hHRClnOHxHREEnmERE1l0VDERENIHIDNCKi9jJmHhHRAFnOHxHRBOmZR0TUX/Yzj4hoiCTziIiaG8vDKSIiGiBj5hER9SeUvVkiIppgLMk8IqLeBIw3N5cz8G6ApHWSfiRpr6SnJV3Tp40k3ShpQtITks5ZmnAjIhZIMDamSqWOqvTMJ4E/t/2YpHcBj0q6x/YzXW0uAtaX8mHg5vI3ImJZELCywY+NG/jNbB+w/Vg5fg3YC6zpabYZ2O6OB4ETJa0eerQREQs0M8xSpdTRvMbMJZ0KnA081PPWGuCFrtf7St2BnvO3AlsB1q1by3P3/qf5RbvcPXzXqCNYGnu/N+oIhu65z/7OqENYEh771ahDWBLXDuMiqu8QShWV/59D0vHAt4Frbb/a+3afU/yOCnub7Q22N5x80knzizQiYhFEZzZLlVJHlXrmklbSSeRft/2dPk32Aeu6Xq8F9i8+vIiI4anrEEoVVWazCLgV2Gv7hlma7QQuL7NazgNesX1glrYREUecBCvHxyqVOqrSMz8f+CTwpKQ9pe4vgN8CsH0LsAu4GJgAfg18avihRkQs3MwwS1MNTOa276f/mHh3GwNXDyuoiIil0ORhlqwAjYhWEPW9uVlFPQeHIiLmq+yaWKUMvJR0m6SDkp7qqvsPkv6PpD2lXNz13nVlhfyzkj7aVX+upCfLezeWe5RIOlrSN0v9Q2Va+JySzCOiFTpj5tVKBbcDm/rUf8n2WaXsApB0OrAFOKOc8xVJ46X9zXTW3sysoJ+55pXAL21/EPgS8MVBASWZR0QrzCznr1IGsX0f8IuKH70ZuNP2m7afpzNRZGNZJX+C7QfKfcftwKVd59xRjr8FXDjTa59NknlEtINgfKxaAVZJ2t1Vtlb8lM+UzQZvk/SeUjfbCvk15bi3/m3n2J4EXgHmXGmZG6AR0QrznJr4ku0N8/yIm4G/prP6/a+B/wz8GbOvkJ9r5XylVfXdkswjoiWW9klDtl/8zSdJ/w34fnk52wr5feW4t777nH2SVgDvZsCwToZZIqIVlnpvlp6dYv8EmJnpshPYUmaonEbnRufDZZX8a5LOK+PhlwN3dZ1zRTm+DPhhGVefVXrmEdEKneX8w+mZS/oGcAGdsfV9wF8BF0g6i85wyE+BfwNg+2lJO4Bn6Dwf4mrbU+VSV9GZGXMscHcp0NlC5WuSJuj0yLcMiinJPCJaY1ijLLY/0af61jnaXw9c36d+N3Bmn/o3gI/PJ6Yk84hojbG5dyaptSTziGgFMbye+XKUZB4RrdHgBw0lmUdESyg984iI2tMSzzMftSTziGiNDLNERDRAg3N5knlEtEPrHxsXEdEUDc7lSeYR0R5N3owqyTwiWkHlsXFNlWQeEa2RYZaIiJoTGWaJiGiEAY/RrLUk84hoB2XRUERE7QkY0rMplqUk84hojSYPswy8HyDpNkkHJT01y/sXSHpF0p5S/nL4YUZELE5nBWi1UkdVeua3AzcB2+do82PblwwlooiIJVLTPF3JwGRu+z5Jpy59KBERS0mN3ptlWNMuPyLpcUl3SzpjtkaStkraLWn3/3355SF9dEREBeXhFFVKHQ3jBuhjwAdsH5J0MfA9YH2/hra3AdsAzj37LA/hsyMiKpGNpqdGHcaSWXTP3Partg+V413ASkmrFh1ZRMSQydOVSh0tumcu6f3Ai7YtaSOdH4iMoUTEMmOoaaKuYmAyl/QN4AJglaR9wF8BKwFs3wJcBlwlaRJ4HdhiO0MoEbH8NDg1VZnN8okB799EZ+piRMTy5Zb3zCMimqKu4+FVJJlHREsYpidHHcSSSTKPiHYwGWaJiKg/w3SSeURE7WXMPCKiCZLMIyJqzoYGL+dPMo+I1sgwS0RE7WXRUEREMzQ4mQ9rP/OIiOVtZjl/lTJAv8dpSnqvpHskPVf+vqfrveskTUh6VtJHu+rPlfRkee9GlYeUSjpa0jdL/UNVHhCUZB4RrSCGugXu7cCmnrrPAffaXg/cW14j6XRgC3BGOecrksbLOTcDW+k8A2J91zWvBH5p+4PAl4AvDgooyTwiWsIwNVWtDLqSfR/wi57qzcAd5fgO4NKu+jttv2n7eWAC2ChpNXCC7QfKTrPbe86Zuda3gAtneu2zyZh5RLTD/Jbzr5K0u+v1tvKktLmcYvsAgO0Dkt5X6tcAD3a121fq3irHvfUz57xQrjUp6RXgJOCl2T48yTwiWmMeUxNfsr1hWB/bp85z1M91zqwyzBIRLTG8G6CzeLEMnVD+Hiz1+4B1Xe3WAvtL/do+9W87R9IK4N28c1jnbZLMI6I9ljaZ7wSuKMdXAHd11W8pM1ROo3Oj8+EyJPOapPPKePjlPefMXOsy4IeDnuCWYZaIaIchLuef5XGaXwB2SLoS+Dnw8c7H+mlJO4BngEngatszgVxFZ2bMscDdpQDcCnxN0gSdHvmWQTElmUdESxhPvjWcK83+OM0LZ2l/PXB9n/rdwJl96t+g/BhUlWQeEe1gstFWRETdGeMKc8jrKsk8ItrB5ElDERH1l/3MIyLqz8O7AbocJZlHREsYp2ceEVFzmc0SEdEEbvQN0IHL+fttwt7zvsqm6hOSnpB0zvDDjIhYJIOnpiqVOqqyN8vtvHMT9m4X8f83Vt9KZ7P1iIhlpsxmqVJqaOAwi+37BjyyaDOwvWwC86CkEyWtntnXNyJiWchsloF+s4l6MbPB+juSuaStdHrvrFu3tvftiIgllHnmg1TeRL08qWMbwMk62te8O8PrdXDDtz4z6hCG7vWNl406hCVx/HP3jTqE5SuzWQaabeP1iIhlwxi3eTZLBTuBy8uslvOAVzJeHhHLzkzPvK03QGfZhH0lgO1bgF3AxXSeOP1r4FNLFWxExILZ+K3Do45iyVSZzTLbJuwz7xu4emgRRUQsiWYvGsoK0Ihoj5oOoVSRZB4R7eBstBUR0QhNns2SZB4R7WDjqSTziIhas830W5OjDmPJJJlHRDuY9MwjIpogyTwiouZsM13TvcqrSDKPiNbIbJaIiLrLbJaIiPrLbJaIiIaYTs88IqLmMjUxIqIBMmYeEVF/JrNZIiLqz2b6cG6ARkTUm2E6PfOIiHozGTOPiKg/gxu8nH9s1AFERBwZxtPTlcogkn4q6UlJeyTtLnXvlXSPpOfK3/d0tb9O0oSkZyV9tKv+3HKdCUk3StJCv12SeUS0Q5lnXqVU9K9sn2V7Q3n9OeBe2+uBe8trJJ0ObAHOADYBX5E0Xs65GdgKrC9l00K/XpJ5RLSCbaYOT1YqC7QZuKMc3wFc2lV/p+03bT8PTAAbJa0GTrD9gG0D27vOmbck84hoiXkNs6yStLurbH3HxeAfJD3a9d4ptg8AlL/vK/VrgBe6zt1X6taU4976BckN0Ihoh/kt53+pa/ikn/Nt75f0PuAeST+Zo22/cXDPUb8gSeYR0Q4GTy04V779Uvb+8vegpO8CG4EXJa22faAMoRwszfcB67pOXwvsL/Vr+9QvSIZZIqIVjJmemq5U5iLpOEnvmjkG/gh4CtgJXFGaXQHcVY53AlskHS3pNDo3Oh8uQzGvSTqvzGK5vOuceUvPPCLaweDpofTMTwG+W2YRrgD+zvbfS3oE2CHpSuDnwMcBbD8taQfwDDAJXG17ZsL7VcDtwLHA3aUsSKVkLmkT8F+AceBvbX+h5/0L6PyiPF+qvmP7Py40qIiIYbNh6vDiFw3Z/ifg9/rUvwxcOMs51wPX96nfDZy56KCokMzLfMgvA39IZ4znEUk7bT/T0/THti8ZRlAREUNnD23MfDmq0jPfCEyUXyMk3Uln3mRvMo+IWNamG5zMq9wAnW2OZK+PSHpc0t2SzhhKdBERwzL8FaDLSpWeeZW5kI8BH7B9SNLFwPfo3LF9+4U6k+u3AhzPeO/bERFLxsD0cG6ALktVeuazzZH8Dduv2j5UjncBKyWt6r2Q7W22N9jecEySeUQcSTZTh6cqlTqqkswfAdZLOk3SUXQ2jNnZ3UDS+2d2+5K0sVz35WEHGxGxUC6LhqqUOho4zGJ7UtJngB/QmZp4W5k3+eny/i3AZcBVkiaB14EtZeOYiIjlYYgrQJejSvPMy9DJrp66W7qObwJuGm5oERHD5IGrO+ssK0Ajoh2GtwJ0WUoyj4hWMM2eZ55kHhHtYDNd05kqVSSZR0Qr2OmZR0Q0QpWHNddVknlEtIOdnnlERO1lnnlERP2ZeT0DtHaSzCOiHWymDieZR0TUmg3TDd5lJMk8IlpjKsk8IqLeDDT4/meSeUS0R3rmERE1N204nI22IiLqL8MsERE1Z5xhloiIussN0IiIhkgyj4ioOTuzWSIias9kNktERO1lzDwioiEyzBIRUXOdMfNRR7F0kswjojXSM4+IqDkDzd3NPMk8IlrCOLNZIiLqrjObJck8IqLeGn4DdKxKI0mbJD0raULS5/q8L0k3lvefkHTO8EONiFi4mZ55lTLIoJw4CgOTuaRx4MvARcDpwCcknd7T7CJgfSlbgZuHHGdExKJNuVqZS8WceMRV6ZlvBCZs/5Ptw8CdwOaeNpuB7e54EDhR0uohxxoRsWDTdJbzVykDVMmJR1yVMfM1wAtdr/cBH67QZg1woLuRpK10eu4Ab36Vnz01r2jrYRXw0qiDGKavXvbZxn0n+Cw08N8VzfxOAB9a7AVe4vAPvsrPVlVsfoyk3V2vt9neVo6r5MQjrkoyV5+63p+uKm0o/zC2AUjabXtDhc+vlSZ+ryZ+J2jm92rid4LO91rsNWxvGkYsVMx3R1qVYZZ9wLqu12uB/QtoExHRBMsy31VJ5o8A6yWdJukoYAuws6fNTuDyMqvlPOAV2wd6LxQR0QBVcuIRN3CYxfakpM8APwDGgdtsPy3p0+X9W4BdwMXABPBr4FMVPnvb4Ca11MTv1cTvBM38Xk38TrCMvtdsOXHEYSE3eEVURERbVFo0FBERy1uSeUREA4wkmS/HpbCLJek2SQclNWbuvKR1kn4kaa+kpyVdM+qYFkvSMZIelvR4+U6fH3VMwyRpXNL/kvT9UccyLJJ+KulJSXuGMUWxqY74mHlZCvu/gT+kM8XnEeATtp85ooEMmaR/CRyisxL2zFHHMwxlFe9q249JehfwKHBpnf9dSRJwnO1DklYC9wPXlJXLtSfp3wEbgBNsXzLqeIZB0k+BDbabuBhqaEbRM1+WS2EXy/Z9wC9GHccw2T5g+7Fy/Bqwl87qt9oqW04cKi9XltKIWQCS1gJ/DPztqGOJI28UyXy2pf+xjEk6FTgbeGi0kSxeGYrYAxwE7rFd++9U/A3w72neA3UM/IOkR8uWINHHKJL5slwKG7OTdDzwbeBa26+OOp7Fsj1l+yw6K/c2Sqr9sJikS4CDth8ddSxL4Hzb59DZpfDqMqQZPUaRzJflUtjor4wrfxv4uu3vjDqeYbL9K+AfgWHt2TFK5wMfK+PLdwK/L+l/jDak4bC9v/w9CHyXzlBt9BhFMl+WS2HjncrNwluBvbZvGHU8wyDpZEknluNjgT8AfjLaqBbP9nW219o+lc5/Uz+0/a9HHNaiSTqu3HxH0nHAHwGNmTE2TEc8mdueBGaWwu4FdiyHpbCLJekbwAPAhyTtk3TlqGMagvOBT9Lp5e0p5eJRB7VIq4EfSXqCTsfiHtuNmcbXQKcA90t6HHgY+J+2/37EMS1LWc4fEdEAWQEaEdEASeYREQ2QZB4R0QBJ5hERDZBkHhHRAEnmERENkGQeEdEA/w9sx4rJMwWCTgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 30,
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": 31,
"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": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 33,
"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.36905742825998e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 41,
"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": 42,
"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": 42,
"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": 43,
"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": 43,
"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": 44,
"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": 45,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you </h1>"
]
},
{
"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>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
@tejas-2232
Copy link
Author

EDA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment