Skip to content

Instantly share code, notes, and snippets.

@navidfrb
Created January 20, 2020 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save navidfrb/12354016d9e4c305c45f11720105d0e4 to your computer and use it in GitHub Desktop.
Save navidfrb/12354016d9e4c305c45f11720105d0e4 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"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": 6,
"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": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke','compression-ratio','horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56067.2389565985)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 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>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price "
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7faa6cc22438>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEGCAYAAABcolNbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXzcV3no/88z+2iXbI3seFe8SHEgm7NBcJzIQFjK0iYluQXS3w1Nfiw3of1BCb0tcLnl1aTlFkj7KiQsN4FCQppCE1oCxHYcZ3HiOHscyQvyIq8jWbK22ed7fn98vyON5JFGsjSakfy8eekl6cx8R0ffmHl0znnOc8QYg1JKKVUormJ3QCml1NymgUYppVRBaaBRSilVUBpolFJKFZQGGqWUUgXlKXYHSs38+fPN8uXLi90NpZSaVV566aUuY0x9rsc00IyyfPlydu7cWexuKKXUrCIiB8d6TKfOlFJKFZQGGqWUUgWlgUYppVRBaaBRSilVUBpolFJKFZRmnU2TrW1h7t3WTkdPhCW1Zdy2vpENTaFid0sppYpORzTTYGtbmK88totwf4yaoJdwf4yvPLaLrW3hYndNKaWKTgPNNLh3Wztet1Dm8yBif/a6hXu3tRe7a0opVXQaaKZBR0+EoNc9oi3odXO4J1KkHimlVOnQQDMNltSWEU2mR7RFk2kW15YVqUdKKVU6NNBMg9vWN5JMGyKJFMbYn5Npw23rG4vdNaWUKjoNNNNgQ1OIr39oLaHKAL3RJKHKAF//0FrNOlNKKTS9edpsaAppYFFKqRx0RKOUUqqgNNAopZQqKA00SimlCkoDjVJKqYLSQKOUUqqgNNAopZQqKE1vVoBWn1ZKFY6OaJRWn1ZKFZSOaKbJbB4RZFefBijzeYgkUty7rX3W/A5KqdKlI5ppMNtHBFp9WilVSBpopsFsP49Gq08rpQqp6IFGRNwi8oqI/KfzfZ2IPCEie53PtVnP/bKI7BOR3SLy3qz2S0TkDeexe0REnHa/iPzcaX9BRJYX4neY7SMCrT6tlCqkogca4A6gNev7O4HNxphVwGbne0TkPOBGYC1wHfAvIpJ5d/8ucCuwyvm4zmm/BegxxqwEvgXcXYhfYLaPCLT6tFKqkIqaDCAii4EPAN8A/sJp/jCwwfn6AWAr8CWn/SFjTBzYLyL7gMtE5ABQZYzZ7rzmj4GPAI8713zNea1HgH8WETHGmOn8PW5b38hXHttFJJEi6HUTTaZn3YhAq08rpQql2COabwN/CVhZbQ3GmGMAzufMu98ioCPreYedtkXO16PbR1xjjEkBvcC80Z0QkVtFZKeI7Ozs7Jz0L6EjAqWUGlvRRjQi8kEgbIx5SUQ2TOSSHG1mnPbxrhnZYMx9wH0A69atO6PRjo4IlFIqt2JOnb0T+JCIvB8IAFUi8q/ACRFZaIw5JiILgUyO8GFgSdb1i4GjTvviHO3Z1xwWEQ9QDXQX6hdSSil1uqJNnRljvmyMWWyMWY69yL/FGPNx4DHgZudpNwOPOl8/BtzoZJKtwF703+FMr/WLyBVOttknR12Tea3rnZ8xreszSimlxleKlQHuAh4WkVuAQ8ANAMaYXSLyMPAWkAI+a4zJpHp9GrgfCGInATzutP8Q+ImTONCNHdCUUkrNINE/8Edat26d2blzZ7G7oZRSs4qIvGSMWZfrsWJnnSmllJrjSnHqTM1Bs7noqFJqajTQzBGl/EaeKTrqdcuIoqNfh5Lpo1KqcHTqbA4o9erRs73oqFJqajTQzAGl/kY+24uOKqWmRqfOZkghp7Y6eiLUBL0j2krpjXxJbRnh/tjQwWowu4qOKqWmRkc0M2A6pra2toW56b7nueruLdx03/Mjri316tF6DIFSZzcNNDNgqlNb+QJVqb+Ra9FRpc5uOnU2AyYytTXe1Fp2oAIo83mIJFLcu619qJjn153nHe6JsLjEss5Ai44qdTbTQDMD8q1R5Ev/nUig0jdypVSp0qmzGZBvaivf1Fqpr8EopdR4NNDMgHxrFB09EVJpi/bOAdqO99HeOUAqbQ2NWEp9DUYppcajU2czZLyprUq/h73hAdwuwe0SUpbhyKkYq0IVQ9eW+hpMPqVcuUApVVgaaErAUAXtTCFtM6qd2b0GoyVolDq76dRZCRhIpFlUE8DjFtLG4HELi2oCDCbS+S+eBUq9coFSqrB0RFMCMllpjfUVQ22RRIpQZaCIvZo+pV65QClVWDqiKQFzfbFfs+aUOrtpoCkBc33n/G3rG+mLJtl7op/WY73sPdFPXzQ5ZwKpUmp8OnVWIvIt9s/2rC0DICAiIMN5D0qpuU9HNLNAqZ83k8+929qpDnpZFaqkaUEVq0KVVAe9mgyg1FlCA80sMNuztvJtSFVKzW0aaGaB2X5wWKXfw5FTMVKWGbEhtcKvM7dKnQ000MwCsz1ra8SG1MwHIzekKqXmLg00s8BMpD+Pd7DaVM31DalKqfFpoJkFCp3+XOhkgyW1ZXjcLhrrK2haUEVjfQUet2vWjMiUUlNTtElyEQkA2wC/049HjDFfFZE64OfAcuAA8MfGmB7nmi8DtwBp4HZjzG+d9kuA+4Eg8GvgDmOMERE/8GPgEuAk8DFjzIEZ+hWnVSFrneU7WG2qblvfyFce20UkkSLodRNNpufUhlSl1PiKOaKJA9caYy4ALgSuE5ErgDuBzcaYVcBm53tE5DzgRmAtcB3wLyKSWSH/LnArsMr5uM5pvwXoMcasBL4F3D0Tv9hsU+hkg7m+IVUpNb6ijWiMvRI84HzrdT4M8GFgg9P+ALAV+JLT/pAxJg7sF5F9wGUicgCoMsZsBxCRHwMfAR53rvma81qPAP8sImJ0FXqEfCeATofZXH1aKTU1RV2jERG3iLwKhIEnjDEvAA3GmGMAzufMu9MioCPr8sNO2yLn69HtI64xxqSAXmDeeH0yBlJpayq/1qwz12utKaWKq6iBxhiTNsZcCCzGHp2cP87TJddLjNM+3jUjX1jkVhHZKSI7w51hDnVHON4bI5JI5fsV5gSd2lJKFVJJ7JgzxpwSka3YaysnRGShMeaYiCzEHu2APVJZknXZYuCo0744R3v2NYdFxANUA905fv59wH0AF158iQG7TH8kkcLrdlEZ8FAZ8OJ25Ypbc4NObSmlCqVoIxoRqReRGufrILARaAMeA252nnYz8Kjz9WPAjSLiF5EV2Iv+O5zptX4RuUJEBPjkqGsyr3U9sGWy6zPJtEX3YIJD3RHCfTGiuvdDKaUmpZgjmoXAA07mmAt42BjznyKyHXhYRG4BDgE3ABhjdonIw8BbQAr4rDEm867/aYbTmx93PgB+CPzESRzoxs5aOyPGGAbiKQbi9iinKuil0u/BNYdHOdPpnk17+MEz+xlMpCn3ufnUVSu4fePqYndLKTUDRBOwRrrw4kvML3771ISe6xKh3O+hKujB73Hnv+Asdc+mPXxnyz5cAi4By9gfd1y7UoONUnOEiLxkjFmX6zGtDDAFljH0x5Ic6Yly9FSUwfjZkTwwWT94Zj8uAY/LhUtczme7XSk195VEMsBcEEumiSXT9rRawEtFwDOnkwcmYzCRxjPqTxqXoLXOlDpL6IhmmiXTFicH4xzqjtDZHyeROrv25ORS7nNjjZqhtYzdrpSa+zTQFIhxptUO90Q41nt2T6t96qoVWAZSloVlLOez3a6Umvs00IzS3jnAQzsOEe6LTdtrRhNpTvTF6OiO0BtJYo3+836Ou33jau64diVBr5uUZddR00QApc4emnU2in/hKrPw5m8jwNsXV9PS3MDVq+dTGfBO289wiVAR8FAV8OIbvXihlFKz0HhZZxpoRllw7lqz4JPf4lQ0OdTmdQuXraijpamBKxvr8Hunb22hzGenR2cXtFRKqdlGA80kXHjxJebhXz/JS4d62Nwa5pl9XcSSwwv65T43V62az8bmBi5cUjNtmWVzfRPo1rYw925rp6MnwpLaMm5b36glb5SaQzTQTMLoDZvRZJrn9nWxqTXMiwe6R2RPzSv3cU1TPRubG1gVqsCugDM1LhEqAx6qgl687rkxrZY5wdPrlhEHn2nhTqXmDg00kzBeZYBTkQRbd3eyqTXMW8f6Rjy2pDZIS3OIluYGFtUEp6Uv5X4P1UEvgWmcqiuGm+57/rTzbiKJFKHKAA/eekURe6aUmi7jBRpdGJiEmjIfH7loER+5aBFHT0XZ3BZmc6t9rEBHT5T7nzvI/c8dpHlhJS1NDVzTVE9tme+Mf95gPMVgPIXPMzytNh2jppnW0RPBLXZGXyJt4XO7mF/hm7YTPJVSpU0DzRk6pybIJ65YxscvX8re8ACbW8Ns2R3m5ECC1mP9tB7r51+27mPdslpamhu4auV8gme4QTGRsujqj9MzmKAy4KUq4MEzi6bVKv0e9oYHcLsEt0tIWYYjp2KsClUUu2tKqRmggWaKRITVDZWsbqjk1vWNvHb4FJtbw2zb08lgIs2OAz3sONBDwOPiHSvns7E5xLpltWcUKNKW4VQkQW80SbnPTdUsmVYbmp7NzNKaUe1KqTlNA800cruEi5fWcvHSWu5oWcXz7SfZ1Brmhf0niaUstrSF2dIWpjroZcPqelqaQ6w9p2rS02HZRxZkptVe2t/NfU/vL8msroFEmkU1AboGEkNTZwsq/FrrTKmzhAaaAvF5XKxfXc/61fUMxFJs22snEbzWcYreaJJHXzvKo68dZUFVwEkiCLF8Xvmkf04iZfHr147xnS178XtcVAU8hPtjfOWxXXwdSiLYLKktI9wfo7F+eKoskwyglJr7NOtslMmcR3MmOvvjbHGSCPZ1Dox4bGV9BS3NIa5tClFf6Z/wa/7Fz1/j5GCcoDON5nIJ8WSahqoAD9125bT2/0xoerNSc5+mN0/CxZesM48/+QzRRBqrwPfmwMlBNrfaQed4Vm01AS5YUsPG5hDrV9VTERh/4HnT95+nKuBBGJ6CMxgGYil+fcd6KksgeSCzYfNwT4TFJTa1p5SaOk1vngSXQENVAGMMsaRFJJEimkwXpNz/8nnl3HLVCv77O5ez62gfm1vDPLk7TF8sxasdp3i14xTf2byXKxrn0dIc4ooV83LWRltYFRwxogGIJS0aqoL0RBKcKqHkAf2zRqmzj45oRlm3bp3ZuXPnae2ptEUkmSaaSBd0tJNKW+w82MOm1jDP7esilhXgyv1u1q+ykwguWDxc/mZHezff2bIXj0sIeF3EkhYpy3DHtau4rLFuxOsXY0/OdEydaQkbpUqbTp1NwliBJpsxhnjKIpJIE0mkCna4WTSR5pl9XWxuC7NzVPmb+RU+rlkTYmNziJWhCl7c38NDL3ZwvC/KgqogN1665LQgky1T6qZyBipIT7UywNa2MF985DX6YylSloXH5aIy4OEfrr9Ag41SJUIDzSRMJNCMlraMPcWWSBNNpkkX4LyZHqf8zebWE7x1rH/EY8vqyoYy1xZWT778TaErSF919xZqgt4RIyhjDL3RJE9/6dq817/v29uGNnyKgDH2PV8VquDxz68vSJ+VUpOjazQF5nYJlQHv0Jk1MWeKLZJME09Oz16R2jIfH71oER+9aBFHTkXZ0hpmU+sJOnqiHOyO8KNnD/CjZw9w3sIqNjaH2LCmnpoJlr+JJFJEEuOXupnK1FUmvTk7kEWTaRbXlk3o+vauQVxij8IAO9iIob1rcELXK6WKS0c0o5zJiGY8acsQTdpTbLGEfYzxdDHGsDc8wBNvneDJ3Z10DyaGHnO7hHXLatnYHOIdK+ePSBTIJxM4M6VuprrGMtXr1/z14xhjcLuGp/jSloWIsPtv3zf0M3QNR6ni0amzSZjuQDNaPGWPdgYT0zfaATugvdpxik2tJ3h6bxeRrF33Aa+Lq1bOp6U5xLpldRM+Q0dEKPe5+dzPXuHkYHxK1Zenkt583beeYl/nIG7JmjozhpX15fzmz6/WNRylSoAGmkkodKDJlr22E5nGTLZ4Ms329m42t53ghfZuUllrRjVBLxvW2GfoNC+snFDm2U3ff57qgBeP24VL7AA0mTWWqdraFuYLj7zGQDxF2jK4XUKF38M3nUCiazhKFZ+u0ZSo7LWd7H07kUSaZPrMp9j8Xjcb1tSzYU09/bEkT+3pYnPrCV473MupaJL/ePUo//HqUc6pCdDSFKKlqYGl88ZeLxnapwMg4BYhnpr4GstUbWgK8c3rLxhzRKRrOEqVtqKNaERkCfBjYAFgAfcZY74jInXAz4HlwAHgj40xPc41XwZuAdLA7caY3zrtlwD3A0Hg18AdxhgjIn7nZ1wCnAQ+Zow5MF6/ZnJEM55EynKm2FLEU9a0VDoO98XY0hZmU1uY9s6Rb8KrQhVsbA5xTVOI+RUjy9+MtU/nS+9dw3VvW1j0TaATWcNRShVWSU6dichCYKEx5mURqQReAj4C/CnQbYy5S0TuBGqNMV8SkfOAB4HLgHOATcBqY0xaRHYAdwDPYweae4wxj4vIZ4C3G2P+XxG5EfioMeZj4/WrVAJNNssyRJyEgmhietKn93cNsrn1BJtaw4T740PtLoELl9TQ0tzAu1bNp8JvD3p/8twBHn7pMNFkmqDXzR9fsphPvGM5MLwJtMLnwTXB9Z/plG8NRylVeCUZaEYTkUeBf3Y+NhhjjjnBaKsxZo0zmsEY83fO838LfA171POkMabJab/Juf62zHOMMdtFxAMcB+rNOL90KQaa0TLp09FkmtgUEwosY9h1pI9NbSd4ancnfbHU0GNet3DlufNYVlvGE60n8Lpd41YemMlNoNnyreEopQqv5NdoRGQ5cBHwAtBgjDkG4ASbzDvFIuwRS8Zhpy3pfD26PXNNh/NaKRHpBeYBXaN+/q3ArQBLly6drl+rYAJeNwGvm1rs0Y6dPm0Hncmu7bhEeNviat62uJrPXbOSFw90s7k1zHO/P0k8ZbFtj32rROyTMo3xEPS6iaUsHnqxY0SgsZwEgd5okqDPTVXAS7kzIipk+nG+NRylVHFNONCIyDJglTFmk4gEAY8xpj/fdRN43Qrg34HPG2P6xsmCyvWAGad9vGtGNhhzH3Af2COafH0uJS6XUO73DL2hJ1IWUWfEE0tOPJNtR3s3D73YwbG+KAurgvzVdU1EU2k2tYbZebAHY6AvlqIvlsLjskcukUQKY0zOzLVMTTiv28VrHaf42mNvMhBPk7LsY6m/+Mhr05p+vKEppIFFqRI1ofkNEfkz4BHgXqdpMfAfU/3hIuLFDjI/Ncb8wmk+4UyZZdZxwk77YWBJ1uWLgaNO++Ic7SOucabOqoHuqfa7lPk8LqqDXhZUB1g2r4xzaoLUlPnwj7Ngn1nsPzkYpyrg4eRgnO893U5N0MffX/921i6soiboxe9Mh6UsQ08kycnBJLc8sJOfvXCI472xnK+dTFv84xN76IkksYw9rWWAnkiSu3/TNvS8rW1hbrrvea66ews33fc8W9vCOV9PKTX7THRE81nsRfgXAIwxe7OmtM6I2H8G/xBoNcb8Y9ZDjwE3A3c5nx/Nav+ZiPwjdjLAKmCHkwzQLyJXOP37JPBPo15rO3A9sGW89Zm5RkSGptlg7H07D73YQSqd5lTEnnrzul1U+N1DU2OfuGIZ39myl8qAB5fYQWLQSUo4cDLCD57Zzw+e2U+5z43LJSyrLePjVywbmlbr6IlgDCTTxhmCGgT4vXPw2+gNl7lGPLrzv7j0/qupmGigiRtjEjK0T0E8TP1okXcCnwDeEJFXnba/wg4wD4vILcAh4AYAY8wuEXkYeAtIAZ81xmRWwj/NcHrz484H2IHsJyKyD3skc+MU+zyrjbVv52D3IP3RJOISXC6xRyyDSVKWnQJ9WWMdd7BqqDp04/wKPrZuMdXlXja1hvndrhMMxFMMOtUI3jzWx1d/tYs/vGgRn7hyGZZlyF45Ms6HZRlODsS56/FWeiJJ3C7B43ZhzPCIZ0NTaEQJm5qgt+SOqp6I2fxGPRfuvyquiQaap0Tkr4CgiLwb+Azwq6n8YGPMM+ReQwFoGeOabwDfyNG+Ezg/R3sMJ1CpkUSEoM9N0Oe206WdjZgARiAtZsTxB5c11uU8dqBpQRW/PzHA0d4o8ZTFQDyFZSCesnjwxQ7+49WjY/5F4nYLvdEkv+8adEY5zv9Gbbi8d1s7XrcMlcAp89nrQ/dua5+2N7pCBoLZ/kY9E/dfzW0TzUG9E+gE3gBuw96r8teF6pSaWV63vW4ST1nEUhbxlIVlwO8RPK78/0SO98eoKfOyoCpA4/xyFlb5KffZ03XRZJqxtv2Mfm2DnblmnI+Mjp7IaUVBg143h3sik/o9x5IJBOH+2IhAMF3rRNlv1CL2Z69buHdb+7S8fqEV+v6ruW+igSYI/MgYc4Mx5nrgR06bmgNClQGMxdD4UgQw0FAVZOm8MhbVBqkrHzuhYGFVkFjSHv3Ye2m81JX7OH9hFX++cRVj7eFMpCw6uiMsqQliGXsqzRhD2jJYBpbUBIin0iypLSM6ar/QZI4ZyKfQgWC2v1EX+v6ruW+igWYzIwNLEHtnvpoDjDG4XILP5SLgceFzuXC5ZGhU4fe4qSnzsagmyLJ55dRX+qnwe4Zqi9146RJSzn4eg/05ZRk+fsUy/uCCc3CP8a8saRlu/r8vkkgbe4OnGCxjEBdUBb186l3ncqQnyvUXLyKeshiMJzHGTmhIpg23rW8ceq18WWvjPV7oQLCktoyTg3HaOwdoO95He+cAJwfjs+aN+rb1jSTTZiidPdf9V2o8Ew00AWPMQOYb5+vZ8f8SlddAIs2imgAet5A2Bo9bWFQTGFrcz5ZJKAhVBVg+v5xzaoK85/wFlHmFjp4oe8ODdPRECXpkaE0n3x7Sw6eiRJMWyTSkLMDA+9cuGLr+omW1vLspRLgvzlvH+gj3xbj+4kUjMtK++MhrvHKoh+O9UV451MMXH3ltKJjke7zQf7Ff2VhHuD9BIm3hEkikLcL9Ca4c56jtUrKhKcTXP7SWUGWA3miSUGVgwmcJKQUTDzSDInJx5huniGW0MF1SM21JbRket4vG+gqaFlTRWF+Bx+2a0BttwOvms/+6k993jfzn0H4yyl/8/BXArj02lm997AIuW15H9p7PRNrw0xc7+PxDr/Lsvi6e29fFb946QW25j3Pry6kp8/HQix08/sYxjDHc/Zs2eiJJDNhZa4zcp5Pv8UL/xb69vZv6Ch8+twvLgM/tor7Cx/b22bOla0NTiAdvvYKnv3QtD956hQYZNSkTzTr7PPBvIpLZCLkQGLc4pZo9blvfyFce20UkkRpxAuZE32i37+/J2f7q4T5qynyU+91EEmmMGS7lIGJPT12wuIYHnj3IouoAllN9YDCewgCvH+nl9SO9uMWuGl1b5gPDUB/vfaqdtedU8/vOAYwx9j4dY7+2SxjKWst3jMCGphBfh4KVsOnoiTC/wk99ZWCozRgza9ZolJqqCQUaY8yLItIErMF+n2gzxiQL2jM1YybyRnum6b915T5ufVcj3968F7fLDgCWsT/++BK7oMOxvihVAQ+CXQwzbRkG4kl6IklSliFtDIOJNIOJ6FD5m8qAh+N9UVKWhWUM6axRk3FeX2TiW70KWcJmSW0Z4f7YiBNKdTFdnU3GDTQicq0xZouI/OGoh1Y5pyz+IueFatYZ7412qvtAbt+4mv1dAzz2+nESaYNL4P3nN/CZa1cRTaSHD1ZzFuTdLsHncXPewjL+5weauOOhV+kciJNMm6HyNz2RJAGviwd3HBozq83ttK+YV8a+zkHEMkPHCFgGVs6fmTf6qY4YlZrt8q3RZA7z+IMcHx8sYL9UCZlq+u/WtjAvHepl+bwyzj+nihXzy3n9SD+7jvSydF4Zn73mXGeT58istRsvXcK8Cj+3X7uK+RV+FlT5qSvz4nEiSyxp8f2n95MjZwGwN6Ae743x+Y2rqQ56EJd9To24oKbMy53va56uWzQuXUxXZ7txRzTGmK+KiAt43Bjz8Az1SZWYjp4INUHviLbJpP/m21n+7rUL8Lpd9tRc9yDn1JTxJ5cv5aKltaQs67QSOGsXVvHOlfM51hdj6+4wPZHcs7gpZ2F/9YJKvnRdEw/vPMzx3ihL6spnvASMVpdWZ7O8azTGGEtEPgdooJnDxluDybfGkJmOGi2TSTaRQDXWG3E8ZR83sH5NPZefO++0I60/s+Fc3vutbeTKoI6n7Iy0lqYQFy2tZd1yO524zGev8Yx1xIFSanpNNOvsCRH5AvBzYOiweWPM7MnPVGPKtwaTb42h3OtiIHH6W325156ZncpiuN/jdjaM5j7S2u0S3G6BtMkZbH676wS/3XWC2jIv1zSF2NgcYk1DJZFECo/LRUXAQ1XAg2esXaVKqSmbaKD579iZqZ8Z1a6rmXNAvqmtfFlpyTE2ZGbab1vfyBceeY0jp6Ijjlr+mw+cN6l+upzrKpxD3mLOyaJLa4McOBnBKzI0ukpbhtpyLwurg7x5tI+eSJJfvHyEX7x8hMW1QTY2h2hpamBRbZBTkQSvHjrFQy92cORUhKVFmForttlcXVqVvokGmvOwg8xV2AHnaeB7heqUmlmTWYMZK2HY5xbcWUUy09bI6CPOxcYYMDJm2e7JyJy18zcfXMv/92+vMhBPkbbscjrVAS9ffE8TlzXWcaw3ypa2MJtawxw8GeFwT5T7nzvI/c8dpGlBJatCFbywvxu/x0WZz8Ox3ih/8+ib/G/OPyvebGd7dWlV+iY6X/AA0Azcg32oWLPTpuaAfLW48lU3bpxfTiptiKXSRJNpYqk0qbShcX45YI+EPG7B7RJExDl3ZnJFK8erVbahKcTNVy7H73FjEPxuF//tsiVc3VSPiLCwOsifXL6MH928ju9/4hI+tm4x8yt8ALQd7+dXrx8j3B/n5GCC/mgSj7Nuc8+WvQzEU6etC801s726tCp9Ex3RrDHGXJD1/ZMi8lohOqRm3pWNdew40O3snh+uxXXTpfbieb6ptfedv4C24/1DCQGZz+87fwEAe8P99EaSuFx2kElZhq7+BMl0/4T6l+8v7q1tYX747H76Y3ZFgYF4mn994RCXLp/H+tX19rpOPEUkkebcUAXnhir4s/WNvH64l/GK+3AAACAASURBVE2tJ3j8jeMYIOKcPCr9ccr9bvpjSY70RAh43ZT77QQCv2fsI7Hz/Q6lOjU11axCpfKZ6IjmFeeoZABE5HLg2cJ0Sc20fLW48lU3fvzN4zlfN9OeSFnglIARxC4FI4w4WG08+f7i/ptH36Q3mgKGT9Lrjab4m0ffHFrXCVUFWDavjAXVASoDXnxuNxcuqeEL71nD2xZVM6/cR4XfjXNCAgPxNKeiKW743na++bvdPLu3i47uCId7IvRGkvZhcRNU6PNupkqPAVCFNtERzeXAJ0XkkPP9UqBVRN4AjDHm7QXpnZoR+Wpx5csa2xceOG3txjjtYB+sFk3aWWPZqdA+98RWavL9xX24xynomf1yJqvdkQlSmd8jlkwzGE/xiSuW8Y+b9lDmcxOqFHoiSQbjaZJpi75Yil+9doxfvXaMhio/LU0hWpobaKyvIOh1UxHwUO5zj5smXeonVGrlAlVoEw001xW0F6qo8gWSfG9EyTH+us+0r26oYn/XAP2xFIm0hc/tojLgZcX8imnpX+anj15KyTfmyCQT3HDpEmrKvNy7rZ0jPRGW1ZVz46VLaAyV86STRLA3PMCJvjg/29HBz3Z0sLA6wB9ccA4tTSEaqgKU+d1U+r0EfadPrZX61FShi4oqNdGimgcL3RFVPPkCyYamENcfPsUPntnPYCJNuc/Np65aMeE3oszrL6j2nNFfzPn653MJiRzBzjdWEbQc3r12Ae9ea68pJVIWg/EUg4kUN6xbwrK6cr75xG4SKYtoIk3SMhzrjXHftna+v62dC5ZUc21TA1evnk9tmZ+KgJ2C7fNMfR/RTNHKBaqQJjqiUXNYvr9ot7aF+fHzB0cc3PXj5w/y9sU1E3pzmupfzPmurwp66Bo8vQxNVXD4n3e+xfixHk+kLP7y5dcp87mpK/NhjCGWsuiJJIglLVKW4dWOXl7t6OWftuzlshV1bGxu4IoVdVQGvVT4PXzqqhX8r/98S6em1FlL5nrq5mStW7fO7Ny5s9jdKCnXfesp9nUO4s7eEGkMK+vL+c2fX82KO/8r5zSVAPvv+kDB+7fmrx8nmbJGVAZwAV6Pi91/+76hEzb7YylSloXH5aIy4OEfrr9gKGttvMevunsLNUEvBrCMwbLAMhZ90SR3bFzN5tYwT+3pJJU1qvK6hZamBjY2h7hgSQ2vH7Y3hB47VZxaa0oVmoi8ZIxZl+sxHdGovPafjACGpDXyYDG7HSr8bvrjp5dQrvCfWSrwmfCMs2H07t+00T2YwHIOXktbFsnBBHf/po0NTaGhEzjt/T0ujBk+gXNDU2jE1JdLBFwwGE+ztK6cq9eE2Hu8394o6gRhAyTTht/sOs5vdh1nXoWPa9eEuOWqFaxuqKTM56FCa62ps4gGGpWXZRmcDGVw3kxTBsQZx5y/qIa24730RlNYxg5C1UEPTQuqZ6R/+c6b2RceIG2GT/bEQNoMZ8XlO4Ez1xpRyoLPXrOSRTVBHnn5sJ0WbYYTEDI/yzJwciDBv710mH976TBul1Bf4ecTly/lAxecQ5nfTbnPQ1mezLW5rpT3Gamp00qCKi9vdsFJc3r7besbqQz4WDG/fOi8mcqAb8bWIO58XzM1Zd4xz5tJZaaHM+/jzufUBKeNNzSFuP7iRXT2x2k93k9nf5zrL1409EY4mEhjMTLLzWAHnn+95TLe3dyA20lMSFuG430x/uGJPXzyhy/wk+0HaTvex8GTEcJ9MfsY67NsOrvU9xmpqStqoBGRH4lIWETezGqrE5EnRGSv87k267Evi8g+EdktIu/Nar9ERN5wHrtHnD8NRcQvIj932l8QkeUz+fvNFUGfi0ysybwFul1Q5rMbi32w14amEN+8/gIuWlLLgqoAFy2p5ZvO+goMn7RpzPBHdvuKeWX28dKWwRiDZRksY7fD2MkQE3kjPO+caroG4tQG3fg9I2u8HeqJ8k9b9nHD97bzl//+Or985QgHugaHgs7ZUP4GtATO2aDYU2f3A/8M/Dir7U5gszHmLhG50/n+SyJyHnAjsBY4B9gkIquNMWngu8CtwPPAr7H3/TwO3AL0GGNWisiNwN3Ax2bkN5tDcu+D8YzYB1Ps9Njxfv7K+graTgzkbAd7RPSZn75EJKsMdZnXNTQiuuvxVnqy1nhSaUMyleCux1vZ0BTKeRZPRl25j46eCKciKVwuwesRO5BZ9rqS1+1iMJFmx/5uduzvJuBx8Y6V89nYHGLdslp8HjdlPrsEzlydXiv1fUZq6oo6ojHGbANGn2nzYYYLdj4AfCSr/SFjTNwYsx/YB1wmIguBKmPMdmP/+ffjUddkXusRoEXm4v9TC+y29Y34PG4WVAdY01DJguoAPo971qTnvv9tC0+rFi1OO8Drh0+NCDIAkaTF64dPAbCvc5D0qNm3tIHfd9prOGPFmUx7ImUhLjtZwYXgcblwueypx3//9Dv42h+cx9qFVQgQS1lsaQvzV798kxvufZ5vPbGH59tPcrw3ao90+mNEEnNrpLOktoyugZFFXbsG4iW1z0hNTSmu0TQYY44BOJ8zf6YuAjqynnfYaVvkfD26fcQ1xpgU0AvMK1jP56jpmBobr/pyoT3+5vGcgSZTi+17T+Weosm0Z+qamawPYEQ683i8zhydlXkdY5fDCXjsytLlPg9He6N43HYiReZPod5okkdfO8rtD73Kx3+4g+8/3c6uI70c741xqDtC10CcWPL0bL/Z5srGOjoHEiOmJjsHElzZWFfsrqlpUuyps8nINRIx47SPd83IFxa5FXvqjaVLl55p/+a0qUyNFfu8k33hASyGs+YwYDGcdRYZ48060+5ySc4imq4JVh5Y3VCVMytv9YJqqsu8/PCZdnoip284rSvzUlfuZ1/nAMd6Y/z0hUP89IVDrKyvoKU5xLVNIeor/XhcrqHstVwlcErd9vZuQpU++qLDU7NVQQ/b27u5vdidU9OiFAPNCRFZaIw55kyLZf70PQwsyXreYuCo0744R3v2NYdFxANUc/pUHcaY+4D7wN6wOY2/i6L4RSVzZp2ZiWed+dxCNFeJG2ek4nLSmEfLxKErG+t4Yf/JoedYxq4unfmLfU/49PUjsPfyPPLpd7C/a5AtbWE2t4Y53hdjX+cA+zoHuG9bOxcsqWFjc4j1q+qpCHhwu4Sgz02F3y73Mxtmijt6Iswr9zO/IndRVzX7leLU2WPAzc7XNwOPZrXf6GSSrQBWATuc6bV+EbnCWX/55KhrMq91PbDFzKXJ7Vki3zEDhZYv6yyfMp/bntJyvhfsIFLujB5Wh8pzXpdp//Ubx8CMyq42Tju5g5TzFCoCHhrrK7jlqhX89FOXcc+NF/KhC86hKuDBAK92nOKbv9vDH33vOb762C6e3B2meyDB8d4YB09GONEXoz82uWMNZpoeUzD3FXVEIyIPAhuA+SJyGPgqcBfwsIjcAhwCbgAwxuwSkYeBt4AU8Fkn4wzg09gZbEHsbLPHnfYfAj8RkX3YI5kbZ+DXUqMUu6jkyvoK9pwYGFpfEecjk3WWT76su/1duQNmpn3/yUjOygWZygrjCVUGsMoNA4kU/bEU5y+q5vxF1XzumnPZebCHTa1hnt3XRTxl8fTeLp7e20W5383Vq+ppccrfDMZT7Gg/xsMvdXC8N8aSujI+ffW5JbMhUo8pmPuKGmiMMTeN8VDLGM//BvCNHO07gfNztMdwApUqnmK/kdz5vmZuf/BlBhLpoRI6FT73UPpyPvmqT8fTuUcL2e2ptCGRHv6r3a7FNrEhlcslVAW8VAW8xFNpBmIpBuIprmicxxWN84gm0vz4uQP8+s3j9MdTDMbT/PrN4/z6zePMr/Bx3oIqXjzYTdTJrDvaG+Oto7383Uffzsa1DQS8xV3XKYVjCu7ZtOe06uS3b1w94cfV+EpxjUbNMaXwRuLzuvFZhrRlcLsE3yTeXKd6TEKl303XqNNELad9svweN/4KN3XlPgbiKfpiKXa0d7NtXxc1ZV7mV/roGUwymEiRTBu6BhJs29d12uv0x9P87a/f4rxFVXhcLn76/AF+tuMQg4n0UMXpmXwjLeY+rHs27eE7W/bhEvC47NH2d7bsA+D2javzPq7y00CjZkQx30ju3dZOddDLwurgUNtkkhG2toV55OUj1Ff6WeqMaB55+ciEj0mIJHIfWT1W+0SICJUBL5UBL7985Qg+j+D3uMFAqNJPNGmfiXN5Yx33P5f7OKnjfXFORRL86tWj3L/94FA6Zl8sxbc27SVtGf78PWvOuI+zxQ+e2e8EEXtq0yWQsix+8Mx+bt+4Ou/jKj8NNGrOm+rO83u3tZNMpzk5MDL9dqKBKp628LrsTZ6ZqTu32O3T4UhvdOj3SzvHGAS8LnoiCT555fIxAw3ADfc+jzEm51Hc925r5/p1Swj67OoEsyWLbbIGE2k8o9KiXGK3T+Tx6TDXi4pqoFFz3pLaMg6cHDhtn8byefZifqbi82iZ99S94X56I0lcLsHtElKWoas/QTLdD4B7jH02mUKa5T57FOTPKk6asizKp2ltJDvZwuMcYzAQT7OopixvYBgvGy2WskimLZJR++wdESHodQ8FnhHFVguskG/Emf8+2duiLDOcVZjv8akq9j6zmVCK6c1KTasrG+sI94/ceR7uH955vqg6kPO6THvCOSPBJYIg9nEC4rQzvJ9mtEz7p65agWXs4GIZy/lst0+H29Y3kkybodI0kUSKtAX/49qVLKkNjnvtVz543riPv3W0b6jcTea1Tw7E6eiO0NEdoXswUfDqBJmD6V451MPx3iivHOrhi4+8Nm3VJfL99yn0f79SKCpa6ModGmjUnLe9vZv6Ch8+twvLgM/tor7Cx/Z2e+/u337kbVT53UN/sboEqvxu/vYjbwNGlpDJVHeG4UCSb5/N7RtXc8e1Kwl63aQse9rujmtXDs3vjzXmmOgk1Xglgjx5Rh0b1tSP+/jnHnyFT/xoB//32f0c6h451ZhMW5yKJDh6KsqhkxE6++MMxFND92e6ZA6mM2AfTMfwwXTTId9/n3yPT1Wx95nNxDENOnWm5ryOngjzK/zUV+beeb6hKcQ9N108ZlZc7n003qF9NBOpbn37xtVjvjF5XJDMsVwzel1gPIVMtjh6KsZPnj/ET54/xOqGClqaQlzTFGJ+hX/oOSnLoj9m0R+zp9j8HhdlPjcBr3vK6dP5DqabDuP995nI41NR7H1mM1G5QwONmvMm8n/k8d6o8+2jyfd4PlVBLycHT691Vj0qgeFMubDTqUcTYF65P8cjw3548zo2tZ5gc2uYcH+cPScG2HNigO891c5FS2toaW7gXavmU+EfvrfGGGLJ9NCUmtsl/Oz5g0VNny5lxd5nNhPHNGigUXPeVP+PnG8fzVT3CU1kRDQVH75wIb989dhp7R+5cCHVZeMHsxXzy/mzdzXytnOq+dGzBzhyKkIibe9HevnQKV4+dIpvb9rDlefOY2NTA5etqMM3aih2/zP786ZPj7fYn++o7tluJvaZjXd/Z2JEpYFGzXlT/T/yRPbRTGXqaqojokwfx3ojOd6XoCbooS82XD26KuDheF9iQq+9o72bf3pyHx6XsLg2SDSRZjCRZkltGW0n+kmkLLbt6WLbni4q/B6uXm2Xv3n74mpcIjz4Yse46dOvHOzh73+3G98YWVd3vq+ZLzzyGgPx1NCG2xq/d8KVHWaDQk595stqm4kRlQYadVaYyv+RCz2HPR2BcLw3kg7nNbNTnbPXqK5cUcv2/T2nve6lS6vxul089GIHHpcMLVhnsqNcIvzi01fyzN4uNrWGeflQDwPxFP/1xjH+641j1Ff4ubapnlgq936hTPr0j549gGAv9Kcsg9/jxpjh+5s5qruYlSVms3z/fmdiRKWBRqk8ZmIOu5CBMN/UyIO3vYOb7n1uRLC5ckUtD972DgDCAzEq/Z4Re40CXhfH+6KU+Ty8Z+0C3rN2Ad2DCZ7cHWZTa5jdx/vpHIjz853ZZxLmdqwvSlXAY58TZAwW9qjlQJd90maZz83Va+o1sJyhifz7LXTlDg00SuVR7KygfPK9kUxkaiQTVHJZVldOuD9GwOvGsgxpY4glLBZUjdyjU1fu448uXswfXbyYwz0RNreG2dwW5nBPNOfr1lfYfV5YFeTkYHxEim8sadFQFaQvmhzaLBrwuijz2oe7jV4HUmMrhX+/+l9LqTxybYgspTL2+c5zmepR3JnfP5ZM25UR0hbGwJ9cPvZptItry7j5Hct54P+5lM9uODdnqvbJwSR/9cs3aF5YSTJtEU2mMRiiyTQpy3DjpcPnHBpjiCbSnByMc7jH3izaNRBnsAD7duaaUvj3K3oO2Ejr1q0zO3fuLHY3VInJLLaX4hpB9hpN9ohlMsFkIj8j1+8fS6bpiyYZTKQZ771kR3s3D+44xCFnlDWYSA9VVgDweVxDG1yX1pZx02VLucyp3JBPZrSTKY/j98y+46wLbSb+/YrIS8aYdTkf00AzkgYaNRsVOxCmLUN/LEl/LEVyAsVCY8k0239/ks1tYV7Y3z2i5lptmZdr1oRoaQ7RtKBy0oU8vW57s2iZz0PA65qThUBLkQaaSdBAo9TURBNpeqNJIonUhJ7fG03y1J5ONree4I0jfSMeW1QTpKU5xMbm0BmtKbhE7MrTTuBxuzToFIoGmknQQKPU9EikLHqjSQbiqXGn1bId74uxxUki2D+qxMyaBZW0NIW4tilEXbnvjPoU8LqHRjuaUDC9NNBMggYapaZXZlqtL5oiZU38DJ7fdw6wuTXMlja7/E2GS+CipbVsbA5x1cr5lPvPLHnW63bN+bN2ZpIGmknQQKNU4QzGU/RGk5M6WsAyhjeO9LK5NcxTezrpjw1Pyfk8Lq5snMfG5hCXrag74zNyinnWzlyhgWYSNNAoVXjxlL2OMxgfP1tttETKYsf+bja3hdnefnJE5lpVYLj8zfmLqoeqPZ8JTSiYPA00k6CBRqmZk7YMfVE7W20y02pgj46e3tvF5tYTvNJxiuztNKFKP9c22UkEjfVTK07qEiHgjHaCXt0sOhYNNJOggUapmWeMYcCZVkuMURttPCcH4mzZbWeu7TkxMOKxxvnltDTbSQQNVblPU50MXdvJTQPNJGigUaq4YsnMtNrE0qNHO9QdYUtrmE1tJzh6KjbisbcvrmZjc4j1q+qpmobzfnRtZ5gGmknQQKNUaUimraFpNesM3qeMMbQd72dTa5itu8P0RIYPl/O4hMtX1NHSHOLKxnn4p3gKaIbP46LM5xk6XfRsooFmEjTQKFVaLMvQH0/RF01OqOpALvZBbT088dYJntnXRSzr7Owyn5t3rZpPS1OIi5bWTtumTrdLhjaKlnnduOb4ZtGzPtCIyHXAdwA38ANjzF1jPVcDjVKla7JVB3K+RjLNc/tOsrntBC8e6BlR/qau3Mc1a+rZ2NzA6oaKaVt/ERH8HtdQlYK5WI/trA40IuIG9gDvBg4DLwI3GWPeyvV8DTRKlb5k2qI/lqI/lhwRKCarN5Jk6x77DJ1dR0eWv1lcG6SlKcTG5gYW1QbHeIUzkz3aCXrdc6I0ztkeaK4EvmaMea/z/ZcBjDF/l+v5GmiUmj2MMQwm7ArSk9kEmsux3ihb2sJseivMwe6Rh9o1LahkY3OIDWvOvPzNePxeN2VOUsFsXds52wPN9cB1xphPOd9/ArjcGPO5rOfcCtwKsHTp0ksOHjxYlL4qpc5cImXRF0sycIbJAxnGGH7fOcim1hNsaQvTNZAYeswlcMmyWlqaG7hq5bwRh4lNl9m6tnO2B5obgPeOCjSXGWP+R67n64hGqdktsyenL5YiPsVRTtoyvH74lF3+Zm8ng/Hh1/N7XLzj3HlsbG7g0uW1eAqQ2jyb1nbGCzRnw1HOh4ElWd8vBo4WqS9KqQITESoDXioDXuKpNH3RlH0S5xn8Ue12CRctreWipbXc3rKKF/Z3s7n1BNvbTxJPWTy5u5Mnd3fa5W/W1LOxqYG1i6qmVP4mmzH2yaaxZBoGweMauVl01ox2zoIRjQc7GaAFOIKdDPDfjDG7cj1fRzRKzT3TkSKdbSCW4um9nWxqC/PqoVNkv4s2VPlpaQrR0tzAivnlU/5ZY8ke7QS8xV/bOaunzgBE5P3At7HTm39kjPnGWM/VQKPU3BZNpOmLnXnlgdE6++M8udvOXNsXHln+5tz6clqaG2hpClFf6Z+WnzcWt2tkTbaZrlJw1geaydBAo9TZIZW26JuGFOlsB08OsrktzObWMMd6h8vfCJnyNw1cvbqeikDhVy0yNdmC3pmZZtNAMwkaaJQ6u0xn8kD2a751rM8pf9NJb3S4/I3XLVy+wj5D54rGeTNSDVpECHhdQ3XZCpFUoIFmEjTQKHX2iiUz02qTOydnPKm0xc6DPWxuDfPsvi5iWdWpy31u3rWqno3NIS5YUjNjGzc9LhcBn2taN4xqoJkEDTRKqTM9fjqfaCLNs7/vYlNrmJ0HukecoTOvwse1a0K0NIdYFZq+8jcTMR0bRjXQTIIGGqVUxnRWHhjtVCTB1t2dbGoN89axkeVvltaV0dIU4trmEItqprf8TT5u1/DRB0Gve8L7gzTQTIIGGqVULlPdkzOeo6eiQ0kEh0aVvzlvYSUtzQ1sWFNPbdn0l7/JJ3P0QdDrHvdYaw00k6CBRik1nunek5PNGMPe8ACbW8NsaQtzcnBk+Zt1y2rZeF4D7zx3PkHfzO+bcYldHifos6faskc7GmgmQQONUmqipntPTra0ZXjNKX+zbU8ng4nhqbuAx8U7V86npTnEumWFKX8zEV63vWG0zOehzO/RQDNRGmiUUpNViD052RIpi+fbT7KpNcwL+0+STA//jOqglw2r62lpDrH2nKoZTSLIdm6oUgPNRGmgUUqdKWOGp9USqemdVsvojyXZtqeLzW0neK2jd0T5m4XVAa5tCrGxOcSyeYUrf5OLBppJ0ECjlJoOsaR9GmghptUyOvvjbG4Ls6U1zL7OkeVvVoYq2Ngc4po1hS9/AxpoJkUDjVJqOhV6Wi3jwMlBNrfamWvH+0aWv7lgSQ0bm0OsX1W48jcaaCZBA41SqhBmYlot83N2Hc2UvwnTFxseUXndwhWN82hpDnHFiuktf6OBZhI00CilCi2WtDeBDiamr9RNLsm0xc4DPWxus8vfxLPL3/jdXL3KTiK4YEnNlM/Q0UAzCRpolFIzJZW26I+l6CvwtBrYqdjP7Otic+sJdh7sGVH+Zn6Fj2ubQrQ0hVh5huVvNNBMggYapdRMy5S66Y0mp62C9Hi6B+3yN5vbTtB6rH/EY8vmlbGxOURLUwMLqgMTfk0NNJOggUYpVUyFqCA9niM9UTa3nWBTa5jDPdERj609p4qNzSE2rA5RXeYd93U00EyCBhqlVCkoVAXpsRhj2HNigE2tJ3hydyfdWeVv3C7h0uW1tDQ18I6V8wjmqPCsgWYSNNAopUpJIStIjyVtGV7tOMWm1hM8vbeLSHb5G6+Lq4bK39QNnWWjgWYSNNAopUpVPJXZBDoz02oA8WSa7e0n2dwa5oX93aSysghqgl42rKlnY3MDf3DhIg00E6WBRilV6mZ6Wi2jL5pk2177DJ3XD/eOeOzg3R8cM9AUZouoUkqpgnG7hJoyHzVlPgacTaAzMa1WFfTywbefwwfffg4n+mJscc7Qae8aHPc6HdGMoiMapdRsVIxptYz2zgHevXahjmiUUmou83vchCrdpMsNfdEk/bGZm1ZrrK8Y93ENNEopNYe4XUJtuY+aMu+MbgIdjwYapZSag0SECr+HCr9nxmqrjUUDjVJKzXEBr5uA1z1jRxaMVpSDpkXkBhHZJSKWiKwb9diXRWSfiOwWkfdmtV8iIm84j90jTtU3EfGLyM+d9hdEZHnWNTeLyF7n4+aZ+v2UUqoUedwu6sp9LK0ro77SP63HBIynKIEGeBP4Q2BbdqOInAfcCKwFrgP+RUQytQ6+C9wKrHI+rnPabwF6jDErgW8BdzuvVQd8FbgcuAz4qojUFvB3UkqpWUFEqAx4WVxbxjk1Qcr9hZ3cKkqgMca0GmN253jow8BDxpi4MWY/sA+4TEQWAlXGmO3GnmD8MfCRrGsecL5+BGhxRjvvBZ4wxnQbY3qAJxgOTkoppbCn1RqqAiypK6M66B0qKTOdijWiGcsioCPr+8NO2yLn69HtI64xxqSAXmDeOK91GhG5VUR2isjOzs7Oafg1lFJqdvG6Xcyr8LO0roz5lX687ukLDwUbL4nIJmBBjof+pzHm0bEuy9Fmxmk/02tGNhpzH3Af2Bs2x+ibUkrNeSJCVcBLVcBL1EmPjiRS+S8cR8ECjTFm4xlcdhhYkvX9YuCo0744R3v2NYdFxANUA91O+4ZR12w9gz4ppdRZKehzE/S5SaatoU2g1hmkR5fa1NljwI1OJtkK7EX/HcaYY0C/iFzhrL98Eng065pMRtn1wBZnHee3wHtEpNZJAniP06aUUmoSsqfV5lVMflqtKPtoROSjwD8B9cB/icirxpj3GmN2icjDwFtACvisMSazpfXTwP1AEHjc+QD4IfATEdmHPZK5EcAY0y0i/xt40Xne140x3YX/7ZRSam5yuYTqoJfqoJdIIkVvNEk0kb/qgBbVHEWLaiql1MQlUha90SShqsCYRTVLbepMKaXULOLzuKiv9I/7HA00SimlCkoDjVJKqYLSQKOUUqqgNNAopZQqKA00SimlCkoDjVJKqYLSQKOUUqqgNNAopZQqKA00SimlCkpL0IwiIp3AwXGeMh/omqHunAnt39Ro/6ZG+zc1s7l/y4wx9bke0EAzSSKyc6x6PqVA+zc12r+p0f5NzVztn06dKaWUKigNNEoppQpKA83k3VfsDuSh/Zsa7d/UaP+mZk72T9dolFJKFZSOaJRSShWUBhqllFIFpYFmHCLyIxEJi8ibWW1f4jrJnAAABtVJREFUE5EjIvKq8/H+IvVtiYg8KSKtIrJLRO5w2utE5AkR2et8ri2x/pXK/QuIyA4Rec3p3/9y2kvl/o3Vv5K4f1n9dIvIKyLyn873JXH/xulfydw/ETkgIm84/djptJXM/Rujf2d0/3SNZhwish4YAH5sjDnfafsaMGCM+WaR+7YQWGiMeVlEKoGXgI8Afwp0G2PuEpE7gVpjzJdKqH9/TGncPwHKjTEDIuIFngHuAP6Q0rh/Y/XvOkrg/mWIyF8A64AqY8wHReTvKYH7N07/vkaJ3D8ROQCsM8Z0ZbWVzP0bo39f4wzun45oxmGM2QZ0F7sfuRhjjhljXna+7gdagUXAh4EHnKc9gP3mXkr9KwnGNuB863U+DKVz/8bqX8kQkcXAB4AfZDWXxP2DMftX6krm/k0nDTRn5nMi8roztVbUqQEAEVkOXAS8ADQYY46B/WYPhIrXM9uo/kGJ3D9nWuVVIAw8YYwpqfs3Rv+gRO4f8G3gLwErq61k7h+5+welc/8M8DsReUlEbnXaSun+5eofnMH900Azed8FzgUuBI4B/6eYnRGRCuDfgc8bY/qK2ZdccvSvZO6fMSZtjLkQWAxcJiLnF6svuYzRv5K4fyLyQSBsjHmpGD8/n3H6VxL3z/FOY8zFwPuAzzpT9aUkV//O6P5poJkkY8wJ5w3AAr4PXFasvjhz9/8O/NQY8wun+YSzPpJZJwmXUv9K6f5lGGNOAVux1z9K5v5lZPevhO7fO4EPOfP4DwHXisi/Ujr3L2f/Suj+YYw56nwOA790+lIq9y9n/870/mmgmaTMPwLHR4E3x3pugfshwA+BVmPMP2Y99Bhws/P1zcCjM903GLt/JXT/6kWkxvk6CGwE2iid+5ezf6Vy/4wxXzbGLDbGLAduBLYYYz5Oidy/sfpXKvdPRMqdJBlEpBx4j9OXkrh/Y/XvTO+fZ/q7OHeIyIPABmC+iBwGvgpsEJELsecvDwC3Fal77wQ+AbzhzOMD/BVwF/CwiNwCHAJuKLH+3VQi928h8ICIuLH/4HrYGPOfIrKd0rh/Y/XvJyVy/8ZSKv/+xvL3JXL/GoBf2n+P4QF+Zoz5jYi8SGncv7H6d0b//jS9WSmlVEHp1JlSSqmC0kCjlFKqoDTQKKWUKigNNEoppQpKA41SSqmC0kCj1ASJyHLJquSd1f51EdmY59qvicgXCtc7pUqX7qNRaoqMMV8pdh+UKmU6olFqctwi8n2xz4j5nYgEReR+EbkeQETeLyJtIvKMiNwjzjkojvNEZKuItIvI7c7z/zLr62+JyBbn6xanpAsi8l0R2Skjz6VpEZFfZl5YRN4tIr9gFBH5UxH5DxH5lYjsF5HPichfiH1Gy/MiUuc8b6uIfFtEnhORN0XkMqe9XuxzUV4WkXtF5KD8/+3dO2gUURTG8f8R0YiSSrETFYRoRHzEIhIRG8VSBAMiiqIgttpFCBbWNgax0AgiAS0sREzlI0EFMcYHPkBIOgsVYoiPRE0+i3sT1vWVxR3E+P1gYefO3rl3ptjDnRnOiZhbyJW1KcuBxqwyS4A2SfXAW2Db+I6IqAFOAVskNQHzyvrWAZtJ+aFacy64LmB93t8AzMntTUB3bm+R1ACsADZExArgGrA0IsbH2AO0/2TOy4EdedxjwAdJq4A7wK6S382WtA44CJzJba2k9C2rSfmuFvzm+ph9x4HGrDL9ksZT6vQAC0v21QF9kvrzdkdZ3yuSRnIhqVekNB89wJqcV2qE9OffQAo+44Fme0TcB3qBemCZUkqPc8DOnBOtEbj6kzlflzQk6TUwCFzO7Y/L5t8BE3WYavNxm0hJKZHUCQz84tqY/ZCf0ZhVZqTk+ygwq2Q7Kuw7XdLnnGF4D3AbeARsJKVifxYRi4DDwFpJAxFxFqjJx2gnBY1h4KKkLxGxlbQKAdj3g3HHSrbH+PY/oDwflSZxTma/5RWNWfU8BxZHKvQG0DzJfl2kYNJFWsUcAB7kVUst8B4YjIj5pNogwEQa95fAEeBsbrskaWX+3Ktw/s0AEdEEDEoaJJWQ3p7bNwF/vdCf/Xu8ojGrEkkfI+Ig0BkRb4C7k+zaDbQAdyS9j4jh3IakhxHRCzwB+oBbZX3PA/MkPa3CKQxExG1ScNub244CHRHRDNwkFbsaqsJY9h9x9mazKoqIOZLe5Xo8bcALSccLHO8E0Cvp9B8e5wZwuHwVFBEzgdF8W64ROJmrfppNmlc0ZtW1PyJ2AzNID+9PFTVQRPSQbqsdKmoM0ltmFyJiGvAJ2F/gWDZFeUVjZmaF8ssAZmZWKAcaMzMrlAONmZkVyoHGzMwK5UBjZmaF+grjCRcSwhjEWAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"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": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7faa6cba1f60>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"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": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"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": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7faa6cb79ba8>"
]
},
"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": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y='price', data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7faa6caeb2b0>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7faa6ca1f6a0>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7faa6c9b17b8>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 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>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": 20,
"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": 21,
"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": 21,
"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": 22,
"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": 22,
"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": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </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": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 24,
"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": 25,
"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": 25,
"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": 28,
"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": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 30,
"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": 31,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 32,
"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": 32,
"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": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>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": 33,
"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": 34,
"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": 34,
"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": 35,
"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": 35,
"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": 42,
"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": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_group_by_body_style_price = df[['body-style', 'price']]\n",
"grp1= df_group_by_body_style_price.groupby(['body-style'],as_index=False).mean()\n",
"grp1\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 43,
"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": 44,
"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": [
"#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": 45,
"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": 46,
"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": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 51,
"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": 48,
"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": 52,
"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": 53,
"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": 54,
"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": 55,
"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": 56,
"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": 57,
"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": 58,
"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": 59,
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"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": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment