Skip to content

Instantly share code, notes, and snippets.

@Durlano
Created November 10, 2020 14:20
Show Gist options
  • Save Durlano/a5bb0e170f6c1bfc9dd3eca2a083f43e to your computer and use it in GitHub Desktop.
Save Durlano/a5bb0e170f6c1bfc9dd3eca2a083f43e to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/Logos/organization_logo/organization_logo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Data Analysis with Python\n",
"\n",
"Estimated time needed: **30** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"- Explore features or charecteristics to predict price of car\n"
]
},
{
"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",
"</div>\n",
" \n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries \n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:\n"
]
},
{
"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\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"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>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": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"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": 6,
"metadata": {},
"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",
"\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\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\":\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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>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": 7,
"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.\n"
]
},
{
"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>\n"
]
},
{
"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",
"-->\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" \n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 56424.74032508518)"
]
},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"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>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 \n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', ylabel='price'>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEGCAYAAABcolNbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABHQ0lEQVR4nO3deXzc1XXw/8+ZXaPN2kbe8QoS+2KcsAQcy01I0kKaksT0aUMbWkhKm/TX0iZp+yQpv6aFNk9SaNo80GyQZikhSSENkMY2xixmsQEHjOQFeZE3jTZrm33mPn98vyONZEkjaTSakXzer5eQdGe7+iLP0b333HPFGINSSimVL45Cd0AppdT8poFGKaVUXmmgUUoplVcaaJRSSuWVBhqllFJ55Sp0B4pNbW2tWbFiRaG7oZRSc8ru3bs7jTF1Y92mgWaUFStWsGvXrkJ3Qyml5hQROTLebTp1ppRSKq800CillMorDTRKKaXySgONUkqpvNJAo5RSKq8062yGbG8J8sCOVtp6Qiyr8nPHdavY0BAodLeUUqrgdEQzA7a3BPn843sJ9kdYUOIm2B/h84/vZXtLsNBdU0qpgtNAMwMe2NGK2yn4PS5ErM9up/DAjtZCd00ppQpOA80MaOsJUeJ2jmgrcTs51hMqUI+UUqp4aKCZAcuq/ITjyRFt4XiSpVX+AvVIKaWKhwaaGXDHdauIJw2hWAJjrM/xpOGO61YVumtKKVVwGmhmwIaGAHffeAGBch+94TiBch9333iBZp0ppRSa3jxjNjQENLAopdQYdESjlFIqrzTQKKWUyisNNEoppfJKA41SSqm80kCjlFIqrzTQKKWUyitNb1aAVp9WSuWPjmiUVp9WSuWVjmhmyFweEWRWnwbwe1yEYgke2NE6Z34GpVTx0hHNDJjrIwKtPq2UyicNNDNgrp9Ho9WnlVL5VPBAIyJOEXlNRP7b/r5aRH4pIgfsz1UZ9/2ciBwUkX0i8t6M9itE5A37tvtFROx2r4j8p93+koisyMfPMNdHBFp9WimVTwUPNMCngeaM7z8LbDXGrAW22t8jIucDm4ELgBuAfxOR9Lv714HbgbX2xw12+21AjzFmDfBV4N58/ABzfUSg1aeVUvlU0GQAEVkKfAD4EvBndvNNwAb764eA7cBn7PYfGmOiwCEROQisF5HDQIUxZqf9nA8DHwSetB/zRfu5HgW+JiJijDEz+XPccd0qPv/4XkKxBCVuJ+F4cs6NCLT6tFIqXwo9ovln4C+BVEZbvTHmJID9Of3utwRoy7jfMbttif316PYRjzHGJIBeoGZ0J0TkdhHZJSK7Ojo6pvxD6IhAKaXGV7ARjYj8OhA0xuwWkQ2TecgYbWaC9okeM7LBmAeBBwHWrVs3rdGOjgiUUmpshZw6uwa4UUTeD/iAChH5D6BdRBYZY06KyCIgnSN8DFiW8filwAm7fekY7ZmPOSYiLqAS6M7XD6SUUupMBZs6M8Z8zhiz1BizAmuRf5sx5neAx4Fb7bvdCjxmf/04sNnOJFuJtej/sj291i8i77SzzT426jHp57rZfo0ZXZ9RSik1sWKsDHAP8IiI3AYcBT4MYIzZKyKPAG8BCeBOY0w61euTwHeAEqwkgCft9m8C37UTB7qxAppSSqlZJPoH/kjr1q0zu3btKnQ3lFJqThGR3caYdWPdVuisM6WUUvNcMU6dqXloLhcdVUrlRgPNPFHMb+TpoqNup4woOno3FE0flVL5o1Nn80CxV4+e60VHlVK50UAzDxT7G/lcLzqqlMqNTp3NknxObbX1hFhQ4h7RVkxv5Muq/AT7I0MHq8HcKjqqlMqNjmhmwUxMbW1vCXLLgy9y7b3buOXBF0c8ttirR+sxBEqd3TTQzIJcp7ayBapifyPXoqNKnd106mwWTGZqa6KptcxABeD3uAjFEjywo3WomOfd9v2O9YRYWmRZZ6BFR5U6m2mgmQXZ1iiypf9OJlDpG7lSqljp1NksyDa1lW1qrdjXYJRSaiI6opkF2aa22npCOAVaOwaIJVN4nA5qyzxDI5b5cIJnMW8oVUrllwaaWTLR1Fa518WB4ABOh+B0CImU4fjpCGsDZUOPLfY1mIloZQClzm4aaIrAUAXtdCFtM6qdub0Gky2ZQSk1v+kaTREYiCVZssCHyykkjcHlFJYs8DEYS2Z/8ByglQGUOrvpiKYIpLPSVtWVDbWFYgkC5b4C9mrmaGUApc5uOqIpAsW+4TJX8/3nU0pNTANNEZjvO+c3NAS4+fIldPRHaT7VT0d/lJsvXzJvfj6l1MR06qxIZFvsn8vpwdtbgjz66nHqyr0st9OzH331OBcvXTBnfgal1PTpiGYOKPbzZrIp9mMMlFL5pYFmDpjrb9RtPSESyRStHQO0nOqjtWOARDKlWWdKnSU00MwBcz09uNzr4vjpCImUGbEhtcyrM7dKnQ000MwBc73W2YgNqekPRm5IVUrNXxpo5oDZSA+e6GC1XM33DalKqYlpoJkD8p3+nO9kg2VVflxOB6vqymhYWMGqujJcTsecGZEppXJTsElyEfEBOwCv3Y9HjTFfEJFq4D+BFcBh4CPGmB77MZ8DbgOSwKeMMb+w268AvgOUAE8AnzbGGBHxAg8DVwBdwEeNMYdn6UecUfmsdZbvWmTzofq0Umr6CjmiiQIbjTGXAJcCN4jIO4HPAluNMWuBrfb3iMj5wGbgAuAG4N9EJL1C/nXgdmCt/XGD3X4b0GOMWQN8Fbh3Fn6uOSffyQbzfUOqUmpiBRvRGGsleMD+1m1/GOAmYIPd/hCwHfiM3f5DY0wUOCQiB4H1InIYqDDG7AQQkYeBDwJP2o/5ov1cjwJfExExugo9wmzUIpvL1aeVUrkp6BqNiDhF5HUgCPzSGPMSUG+MOQlgf06/Oy0B2jIefsxuW2J/Pbp9xGOMMQmgF6gZox+3i8guEdnVHuwg2BchEj97Fqq1FplSKp8KGmiMMUljzKXAUqzRyYUT3F3GeooJ2id6zOh+PGiMWWeMWVdTW8tANMGJ02GO9YToi8TnfRquTm0ppfKpKHbMGWNOi8h2rLWVdhFZZIw5KSKLsEY7YI1UlmU8bClwwm5fOkZ75mOOiYgLqAS6J9uvWCJFZ3+UnsEYZV4XFSVu3M75mainU1tKqXwp2LumiNSJyAL76xJgE9ACPA7cat/tVuAx++vHgc0i4hWRlViL/i/b02v9IvJOERHgY6Mek36um4Ft01mfSaYMveE4bd0hTvVGCMUSU32Ks14+9+kopYpbIUc0i4CH7MwxB/CIMea/RWQn8IiI3AYcBT4MYIzZKyKPAG8BCeBOY0x6IeWTDKc3P2l/AHwT+K6dONCNlbWWk1AsQSiWwO10UFHiptzrwuEYa4ZOpW1vCXLXo3sYiCZIpgydA1HuenQPX775Eh1FKXUWkPm+/jBVl15+hfnJL56Z9P0dIpT5XFT43Hhc83NaLVc3fPUZDnYM4hRBBIyBpDGsqSvlqf/v+kJ3Tyk1A0RktzFm3Vi3FcUazVyWMoa+cJy+cJwSj5MKn5tSLRY5wqGuEA5haOQnAiZlONQ1N4qCKqVyo++IMygcSxKOJXE7HZT7XJT73Dh1Wk0pdZbTuZ48iCdTdA/GONodoqM/SjRx9uzJGcuq2lJSxhr9GQwpY0gZq10pNf9poMkjYwz9kTjHe8Kc7A0zGD07s9U+c0MDVX43AiSSKQSo8rv5zA0Nhe6aUmoWaKAZ5UB7Pw/uaOXt4MCMbtQMx5K090Vo6w7RG4qTSp09SRgbGgL8082XcNnyKhZVlnDZ8ir+STPOlDpraNbZKN5Fa82iW/8ZgBU1fjY11rOxIcDCSt+Mvo5mqyml5pOJss400IyydO2FZsUf3M+xnvCI9gsWV7CpMcCGcwNU+t0z+pqaraaUmus00EzBpZdfYX781Hb2tfezpTnI0y1BekLxodudDuHKFVU0NQS4ek3tGeX1c+F2OqjwuSnzueZdttr2liAP7GilrSfEsio/d1y3SqfOlJpHNNBMwegNm8mU4bWjPWxtCfLsgU5CGccP+9wOrl1Ty8aGAOvOqcI1Q3XQRMSurebC65q5QFYo6RM83U4ZcfCZFu5Uav7QQDMFE1UGiMaT7GztZmtzOy8f7iaeHL52lSVuNpxbR1NjgAsWV2CVXcvdfJhWu+XBF8847yYUSxAo9/GD299ZwJ4ppWaKVgaYIV63kw3n1bHhvDr6I3F27O9ka0s7e9p66Q3HeWzPCR7bc4KFFT6aGgM0NQZYUZPbXpHMTaAVPjflvrlXW62tJ4RToLVjgFgyhcfpoLbMM2MneCqlipsGmmkq97n5wMWL+MDFi+joj7KtJcjW5iAHOwY41Rfhey8d5XsvHWV1XSlNjfU0NQSoK/dO+/XiyRRdg1F6QjHKfC4q59CRBeVeFweCAzgdgtMhJFKG46cjrA2UFbprSqlZoIFmBtSVe/nolcv46JXLONw1yNbmINtagpzsjfB2xyBvd7Ty7ztauXhpJU2N9Vx/bi3lvullrmXWVvN7rIBT4inudZyh6dn0TKMZ1a6Umtc00MywFTWl3HbtSj5+zQreOtnHluYg2/d10BuOs+dYL3uO9XL/1gO8Y2U1TY31XLWqGu80M9cyjyx449hpHt55hGOnw0WX1TUQS7JkgY/OgdjQ1NnCMi+DsbO7NI9SZwsNNHkiIlywuJILFldy54bV7D7aw9bmIM8d7CQST/H82108/3YXfo+Td621MtcuX141rbTm5w90ct+2A7idQpnHSXtfmM8/vpe7oSiCzbIqP8H+CKvqhqfK0skASqn5TwPNLHA5HbxjZQ3vWFlDOJ7khYNdbG1p55XDPYRiSX6xt51f7G2nyu/m3Q0BmhoCNCwsn3Tm2g9facPlEHwuJyljvV4yleTr298uikBzx3Wr+PzjewnFEiPSm++4blWhu6aUmgWa3jzKunXrzHM7XyIUSxKOJ4nG8ze90xuKs31/B9ta2nnjeN+I25ZWlbDRDjrLqv0TPs8t//4iFT4XwnBgMhj6Iwl+/EfXUOFzUeZ1zVjK9XSkN2we6wmxtMim9pRSudP05inyuZ347HWTZMoQiiWsNON4kuQMFsOs9Lu56dLF3HTpYk71RtjWEmRLczuHu0Ic6wnz8M4jPLzzCOfVl7OxMcDG8+qoKTszc21RRQldg9ERVQoi8RQLK0qIxpN0xJN0D8Yo97mp8LlmbGPpdEz36mllAaXmLh3RjLJu3Tqza9eucW+PxJN5He0YY2jtGGRri5W5FuyPDt3mELh02QKaGut519payuxNnC+3dnPftgPW9JnbQSSeIpEyfHrjWtavqh7x/CJCqcdJuW/2stVyrQyglQWUKn5aGWAKsgWaTPkc7YCVyvzG8V62Ngd5Zn8H/ZHh82zcTuGqVTU0NdbzjpXVvH70ND98pY1TfWEWVpSw+cplZwSZ0WZrE2iulQFuefBFDncN0BdODGWtVZS4WFFTppUFlCoSOnWWJ06HUO5zD+2JicStXfyhGRrtOES4ZOkCLlm6gD/ZuIZXDneztTnIC293EU2k2HGgkx0HOin1Orl+bR2/e9VyLlm2AMck12JmaxNoW0+IBSUj9w2VuJ2TrgxwINhPbyiOI2PDZ2d/jHiyf8b7qpSaeRpoZlB6baeKmR/tuJ0Orl5dy9WrawnFEjx3sIutze3sPtLDYDTJE2+e4ok3T1Fb5uHd5wXY1BhgTaBsUgkAmZtAS70uyn2uEaMPyG2NJJ3enPmc4XiSpVUTJzmkxRIpEIYCqAikxFjtSqmip4EmT8Ya7YRiSUKxRM5vkH6Pi/ecX897zq+nezDG9n0dbG1pp/lkP50DMX60+xg/2n2Mc6r9bGy0MtcWLyiZ1HMPRhMMRhO4HA7KfVbQee5A59AayYISN8H+yJT26eSa3ux2CuE4pFIGEUjP9nqcw0FUkwWUKl66RjPKVNZopiuRTBGKJwlFrdHOTP0/ON4TZmtLO1ubg7SNOrjt/EXlNDXWs+G8Oqr8nkk/p4hw1yN76A5FKfMOT39NtfpyLunNtzz4Ioc6B+iPDK/RlPtcrKy11mi2twT5i0f30B9JkEilhoKkHhet1OzRZIApmI1Ak8kYQzieZDBqre8kUrlPBxljOBAcGKq51jUYG7rNIbDunCqaGuu5dk3tpDLP0vt0HOLA6RDSeQO94TjPfmZjzv3NJlvW2fv+ecdQ0c70iCeZMqwNlPHkn16X9/4ppTQZoKiJCH7P8JpINGEnFMSSRKaZUCAinFtfzrn15dx+3Sr2HDvN1uYgOw50MBhN8vLhHl4+3IPX5eDq1TU0NQa4ckX1uIkAw/t0hETSgFjrJksmOR2Xqw0NAe6GcUdErZ2DOEat4RgxtHYOzkr/lFITK1igEZFlwMPAQiAFPGiMuU9EqoH/BFYAh4GPGGN67Md8DrgNSAKfMsb8wm6/AvgOUAI8AXzaGGNExGu/xhVAF/BRY8zhWfoRp8XrcuJ1OVngt9YkQvHkUFLBdBIKnA7h8uVVXL68ik83reXFQ11sbQ7yYquVufb0vg6e3tdBhc/F9efV0dQQ4MIllSMy1zZfuYz7th0gHE9a+3Ri1j6dD166hPa+CBWzsCdnQ0NAp8GUmqMKOaJJAH9ujHlVRMqB3SLyS+D3gK3GmHtE5LPAZ4HPiMj5wGbgAmAxsEVEzjXGJIGvA7cDL2IFmhuAJ7GCUo8xZo2IbAbuBT46qz9lDhwO60jn9MbMXNOnPS4H162t47q1dQxEEjx7oIMtLUFeP3qavkiCn+05yc/2nCRQ7mVjQ4BfO7+elbWlrF9VzQ2n6nlk9zHC8SQlbicfuWIp61dVDyUPuJ0OKkrclHtn/2C2lTV+DnYMIhnJAikDa2onl9WmlMqvolmjEZHHgK/ZHxuMMSdFZBGw3Rhznj2awRjzD/b9fwF8EWvU87QxpsFuv8V+/B3p+xhjdoqICzgF1JkJfujZXqOZrmTKWtvJZbST1jkQ5el9HWxtbmd/+8CI21bVlnJufTmvHrWm2rJVHnCIUOZzUeFz43HNTqmb7S1B7np0DwPRBMmUwWkH6C9rMoBSs6bo12hEZAVwGfASUG+MOQlgB5v0O8USrBFL2jG7LW5/Pbo9/Zg2+7kSItIL1ACdo17/dqwREcuXL5+xnyufnDM42qkt83JOlR+/20VNqRuXw0EiZegajNHaOTi01lHidlgp214XkOKHr7SdEWgy9+SUeJxU+NyUel15TT/e0BDgyzdfokU7lSpSkw40InIOsNYYs0VESgCXMSbnrdkiUgb8GPhTY0zfBBsMx7rBTNA+0WNGNhjzIPAgWCOabH0uRrlsFs2slVZd6iESTyHJFHdev5qTfRH+6/XjpAyE4ynC8SjB/iilHid9kTiReHKoAOlo4ZgV/HYf7uGep5oZiCRIGkNnf5S/eHTPjKYf6xqOUsVrUoFGRP4Q6y/+amA1sBT4v0BTLi8uIm6sIPM9Y8xP7OZ2EVmUMXUWtNuPAcsyHr4UOGG3Lx2jPfMxx+yps0qgO5c+zwVT3Sz6w1faSCSTnA4liSdTuJ0OyrxOnn+7i6989BLeDg5wojdMNJGiP5rAGIZOx/zQ11/g2jW1bGqs54pzxj647evPvE3PYJz0KydSKeKDMe59qmUoOOiGS6Xmr8mOaO4E1mNNbWGMOZAxpTUtYg1dvgk0G2O+knHT48CtwD3258cy2r8vIl/BSgZYC7xsjEmKSL+IvNPu38eAfxn1XDuBm4FtE63PzFfp0U51qWdos2h6tJEyhiPdg/SH44hDcNi1xHoG4yRS1pTZLeuXc9+2A/jcTurKPZwOxRmIJkkkDZF4ii3NQbY0B3E5BLdTWLrAz8evWcE7VtcAcLRrkNHhLWngQLs1IB694XKsEY8GosLS669yMdlAEzXGxGRon4K4mP7RImnXAL8LvCEir9ttf4UVYB4RkduAo8CHAYwxe0XkEeAtrIy1O+2MM4BPMpze/KT9AVYg+66IHMQayWzOsc9znsvpoMKu2myMIZpIEU+eWUssmVFLbP2qaj7N2qHq0MuqStl85TLOW1TOswc6+OmrJzjUNUgiZUikDAc6Bvibx/dy/dpaPnbVChLj/KYkDBztCvH3TzTTPRjD5XTgcjowBnpC8aERT+aGzemUwCkGc/mNej5cf1VYkw00z4jIXwElIvJrwB8BP8vlhY0xzzH2GgqMMyVnjPkS8KUx2ncBF47RHsEOVOpMIoLP7cTrchBNpDAT1BJbv6p6zGMHfv3ixWxr7mBRpZd4wtAXtabnkinDtn0dbNvXMe7rO8WaRjvUZW24FABjBbzMDZcP7GjF7ZShTa1+j4tQLMEDO1pn7I0un4Fgrr9Rz8b1V/PbZPNPPwt0AG8Ad2DtVfmbfHVKza5z6yso8zpJGEM0aUgYQ5nXydr6Chb4PVmPDjjZF6bM66K61MOKaj/nVJdQ5XeTbTtNXfnI00KN/ZEyBmN/gHXMQMmohIOpHDOQTToQBPsjIwLB9pZg9gdPQuYbdboShNspPLCjdUaeP9/yff3V/DfZQFMCfMsY82FjzM3At+w2NQ9ctaqavkgSp0PwuqwzX/qjKa5dU0N1qYdl1X6WVfupKfMOvVlmWlRRQiQ+vArjdTkp87q4aHEl92++lArv2APnvkiCZ/Z3sKTSR8pYlRCMMaRShpSBpQtK6ByIsmRBCeFRKdtTOWYArGByy4Mvcu2927jlwRdHBJF8B4K5/ka9rMqf8/VXZ7fJBpqtjAwsJcCWme+OKoSdrd3UlXnwOB2kDHicDurKPOxsHU7QczsdVJa4WVjpY0WNn/oKH+U+a8/N5iuXMRBNcLhrkLc7BjjcNchANMEt65dz4ZJKEqmx9/WEYkn+9mdvcbIvitMhGAzJlEEcUFHi5vbrVtMXjvObly4hHE8yEI2TSqUIxRJnHDMwUSDJNmLJdyBYVuWnazBKa8cALaf6aO0YoGswOmfeqO+4bhXxpJUyb4wZ8/orNZHJBhqfMWZoy7j99dz4V6KyausJUVvmZVVdGQ0LK1hVV0ZtmXfcN1oRodTroq7cy/IaPzVlHvrDcWJJQ9JALGnoD8eH7h8ZLxsAq5p0NJEiljQkUlY2WioF166u4cqVVYC1PvTexnqCfVGaT/XT3hfhNy9dPCIj7S8e3cNrR3s41RvmtaM9/MWje4YCyQM7Woknk5zqjbCvvZ9TvRHiyeTQiCXff7FftaqaYH+MWDKFQyCWTBHsj3FVlqO2i8WGhgB333gBgXIfveE4gXLfUOVspSZjsskAgyJyuTHmVRgqYhnO8hg1R+R6AuZnf/yrMzLLEgbuebKZn9x5DeMllAvw6Ceu4qEXjvDEmyeJJ607JlKGn71xihcP9fCBixdSW+rlqbfaqS71DJXAeWT3Mc6pKeU9Fy7knieb6QnFcTpkzKy1bEdB53owWzbpEePo83R2tnbzqRl5hfzTDbEqF5MNNH8K/EhE0hshFzGHilOqieX6RtsVio/ZfjqSYFFlCaVeJ6FYEmOGSzmIWNNTC/wejnSFWFjhw+UQ+iKJoTfkjoEo33nhCGBlwFWWuHE7hs+keXjnES5dvoDWzkGMMcTsaCdijZTSWWvZjoLOdgxBrtIjxrpy31CbMWbOrNEolatJBRpjzCsi0gCch/U+0WKMGfvdRc05k3mjnW76b4nHye3vWsV92w7iEINDrMrKKQMfucIq6HCyL0yFz4Ug1JR6qPa7iSaSdA3G8XtcdAxEiSUNHQMxOgZi+D1Oyr1OTvRab9QpY03ZpaWrN4tYjZM5Cjqff7HnOmJUaq6bMNCIyEZjzDYR+dCom9aKCBllY9QcN9Ebba77QD616VwOdQ7w+K9OEUta1ZVvvLieP7+hgVDMGvV0DUSHFuRFBIOwNlDOlz9yMXc8vJtTfRHC8SQpg11OJ4kAf/uzt8admsNYyQXn1leMcRS0m5W1ZdO7WFOU76k5pYpdtmSA6+3PvzHGx6/nsV+qiOSa/ru9Jcjuo72sqPFz4eIKVtT4ebWtj12HugmU+/j0xjUYIJq0prLC8SSJlGHzlctwiPCH71pFRYmbxZU+FlV6hwKSAZ7Z3zFiNJMpZeBod4iPrluGy+lgYaWP8+rLWVjpw+NyztobvS6mq7PdhCMaY8wXRMQBPGmMeWSW+qSKTFtPiAUl7hFtU0n/zbaz/N2N9fydyNDU3eIFJXzsnedwxYpqwvHkGSVwzqsv54OXLiacSLKlOcjuIz3jvnYqleLiZZX88YY1/OeuNoJ9EZZV+/nE9atn9Y1eF9PV2SzrGo0xJiUifwxooJnHJlqDybbGkLnukSm9r3MygWq8N+KUfcBb0/n1XL2mlkRqZHnO916wkBv++RliY2zVSRr4+EO7aGoI0NQY4P985BK7X0Kp10k4lsz7EdRKqcnvo/mliNwlIstEpDr9kdeeqVmTbUNjtg17pe6xf43S7bnsU3E4Ru7ZWVrlp6bUS4nHOVShwO9xjVs070hXiG89f5j/9Y2X+ZMfvMZjrx/n9GCMgUiCk71h2rpDnA7FcjqhVCk1scmmN38ca0r8j0a162rmPJBtaitbVlr8zCNuRrTfcd0q7np0D8dPh0cctfy/P3D+lPvqcTnwuBxU4iaVMoTiSVbXlXOke5DBaGLoPB2/20FNmY+Lllby9L4Ougdj7D3Rx94TfXzt6bdZd04VmxoDXL2mlngyxVNvnuJHu45xsi/MOdWlc6q68kyYy9WlVfGbbKA5HyvIXIsVcJ7FOvhMzQNtPSGcAq0dA0NZWbVlnjHXYMb7u9/jFJyO4ZFNctQUVzyZIhpPYYBE0uB1jROdxjHeG2GZ18WfbFzD5x/fS7nPhdfpIGRndX38mpWsX1XNJ65fzettp9nS3M6zBzoJxZK8dKiblw5143M5aFhYzpHuEKUeJ6UeJ8dPh/jr/3qTv73xfDadv3BK/ZyL5np1aVX8Jjt19hDQCNyPdahYo92m5oFyr4vjpyMk7NFGImU4fjpCmV0MM9vU2qraUusQtIR1dHQkYR2Ktqq2FIB7n2phMJrE43Lgc1sjksFoknufaplU/7K9/oaGADdfvoSugRgHOgY5HYrzkSuWcsNFC/G6nTgdwhXnVPGZGxr48Seu4gu/cT7XrqnF7RQiiRSvH+ulJxTnRG+EYH8UkwLB8LVtb3OyN0xfJE4qx6m1iWqxFdpcry6tit9kRzTnGWMuyfj+aRHZk48Oqdk3dOho+r3UjGzPNrX2vgsX0nKqfyghIP35fRdao4HWTuu8mcyd+ZnnzWST7fW3twT55vOH6I8kMEB/JMF3dh7msuVVbGgIDJ0qGoomERGuP7eO68+toz8SZ8f+Tu7fdoB40qoY3RtO0BtO4HIIPaE4b53oY2VtKV1ibRQt87rwZ6wPTUaxjxhyzSpUKpvJjmhes49KBkBE3gE8n58uqdk2EEuyZIEPl1NIGoPLKSxZ4GPQTuXKVt34yTdPnTGlZuz2mZDt9f/3Y2/SG04Awyfp9YYT/O/H3gTsU0V9VuXpc6qtytNlPhcL/B4+cPEiLlhUyaJKH7VlHrwu659EImUYjCW57aFd/OHDu/jBS0c41DFAe1+Eo90hOgeiRBNjV6UerdhHDHoMgMq3yY5o3gF8TESO2t8vB5pF5A3AGGMuzkvv1KxIpy+vqhveKR+KJQjYtbmypTfvb+8f83nT7Str/BzsGEQySsCkDKypndwbWbbXP9Zj13fNHGSYjPYM6Sy2Uq8LYwyReIqPX7uCe55socTtpMrvpj+SYCCawONy0j0Y4+2OQd7uOMSDzx7C7RTqy318/JoVbGgI4LYLZJZ5XbjGOSCu2EcMWrlA5dtkRzQ3ACuxKgVcb3/9fqzqAL+Rn66p2ZItfTnb7ePtzE+3f/Z9jSzwuxEHJI113swCv5vPvq9xRvo3NONnhj8y28cjIpR4nNx46RL+/jcvYvGCEgajSRZXlvA37z+fH93xTv7llku5alXN0Gmh8aTh2Okwd/+8mTu/9yq/fOsUJ06HOdod4mRvmP4x1nOKfcSglQtUvk22qOaRfHdEFU629OUNDQFuPnaabzx3iMFYklKPkz+4duWk34g2NAT48s2XTLs6crb+eRxCbIzFek+2s6RHvUZmf+LJFKFYknVeF9989jCLK30YY50KOhBLYAw0n+rn7v9upsTt5F1ra2lqDHD58iorvdqbXs9xzYkRg1YuUPk02akzNc9lK6r58ItHRhzc9fCLR7h46YIpBYtc3sgmenxFiYvOwTOLiVeUDP96Z9snMt7tlSVuOgYiVPjcpAyUel2kjGEgmqAnFCdhVy74n7fa+Z+32qnyu3n3eVYlgoaF5bicDi5cWsnfvL+Rb79wOC/HEChV7DTQqKzuebKZ06E4ThGcIpgUnA7FuefJZjY0BPA4hdgY82eZZfjzqT+axAFk7sxx2O0wfAJnfyRBIpWisz/KXzy6h3+6+ZKhrLWJbl9eXTq0RmSMlZ3mSaZoXFjBF248n2f2d/CDl47S3h+lJxTnJ68d5yevHWfJghKaGgJsbAywpr6Mf7z5Ykq91nqOxzXZWWul5j79bVdZHeoKAYZ4KkU0kSKeSgHGbody35klYASo8M3e3zEup3UgWvrDlRHk7n2qhe7BGNFEikTKOjq6ezA2tI/n3qda6AnFMVgZaobhEzph5BoRYGebCX/87tWcU1NKfzhOsD96Rp+Onw7z8ItH+L1vv8In/mM333/pCAeD/RzrCXGsJ0RvKE4iObWNq0rNRTqiUVmlUgb7kEqws8YSxtrUCIxz3otr1s57yZbVdjA4QNIMn+yJsRIVDgYHgOz7fLKtEf3g5bYxEw+cAjVlXoL9Ufa3D7C/fYCvP9NKmdfFe8+v59ZrVlDmdVHicVqZcB4XzimsK80nWgJnftMRjcrKnZm2a85sv+O6VXhczoKd95Itqy2RTkNLv4fbnxPjnpg2vrEeEYqPvZ8maeD7f/gO7njXqhFTZQPRBD9+7Tgf+rcX+MLje/nF3lOc6BnOXOuLxM+qIp/ZKj+oua+ggUZEviUiQRF5M6OtWkR+KSIH7M9VGbd9TkQOisg+EXlvRvsVIvKGfdv9Ym/bFhGviPyn3f6SiKyY1R9wnijxOEjHmvTbn9MBfo/VWOj02HRW22XLqlhY4eOyZVV82V5fAWtkAWemP6fbV9b4SaYMkbhdQieeJJkyrKyxRkTbW4Lc9egeXmvrob0vwmttPdz16J5JvREGKnxsbWknmUzhcoDLMXx8QiJlePZAJ198/C1+6/++wD891cLzBztp742cVUGn2De0qtwVeursO8DXgIcz2j4LbDXG3CMin7W//4yInA9sBi4AFgNbRORcY0wS+DpwO/Ai8ATWvp8ngduAHmPMGhHZDNwLfHRWfrJ5ZDJTY4VOj53o9ReWeznWe+YaysJyLwDvv2gRX9lyYKjdYI1G3n/RIsBKhugZjJEyDBUFjSdiQ8kQE6nwuWnrCeMQcDqs9R8nkExaBUavOKeKXUd6GIwmeeLNUzzx5ilqyjxstDPX1gbK6LT3+5TZ02uOeTa9VuwbWlXuCjqiMcbsALpHNd/EcMHOh4APZrT/0BgTNcYcAg4C60VkEVBhjNlprOJcD496TPq5HgWa0qMdNXmFnhrLVXmJZ8xkhfISD2CVyhnr9nQJnYMdg0ObT9P3Sxp4u2NytdrA2hwqIjhEhtaKnA7hnt+6mEfuuIrfuHgRfvsQtq6BGD/afYxP/Mer/P53dvHdnUc4GBygoz/Kke4Q7X0RBqKJnAt9FotlVX46B6K0dgzQcqqP1o4BOgeiRbOhVeWu0COasdQbY04CGGNOikj6T8YlWCOWtGN2W9z+enR7+jFt9nMlRKQXqAE6M19QRG7HGhGxfPnyGf1h5oNsi+GTUcjF3o6BKHYOwBCx28FKChirVls6WSA9dTX6PolJvtGvrPFzIDhAPJnE2K/tECtZob7Cx56jp3nuYCeJVMqazstIaDjaHeLbLxzm2y8c5vxF5WxsqOfdDXVU+T3WSaEeJ36vC7/bOWdHOletqublw912Qoa1T6tjIMZvr9ezFeeLYgw04xnrX5GZoH2ix4xsMOZB4EGAdevWzY8/E2dYLlNjha5eHIolSTGcNYex9tyE7KKh8XECRrrd4ZAx10km+8Y+3tTcBy5eTKnXxQM73qYnlLHh1H6pJZU+rl5Ty7Z9QboGYrx1sp+3Tvbzb9sPcsU5VTQ11nPtmhr80fTahtP+mFvZaztbuwmUe+gLD0/NVpS42NnazacK3Tk1I4ox0LSLyCJ7NLMISK+4HgOWZdxvKXDCbl86RnvmY46JiAuo5MypOpVn2cr851vMrrJshv4zsj0bj1MIj1Xixs4mKPc66I+euR+m3GvNTD/xxkkc9kun/zISu/1Tm85lvz1yGu1Eb4RPbljN7det4lfHTrO1OcgzBzoYjCZ55XAPrxzuwetycPXqGjY2BFi/sprBqAORGD63A7/HRanHOW6xz2LR1hOiptRLbZlvqM0Yo2s080gxBprHgVuBe+zPj2W0f19EvoKVDLAWeNkYkxSRfvsYg5eAj2Edzpb5XDuBm4Ftxkwjp1XlpNCLvU6HA2OsxXdjrPURsdsnw+9xEk2krIw1hvfjlNprKpU+N/3RM5MNKn3Wz3yoK4RrjBNI0xtex5uBM8ACv4f+SJzLlldx2fIqPtW0lhcPdbGtOcjO1i6iiRRP7+vg6X0dVPhcXH9uHRsbA1y0pJJwLEkX4HU7ee1ID9998QjHT4eLbp9Kturcau4raKARkR8AG4BaETkGfAErwDwiIrcBR4EPAxhj9orII8BbQAK40844A/gkVgZbCVa22ZN2+zeB74rIQayRzOZZ+LHUKIV+I0mvkaQDBXawSacvZ5Mt6+5k35lBZqL2qagu9VDldzMYS9IXtqbXrltbx3Vr6xiIJnj2QCfbmtt5re00fZEEP/vVSX72q5MEyr1sbLAy17r6Y9z7ixYGowmSKUNHX4S7ftTHP918Ce9urM+5j7kqhqKjumE0vwoaaIwxt4xzU9M49/8S8KUx2ncBF47RHsEOVKpwCv1G8v6LFvHVjDUSsEYR6fTlbNL9X1jpGrP/2Y5JWFVbSsupfmLJ4ak6ARoWTq5ygohQZtdIiyVS9EfiDEQTlHldvO/ChbzvwoVseaud77xwmGB/lETKEOyP8sNX2vjhK224nUIiaYZmDZNJQ3wwzt/9vJkLllQWPJlgJpJNcpGt1h3A/Vv2n1G9/FObzp2V/s0HxTh1puaZQr+R7Gztpr7Ce8aIZLKLzbkek9CwsIzmUyMPhzNMPtBk8rgc1JR5qS71MBhL0h+J80xLB99+4TAuh7Cy1j90cJvX5aRrMEZ8jEiYAo50DTIQte77D0+8xdaWDlLGyvy66ZJFfHXz5VPu33QVch9Wutad0yFWrTszXOtuQ0OA+7fs575tB3GIteE2HE9y37aDABpsJkkDjZoVhXwjaesJUVvmpa58eovN21uCPPrqcerKvSy3RzSPvnp80sckbG3pwCmcsUa0taVjmj/RyFHOT18/jtflsMrcGGuTqNvpoNrv4e6bLuDO77825nMkDGxtDvLCwQ6e3j+c8Z8y8NPXTxJN7OIrH70M36hjtOebbLXuvvHcITvIWGtsDoFEKsU3njs0Y4Fmvk/daaBR896yKj+HuwbOSJ9dUTO5EcUDO1qJJ5N0DYx8/GSz5gZjSVxOwSHDyQApk2IwNrmst2yOnw4PJVukjLXvx+d20N4foXFRxYSP/dITzePe9tTedu46HcbpsDIG0+nTZ9ue58FYktGnOjiEGfv/V+j0/9lQ3HmPSs2Aq1ZVE+yPjTi4Ldgf46pV1obApQt8Yz4u3X4g2E9nf4xEyuB0CImUobM/xoGgNR023p6VdHupx3lGZlnKDGet5Sp9VLSI4HQIHpeDRMqwZIE/a1BwTbAuk+5zMmXoj8Rp74twuCvEqd4IveE48Vk84mB7S5BbHnyRa+/dxi0PvjijBTdX1vhJGatKuTGGVMo6cyidLJLv/39nQ603DTRq3tvZ2k1dmQeP02EdWuZ0UFfmYWertaXq7z54ERVeJ+n3XIdAhdfJ333wIgBi9hkJVvkYq4wMYrcz/gFv6fY/uHYlKWNNt6RMyv5stc+EzPNyjLE+J1PwJxvXsLx64sy6Rz9x1YS3f/O5QxzuGi61k37+roEobd0h2rpDdA1ECceS5GvnQHqx/rWjPZzqDfPa0R7+YpJFTScjW/XvfP//a+sJUTJqenK2a73lM5CDTp2ps0C2NZoNDQHuv+XycZMV3E4hHLf+4k2fdwPDgSTbPpv0PH6+spZySbaoGLW/abTvvXSU7710lDV1ZTQ1BtjYEKDOLkYKEE+m6A2n6A1bi+kl7pkviZNtsT5X6erf412/fP//K3T6/2xM3WmgUfPeZP4hT5SsMPY+GvfQPprJVLf+1KZzx31j8rogmjizfSoHlOYr2WJhhY9TfREOdgxwsGOAB3e0csmySpoa6rnu3FrKfcOBKpkyQ1lsIumg48z5QLdsi/UzIdv1m+j/X64Knf4/G5U7NNCoeS/Xf8jZ9tFkuz2by5fXsKeth1B8eM3D73ZwybKqCR41eTV+F12hMyNZdYmT2ozRyVi+9wfr2Xuij++/dJRXjvSQTBleb+vl9bZe7t92gPUrq2lqqOeqVdV4M6Z/0lNsoViCTqLc+2Qzv2wOkjLW2tWNFy8ckT4937OuJlLo9P/ZqNyhgUbNe7n+Q862jybX508HKrdTpv0X7URv1LdevXJEUc+037tmFRW+iafORIRQNMmR7hCLKrykjOF0OEE4ZvXx+YNdPH+wi1KPk2vX1tLUEOCy5VUjRjB///O32JKRyp1MGX76+kkSyV3cd8sV7NjfMeHUTbajuueDfKf/T/T7MRtTdxpo1Fkh1+rT2fbR5PL8uQaqbHPsO1u7WTjBhlUH1gbO0dKh4oevtOGy118AyrxuBmMJXA4HCyt9vHK4m8FYkl/sbecXe9upLvWw4bw6NjUGOK++nG37xt4v9PM32/mz7hD3bzuAQ8Dndg5lXWVO3Xz2fY3c9egeBuwSOk6HsMA7vFivJpbt92M2pu400CiVxWzMYecSqLL1L1syxJ9uWjvmiOfODasp8Tg52RemYtSCkd/jpD+S4B8+dBGnQzGe2d/BluYge0/00T0Y4yevHucnrx5naVXJuEVDU8bqx/HT1vPHEyn7cDjwOh20dQ8OXZuJFuvVxLL9fszG1J0GGqWyKHT16Wyy9S/b1Ei2rKoVNaWc6ovgdcnQMQuReIqFFSWAVWH6pkuXcNOlSzjZG2ZbS5AtzUGOdIU41hMet9/p2bVFFSV0DUYpcTsxxpA0Vv9qy32c7A3jd7u4ek2tBpZpmszvb76n7jTQKJVFodNPs8nWv8lMjUyUVfXJ61fz+cf3kkim8LqcDMYSJFKGzVcuO+O+iypL+F/vOIffXr+c1o5BtjS381+vnyCaOHNyrqG+nIFogs1XLuO+bQcIx5P43A4i8ZT1/OuWEY4lCceSMGiVgCmxqxOUzOETRWdbMfz+6oZNpbIYa0PkbJexn0i2/m1oCHD3jRcQKPfRG44TKPdx940XTCkZ4u4bL6C+ooSBaIIlC/x88dfPn/DxIsLqQBl3XL+an3/qWq5YXnnGfd461c9vff0Fnth7kk0NAar8HvojCWpKvXx641rWrxp5lHMilRqqUHCkO8TJ3jC9ofjQxlk1tmL4/RU9B2ykdevWmV27dhW6G6rIpLN2inWNoFD9Sx9b0B9JkJrEe0kskeKVw91WMc/WrhFBoszr4rpza9nUWM/FSyuH9s1MhtvpwOfW0c54ZuP3Q0R2G2PWjXmbBpqRNNAoNXWplGEglqAvPPkRxmA0wfMHO9nSHOTVoz0jkgZqyzzWwW0NAdYEyqZUyDO9WbTE45wTR1nPFxpopkADjVK5icSt00AHp1D/rHswxtP7gmxtDtIy6uyec6r9NDVap4UuqiyZcn88LgelHhclHue8P/KgkDTQTIEGGqVmRiKZoj+SGDq5crKO94TZ2tLOlubgGVlr5y+qYFNjgA3n1bHA75lynzShIH800EyBBhqlZpYxhsFYkt5wnGh88me4GGM4EBxgS3M721o66B6MDd3mEFi3oppNjQGuWV1LyTRK9osIXpdjaJpNRzu50UAzBRpolMqfSDxJXyTOYHRqxwokU4Y9bafZ2hJkx/6OEYeO+VwOrl5Ty6bGAOvOqZr2moxDZCjglLid1omlatI00EyBBhql8i99mFpfeGrTamBlrr3Y2sWW5iAvHeoinhx+D6vwudhwnpVEcMGSiillro2WnmYrsafZcqlAfTbQQDMFGmiUml2hWIK+sFXpear6I3GePWBlru1pO03mu1l9hZemhgBNjfWsrC3NuZ8elwO/x6rQ7XM7zrojrbPRQDMFGmiUKoz4UPJAnOR4BdIm0NEf5el9Vvmbg8GBEbetqiulqcE6uK2+Yuyju6ciM4Xa73Hi1hRqDTRToYFGqcJKJw/0heNEppA8kOlI1yBbW6x06ZO9kRG3Xby0kqaGANefW5f1hNHJcjtHZrOdjaMdDTRToIFGqeIRTSTpC1undk7nvcoYQ/PJfrY0t/PM/g56QvGh21wO4Uo7c+2q1TUzlnU2NNqxRzxnS1KBBpop0ECjVPHJJXkg8zlePdrDluYgzx3oJJwxWipxWwe3bWoMcPmog9tylTna8bnm796dsz7QiMgNwH2AE/iGMeae8e6rgUap4jXdPTmjReJJdr5tZa69fLh7xJpQld89lLnWuKh8RqfBRASf24Hf7Zp3o52zOtCIiBPYD/wacAx4BbjFGPPWWPfXQKPU3DDdPTmj9Ybj7LAPbnvjeO+I2xYv8A1lri2vnvmy+vOpUsHZHmiuAr5ojHmv/f3nAIwx/zDW/TXQKDW3zMS0Wlp7X4RtdhJBa+fgiNvWBsrY1Bjg3Q0Basu8Ob3OWNKVCvz23h2va25VKjjbA83NwA3GmD+wv/9d4B3GmD/OuM/twO0Ay5cvv+LIkSMF6atSavpmalotrbVjYChzLdgfHWoX4NLlC9jUEOBd59ZR5s3P+ZGZG0b9c2C0c7YHmg8D7x0VaNYbY/5krPvriEapuS/XbLVMKWPYe7yPLS3tPLOvg77I8MZSt1N456oamhoDvHNlTd7WXObCaGeiQHM2HOV8DMg8c3YpcKJAfVFKzQKvy0lduZOaUg/9UWsT6HRP4nSIcNHSSi5aWskfv3sNuw73sKW5nRfe7iKaSPHsgU6ePdBJqdfJdWvraGoIcMmyBTOauWaMIRJPWvuK5uCx1mfDiMaFlQzQBBzHSgb4bWPM3rHuryMapeanmUoeSAvFEjx/sIutze3sOjLy4LaaUg/vbqhjU2M9a6d4cNtUZWay+b2Fq1JwVk+dAYjI+4F/xkpv/pYx5kvj3VcDjVLz20wmD6T1hGI8s8/KXHvrZN+I25ZVlVgHtzXUs6Rq6ge3TZXbaU2x+T2uWa3JdtYHmqnQQKPU2WMgmsip1M1YTpwOD2WuHekOjbitYWG5fXBbgOrSqR/cNlXpow/SCQX5PNZaA80UaKBR6uwTTVjZajM1rQbWusrB4ABbmoM8vS9I58DIg9suX17FpsYA166txe+ZneXydAVqv8eJ1zWzox0NNFOggUaps1cyZegLx+mbZgXpiZ73jeO9bGluZ8f+Tgaiw5lrHpeDq+3MtfUrq2dtjcUhMpTF5ve4ck5e0EAzBRpolFLGGAaiCXrD089WG08skeLlQ91saWln59sjD24r97m4/tw6mhoDXLSkMqeD26bK67am16Z7rLUGminQQKOUyhSJp6fVpn4wWzYD0QTPHehka3M7r7WdHpG5Fij3srEhQFNjgNV1ZTP+2hNxOmRopDPZzaIaaKZAA41SaiyJZIq+HA5my6ZrIMrT+zrY2hxkX3v/iNtW1toHtzUGWDgDB7dNxWQ3i2qgmQINNEqpiRhj6Lez1WZ6Wi3taHdoKHPt+OnwiNsuXFxBU2M9G86to9I/Mwe3TcV4m0U10EyBBhql1GRF4tZJoIOxmctWy2SMYV97v5W51hIccXCb0yFcuaKKpoYAV6+ppWSGDm6biszNogtKPRpoJksDjVJqqvI9rQZW5trrbafZ0tzOswc6CcWG9/743A6uXVPLxoYA686pyut+mfGsDpRroJksDTRKqelKZ6v1RRIzUkF6PNF4kp2t3WxtbuelQ90kMoJbZYmbDXbm2gWLK2atMoAGminQQKOUmgn5nlZL64/EeWZ/J9ta2tnT1kvmKy2q9A1lrq2oKc1bH0ADzZRooFFKzaTZmFZL6+iPDiURHOwYGHHb6rpSmhrraWoIUFc+8we3aaCZAg00Sql8SGer9YbixJP5yVbLdKhzkG0tQba1BDnZGxlqF+DipZU0NdZz/bm1lPtmJnNNA80UaKBRSuVbKGZVHQjH8reOk2aM4a2TfWxpDrJ9Xwe94eHMNZdDeMfKapoa67lqVTXeHDLXNNBMgQYapdRsyUcxz4kkkil2Helha3OQ5w92EsnYB+T3OHnX2lqaGgJctrxqyrXPNNBMgQYapdRsSxfz7I/M3Bk52YTjSV442MXWlnZeOdwzYv2outTDhvPq2NQY4Lz68kllrmmgmQINNEqpQpmt9OjRekNxtu/vYGtzO2+eGHlw29KqEitzrSHAsmr/uM+hgWYKNNAopYrBbKVHj3aqN8K2liBbmts53DXy4Lbz6svZ2Bhg43l11JSNzFzTQDMFGmiUUsVkNtOjMxljaO0YZKuduRbsjw7d5hC4bNkCmhrruXZtLWVelwaaqdBAo5QqRrNRzHM8KWMd3La1Ocgz+zvojwwfmeB2CletruG7t71z3EAzO+eHKqWUyomIUOFzU+FzE44l6Yvk54ycsThEuGTpAi5ZuoA/2biGlw91s7U5yAutXcQSKXbs75zw8RpolFJqjimxz4YpxLSa2+ngmjW1XLOmllDMOrhtS3OQIxM8ZvZLfCqllJoRLqeD6lIPy6v91JZ78bhm9y3d73HxngsW8o83Xzzh/XREo5RSc1zmtFo+j56eLg00Sik1j/jcTnzuwkyrjUcDjVJKzUPpabUqv7tg2WppBVmjEZEPi8heEUmJyLpRt31ORA6KyD4ReW9G+xUi8oZ92/1i10QQEa+I/Kfd/pKIrMh4zK0icsD+uHXWfkCllCoS6Wm1pVV+Fi8ooczrmrXD0NIKlQzwJvAhYEdmo4icD2wGLgBuAP5NRNLlRL8O3A6stT9usNtvA3qMMWuArwL32s9VDXwBeAewHviCiFTl8WdSSqmi5nM7CVT4WFZVQpXfM+XCmdNVkEBjjGk2xuwb46abgB8aY6LGmEPAQWC9iCwCKowxO421w/Rh4IMZj3nI/vpRoMke7bwX+KUxptsY0wP8kuHgpJRSZy2X00GVna1WV+7N6XiASb1eXp996pYAL2Z8f8xui9tfj25PP6YNwBiTEJFeoCazfYzHjCAit2ONlli+fHnOP4RSSs0FIkK5z025na1mbQKd+dpqeQs0IrIFWDjGTX9tjHlsvIeN0WYmaJ/uY0Y2GvMg8CBYJWjG6ZtSSs1b6Wy1ZKmhPxKnLzxzRxbkLdAYYzZN42HHgGUZ3y8FTtjtS8doz3zMMRFxAZVAt92+YdRjtk+jT0opddZwOoQFfg+VJW4GY1YF6UiORxYUW2WAx4HNdibZSqxF/5eNMSeBfhF5p73+8jHgsYzHpDPKbga22es4vwDeIyJVdhLAe+w2pZRSWYgIZV4XixeUsKSqhHKfe9rZagVZoxGR3wT+BagDfi4irxtj3muM2SsijwBvAQngTmNMOpR+EvgOUAI8aX8AfBP4rogcxBrJbAYwxnSLyP8PvGLf725jTHf+fzqllJpfvC4ndeVOqks905pW02MCRtFjApRSKrvBaIK+SJxwzBoLTHQeTbFlnSmllJoDSr0uSr0uookkfeGJ66ppoFFKKTVt6Wm1iRRbMoBSSql5RgONUkqpvNJAo5RSKq800CillMorDTRKKaXySgONUkqpvNJAo5RSKq800CillMorDTRKKaXySmudjSIiHcCRCe5SC3TOUnemQ/uXG+1fbrR/uZnL/TvHGFM31g0aaKZIRHaNVziuGGj/cqP9y432LzfztX86daaUUiqvNNAopZTKKw00U/dgoTuQhfYvN9q/3Gj/cjMv+6drNEoppfJKRzRKKaXySgONUkqpvNJAMw4R+ZaIBEXkzYy2L4rIcRF53f54fwH7t0xEnhaRZhHZKyKftturReSXInLA/lxVZP0rimsoIj4ReVlE9tj9+1u7vViu33j9K4rrl9FPp4i8JiL/bX9fFNdvgv4VzfUTkcMi8obdj112W9Fcv3H6N63rp2s04xCR64AB4GFjzIV22xeBAWPMlwvZN7svi4BFxphXRaQc2A18EPg9oNsYc4+IfBaoMsZ8poj69xGK4BqKiAClxpgBEXEDzwGfBj5EcVy/8fp3A0Vw/dJE5M+AdUCFMebXReQfKYLrN0H/vkiRXD8ROQysM8Z0ZrQVzfUbp39fZBrXT0c04zDG7AC6C92P8RhjThpjXrW/7geagSXATcBD9t0ewnpzL6b+FQVjGbC/ddsfhuK5fuP1r2iIyFLgA8A3MpqL4vrBuP0rdkVz/WaSBpqp+2MR+ZU9tVbQaYE0EVkBXAa8BNQbY06C9WYPBArYNeCM/kGRXEN7WuV1IAj80hhTVNdvnP5BkVw/4J+BvwRSGW1Fc/0Yu39QPNfPAP8jIrtF5Ha7rZiu31j9g2lcPw00U/N1YDVwKXAS+D8F7Q0gImXAj4E/Ncb0Fbo/o43Rv6K5hsaYpDHmUmApsF5ELixUX8YyTv+K4vqJyK8DQWPM7kK8fjYT9K8orp/tGmPM5cD7gDvt6fpiMlb/pnX9NNBMgTGm3f7HnwL+HVhfyP7Yc/c/Br5njPmJ3dxur4+k10mCxdS/YruGdp9OA9ux1j+K5vqlZfaviK7fNcCN9jz+D4GNIvIfFM/1G7N/RXT9MMacsD8HgZ/afSmW6zdm/6Z7/TTQTEH6F8D2m8Cb4913FvoiwDeBZmPMVzJuehy41f76VuCx2e4bjN+/YrmGIlInIgvsr0uATUALxXP9xuxfsVw/Y8znjDFLjTErgM3ANmPM71Ak12+8/hXL9RORUjtJBhEpBd5j96Uort94/Zvu9XPNfBfnBxH5AbABqBWRY8AXgA0icinW3OVh4I5C9Q/rL7bfBd6w5/EB/gq4B3hERG4DjgIfLkz3xu3fLUVyDRcBD4mIE+sPrkeMMf8tIjspjus3Xv++WyTXbzzF8vs3nn8skutXD/zU+nsMF/B9Y8xTIvIKxXH9xuvftH7/NL1ZKaVUXunUmVJKqbzSQKOUUiqvNNAopZTKKw00Siml8koDjVJKqbzSQKPUJInICsmo5p3RfreIbMry2C+KyF35651SxUv30SiVI2PM5wvdB6WKmY5olJoap4j8u1hnxPyPiJSIyHdE5GYAEXm/iLSIyHMicr/Y56DYzheR7SLSKiKfsu//lxlff1VEttlfN9klXRCRr4vILhl5Lk2TiPw0/cQi8msi8hNGsUdSD9l9PSwiHxKRfxTrnJGn7DJB6bNH7hXrDJyXRWSN3b5aRF4UkVfskdvA6NdQKhsNNEpNzVrgX40xFwCngd9K3yAiPuAB4H3GmGuBulGPbQDei1Uf6gv2m/wO4F327euAMrv9WuBZu/2vjTHrgIuB60XkYmAb0Cgi6df4feDb4/R5NVa5/JuA/wCeNsZcBITt9rQ+Y8x64GtYlY8B7gPuM8ZcCZyY+NIoNTYNNEpNzSFjzOv217uBFRm3NQCtxphD9vc/GPXYnxtjovZBUkGsMh+7gSvsulJRYCdWwHkXw4HmIyLyKvAacAFwvrFKenwX+B27JtpVwJPj9PlJY0wceANwAk/Z7W+M6v8PMj5fZX99FfAj++vvj/P8Sk1I12iUmppoxtdJoCTje5niY13GmLhdYfj3gReAXwHvxhqFNIvISuAu4EpjTI+IfAfw2c/xbeBnQAT4kTEmISJ3An9o354+ZjcKYIxJiUjcDNedSjHyPcCM87VSOdERjVIzpwVYJdZBbwAfneTjdmAFkx1Yo5hPAK/bAaECGAR6RaQe62wQYKiM+wngb4Dv2G3/aoy51P6Y6lTXRzM+77S/fpHh6cHNU3w+pQAd0Sg1Y4wxYRH5I+ApEekEXp7kQ58F/hrYaYwZFJGI3YYxZo+IvAbsBVqB50c99ntAnTHmrRn4Ebwi8hLWH6C32G1/CvyHiPw58HOgdwZeR51ltHqzUjNIRMqMMQP2eTz/Chwwxnw1j6/3NeA1Y8w3c3yew8A6e/0os90PhI0xRkQ2A7cYY27K5bXU2UdHNErNrD8UkVsBD9bi/QP5eiER2Y01rfbn+XoN4Arga3bgPA18PI+vpeYpHdEopZTKK00GUEoplVcaaJRSSuWVBhqllFJ5pYFGKaVUXmmgUUoplVf/D/HrRktHXWfGAAAAAElFTkSuQmCC\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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>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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', ylabel='price'>"
]
},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 \n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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>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>\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='stroke', ylabel='price'>"
]
},
"execution_count": 15,
"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",
"df[[\"stroke\",\"price\"]].corr() \n",
"\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",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\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>\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='stroke', ylabel='price'>"
]
},
"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",
"-->\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>\n"
]
},
{
"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",
"\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:\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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:\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"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>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"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 :\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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>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':\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"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>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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"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>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": 26,
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 27,
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"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.\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>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": 29,
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>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": 30,
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"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 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": 31,
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"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": 32,
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"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>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": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle"
]
},
{
"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",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. \n"
]
},
{
"cell_type": "code",
"execution_count": 35,
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price.\n"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"\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>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 38,
"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>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": 38,
"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. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"\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",
"\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library.\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. \n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.809574567003656 with a P-value of P = 6.369057428259557e-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>\n"
]
},
{
"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'.\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483639 with a P-value of P = 8.016477466159328e-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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522675 with a P-value of P = 9.200335510481123e-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 &lt; 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702844 with a P-value of P = 2.189577238893878e-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>\n"
]
},
{
"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':\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622198389e-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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626603 with a P-value of P = 8.049189483935261e-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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144477352e-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",
"\n",
"Since the p-value is &lt; 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.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>\n"
]
},
{
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
".. ... ... ...\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". \n"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"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? \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"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 \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"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>\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"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>\n"
]
},
{
"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",
"\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>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>\n",
"\n",
"Bahare Talayian\n",
"\n",
"Eric Xiao\n",
"\n",
"Steven Dong\n",
"\n",
"Parizad\n",
"\n",
"Hima Vasudevan\n",
"\n",
"<a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ---------------------------------- |\n",
"| 2020-10-30 | 2.1 | Lakshmi | changed URL of csv |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"\n",
"<hr>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment