Skip to content

Instantly share code, notes, and snippets.

@dianachua
Created February 17, 2021 11:27
Show Gist options
  • Save dianachua/a6428dc75212e71951593001b87e20db to your computer and use it in GitHub Desktop.
Save dianachua/a6428dc75212e71951593001b87e20db 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": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:\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": 2,
"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": 2,
"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": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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": 5,
"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": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype('float64')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df['peak-rpm'].dtypes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"float64\n",
"```\n",
"\n",
"</details>\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": 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>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": 10,
"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": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()\n",
"```\n",
"\n",
"</details>\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": 11,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 55951.374525395324)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABFLElEQVR4nO3deZxcVZn4/89TW1f13p21s6ezEPYthD0ERYVxAR3UuAHKJujovObnfMX5Oo7j6O8r35mfI84IJKCyjAqIC+iII1sIICEk7IFAku4sna3T+1J73fP7496qVLqruqu6qnp93q9X092n6966tyvU0+c85zxHjDEopZRSI+Ua6wtQSik1sWkgUUopVRANJEoppQqigUQppVRBNJAopZQqiGesL2C0TZ8+3SxatGisL0MppSaUrVu3thljZmT62ZQLJIsWLWLLli1jfRlKKTWhiMiebD/ToS2llFIF0UCilFKqIBpIlFJKFUQDiVJKqYJoIFFKKVUQDSRKKaUKooFEKaVUQTSQKKWUKogGEqWUUgWZcivblVJK5S4ST9AdjA35GA0kSimlBjHG0BmM0R2K4XHJkI/VQKKUUuoY4ViCI70RYgnLadFAopRSKgeWZWjvj9IbHnooayANJEoppeiPxGnvixK3rOEfPIAGEqWUmsLiCYv2/ij9kfiIz6GBRCmlpqiecIyOviiWMQWdRwOJUkpNMdG4RVtfhHAsUZTzaSBRSqkpwhhDVzBGVyiGKbAXkq6kK9tFZLeIvCEir4rIFqetXkQeF5Edzue6tMd/Q0R2isg7IvKBtPYznfPsFJEfiYg47WUi8qDT/qKILCrl/Sil1EQVjiVo6QzRGYwWNYjA6JRIudgYc5oxZqXz/S3Ak8aYZcCTzveIyAnAWuBE4FLgdhFxO8fcAdwALHM+LnXarwU6jTFLgX8Hbh2F+1FKqQnDsgxtfREOdIXS1oUU11jU2rocuNf5+l7girT2B4wxEWNMM7ATWCUiDUC1MeYFY4fR+wYckzzXw8B7k70VpZSa6vojcVo6Q/SE8lsXkq9SBxID/FlEtorIDU7bLGPMQQDn80ynfS6wL+3YFqdtrvP1wPZjjjHGxIFuYNrAixCRG0Rki4hsOXLkSFFuTCmlxqt4wqK1J8zhnvCI1oXkq9TJ9vONMQdEZCbwuIhsH+KxmXoSZoj2oY45tsGY9cB6gJUrVxZ3cFAppcaRYk3pzUdJeyTGmAPO51bgt8Aq4LAzXIXzudV5eAswP+3wecABp31ehvZjjhERD1ADdJTiXpRSajyLxi0OdIVo642MahCBEgYSEakQkark18D7gTeBR4GrnYddDTzifP0osNaZibUYO6m+2Rn+6hWRc5z8x1UDjkme60rgKVPs6QhKKTWO2VN6o+zvChVtXUi+Sjm0NQv4rZP79gC/MMb8SUReAh4SkWuBvcDHAYwx20TkIeAtIA58yRiT/K3cBNwDBIDHnA+AnwD3i8hO7J7I2hLej1JKjSvhWIK2vgjReOnyIMYYNrzTOuRjShZIjDFNwKkZ2tuB92Y55nvA9zK0bwFOytAexglESik1VViWoSMYLflsrHcO9XL7hp28sb9nyMfpynallJpAgtE4bb0jq9KbqyO9Ee5+rpnH3zqc0+M1kCil1ASQsAztfRH6CqjSO5xQLMGDm/fx4JZ9RJzhssYZFfzNxUv52BDLvTWQKKXUONcbjtHRHyVhlWYukWUMf952mJ8810x7fxSAunIvXzh/MZeeNBu/1z3k8RpIlFJqnIol7Cq9oWjpZmO9tq+L2zfsYkdrHwBet/DxM+fx6bMXUO7LLURoIFFKqXHGGEN3KEZnsLhVetPt7wyxbmMTz+1sS7VdfNwMrl/dyOxqf17n0kCilFLjSKmn9PaGY/zXpr389pX9xJ2hshMaqrl5zRJOmFM9onNqIFFKqXHAsgydwSjdJZrSG09Y/P71g9z7l930hO2E/azqMq6/sJGLj5tBIfVuNZAopdQYC0bjtPdFS1Lm3RjDi80d3PlME3s7ggCU+9x8etUCrjxzHj5P4QVONJAopdQYiScsOvqjJZvS23Skjzs27GLr3i4AXAKXndTA589fRH2Fr2jPo4FEKaXGQE84xmOvH+SXm/dxsCdEQ3WAtWfNZ1VjfcHn7uiPcs9fdvPHNw6SnDF85oJablqzhMYZlQWffyANJEopNYqicXtK78Z3jnDbUzvwuIRqv4f2/gi3PbWDr7JsxMEkGrd4eGsLv9i8l6AzZXh+XYCb1izh7MX1BeVBhqKBRCmlRoFdpTdGV8ie0vvAS/vwuISAs9gv4HUTiiV44KV9eQcSu7DiEdY/28ThnggA1X4PV5+3iA+f0oDHXdo9DDWQKKVUiYVjCY70Ro5Jph/sCVHtP/Yt2O91cagnlNe53z7Yw4+f3sVbB+3Cih6XcMXpc/jcOQup8nsLv/gcaCBRSqkSGapKb0N1gPb+SKpHAhCOWcyuDuR07sM9Ye5+tpkntx8t8X7+0mncuLqReXXlhV98HjSQKKVUCQxXpXftWfO57akdhGIJ/F4X4ZhF3DKsPWt+xsenn/eXm/fxq60tqUWLS2dUctOaRk5fUFf0+8iFBhKllCqiXKv0rmqs56ss44GX9nGoJ8TsYWZtJSzD/2w7xE+f302HU1hxWoWPay9YzPtOmIXbVZpEei40kCilVJHkW6V3VWN9Ton1l/d2cseGXew60g9AmcfFJ1bOY+1ZCwj4hq7MW6hKv4fawNBrTjSQKKVUgUpVpXdvR5B1zzTxQlN7qu19J8zi2vMXMTPPwor5SgaQXFa+ayBRSqkCdAdjdASjRa3S2xOKcd8Le3jktQOp3s3Jc6u5ac0SVsweWWHFXOUTQJI0kCil1AhE4gna+qJEYsXrhcQSFo+8eoD7N+2h1yms2FDj54bVjaxeNr1kCwphZAEkSQOJUkrlwRhDZzBGd6h4e4UYY/jLrnbWbWyipdNeR1Lhc/OZcxbysdPnFqWwYjaFBJAkDSRKKZWjUNTeK6SYVXp3tvZx+4ZdvLqvC7ALK37wlAauOW8RdeXFK6w4UDECSJIGEqWUGkbCMnT0R+kNF2+vkPa+CD99fjd/evMQyX7NqkV13HjREhZPryja8wxUzACSpIFEKaWG0BeJ094XyXlK73AisQS/cgorhmN2z2bhtHJuumgJqxYXXvk3m1IEkCQNJEoplUE8YdHWFyUYLc5eIZYxPL29lbuebaa11y6sWBPw8vnzF/HBkxtKtqCw0u+hrtyHt4SFGzWQKDVJbNjeyrqNTezrDDK/rpwbVzeyZsXMsb6sCak7FKOzP4pVpGT6m/u7uX3DLrYf6gXA6xY+dvpcPnPOQirLSvM2PBoBJEkDiVKTwIbtrXzr0W143UJtwEtrb5hvPbqN74AGkzwUe0rvoe4w6zc2seHdI6m21cunc8OFjcypza04Y75GM4AkaSBRahJYt7EJr1so99n/S5f7PASjcdZtbNJAkoNiT+ntj8T5+Yt7+fXLLcQS9vmWz6rk5jVLOGVe7ZDHbm7q4IGX8t81cSwCSJIGEqUmgX2dQWoDx+49EfC6aekMjtEVTRzFnNKbsAx/fOMgP3t+N11O6fjplT6uu7CRS46fiWuYBYWbmzry3jVxLANIkgYSpSaB+XXltPaGUz0SgFAsMer7UkwkCcvQ3h+hL1ycZPpLuzu485kmmtvswop+j4u1q+bziZXz8XtzK6yY666JIkJFmXvMA0hSya9ARNwi8oqI/MH5vl5EHheRHc7nurTHfkNEdorIOyLygbT2M0XkDednPxKnToCIlInIg077iyKyqNT3o9R4dOPqRmIJQzAaxxj7cyxhuHF141hf2rjUG47R0hksShDZ097PLb95g6//+g2a2/oR4AMnzuK+a1dx1bmLcg4iYO+a6Pce+7acvmuiiFDp9zCvLsDMKv+4CCIwOj2SrwJvA8lKY7cATxpjvi8itzjff11ETgDWAicCc4AnRGS5MSYB3AHcAGwC/ghcCjwGXAt0GmOWisha4Fbgk6NwT0qNK2tWzOQ74JTYCDJPZ21lFI1btPcXp0pvdzDGPS/s5vevHSC5xOTUeTXctGYJy2dVjeicWXdNrAmMiyGsbEoaSERkHvBB4HvA3znNlwNrnK/vBTYAX3faHzDGRIBmEdkJrBKR3UC1MeYF55z3AVdgB5LLgW8753oY+E8REVPMMpxKTRBrVszUwJGFMYauYIyuIiTTo3GL3726n/s37aE/YgekubUBblzdyPlLpxVUWDHTromWgS9fvISZVaUtG1+IUvdIfgj8LyA9PM8yxhwEMMYcFJHkv/y52D2OpBanLeZ8PbA9ecw+51xxEekGpgFt6RchIjdg92hYsGBBwTellJo4wrEER3oLT6YbY3h2ZxvrNzZxoCsMQGWZh8+du5ArTptTlJ5CatfELfto7Qkzv95e8T7e/0AoWSARkQ8BrcaYrSKyJpdDMrSZIdqHOubYBmPWA+sBVq5cqb0VpaYAyzK0F6k+1ruHe7l9wy5eb+kG7MKKl582l6vOXUjNgNlyhRAR3nPCTP565bxxOYSVTSl7JOcDHxGRvwL8QLWI/BdwWEQanN5IA9DqPL4FSN/1fh5wwGmfl6E9/ZgWEfEANUBHqW5IKTUx9EXidPRFiVuF9UKO9Eb4yXPN/Pmtw6m2cxrr+eLqJSyYVrwZcSJCZZmH2nLvhAogSSULJMaYbwDfAHB6JF8zxnxWRP4VuBr4vvP5EeeQR4FfiMgPsJPty4DNxpiEiPSKyDnAi8BVwH+kHXM18AJwJfCU5keUmrqKVR8rFEvw4Ev7ePClfUTidjBqnF7BTWuWcObCumGOzt1EDyBJY7GO5PvAQyJyLbAX+DiAMWabiDwEvAXEgS85M7YAbgLuAQLYSfbHnPafAPc7ifkO7FlfSqkpqDsYozNYWH0syxgef+swdz/XTHtfFIC6ci+fP38xl500u2iFFSdLAEmSqfYH/MqVK82WLVvG+jKUUkVSrPpYr7d0cfuGXbx7uA+wCyteeeY8Pr1qARVFKqw4kQOIiGw1xqzM9DNd2a6UmpCMsTeb6g4Vlkzf3xVi/cYmnt1xdLLnxcfN4PoLG5ldU5wptxM5gORCA4lSasIJRuO090ULmtLbF45z/6Y9/PaV/cSdFYXHN1Rx85olnDinpijXOdkDSJIGEqXUhJGwDO19EfoiI0+mJyzD7187wD1/2U2PUyJlZlUZ11/YyHtWzChoQWHSVAkgSRpIlBoHirEp1WTf2KonbG82NdItb40xbN7dwZ0bmtjTYVdFDnjdfPrs+Vx5xjzK8qiJlc1UCyBJGkiUGmPF2JRqMm9sFY1btPVFCBeQTG9u6+eODbvYsqcTsBcUXnZSA58/fxH1Fb6Cr3GqBpAkDSRKjbFibEo1GTe2KkZ9rM5glHue381/v3EwVVjxjAW13LRmCUtmVBZ8jVM9gCRpIFFqjBVjU6rJtrFVofWxonGLX7/cws9f3EvQqfQ7vy7AFy9awjmN9QXnQTSAHEsDiVJjrBibUk2Wja0KrY9ljOGZd4+wfmMzh3rswopVfg9Xn7uQj5w6B0+Bb/oTNYCUOn82cX4TSk1SxdiUajJsbNUXidPSGRpxEHn7YA9feeBVvvOHtznUE8btEv76jLnc/4VVfOyMeQUFERGhyu9lfl2AGVVlEy6IfOvRbbT2ho/Jn23Y3jr8wTnSHolSY6wYm1JN5I2t8qmPtbmpgwde2sfBnhAN1QHWnjWfhdPL+clzzTzx9tE3xvOWTOPG1Y3Mry+sR5bsgdSVewvuzYyV0cifaSBRahwoxqZUE3Fjq3zqY21u6uC2p3bgcQnVfg9H+sJ8949vEY5ZqQWFS2dUctOaRk5fUFhhxckQQJJGI3+mgUQpNWIjHXsfSX2sB17ah8cl+D0uekJx2tLWlNRX+Lj2/EW8/8TCCitOpgCSNBr5s8nxm1JKjbqRjL1bzsr0/Z2hvIssHuwJYRnD3s4Qh3sjJCyDABU+N/d/YRWXndww4iCSzIHMc3IgkyWIwOjkz7RHopQakXzH3oPROG29I9tsqqUzSCiaSJU0Aagq81DpdzOrKkDAN7JV6SJCRZmbunLfhEqg52M08mcaSJRSI7KvM4hboOlIH9GEhc/tYnqlb9DYezxh0d4fpX8E9bF6QjHu37SH3716IDWM5XO7mFXtA4S4ZVh71vyhT5JFpd8zqQNIulLnzzSQKDUOTMQ6WVVlHna09uF2CW6X/aa+vyvMsplHV4x3h+z6WPluNhVPWDz62gHufWEPvU4vZHa1n/ccN4NtB3o43BtmdrWftWfNZ1VjfV7nrvR7qA348HkmfwAZLRpIlBpjE7VOVqpsSTJGmKPtI91syhjDX3a1O8MwIQDKfW4+e/YCPnbGvILe/O2FhBpASkEDiVJjbKLWyeqLJphb66etL5oa2ppV4aMnHGe/EwTysau1j9uf2cUre7sAu7DiB09p4JrzFlFXPvLCihpASk8DiVJjbKLWyUpOK210ih9alqE3EmNmVVle5+noj/LT55p57M1Dqc7NyoV13LRmCYunV4z4+iqcUiZlnsLLw6uhaSBRaoxN1DpZN65u5FuPbqM/EsPrdhGMJvJKfkdiCX61tYVfbN5LOGbP5FpYX86NFzVyTuO0EV+XBpDRp4FEqTF24+pG/v7h19jfGSJuWXhcLqr8Hv7xgyeM9aUNac2KmXw9Eueu55o51B1itlOyZLjktzGGp7Yf4a5nm2jtjQBQ7ffw+fMX8aFT5ox4LYgGkLGjgUSpccAAiL2uATmavx6vksn04+dU84NPnJrzcdsOdHPHhl28dbAXAI9L+NgZc/ns2Qup9A//dpSp1tbFx8/UADLGNJAoNcbWbWyiJuCloSaQahuvyXbLMnQGo3SH8qvQe6gnzF0bm3j6nSOpttXLpnP96kbm1gaGOPKogbW2OoMRfrxhJ7Nr/OPu9zTVaCBRaoxNlGR7fyROe19+K9P7I3F+uXkvv9raQixh97OWz6rk5jVLOGVebV7Pn6y1VVHmwe0S/N6JMbttKtBAolSR5bu4cLwn20eyMj1hGR578yA/e343nUG79zK90sd1FyzmkhNm4RrBDoWHesPUl3txu45O4x2PAXcq0kCiVBGNZHFhcvZTMBon4HUTiiXGzaZUI1mZvmV3B3c800RzWz8Afo+Ltavm8/GV8wl4889j+L12LazF0yqcgHs0kIyngDuVaSBRqohGsrhwPG5KFY1btPVFCOexMn1ve5A7ntnFi80dqbYPnDiLL5y/mBl5ri2BowEkWZBxPAfcqU4DiVJFNNJ8RzGK6hWjXpcxhq5gjK5Q7GgJlGF0B2Pc+8JuHn3tAE5dRU6ZV8PNa5awfFZVvrdBmddNXbn3mKE+GJ8BV9k0kChVRGOV7yhGva5wLMGR3gixRG7J9FjC4nev7Of+TXvpc/InDTV+bryokQuXTrenMuchWwBJNxF3gZwKNJAoVURjNfxSSL0uyzK090fpDec2pdcYw3M721m/sYn9XXZNrYoyN1eds5DLT5ubd00rn8dFXbmPijJ9O5qoSvbKiYgf2AiUOc/zsDHmn0SkHngQWATsBj5hjOl0jvkGcC2QAL5ijPkfp/1M4B4gAPwR+KoxxohIGXAfcCbQDnzSGLO7VPek1HDGavhlpENq+U7pffdwL3c+s4tX93UDdmHFD586h2vOXURNuXeYo4+lAWTyyPkVFJGFwDJjzBMiEgA8xpjeIQ6JAO8xxvSJiBd4TkQeAz4GPGmM+b6I3ALcAnxdRE4A1gInAnOAJ0RkuTEmAdwB3ABswg4klwKPYQedTmPMUhFZC9wKfDKv34BSRTYWwy/5DqnlO6X3SG+Enz7fzJ+3HU6tuj+nsZ4vrl7Cgmn5Ddt53S7qKnxUagCZNHJ6JUXkeuw38npgCTAPuBN4b7ZjjJ2p63O+9TofBrgcWOO03wtsAL7utD9gjIkAzSKyE1glIruBamPMC8613AdcgR1ILge+7ZzrYeA/RURMrllCpSaJfIbU8pnSG4oleOilfTz40j7CcbvXsnh6BV+8qJGzFuW3oZQGkMkr11f0S8Aq4EUAY8wOERn2Ty4RcQNbgaXAj40xL4rILGPMQec8B9POMxe7x5HU4rTFnK8HtieP2eecKy4i3cA0oG3AddyAHQhZsGBBjres1MSRy5BaPlN6LWN44q3D3P1cM219UQDqyr18/vxFXHZSQ16FFb1uF7XlXqr8+Q19qYkj10ASMcZEk7MwRMRDDnXlnGGp00SkFvitiJw0xMMz/cs0Q7QPdczA61gPrAdYuXKl9lbUpJRtSC3fKb2vt3Rxx4Ym3jlsj1x73cJfnzGPz5y9IK98hgaQqSPXfxXPiMg/AAEReR9wM/D7XJ/EGNMlIhuwcxuHRaTB6Y00AK3Ow1qA9I0M5gEHnPZ5GdrTj2lxglsN0IFSCshvSu+BrhDrNzaxccfRDv3Fx83g+gsbmV3jz/k5kwGkssyT9xRgNTHlGkhuwU5svwHciJ3wvnuoA0RkBhBzgkgAuAQ7Gf4ocDXwfefzI84hjwK/EJEfYCfblwGbjTEJEekVkXOwh9auAv4j7ZirgReAK4GnND+iVH5TevsicX6+aQ+/eWV/qrDiitlV3LxmCSfNrcn5Ob1uFzXlXqo0gEw5uQaSAPBTY8xdkMp9BICh5hY2APc6j3UBDxlj/iAiLwAPici1wF7g4wDGmG0i8hDwFhAHvuQMjQHcxNHpv485HwA/Ae53EvMd2LO+lBpTP3riXe5+rpn+aIIKn5vrLljMVy5ZPmrPn+uU3oRl+MPrB7nnL7tTZeFnVpVx/YWLuXjFzJwLK3pcLmorNIBMZZLLH/Aisgm4xBjT53xfCfzZGHNeia+v6FauXGm2bNky1pehJqkfPfEutz21E5fYaywsY3989T1LSx5M8pnSu7m5gzue2cWedvtvQb/XxadXLeDKM+fhz7Gwosdl90Cq/RpApgIR2WqMWZnpZ7n2SPzJIALgrA3RkptKDXD3c824xH6TBTuYxC2Lu59rLmkgyXVKb3NbP3c+s4uXdncC9myVy06ezefPW8S0ytwKK3pcLmoCXqoDGkCULddA0i8iZxhjXobUSvNQ6S5LqYmpP5pgYIUQl9jtpZDc8jYyzJTezmCUe/6ym/9+/WCqsOLpC2q5+aIlLJlZmdNzuV1CbcCnAUQNkmsg+VvgVyKSnC3VgK4gV2qQCp+9GDB9mYVl7PZiynXL22jc4jcvt/DzF/emgtm8ugBfvKiRcxun5RQQNICo4eQUSIwxL4nICuA47N7wdmNMfps2KzUFXHfBYm57aidxyzomR3LdBYuL9hy5JNONMTzzbht3PdvEwe4wAFV+D1edu5CPnDoHr3v4wopul9hDWH4vrjwWIKqpZ8hAIiLvMcY8JSIfG/CjZSKCMeY3Jbw2pSacZB6kFLO2YgmL9r4owejQyfTth3q4/eldvHmgB7ADwuWnzeGqcxZSHRh+caAGEJWv4XokFwFPAR/O8DMDaCBRaoCvXLK8qIl1Y4ydTA8OvTL9SG+Eu55t4om3W1Nt5y2Zxg2rG1lQP/zcGJfYAaQmoAFE5WfIQOKUfXcBjxljHhqla1JKOcKxBG19EaLx7MNYoWiCB17ay0NbWog4j1syo4KbLlrCGQvrhn0ODSCqUMPmSIwxloh8GdBAotQoSViGjmFWplvG8D/bDvPT55pp7z9aWPHaCxbzgRNnD1tY0SVCtRNA8inCqNRAuc7aelxEvoa9IVV/stEYo3WtlBqg0L3Te8MxOvqjJKzsw1iv7uvi9g272NlqL+/yeVx8/Mx5fGrV/CG3qgUNIKr4cg0kX8DOidw8oL20+4cqNcEUsnd6LmXeWzqDrNvYxPM721Ntlxw/k2svWMys6qELK4oI1X4PteU+DSCqqHINJCdgB5ELsAPKs9gbWyml0oxk73RjDJ3BGN1DlHnvDce4f9MefvfKAeJOT+XEOdXcvGYJxzdUD3lNGkBUqeUaSO4FeoAfOd9/ymn7RCkuSqmJKt+904NRe01ItjLv8YTFo68d5L4XdtMTtqf9zq72c8PqxVy0fMaQCwRFhCq/h9qAF08O60aUGqlcA8lxxphT075/WkReK8UFKTWaCs1nDJTr3unDFVg0xrCpqYM7n9nFvk67GlG5z50qrOgbWIcljQYQNdpyDSSviMg5xphNACJyNvB86S5LqdIrJJ+RTS57p3cHY3QGsxdY3HWkjzs27OLlvV2AXavrgyc3cPV5i6iv8GV9bhGhssxDXbkGEDW6cg0kZwNXiche5/sFwNsi8gZgjDGnlOTqlCqhkeQzhjPU3unDrQnp6I/y0+eb+dObh1KFFc9cWMdNFzXSOCN7YcVkAKkt9+ZU+kSpYss1kFxa0qtQk16xh5CKId98Rq4G7p1uWYa2vgg9WQosRmIJHn65hV+8uI+QM2NrQX05X7yokbMX12fNg4gIFWVu6sp9GkDUmMq1aOOeUl+ImrxKMYRUDLnmMwox1JoQYwxPv3OE9RubaO2NAFDt93D1eYv48CkNQw5PVfo9GkDUuJFrj0SpESvFEFIx5JLPGKlo3KK9P0Ioyz4kbx3o4fYNO3nrYC8AHpfw0dPn8tlzFlDlz15Y0R7C8g2ZbFdqtGkgUSVXqiGkQg2VzxgpYwxdwRhdWdaEHOoJc9fGJp5+50iq7cJl07nhwkbm1gWynlcDiBrPNJCokhuNIaSRGpjPKEQoaifTM60JCUbj/OLFvfxqawuxhB1gls2s5OY1Szh1fm3Wc1Y4SfQyT3E3xlKqmDSQqJLLdwgpU2IeGHfJ+qSEZWjvj9AXHrwmJGEZ/vTmIX76fDOdQTvZPq3Sx3UXLOZ9J8zClSWRXu7zUFehAURNDDLU/gaT0cqVK82WLVvG+jKmnGRwGG4IKT0xnww6PaEYBqgJeI8JRN/5yIljHkx6wjE6syTTt+7p5I4Nu2hqs+uclnlcfPKs+XzyrPkEvJkDRLnP7oH4s/xcqbEiIluNMSsz/Ux7JGpU5DqElCkxv78zBAINNYFUW3qyfiymFg9VYHFve5A7N+5iU9PR4tjvP2EW116wmBlVZRnPpwFETWQaSNS4kikxH7esQWspksn60Z5aPFQyvTsU474X9vDoawdSPZST59Zw85olHDe7KuP5NICoyUADiRpXMiXmPS4XDEglJJP1ozW1eMP2Vm7fsIu9Hf3Mrg6w9qz5rGqsB+y91H/36gHuf2EPfU7trIYaPzde1MiFS6dnXFAY8NkLCTWAqMlAA4kaVzIl5qv8HgxkTNZ/85E3Sz61+Km3D/OPj2zDJVDl99DeH+G2p3bwFbOUmGVYt7GJ/V12YcUKn5vPnrOQj54+N+NUXQ0gajLSQKLGlUxrO/7xgycAmdd7zN9Y2NTiHz3xLnc/10x/NEGFz811FyzmK5csT/08GI3zH0/txCWkEuQBr5vuUIzvPbY91QNxCXz4lDlcfd5CassHF1bUAKImMw0katzJlpjP1FbI6vQfPfEutzlBwuOyA9BtT+0E4EvvWUZ7X4S+SJwD3SGq/fb/KvGERVt/NLU3CMCqRXV8cc0SFk2rGPQcGkDUVKCBRE1ohaxOv/u5ZieI2ENQLrET+3c928Tlp89NJcwbqgMc6QsTjll0BKMkc+x+j4t/vvxEzlpUP+jcfq8dQAI+DSBq8tNAoia8ka5O748mSE9jGGMQDP3RRCqIWMZw3OxKXt/alSrt7hK7ZMnXP7BiUBDRAKKmopIV7hGR+SLytIi8LSLbROSrTnu9iDwuIjucz3Vpx3xDRHaKyDsi8oG09jNF5A3nZz8SZxqMiJSJyINO+4sisqhU96MmnwqfG8vYAcQYgwEsczQX8kZLN1/6xSs8uKUFy9gTxyp8bk5sqOEfLjuec5dOS53L73XTUBNgTm1Ag4iackrZI4kD/48x5mURqQK2isjjwDXAk8aY74vILcAtwNdF5ARgLXAiMAd4QkSWG2MSwB3ADcAm4I/Y+6M8BlwLdBpjlorIWuBW4JMlvCc1iVx3wWJ++OQOjBhEwBg7kFx24iz++fdv8cy7RwsrXrR8BjesXpxaFJlU5nVT7/RAxuOeK0qNhpIFEmPMQeCg83WviLwNzAUuB9Y4D7sX2AB83Wl/wBgTAZpFZCewSkR2A9XGmBcAROQ+4ArsQHI58G3nXA8D/ykiYqZa3ReVt4RlWHv2Ajr7ozy0tYVQLIHf46JxRiWPvH4wVVjxuNlVfGnNEk6aW3PM8ekBBMbvnitKjYZRyZE4Q06nAy8Cs5wggzHmoIgk/y+bi93jSGpx2mLO1wPbk8fsc84VF5FuYBrQNuD5b8Du0bBgwYKi3ZeamNLrY33uvEV8+pyF/OH1g9zzl928eaAHgBmVZVy/ejHvWTHzmMKKZV43deXeY6Ybw/jdc0Wp0VDyQCIilcCvgb81xvRk2zaUQWuXATBDtA91zLENxqwH1oNdtHG4a1bFlW3IJ9/2QmWqj/XS7g7u2LCL3e32Aka/18WnVi3g42fOO2bKrs/joq7cR0VZ5v9lxuueK0qNhpIGEhHxYgeRnxtjfuM0HxaRBqc30gC0Ou0twPy0w+cBB5z2eRna049pEREPUAN0oEou1zf7bEM+V7Z08fDL+3NuL2SIyBhDZzBGd1p9rN3t/dz5TBObm+1/LgJ84MTZfOGCRUyvPFpY0et2UVfhozJLAEkaz3uuKFVqpZy1JcBPgLeNMT9I+9GjwNXO11cDj6S1r3VmYi0GlgGbnWGwXhE5xznnVQOOSZ7rSuApzY+UXjI4tPaGj3mz37C9ddBj121sIpZIcKg7zDuHeznUHSaWSHD3c82poSAR+7PXLVnb121sGtG1hqIJWjpDdAWjTsHFKLc9sYPr7t2SCiKnza/lzs+ewf+69LhUEPG6XcyoKmN+ffmwQQTshZHdoRg7WnvZfqiHHa29dIdiRdm2V6nxrpQ9kvOBzwFviMirTts/AN8HHhKRa4G9wMcBjDHbROQh4C3sGV9fcmZsAdwE3AMEsJPsjzntPwHudxLzHdizvlSJJYNDe1+caMLC53ZRHfBkzAfsaO2lOxjD5RLcLiFuGQ53R7CAnnAcl8C0Ch+zawIEvG76InHiCYuYZfA5b+aVZZ68h4gSlkmtTAd7WOu3r+znv17cQ3/E/mc1ry7AjasbOW/JtFRhRY/LRW2Fl6oyT8Zii0MRAGc6MUYyjrsqNRmVctbWc2TOYQC8N8sx3wO+l6F9C3BShvYwTiBSoydTcGjrjRJL9A56bDRugZBKWMcti/SNaC0DR/qiALhdggFilkmd90BXmGmVXhZNqxzymtKH2hpq/Fx5xjzOWlyPMYaNO9pYv7GJg91hwC68eNW5C/nIqXPwuu1OucfloqbcS7U//wACdnCtDniZnTY9WJPtaqrQle0qbwODgwhYYuz2AbxuIRQDy7LXasQz7CQIdjCx8yIe+iIJjOWcF0NHf4z/89HGIZPz33p0Gx4XlHvdHOoO88Mnd/Cx0+eycccR3thvz8Ryu4TLT53D585dSI2TGC80gCRpsl1NZRpIVN4GBodkVsrnHvxGvHxWNc1tffSG7WGwJGHw9Lp4wlDt91Lt99HWF0kNmwW8dq8h2zqNO5/ZZdfMcrvAgMcltPdH+fGGXalzn9s4jRsvamRBvZ38LlYASdJku5rKNJCovA0MDj63iyq/l8XTBw8/Javzzq7xEPC62XagB0OGOdqOg91hjptdTbXz130wGmdmlT/rOo3kZlMugUPdISJxc8y5G2dUcPNFSzhjoV2Jx+0SagM+qgPFCSDp9/n3D7/G/s4QccvC43JR5fekSuArNZlpIJnCRrpeY2BwGKp0++DqvAFaOkODAokLeygrmjAc6Q3TG44TiVup4aiHtrYcM3RkjMHjEvZ29BPwutndHhx0zumVPtZ99kzcTi6nFAEknQEQ7PNL9mCp1GSjgWSKKqSkx+stXRzpDROKWQj27Kd/ufykrMcNrM77oyfe5QdP7Eh978JeMZ6wLEzCXvMRtyzK3Pbw08Mv76fSZwesgNcutBi3LELRBJVlXna392d803aLvZCwkACSa7Bdt7GJmoD3mFpcmmxXU4UGkikqnym86dI3gyrzCJaBA91hXm/pynpcpjfjFbMq2XmkH7eInVS3DJax8y/GGCwLQpaF1R+jrgLE5yYSTxBLWJR5XPSG43QGY0QyJPjBzsF0BmPMryvH5RpZDySfYKvJdjWVlWxBohrfdrT20tYbJZ421batN8qO1sFTeNOlbwblEpfz2W7PJNvixb86uYHaci/igoQxiAsCXhfRhCGaONq/CMctDndHONwT5strllLt97K/K8zhnkjWIAKk8jAjDSJwbP2s4RZHzq8rJ5RWegU02a6mDg0kU1T6FF5B7Km8QsYpvOn6owkGvje7xG7PJNub8QtNHfzblady+vw6Zlf7OX1+HfPqykmOPqUn5C0gHEuwvzvE3o4gwWgCA8yqLuMfP3g82bb/8BQQRMDuZcQTFk1H+th+qIemI33EE1bGXsaNqxuJJQzBaBxj7M+5bvmr1ESnQ1tjaCz3r8hnCm+6Cp+b/mgcYxIYYyfIRaDCl38xw4G5kwtufYpsBW5CMYv/cPZTL/e5+fSqBVx55jx8Hhf/+dQOYiF7BXuyyqd9TYMjTD6/80qfm3cP96WCWjyRYF9HiOWzBs9OK2TLX6UmOg0kY2Ss96/IZwpvuveumMFvXz2Y+t4477InNlRlfHw+6yvm15WzvzOU8TwGu+fzVyc3cM15i6h3CinWlvtY0VCT4V48g+4l3995XyR+zCr8ZEBJll0ZaKRb/io10enQ1hjJZ/y9FG5c3YjP42Z2jZ/jZlUxu8aPz+MedijmUE+Ucu/gfzZb9nZlLNo41JDPhu2tfGr9Ji649Sk+tX4TZy6ozTpl1uMS1n/uTP7ufcuZV1fO3LoAM6v9+DyunO8l39/5kb4oHpcdwASc3NDRki5KKZv2SMbIWM/yGelQzL7OIMlcePogWCxhuPVP2wcdn+154OhK9Wq/hwNdQZrb+qgsc9MXOTbfUl3mZvH0Sk6YU0N9he+YfUKyPce5jfWs29jENx95MzWENZLfuUskVY8LIGENnUNSairSQDJGxkNJjZEMxcyvK6clOfyUjCROYGlq68/5eT61fhMeF/jcLmIJi2jc4kifvWshkKoKXOZxYRm4+eIlzKkNZDr9oOfYsL2Vrz38Gn2ROAnL0NYX4WsPv8aMyjJCsUTOv/PG6RXsaO1DzLF7ui+bUTHcr0mpKUWHtsbIRJ3lM+j6nCDiyfNf0t6OfjwuF32ROPs6QhzsiaSCyAVLpnFCQzUelzCntpz/96Mn84GTGnI+9/cfe5uuYAxjgVsEY0FXMEZvKJrX7/zrl66grtyLAPGEvfiyrtzL1y9dkfHxA4fqMg31KTUZaY9kjEzUWT5rVsxkXq2flq6wPWsLu34VwOJpw/emEpahoz9Kjd/H7vZ+gmlrLwJeF4vqK/g/f30KteVeqvzeIc6UXXN7EJccXUMiAsYyHOmPse6zp+T8O1+zYib/euWpOT1+rCdPKDWWNJCMoWLP8hnJdOKRHPPdK04+ZujI7RIqyzzcctnxQx7XE46xvzPIf23ay7utvamS8mUeF9V+D163i79571Lm1QXyLmeSfh/RhIULcGfoJeX7O8/18dmKSmqJFDUVaCApsrFaGzKSv4hH+lf0mhUz+bcc/1IHeHzbIW7fsJNdR/oJRhOpAFLl91Ab8BKLJ5hfX8HNa5Zw8fGzCr/3njDRhCGWSOBxu0Ylt7GvM0gkFqe5rR/LJHM83mEXeCo1GWggKaKxHN4YyV/EhfwVnctf6pZl+MPrB/j277fRG7bzEUnvXTGTi5fP4JHXDnCgO4TH7Ur1QvINxgPvY05tgH0dQbu4Y8Iu6T5UbqMojOFIXyz1rb3zY4x5tVmW3Ss1iWggKaKxHN4YydTW9GN6QrHUZlItnSE2bG8t6Jr7InFe3dvFN3/3Jj3howv4qvweqvwe9rb3s+7ZXnweF3XlvlTQvbKli4df3p9XMN7XGcQt0HSkL7UgsbLMQ084jhHB53HxuXMWlvQ16Oi3g0j6gJxJa1dqMtNZW0W0rzNIYMAah9FaGzKSooHJY3pCMQ50h4gnjF1eBHuNx0hmHUXjFtsP9vCt373J1T/bnAoiAa+LBfUB5tYGqAt42dsZwudxDVocePdzzcQSCQ51h3nncC+HusPEEokhF2pWlXnY3xVOFaCMJiy6ned1CUQTFvdt2lPSWVSRhIXXRapWmAh4XXa7UpOdBpIiGssKsCOZTpw85nBv2P5L2vnP7Br/kCu+M01ztSzDoe4Qtz35Lh9f9wK/eWU/Ccvgc7uYVuFjQX05VX4vXreLsJM3yBR0+yLxvKsSm2SBLqeGSXIIzWB/HYlZdPZH+f5jb+f2yxyBCp8bRCjzuPF73ZR57O8z1ftSarLRQFJEY7k2ZM2KmXznIycys8pPdyjGzCo/3/nIicMmza88Yy6RuOUkpy1qAx6q/N6sPalMZeH/9+/e4J9/v40r73yBHz+9i95wnAqfmxtWN/Ldy0+k3Ocmbtm9neTvpHF6Rcagm9xdMJ+qxH3RBHNr/XjcQmJA1cfkUFPCwK4jmRdMFsN1FyxObbhlGcv5bLcrNdlpjqSIxnptSL5TWzdsb+Xhl/dT5nZhGYMgdIZiBHwePG7J2JNK5oHiCUNTVx+RuIUF3PvCHsAeSvrQKXO44aJGlkyvJOBzM7Pan7VESjAaP2a73nKv3WPJpypxskpA4wy7SOMb+7uP/jBt9X1ytlgpfOWS5YC9L0t/NEGFz811FyxOtSs1mWkgKZGJsF/3rX/aTmuPnVuw14PYgeBwb5iZVf6MPal9nUHC0Rht/YMr4C6fVck3P3gCZy6so6Ls6D+tbAEuU9Bdt7Ep76rEyT3kk0FpkOTq+2FK5BfqK5cs18ChpiQNJEU0kVY3b9jeyrutfWDM0f02nOEnn0jGYTFjDH6Pi5bOzGXUMbB6+YycryFbgPnWo9uYXeM5pqeSrBacaVrwwJ5gwOsiErcwhqOr7wWWTNcaWUqVggaSIppIq5vXbWyya0gN6DoZ7GKFA6+3JxTjV1v20dyefQbazta+gq9rqGrBf//wa/SG48Qti7beCH//8Gv865WnpoJJtqKNua68V0qNjAaSIsq0nmF6pW/USsPnY0daiZKBTFrCOhxLsOGdI/zwiXfZfmjo/dwt4EdPvFvw8E6mnsplP9xIZzCG2yWp1eqdwVjW0vX5rLxXShVGA0kRVZV52NHah9slqamr+7vCLJs59K6DY2GoWVDN7UGeeOsQ0yvL+OETO9jw7pHUz4Sh8z93PtNUkjxBU1u/XYhR0goxismrdL1SqjQ0kBTRMesZ0j6bbBuRjyGvW1JBYWBwMMbiqw++SiRmpXotx82qwhhDdyjKkb4o2SZABQdM6VVKTX66jqSIBq5n8LiFubV++qPj7811+axqAs6WuQNjQjQB/RG7uOKMyjK++cHj+fVN5xKMJZhR5Wf+KG6+lbR4WjmWset3GWOwLINlcitdr5QqrZIFEhH5qYi0isibaW31IvK4iOxwPtel/ewbIrJTRN4RkQ+ktZ8pIm84P/uROJX9RKRMRB502l8UkUWlupdcza8rx+N20TijkhWzq2mcUYnH7RrVXQ9zdW5jfWqFeTY+t/D7v7mAay9YTKXfm1q5Xx0Y2T4hhWz8dMtlx1PudRGzLMJxi5hlUe51aQJdqXGglD2Se4BLB7TdAjxpjFkGPOl8j4icAKwFTnSOuV1EkgsC7gBuAJY5H8lzXgt0GmOWAv8O3FqyO8nRRNr18LE3D2UdnkqKJQyza/ypqrzp95evTCviR1rPSyk1vpQskBhjNgIdA5ovB+51vr4XuCKt/QFjTMQY0wzsBFaJSANQbYx5wdiJhvsGHJM818PAeyXf3ZCKbCRlSoppw/ZWLvvhRo775mMc983HuPTfn8n4Rh2Mxtk5RO2qpIFxJnl/Xlf2X3O2n6RPjU4v0jhUMcZ0t/5pO8GYhdftwu914XW7CMYsbv3T9pyOV0qVzmgn22cZYw4CGGMOikjyHXYusCntcS1OW8z5emB78ph9zrniItINTAPaBj6piNyA3athwYIFRbuZTMZqttCG7a38/cOv0d4XJTlgtf1wHzf/fCu3f+ZM1qyYSSRuV9X95ea9xHIoSpstKASHONiTJcgUOjU631lbSqnRM16S7ZnefcwQ7UMdM7jRmPXGmJXGmJUzZuS+8noiWbexiY7g0SCSFIxZfPN3b3C4J8QvN+/lU3dt4s5ncusFlHkG/4rXbWwilkiQrVOyNMtU54Gl3pNToyvLdOKgUhPdaP9ffFhEGpzeSAOQHHdpAeanPW4ecMBpn5ehPf2YFhHxADUMHkqblDKVCtnXGSTb1hctXWGuv28rr7fYxQxdQmrjp6FEBi57x17I2B2MZc2vGJP5IgqdGr14Wjk7j/QjacUcLQNLp4+/iQxKTTWj3SN5FLja+fpq4JG09rXOTKzF2En1zc4wWK+InOPkP64acEzyXFcCT5nxuGCjyLIlrauG+cs+GUTOaazn59efTZXfw8L6wJD/ADL9MqNxK/uYF7D9cOahpkKnRuusLaXGr5L1SETkl8AaYLqItAD/BHwfeEhErgX2Ah8HMMZsE5GHgLeAOPAlY0zyHeYm7BlgAeAx5wPgJ8D9IrITuyeytlT3Mp5kq+c1XAxtnFHB31y8lPefOJuKMg8L6itobutDXMKw07fSeN1CaAS7xw4s9Q520n9mlT/nc/i8bnypSsWCL1OlX6XUqCtZIDHGfCrLj96b5fHfA76XoX0LcFKG9jBOIJpKsiWtO4NDD1M9eMO5TK/0HTOV99p7XyIxRAyZVj54vcjyWdU0t/VxqCeS13UPLPWeXtU3F+s2NlET8NJQE0i1jdeCmEpNNeMl2a5ysGF7Kx19UfZ0hAhGEwgQS1i0dIbo6B+6mzCjqoyBs6OHCiIAq5dPH9R24+pGfJ78ewKFTo3e1xnMuDXveCyIqdRUo1NmJohkbiQSt0f8DBAdLhIM4R8feXPYx/xp22H+fUBbssz7Nfe8lPGYoRbyFDI1Ojk0lhzSA3tr3vFYNUCpqUYDyQSxbmMT0Xhi2F5ENgNneu3rDA17TCjLepE1K2Yyvy7Avs7QMYHDAPPqAhmPKVShQ2NKqdLRoa0JYm9HP90jyXI7Bs70ysVQvYt/ufwkyn3u1O6KBij3ufmXywels4pirKsGKKWy0x7JOBeNW3QFo0yvKGN/V24BIJOBM71y4RK7J5Ptzbrc58YyR2dRlftKO4tK9xhRanzSHsk4FUtYtPaGaekM8sb+bpraCtvGdmCiejgusRP02WphJWdRLZtZxYrZ1SybWUVNwJtz7Syl1OShPZJxJp6w6AzG6IvE6eiPcM/zu/nvNw7ms9RjEBE7MZ1rT6TC52Z6ZRlVfk/WWVH7OoPUDignr7OolJqaNJCMEwnL0BWM0hOOE4kl+PXLLfz8xb0Ei7Ap1twaf6r8ezJRXVXmpjeSGLQ74oxKH7OdtRrBaDzrrCidRaWUStKhrTFmWYbO/ij7OoJ0BaM8vf0w1/zsJe56tplgNEG138OXL16a07kyJcddAt+94uRBier/+NQZ/N0ly6jye1L5jaoyN9UBb057qUykvVeUUqUlU6A81TFWrlxptmzZMtaXwdNvH+b2DbvY1xlkdnWA85dMY8OOI2w70AOA2yV89PQ5fO6chUyrLOOCW58e9pwDexcAHz2tgX9fe0ZO15ScItzSGWSeUwxyqOR2vo9XSk1cIrLVGLMy0890aCsHmartjvQN0xjDY28c5Lv//TZul+D3uni3tZdXW7pSjzl/yTRuvKiRBfUV1JX7qMlQqiSTmoBd0dcydk+k2u/hUE8052vLd1aUzqJSSoEGkmElV5R73XJMtd3vQF5vosYYeiNxuoMx1m9sRgT6I3E6g7FULyLgdfPdK07k9AV1VJR5mFbhw+POffSxP5rA63Klyqz3RxPsONyT3w0rpVSeNJAMI1u13XyKBfaGY3QFY8QSFgnL0NTWR380QcKZiuV2CdMqvAhw1qJpTK/yDZphVe0ffv8QAJfr6A6ClmUKKqOilFK50GT7MAopFtgfidPSGeRIb4RYwuKVvZ3c9F8v0xOOk7AMAtSXe1lcX06Zx838+grm1wcyTtO97oLFQz6XABiwjMFgsIwBAz6PvsRKqdLSHskwRjLNNRRN0BGMEonZU3dbOoPc+UwTf9nVnnpMwOuittxLZZnH3iwK+PLFSwdV6E36yiXLeWjLPlqyrG6fW+snYQw9oXiqvHx1hZdF0zJvfauUUsWif64OI59pruFYggNdIQ52h4jEEvSEYvz46Z18/p4tqSBy0pxqbv/M6fzTh05kdnWAYDTBnNpy/uXyk4YdKvvuFSezoL6c2oAntWe6iD0z67tXnIzX7WZ2jZ/jZlUxu8aP1+3W6bhKqZLTHskwkmXTh5rmGo4l6AxGCTmLB+MJi0deO8B9L+yh18lrzK72c8PqRi5aPh0RobLMw8fPmo/bNVRpxPyuZbjrVEqpUtB1JAWIxBN09scIRu1gYYzhL7vanTdzu0x7uc/NZ89ewMfOmIfP48LjcmVMpiul1Him60iKLFmRty9ydBbVrtY+bn9mF6/s7QLsdRwfPLmBa85fRF25D4CagJe6cl9qZpVSSk0GGkjyEI1bdIWi9KVNw23vi/Cz53fz2JuHUutBVi6s46Y1S1g8vQKwZ05NryzDn2cFXqWUmgg0kOQglrDoDB4bQCKxBL/a2sIvNu8l7OwkuLC+nC+uaeTsxdMAcInktTJdKaUmIg0kQ4glLLqcku7JXJIxhqe2t3LXs8209kYAe8jqmvMW8qFT5qSS5yNZma6UUhORBpIM4gmLrlCM3vDRAAKw7UA3t2/YxdsHewHwuISPnj6Xz52zkEq/x2lzMa3SR0WZ/mqVUlODvtulyRZADvWEuWtjE0+/cyTVtnrZdK5f3cjc2kCqrTrgpV6T6UqpKUYDCcduKpUeQPojcX65eS+/2tpCzKlZtXxWJTevWcIp82pTj9NkulJqKpvSgSRbAElYhsfePMTPnm+mMxgDYHqlj+subOSS42ficsqYaDJdKaWmaCBJWIbuUIyeUMwubphm655O7tiwi6a2fgD8HhefPGs+nzhr/jHFGyvLPNRrMl0ppaZeIElYhn0dwUEBZE97P+s2NrGpqSPV9oETZ/GF8xczo6os1eZ128NYAZ8OYymlFEzRQJIeRLqDMe59YTePvnYAZ3sQTplXw81rlrB8VlXqcSLirEz3Zq3Qq5RSU9GUCyRJsYTF717Zz32b9tAfsYstzqn1c+PqJVywdNoxwaLM62Z6pY8yj/ZClFJqoAkfSETkUuA2wA3cbYz5/nDHPLujjfUbm9jfZRdWrChzc9U5C7ni9Ll403IemkxXSqnhTehAIiJu4MfA+4AW4CURedQY81a2Y/Z2BPmnR7cBdmHFD586h2vOXTQoWJT7PEyr9B0TWJRSSg02oQMJsArYaYxpAhCRB4DLgayBJBRLUAucvbieL17UyMJpFcf83O0SplWWUakr05VSKicT/d1yLrAv7fsW4OyBDxKRG4AbnG/79tz6oXf2AA/BdKCt5Fc5tqbCPcLUuE+9x8ljIt7nwmw/mOiBJNP0qUE7dRlj1gPrBx0ssiXbRi2TxVS4R5ga96n3OHlMtvuc6AmAFmB+2vfzgANjdC1KKTUlTfRA8hKwTEQWi4gPWAs8OsbXpJRSU8qEHtoyxsRF5MvA/2BP//2pMWZbHqcYNNw1CU2Fe4SpcZ96j5PHpLpPMWZQSkEppZTK2UQf2lJKKTXGNJAopZQqyJQJJCKyW0TeEJFXRWSL01YvIo+LyA7nc91YX2e+ROSnItIqIm+mtWW9LxH5hojsFJF3ROQDY3PV+clyj98Wkf3O6/mqiPxV2s8m4j3OF5GnReRtEdkmIl912ifba5ntPifN6ykifhHZLCKvOff4z077pHotj2GMmRIfwG5g+oC2/wvc4nx9C3DrWF/nCO5rNXAG8OZw9wWcALwGlAGLgV2Ae6zvYYT3+G3gaxkeO1HvsQE4w/m6CnjXuZfJ9lpmu89J83pir2+rdL72Ai8C50y21zL9Y8r0SLK4HLjX+fpe4Iqxu5SRMcZsBDoGNGe7r8uBB4wxEWNMM7ATu8zMuJblHrOZqPd40BjzsvN1L/A2duWGyfZaZrvPbCbcfRpbn/Ot1/kwTLLXMt1UCiQG+LOIbHVKpgDMMsYcBPsfODBzzK6uuLLdV6aSMkP9TzzefVlEXneGvpLDBBP+HkVkEXA69l+yk/a1HHCfMIleTxFxi8irQCvwuDFmUr+WUymQnG+MOQO4DPiSiKwe6wsaAzmVlJkg7gCWAKcBB4H/z2mf0PcoIpXAr4G/Ncb0DPXQDG0T+T4n1etpjEkYY07DrraxSkROGuLhE/Ie002ZQGKMOeB8bgV+i911PCwiDQDO59axu8KiynZfk6akjDHmsPM/qwXcxdGhgAl7jyLixX5z/bkx5jdO86R7LTPd52R8PQGMMV3ABuBSJuFrmTQlAomIVIhIVfJr4P3Am9jlVK52HnY18MjYXGHRZbuvR4G1IlImIouBZcDmMbi+giX/h3R8FPv1hAl6j2JvyfkT4G1jzA/SfjSpXsts9zmZXk8RmSEitc7XAeASYDuT7LU8xlhn+0fjA2jEnhXxGrAN+N9O+zTgSWCH87l+rK91BPf2S+yhgBj2XzbXDnVfwP/GnhXyDnDZWF9/Afd4P/AG8Dr2/4gNE/weL8AezngdeNX5+KtJ+Fpmu89J83oCpwCvOPfyJvAtp31SvZbpH1oiRSmlVEGmxNCWUkqp0tFAopRSqiAaSJRSShVEA4lSSqmCaCBRSilVEA0kSpWYiMwRkYdL/Bx/TK5dUGq06fRfpZRSBdEeiVJDEJHPOntLvCoi65xifH0i8j1nv4lNIjLLeewS5/uXROQ7ItLntC9K7qUiIteIyG9E5E/OvhT/N+253i8iL4jIyyLyK6ce1cDraRCRjc71vCkiFzrtu0Vkuoh8MW1Pj2YReTrXcys1UhpIlMpCRI4HPold8PM0IAF8BqgANhljTgU2Atc7h9wG3GaMOYuhayWd5pz3ZOCTzmZP04FvApcYu7joFuDvMhz7aeB/nOs5FXtleIox5k7nZ2dhVwH4QR7nVmpEPGN9AUqNY+8FzgResktEEcAutBcF/uA8ZivwPufrczm6x8QvgH/Lct4njTHdACLyFrAQqMXe4Oh557l8wAsZjn0J+KlT+PB3xphXszzHbcBTxpjfi8iHcjy3UiOigUSp7AS41xjzjWMaRb5mjiYXE+T//1Ek7evk8YK9b8WnBjzX2cA659tvGWMedbZA+CBwv4j8qzHmvgHHXIMdnL6cdh+Dzq1UsejQllLZPQlcKSIzIbXn9sIhHr8J+Gvn67V5Ptcm4HwRWeo8V7mILDfGvGiMOc35eNR5/lZjzF3YVXTPSD+JiJwJfA34rLFLsmc9d57Xp1RWGkiUysIY8xZ2buHPIvI68Dj2nuPZ/C3wdyKy2Xlcdx7PdQS4Bvil81ybgBUZHroGeFVEXsEOWrcN+PmXgXrgaSfhfnce51ZqRHT6r1JFIiLlQMgYY0RkLfApY8zlY31dSpWa5kiUKp4zgf90Nm/qAr4wtpej1OjQHolSSqmCaI5EKaVUQTSQKKWUKogGEqWUUgXRQKKUUqogGkiUUkoV5P8HfaG4NmTyIH8AAAAASUVORK5CYII=\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": 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>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": 12,
"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": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', ylabel='price'>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEGCAYAAABcolNbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABHDElEQVR4nO3deXzc9X3g/9d77tF9jm18Cx8yVwiYw5zGIoG02STNkgS6bWhLFpqmC91uuiXd/bWUbnbDbtsEmmOhSZuQtBBCkg1tAhTbGAdiY8yNkbCNfMjn6L5mRnN9fn98vzMeySPN6BjNSHo/Hw89JH1mvjMfjeV56/P5vD/vjxhjUEoppQrFUewOKKWUmt800CillCooDTRKKaUKSgONUkqpgtJAo5RSqqBcxe5AqWloaDCrVq0qdjeUUmpOefXVV7uMMY3ZbtNAM8aqVavYu3dvsbuhlFJziogcGe82nTpTSilVUBpolFJKFZQGGqWUUgWlgUYppVRBaaBRSilVUJp1NkN2tAV5eGc7Hb0hlteWcdd1TWxuDhS7W0opVXQ6opkBO9qC/PlT+wgORqjxuwkORvjzp/axoy1Y7K4ppVTRaaCZAQ/vbMftFMo8LkSsz26n8PDO9mJ3TSmlik4DzQzo6A3hdztHtfndTo71horUI6WUKh0aaGbA8toywrHEqLZwLMGy2rIi9UgppUqHBpoZcNd1TcQShlA0jjHW51jCcNd1TcXumlJKFZ0GmhmwuTnA/R87n0Clj/5wjEClj/s/dr5mnSmlFJrePGM2Nwc0sCilVBY6olFKKVVQGmiUUkoVlAYapZRSBaWBRimlVEFpoFFKKVVQGmiUUkoVlKY3K0CrTyulCkcDzQyZy2/UqerTbqeMqj59P8yZn0EpVbp06mwGzPVjArT6tFKqkDTQzIC5/kat1aeVUoWkgWYGzPU3aq0+rZQqpKIHGhFxisjrIvKv9vd1IvKciBywP9dm3PdLInJQRN4TkZsy2i8Vkbft2x4SEbHbvSLyQ7v9ZRFZVYifYa6/UWv1aaVUIRU90AD3AK0Z398LbDPGrAW22d8jIucBtwLnAzcD3xSR1DDiW8CdwFr742a7/Q6g1xizBvgq8EAhfoC5/kat1aeVUoVU1KwzEVkG/DrwZeCP7eaPA5vtr78H7AD+1G5/3BgzAhwSkYPA5SJyGKgyxuyyH/NR4BPA0/Y199mP9STwdRERY4yZyZ9jc3OA+7HWao71hlg2x7LOQKtPK6UKp9jpzV8D/itQmdG2yBhzEsAYc1JEUu9+S4HdGfc7ZrfF7K/Htqeu6bAfKy4i/UA90JXZCRG5E2tExIoVK6b0g+gbtVJKZVe0qTMR+SgQNMa8mu8lWdrMBO0TXTO6wZhHjDEbjTEbGxsb8+yOUkqpfBRzRHM18DER+TXAB1SJyA+A0yKyxB7NLAFSm1GOAcszrl8GnLDbl2Vpz7zmmIi4gGqgp1A/kFJKqbMVbURjjPmSMWaZMWYV1iL/dmPMbwFPAbfbd7sd+Jn99VPArXYm2WqsRf899jTboIhcaWebfXbMNanHusV+jhldn1FKKTWxYq/RZPMV4AkRuQM4CnwKwBizT0SeAN4F4sAXjDGpnOLPA98F/FhJAE/b7d8Bvm8nDvRgBTSllFKzSPQP/NE2btxo9u7dW+xuKKXUnCIirxpjNma7rRT20SillJrHSnHqTE1BqVePLvX+KaUKR0c080CpV48u9f4ppQpLA808UOrVo0u9f0qpwtKps1lSyKmjjt4QNX73qLZSqh5d6v1TShWWjmhmQaGnjkq9enSp908pVVgaaGbBTEwd7WgLctsju7nmge3c9sjuUUGq1KtHl3r/lFKFpYFmFkz3YLRcI6JSL/Nf6v1TShWWrtHMguW1ZQQHI5R5zrzcY6eOJlrDyRwRAZR5XISicR7e2Z6+T6lXjy71/imlCkdHNLMg19RRrhHLXD8qWim1sGmgmQW5po5yreHoYrpSai7TqbNZMtHUUUdvCKdAe+cQ0UQSj9NBQ4UnPWK567om/vypfYSicfxuJ+FYYs4tpmtlAKUWLh3RlIBKr4vjfRHiSYPTIcSThuN9ESq81t8Bc30xXSsDKLWw6YimBKQraKcKaZsx7cztxfR8khmUUvOXjmhKwFA0wdIaHy6nkDAGl1NYWuNjOJrIffEcoMkMSi1sOqIpAan056bGinRbKBonUOkrYq9mTj7p3Uqp+UtHNCVgvu+cv+u6JgbCMQ6cHqT1ZD8HTg8yEI7Nm59PKTUxHdGUgM3NAe7HWss41htiWZasrLmetWUABEQE5MxylFJq/tNAUyImWuxPZW25nTIqa+t++7pS9/DOdqr9bpZU+9Ntmgyg1MKhU2dzwFw/z0WTAZRa2HREMwfM9fNclteWcbh7iIFwPL0htcrvYlV9Re6LlVJzno5o5oC5XoJmU1MdwcEo0UQSh0A0kSQ4GGVTU12xu6aUmgUaaOaA2chKm+i8m+na1d5DY4UHj9NB0oDH6aCxwsOu9p4Zew6lVOnSqbM5IJ+stOkodLJBR2+IhgovjRn7gowxc2bqTyk1PRpo5ohClqApdIkY3bCp1MJWtKkzEfGJyB4ReVNE9onIX9rtdSLynIgcsD/XZlzzJRE5KCLvichNGe2Xisjb9m0PiYjY7V4R+aHd/rKIrJr1H3QOKHRW2HzfkKqUmlgx12hGgC3GmA8AFwM3i8iVwL3ANmPMWmCb/T0ich5wK3A+cDPwTRFJvTt+C7gTWGt/3Gy33wH0GmPWAF8FHpiFn2vOKXSywVyvPq2Ump6iTZ0ZqzTxkP2t2/4wwMeBzXb794AdwJ/a7Y8bY0aAQyJyELhcRA4DVcaYXQAi8ijwCeBp+5r77Md6Evi6iIjJLIs8tl9W37AHRQvCbJx3M5erTyulpqeoWWci4hSRN4Ag8Jwx5mVgkTHmJID9OfXutBToyLj8mN221P56bPuoa4wxcaAfqM/SjztFZK+I7A0Gg3T0hOkdjpJILoxCKTriUEoVUlGTAYwxCeBiEakBfioiF0xw92xDDDNB+0TXjO3HI8AjABdfcqmJJ5P0hqL0hWOUe5xU+d34xqxhzDc64lBKFUpJ7KMxxvRhTZHdDJwWkSUA9ufUho5jwPKMy5YBJ+z2ZVnaR10jIi6gGsh784YxhqGROCf6whzrDTEYiTHBrJtSSqksipl11miPZBARP3Aj0AY8Bdxu3+124Gf2108Bt9qZZKuxFv332NNrgyJypZ1t9tkx16Qe6xZg+0TrMxOJxpN0Do5wtCdE99AIsURyKg+zYD20dT8X3fcs5/7ZL7jovmd5aOv+YndJKTVLijl1tgT4np055gCeMMb8q4jsAp4QkTuAo8CnAIwx+0TkCeBdIA58wZ56A/g88F3Aj5UE8LTd/h3g+3biQA9W1tq0JJKG/nCM/nCMcq+L6gUwrTZdD23dz4PbD+IQcDmsjLYHtx8E4O4b1xW5d0qpQhOdChrt4ksuNT959oVJXeNxOaj2u6nwuhZUtlq+LrrvWcKxBC7HmQF0PJnE73by1n03TXClUmquEJFXjTEbs92mlQFmQGparWc4SpXPTaXPhctZEstfJWE4msA15uVwiNWulJr/NNDMoETSnMlW8zqp9rvxunRardxj7c1xZAz2ksZqV0rNf/pndwEYYxiKxDneG+ZEX5ihkXixu1RUn7tmNUljTZclTdL+bLUrpeY/HdGMERqJkzQGxwyttURiCSKxBL1OR3pazeFYWOs4qQX/b794iOFognKPk89ds1oTAZRaIDQZYAzvkrXmwi98ky3NAVqaA6wJVMzoAr9DhAqfiyqfG8/YhQullJqjJkoG0EAzhnfJWrPk9q+lv19RV0ZLc4AtzQGW1vpn9LnKPFZ6tF/XKpRSc5wGmkk476IPms/8jx+wtfU0Hb3hUbc1L66kZUOAG9YHqCv3zNhzup0OqsvcVM7j9OgdbUEe3tlOR2+I5TN8cJtSqvg00ExCah+NMYYDwSG2tQbZ/l6Q7qFo+j4OgQ8ur2HLhkVcu7aBCu/MLHU5HUKlz03VPEuPzjzBM7M6tBbuVGr+0EAzCdk2bCaShreO9bG9rZMX9neOyiJzO4VNTfVs2RDgytX1M7LuIiLzKj36tkd2n3XCZigaJ1Dp47E7ryxiz5RSM0U3bE6T0yF8cEUtH1xRy3/asoZXDvewvS3Ir97vZiSeZOeBLnYe6KLc4+TatY20bAhw8fIanFPMLkulRw9F4vg9VsDJfJOeazp6Q9T43aPaZvIET6VUaZu7715F4nE5uHpNA1evaSAUjfPSwW62tZ5m75FehqMJntl3imf2naKu3MPm9Y3cuCHA+kWVU157CUcThKMJ3E4HVX5rHWeupUcvry3jcPcQA+E40UQSj9NBld/FqvqKYndNKTULNNBMQ5nHxYfOW8SHzltEXyjKC/s72doaZN+JAXqGo/zkteP85LXjLK3xpzPXVtRP7XjkWCJJ99AIfaHonFvH2dRUx57DPTjEWt+KJpIEB6PcdlldsbumlJoFukYzxlSKao51sj/M822dbG09zeHu0dNDawMV6cy1xkrvlJ9DREYdylbKWV23PbKbQ11DDEbOjGgqfS5WN1ToGo1S84QmA0zCTASaTO2dQ2xrC7KtNUhwcCTdLsAHllezpXkR169roNLnHv9BcnjtSC9f23oAj0so87hKLqvrmge2U+N3j5o+NMY6buGXf7qliD1TSs0UTQYooqbGCpoaK7jjmtXsOz7AtrYgO94LMhCJ80ZHP2909PPQtgNcsbqOlg0Brmyqn/T5Nj/YfRQRcDkdJJIGv9sJJHh4Z3tJBJrltWVnZZ2FYwmW1U5tGlEpNbdooBnDIWdGBTM52nOIcOGyai5cVs0f3nAue4/0sr0tyIsHu4jEkrz0fjcvvd+N3+3kmrUNtDQHuHRlbV6ZaycHwlT5XGAgYQyJpMHlEI72DM9Y/6fjruua+POn9hGKxkfto7nruqZid00pNQs00IzhEFhc7cMYQziWIGRnfc3k0c0up4Mrm+q5sqmecCzBrve72dYaZM/hHsKxBM+9e5rn3j1Njd/N9esbaWkOcP45VeNmri2p8tM9PGKPZCyhaILGCh8dPaGiZ6ttbg5wy7G+s4pqlsJoSylVeLpGM8bGjRvN3r17z2qPxpOEowlCsTiRWHJGRzsp/eEYvzxgZa69dax/1G2Lq3xsaW6kZcMiVjeUj7ptT3sPD24/gMsh+NwOIrEk8aThni1rubzJyuwqZjHPmagMUMrJDkopTQaYlPECTaZkcvRoJ56cudFOSnAgwvPvdbKtNcjBzqFRtzU1ltPSHOCG5gCLq3yAFWwef6WDUwNhFlf5ufWy5ekgM5bf46TK56Z8hkrn5DLdygA72oL8yZNvMhiJE08mcTmsrLX/c8sHNNgoVSI00ExCPoFmrJG4FXBCUevsmZl2uHuY7Xbm2sn+yKjbLlxaxZbmRWxe10h12eQy11wOa+Nkpc895SoG+Zhu1tlHvraTA8EhnA5BBIyxygKtDVTw9B9dV7B+K6Xyp1lnBeZ1OfG6nNSUWaOdUCxBKBonHE2QSE4/kK+qL+f3rl7N7161itaTg2xvC/L8e0F6QzHePj7A28cH+PrzB9m4spaWDQGuPrchr6MH4skkPcNRekOxUXtyspnO1NV0s87au4btzZ5WoBIBI4b2rtJIdlBKTUwDzQxzOIQKrytd0TlztDMSn97ajohw3jlVnHdOFZ/ffC6vH+1lW1uQXx7oIhRN8PKhHl4+1IPP5eCqNVbm2sZVtbhzVBAwxjA0EmdoJJ611E3mGkuN301wMMKfP7WP+yGvYKNZZ0otbDp1NsZUps7ylVrbCcdmNpNtJJZg96EetrUGeflQN7HEmX/TKp+L69c1sqU5wIXLqvM+otohQrnXRZXfxe/8wyvTrr6cGhEd6w2xbJIjopu/+gIHO4dxSsbUmTGsaSznmf98PQAPbd2vR0UrVUS6RjMJhQw0Y0XjyXTQicQSJGfg32IoErcy19qCvHG0j8xHbKzwpjPXzm0sz7vQ529+eze1fo+9RmJdM5s7+3e0Bfnik28yNBInkTQ47VHjX9vJAA9t3c+D2w+ma6kljfVxz5Y1GmyUmiUaaCZhNgNNJmMMkVjSzmaLE41Pf7TTNTTC8+91sr01yHunB0fdtrKujC0b7COqayY+ovqPf/imtU/H48QpgtMhhGOJWT1PZqIR0UX3PUs4lsDlODNFGE8m8budvHXfTbPSP6UWupIMNCKyHHgUWAwkgUeMMQ+KSB3wQ2AVcBj4tDGm177mS8AdQAK42xjzrN1+KfBdwA/8ArjHGGNExGs/x6VAN/AZY8zhifpVrEAzVjxxZrQTjk0/qaCjJ8S2tiDb24IcG3NE9XlLKq3MtfWNWY+ozrZPJ2EM9330fD58weJp9WsmnPtnv8DlAIecCTRJkySehPf/568VsWdKLRylGmiWAEuMMa+JSCXwKvAJ4HeAHmPMV0TkXqDWGPOnInIe8BhwOXAOsBVYZ4xJiMge4B5gN1agecgY87SI/AFwkTHm90XkVuA3jDGfmahfpRJoxorYQScUSzAyjRTqUUdUtwXpHh5zRPWKWlqaA1y7tmHUPpvv/+owT7x6jHAsgd/t5NOXLuO3r1qFx+Wg2u+mwuua8pk706UjGqWKryQDzVgi8jPg6/bHZmPMSTsY7TDGrLdHMxhj/pd9/2eB+7BGPc8bY5rt9tvs6+9K3ccYs0tEXMApoNFM8EOXaqDJlEgaQtF4esPoVNd2EknDm8f62N4WZOf+rrOPqD63npbmRTiAb77w/oSVB1KbKKv8hd2Tk42u0ShVfCW/j0ZEVgEfBF4GFhljTgLYwSaVmrQUa8SScsxui9lfj21PXdNhP1ZcRPqBeqBrzPPfCdwJsGLFihn7uQrF6RAqfW4qfe702s6wvW9nMplsTodwyYpaLllRy91b1rLnUA9b206zu72HaDzJzv1d7NzfhUOso5dry9xgSKcoP/5KRzrQxJNJekNR+sIxyr1W5YHJVqGeqlQw0awzpUpT0QONiFQAPwb+yBgzMMH0S7YbzATtE10zusGYR4BHwBrR5OpzKRER/B5neoNmNJ5Mj3YmU6XgjaN9/OS145wcCLM+UEnzkkoOdQ3z2tFekgaGowmGowkryHldVPqcnOwPnfU4xhiGInGGInG8bidVPmtP0d9tO1DQQHD3jes0sChVovKurigiK0XkRvtrv72uMi0i4sYKMv9kjPmJ3XzanjJLreME7fZjwPKMy5cBJ+z2ZVnaR11jT51VAz3T7Xcp87gc1JR5OKfGz8r6chorvVR4XRPun0kt9ncPj1Dlc9EXjvLiwS5uuWQZT9y1iaU1fjz2ps9E0tAXjtHRG6EvHOe7vzpMR8/ZAQes/T2dgyP81b/s42vbDhCKxnE5rKoAD24/yENb96fvu6MtyG2P7OaaB7Zz2yO72dEWzPqYSqm5J69AIyL/EXgSeNhuWgb8v+k8sVhDl+8ArcaYv8246Sngdvvr24GfZbTfKiJeEVkNrAX22NNsgyJypf2Ynx1zTeqxbgG2T7Q+M9+kptgCVT5W1pdxTo2fmjLPWdWbH3+lg3giQdfQCIe6hukaGiGesKbG6so9/Kcb1lBf4WFJlZf6cjcuew1mJJ7k0V1HuP0fX+H3f/AqP9rbQWfGKaIpP9x7zDorJwkjcUM8YTBJw7dfPAScqTwQHIyMqjyQGWw0EBWXvv5qOvKdOvsCVrbXywDGmAMZaydTdTXw28DbIvKG3fZnwFeAJ0TkDuAo8Cn7OfeJyBPAu0Ac+IIxJjU39HnOpDc/bX+AFci+LyIHsUYyt06zz3OWiOBzO/G5ndSVe4gnklZNtpEER3qGGQzHEIfgcAjxpKF3OEY8adUSu7ypjntYm64Off6SKq5f10hwaITtbdYR1ftPD7H/9BDfeqGdCq+Lm85bxGevWkmlz00omhg1X2nsj8FInJG4dRJoLJGgeyhONJHE47SKfaZOCJ1uCZxSMJePOZgPr78qrnwDzYgxJirpoobiIstax2QYY14k+xoKQMs413wZ+HKW9r3ABVnaI9iBSo3mcjqocjqo8rmJJ5Ig4BSxFr0EEmJGbRq9vKku67EDn7t2NU+8cowfvHzErm4AQyNxfvz6cf7fmye4cpyjCrCf53hvmLZTAwyGYzidDpx2oOsajBJLWJtMH97Zjtsp6RI4ZR4XoWh8Ro+qLmQgmOtv1LPx+qv5Ld81mhdE5M8Av4h8CPgR8C+F65aaTR6XA4M1FZb6SBrwOHOnKTtE2HOoh/pyD+c2lHNOtY9KrwvBWs956WD3uH+RuO3Hj8aTZ/7kMPaXQjrQdfSGRp0eClbm27He7GtDk5XP1N10ZL5Ri31UuNspPLyzfUYev9AK/fqr+S/fQHMv0Am8DdyFtSnyvxeqU2p2BSp9mCTpN3sRwMDi6jMJBeUTJBScHAjjczsQsWqQLan20dRQRrXfxRWrJxjRIBhj0gEnmTQkjSGRNFa7w8piW15bRnhMBt1kjhnIpdCBYK6/URf69VfzX75TZ37gH4wxfw8gIk67bW78T1ETMsbgcMhZ1ZGNMVn37KTSp1N7dpZU+a1aaBlvptGEYXV9Bf/rkxfy4a++QLbSbZF4kt/6zh68Luu6kXiSWCKJ2+mg3ONiWW05R3tC3HbZcv7Pv70HjH/MQK6pr4lu7+gNUeMffWjcTAaC5bVlHO4eYiA8eg1qVX3FjDx+oekxD2q68h3RbMMKLCl+rBIwah4YiiZYWuPD5RQSxuByCktrfAxHR/8Vm9qzU1/hZXldGcvryqiv8HL7ppWc6g+zPziU/jjVH+bWy6xs9InKtJ3sj3B6cIS+cNyqoZa06rwlDNx62XISScMFy6q5sTnA6YEI754cIDgQ4ZZLlqYDReqo59eP9nKqP8zrR3v5kyffTE995ZoaK/Rf7Jua6ggORokmkjgEookkwcEomyZYvyolm5sD3P+x8wlU+ugPxwhU+rj/Y+fr+ozKW74jGp8xJn1wvTFmSER03DxPpE7AbGo88xd26ryZibidDqr9Dp7Ye5TYmBFLLAmPv3KEy5vqmCih/D9csYKn3z5JTyiWXsuJJa2MtJcPdbN+SSXvnRzkmXdPU1vmYUm1g5F4kh/uPcaGJVV86PzFPPBMG72hGE6H4HI6MAZ6QzEeeKaNzc2BnFlthf6LfVd7D40VHgYjZ56/0udiV3sPd8/IMxTe5uaABhY1ZfkGmmERucQY8xqkqyWHc1yj5ojpvtHuOtSbtf2NYwPUlHko9zqtFGdzppSD2GVt7rhmNe8c68flDBONGwYjcRLGEE8afvrGCZ566yTlHicup1Be5kEQfC6rj994/n3OW1rN+51DGGOIJQzGWI/tENJHPR8IDtIfilnTg1my2jY3B7gfpnwwWy4dvSEaKrw0ZgRuY8ycWaNRarryDTR/BPxIRFI77pcAE1ZBVnNHPm+0U03/rSv3cOe1TXxt2wGcjtFFLz99qVXQ4dRghGq/G0ForPAQiiYYGLHK2CSShoGIVeyzdzhGhddFpc9FmcfBqYEwI/aBcYkxG3XiBkSsxlRWmyOdng/JMenbhfyLPTVizDyhVBfT1UKSV6AxxrwiIs3Aeqw/SNuMMbGC9kzNqoneaKe7D2Rs0csyt4PbN63i9qtXE44mRiUTiH2EtMMhrK4r5xOXnMPXth5gIBK3NnmOxBkcieMQqC3z8PaxfsYWi07FnFR2ttsphGNWVlsq2QHyS9+eCbqYrha6CZMBRGSL/fmTwL8D1mGVfvl3dptaAGYi/feiZTWcf041S6p9XLC0ho2r6mis9LKivow/2HwuSQOReAKDIRxLEE8afvOKFWxeH+DPPrKBRVVeasvc+N3Wr2zSQPdwlHt++Abj1Q51OoSuoRHWBCqpL/eMSnaoL/ewdlHVTLw8Oeliulroco1orge2YwWZsQzwkyztap6ZbvpvrhHRhy9YjMflsKbmeoZZUu3ntstX8MGVtRhjuLypjv/MunQJnNUNXlbXl3Gg0yp7M16uQcLAQDjGb1y8lIe2H7D2A3mcROLJWR9R6GK6WsgmDDTGmL8QEQfwtDHmiVnqkyox011jyKeESbY34tQBb+FogivPrc9aAudoT4jf/cdXsgabSCzJT18/zub1jdy95UyttqU1Zdx53Wp941dqluRcozHGJEXkDwENNPPYRIv9udYYnEC22avU9s2pjojy2Sy6oq4Ml1OsitBZHuPvth/kG88fZOPKWm6+cDHXrKlPB7yOnhAVXhcVPhduZ94nZiilJinfrLPnROSLwA+B4VSjMWZen+2yUOSa2sqVlSYOIMvOf7Hfu5fXlnGoa+isfSSrG/LfGZ95wFs9EEskCY0kCMXiLK/xc6QnhMOubGCVsoFyr5MkMDySYM/hXvYc7sXjcnBVUz0tGwJctqqOWMI6GfSNo308/koHx/tCrKgrn1PVlWfCXK4urUpfvoHm97DWZP5gTLumzcwDk6nOm23U4HQ4MCZplf+397GI3Q7Wzvg9h3tw2PtbookknUNRfvPyqe+MdzsdVJc5qMbNf//oeXzxyTcZHrHSoR1OodLj4k9vaubiFTW8fKiHba2n2dXeTTSeZMf+Tnbs76TC6+K6dQ0srfbzL2+dwO10UOZxcbI/zP/3s3f4Ky5YEG+2c726tCp9+Qaa87CCzDVY7zW/BP5voTqlZldHbwinQHvnUHrE0VDhSU9t5Xojamoo571TgxjJCEQGmhrKAWtnfLXPRV84RsxYwabG757UzviJ/uLesmERv7NpVTp92ut0cOvG5VyzroFoPMm1axu4dm0DQyNxXjrYxdbWIK8f7WVoJM4v3j4FWKnQVT43AnhdDhJJw0PbD3DpqlrKPVa69XylxwCoQss30HwPGAAesr+/zW77dCE6pWZXpdfFgeAQzoyd88f7IqwNWFNbud6IPnLBYt47PZjen5Ia1XzkgsWAtTN/MBLH7XSk97EMRuIcCA7m1b9cgW5HW5AnXztupUvba0g/f+cUVzTVc83aBoajCULROCLCTecv5qbzF9MzHGXHe0G2tQVpPTlIwkBvOEZvOIbbKVT6XIS743QOjtAtUcq8Tiq9bvweZ87+jvczlOrUVKGLiiqV7wroemPM54wxz9sfd2Jt3lTzQPp0a5PxkdGeq8z9rvYeysa8AZd5nOxqt5bwMnfmC2Lt0M84byaXXPt4Ht7ZzlAkxqGuYd45McChrmGGIjEe3tmOy+mg2u9mSbWflXVlBKp8VHhdNFR4+eQly/jGb17ChsWVVPlc6Q2csYShZzhG13CMz//Tazyxt4MjXcOc7A9ztDtE99AIkfE272RR6PNupkuPAVCFlm+geV1Erkx9IyJXAC8VpktqtuWq3pzrjWjfiX6GRkbfPjSSYN+JfoBR580YY0ja5Zzz3ZmfK9DtO9FvFeW0D00zBnpCsfTzpzgc1nk5gSofK+vLWFLtp9Ln5nevXkW510Wg0svyWuvgttRM2XunBvnmjvf5zCO7+eKP3uRf3jzO8d4wJ/rCdPSE6A/FSExUnprSP/jsruuaiCWsVHJjrM9auUDNpHynzq4APisiR+3vVwCtIvI2YIwxFxWkd2pW5KrenCu9edCuRTZWqn3doqosWWfuvLPOcu3jSQXEsW/3Y485yJSZxfbpy1ZQ4/fwyC/bOd4b4tzGCj69cRl+j5NtbUFe2N/JYCTOa0f7eO1oH3/9b/s5b0kVt2xcxqamerwhJ2UeJxVeF2Ueq4xOplKfmip0UVGl8g00Nxe0F6qocgWSzc0BbjnWl15sL/c4+dw1ZzY8jvf3vBnz+IurXVOq9ZWrf+ONKHKNNDJ9+ILFfNheU0qlTg9F43xgeQ1Xrq7jb57bTySWJBJLYIB9JwfY9y/vUu5xcs3aBlqaA3xwRS0el4Nyr4sKrwufPQqbC0U1tXKBKqR8i2oeKXRHVPHk+ot2R1uQR3cfGXVw16O7j3DRspq83pym+xdzrutTFaHHykwUm+oJnLFEkp+9cYIqn4vGCifJpGEoGqcvFCMSTzIcTfDsvtM8u+80tWVublgfoGVDgObFlXhcTip9Lj53zWr+8l/f1aKaasESM9GpVAvQxo0bzd69e4vdjZJy81df4GDn8FlHPa9pLOeZ/3w9q+79+bjXHv7Krxe8f033/jzbflEcQPtXfj19AudgJE48mcTlsDaM/p9bPpDOWktltWUGglThy2se2J6e+rKOODAkkkn6QzFuu2Il29tO8/bxgVHPXel18fEPnkNLc4CV9eW8frSXx1/p4GRfmOULcEOomv9E5FVjzMZst+U7daYWsEPdIcAQS44+WMxqh0qvk8GRs9dDKr1TSwWeLLfLQSyeHBVsHHY7wAPPtNEzHCVpH7yWSCaJDUfzPoEzc+rLKeBEiMYTrGwo59bLlzMQivLO8QGrKoH9d9vgSJwf7D7KD3YfZU1jBS0bAnzxw+sJVPnwua3ptXgiiUtL36gFQAONyimZNNgZymCPaOIGxF6FuWBpDW2n+ukPx0naGzKr/S6aF1fPSv9W15dxsHMY95gR1+p6aw3kYHCIhDlzsifGqux8MGidTp7rBM5sa0TxJHxh8xqWVPt58rVj6Wy3TPZTcbBziIOdQ+nss0WVPn7v6lVsbg7gczsp97go8zoXdL21Ut5npKZv4f5mq7yNegM0Z7ffdV0TlT4PqxvKueCcKlY3lFPp88zaGsS9H9lATZkbcVgBRhxQU+bm3o9sACCeigCpNRv7c6o91z6fXOfJDEcTJDk7KcIAD916MVeurkuvF8UShmN9Ye7/eStf+KfXePrtkxzvC9HRE+JYb4i+UDRdMHShKPV9Rmr6NNConPweB6lYkz690gFlHqux2Ad7bW4O8Ne3fIAPLq9lcZWPDy6v5a/t9Rc4c9KmMWc+Mtvz2efz1rE+9p3o50R/hH0n+nnrWF/Ofglw7dpGRuJJ6sqsDaGZic+tpwb5q5+38slv/Yr/+YtWdu7vJDgQoaMnxPG+8IIJOqW+z0hNX1GnzkTkH4CPAkFjzAV2Wx1WlehVwGHg08aYXvu2LwF3YFWlv9sY86zdfinwXcAP/AK4xxhjRMQLPApcCnQDnzHGHJ6lH2/eyL4PZnT15WKnx070/GsaK2g7PZS1Hayf7+1jvQxFz7ypV3gc6RM4H9q6n69tO5BefxmIxPnatgOAdUz1RPk0teUeOnpD9IXiOByC2yVWdekkOJ2CMda5OVtbg2xtDVLlc7F5fYAbNwQ475wqeoajeFwOKrwuyr3z8ziDUt9npKav2L+13+XsPTr3AtuMMWuBbfb3iMh5wK3A+fY13xSR1Grzt4A7sY6ZXpvxmHcAvcaYNcBXgQcK9pPMY3dd14TH5WRxtY/1iypZXO3D43LOmfTcX7twCTKmTex2gMVVnlFBBmAommRxlQeA//tCO8nUGo/9kTRWO+TeRxSNJxGH4HQ4cIoDl8OBwwEep4Mnf38Tf/yhdekCpAOROE+9eYK7H3+D//Dtl/n7X7bTdnKAnuHoqJFOvuV75oLltWV0DY3Q3jlE26kB2juH6BoaKal9Rmp6ihpojDE7gbFn2nwcq2An9udPZLQ/bowZMcYcAg4Cl4vIEqDKGLPLWLnaj465JvVYTwItMnbbtsppJqbGdrQFue2R3VzzwHZue2T3rM6/P/3OqayB5ul3rMrNz+7L3pdUeyh2pvJARim4dHsuY6fmrMw9wecSVtaXs7jKS28oittpJVKk+np6YITH9nTwuUdf5XPf28s/v3yUI93D9AxHOdZrrev0DEcnVXetFG1qqqNzKDpqn1bnUJRNWU5UVXNTKWadLTLGnAQwxpwUkdS72VJgd8b9jtltMfvrse2pazrsx4qLSD9QD3RlPqGI3Ik1ImLFihUz+sPMF9OZGiv2eScHg0MkOZM1h7HOaUtlnY0XMFLtqeyxsfL9i2XdoqqsWXnrFldTW+7hH148RG8odtZ1NX4XZV4XJ/oitHcN0/7iIb794iEuOKeKlg0Brl/XSCzhoS9kJWakKhJ4XMWeqJicXe09BCo9DIRHp5dP5hgJVdpKMdCMJ9v/azNB+0TXjG4w5hHgEbA2bE61gyq7Yp93kjXrzGS05+B2CtHE2fdNjVRyVSbY1FTHy4e60/dJGugPx9N/se8Pnr1+BNZ9fvz5q2g7Nci2tiDPtwXpDcV458QA75wY4O+2H2TjqjpamgNcvaaeWCJJXyiK23lmTWcuBJ2O3hD15V4aKnzpNmOMrtHMI6UYaE6LyBJ7NLMESM1rHAOWZ9xvGXDCbl+WpT3zmmMi4gKqOXuqThVYsRd7nWLt+xkbV/IsHk2lz0XPcGzUXygCVPms/z7rAuW0nR4+67p1AWvd5RdvnwRzZmQkWF/84u2T3H3juqxByr4LlT43551TzYYlVXz++nN5o6OPra2n+eWBLkLRBHsO9bDnUA9el4Orzq1nS3OAy1efOaLaOjXUSXlG7bVSMxdqwanpKcVA8xRwO/AV+/PPMtr/WUT+FjgHa9F/jzEmISKD9jEGLwOfBf5uzGPtAm4BthutuTPriv1Gsqaxgv2nh9LrK6kF/TWN+VWPzpV1d6gre8BMtR/qDuFySvpoa7CqE6QqK0wkUOUjkTQMReIMRGJcurKWS1fW8kctCV4+1MPW1iAvH+pmJJ7k+fc6ef69Tip9Lq5b20jLhgAXLasmlkjy3L7T/HBvB6cGIiyvLePz1zdxw4ZFef38hZaraKqa+4qd3vwYsBloEJFjwF9gBZgnROQO4CjwKQBjzD4ReQJ4F4gDXzDGpCbXP8+Z9Oan7Q+A7wDfF5GDWCOZW2fhx1JjFPuN5N6PbODux15jKJpIl9Cp8DjTGzpzyVV9eiTLtNrY9njCEE2cWQuySuTkN6RyOoTqMjfVZW7C0QQDkRgiwnXrGrluXSNDkTiP7jrMM/tOMzQSZzAS5+dvn+Tnb5+kocLDeYureOVID+GYlal2sj/Cuyf7+auPXUDL+YsoczuLWgqnFI4peGjr/rOqk99947q8b1cTK2qgMcbcNs5NLePc/8vAl7O07wUuyNIewQ5UqnhK4Y3E43biSRoSSYPTIXgmMY2U65iEXCq9TrrGpCMnmVotuNQZOvFEkqGROAPhOO+eGOCl97upLXPTWOGmNxRn2D68rGsoys6DXWc9ztBIggeebeMDK2oA+OfdR3h8bwehaIIKr2vW30iLuQ/roa37eXD7QRwCLoc12n5w+0HA2ieV63aVWylOnal5qJhvJA/vbE8f55wymWSEHW1BnnztOI2VXlbYI5onXzue9zEJoWj2PS/jtefD5XRQU+ahpszDF390HI9T8LqswBWodBKOWRloVzbV84+/Opz1MU4NjNAzHOXnb57gu7uOpNegBiJxvrr1ANF4kj/+8Hocjnzz6+amb794yA4i1qjOIRBPJvn2i4e4+8Z1OW9XuWmgUfPedJMRclV3zmUkkcTtsAp5pqbunGK1z4QT/eH0z5dIGhLG4HM76A1F+e1NK8cNNACffngXkL1O27dfPMS/37gcn9tBmcdFuae4U2yFMhxNMDY5zyFnTmjNdftMmO9FRTXQqHlveW0Zh7uHztqnsareWsxPVXweK7W1N1d1Z6dDsp7m6bRHAuUeaxTkzXiTjieTlM9QFlhmsoXLKTiNYWgkPmoEN56JDiGNxJMYYwhHE4SjCboBj8sKOmUe56xmsRXyjTj175M5cEsaqz2f26er2PvMZsP8+/NEqTE2NdURHBy98zw4eGbn+dJqX9brUu25qjt7xsmTTrV/7prVJI0VXJImaX+22mfCXdc1EUsYQtG4FRhiCZIG7mlZy+JxfraUv/r4+RPe/uqR3lFBNBq39uqc6AtzpHuY4ECEwUiMeAGLf6YOrnv9aC+n+sO8frSXP3nyzRmrLpHr36fQ/36lUFS00JU7NNCoeW9Xew+NFR48TgdJY9UYa6zwsKvd2lL1Pz5xIVVeZ/ovVodAldfJ//jEhUDu6s5lHueo0jFiP0bqL967b1zHPVvW4Hc7iSetabt7tqxJz++PtwKS78rIRCWCMlPKs7l6TcOEt//Jk2/xmUd2843nD9J2aoDM3QGJpDVy6hwc4ah9zEFvAUriPPBMG70hax+Ty+nAAL2hGA880zYjj5/r3yfX7dPV0RvCP2Z0OJv7zGbjmAadOlPzXkdviIYKL42V2Xeeb24O8NBtl4ybFZd9H407vY8mn+rWd9+4btw3JpcDYlkGBJPZ1F/IZIue4Sg/fu04P37tOEtr/LQ0B9iyIcCKutH7oKLxJNF4lN6QNW3o9zitaTa3c1oJBe1dwzjsESXYU51iaO86e5PsVE3075PP7dNR7H1ms1G5QwONmvfy+Y880Rt1rn00uW7Ppcrvpnv47Fpn1WMSGKaqwuM4qzo1QLlbqPBN/BbwT5+7nOfbOtnaeprD3Vb16Ed3H+HR3UdYG7COqL5hfYDGSu+o61KbTIcicUSEf959mMdf6WB4nPTp+b4YPpFi7zObjcodOnWm5r2xaxghe49Jvv+RNzcHuOWSpXQOjtB6apDOwRFuuWRp+o1wutWt1y2qYnGVl3KPE7dTKPc4WVzlTZ+Hk4+J5tjvvO7crNfcdf0aApUTr+Esqfbzm1es4PevO5f1gUrK7D4CHAgO8X9faOfWR3bzx0+8wb++dZLByNkB89GXDvHtFw8zOGKtHaXSp//m2TaMMTmnblbXl5E0o6cuk4b0Ud1z3WwcHDjR78fy2jLCY6Y7Z3pEpSMaNe9Nd8NoPvtopjN1Nd0RUa6spV3tPSyu8p41tZdvdeQ97T08uP0ALoewtMZnZaHFkqwNVPDuyQEGInHe6OjnjY5+Htp2gCtW19GyIcCVTfX43E4ee6Uja/r03//yEP/+0uX8nb0Z0u92phfDM6du7v3IBr745JsMjcTTG25rvO68KzvMBYWc+sz1+zEbIyoNNGpBmM5/5ELPYU83EObqX641qk2ra9l1qPesx710RTUiwuOvdOBySHrB2sqOShCJJXny9zex90gv21qDvPR+F5FYkpfe7+al97vxu51cs7aByDiHtEXiSZLGcKwvRJXPZR0QJ4JDwOtyjFpD++tbPlDUyhJzWa7fj9mo3KGBRqkcZmMOezqBMFf/cq1RPXbXVdz28K9GBZtNq2t57K6rSCQNwcEIFd7RbxU+t4NTA2FcTgdXNtVzZVM94ViCXe93s7X1NK8c7iUcS/Dcu6dz9n9JlZ/u4RH8bifGGBLG6l9DhTfd7+vWNWpgmaJ8fn8LXblDA41SORQ7KyiXXP3LZ2rksbuuyvrYTod1CujpgTA+t4uEvU4SiSVZXDV6Q6jf7WRLc4AtzQH6wzF+eaCTra1B3jrWn/Wx68us/t562XIe3H6AcCyBz+0gEksSTxo+s3H5qISCVIUCa51Il5fzVQq/v/qvpVQO000mKLRc/ZvuYvNd1zURT8JIPIHbKcTsDYu3XrZ83Guq/W4+etE5fO0zF3PvTetxZ0lv7g7F+dyje3m/a4jbr1xJfbm1jlRf7uWeLWu5POMo51SFgu6hETp65s8x1rOhFH5/RY9nGW3jxo1m7969xe6GKjGp9NtSXSModP+yPf41axsYiMQZjMSyluDJtKe9h8df6eBY7zBOh4NYIknPmOOrL1xabR1RvbaR6rL8U7ud9vpRmddKpnBOY8/OfDUbv78i8qoxZmPW2zTQjKaBRqnJMcYwOBJnIBxLl+XJ55rWk9YR1Tves46oTnE6hMtW1dLSHOCqcxvwT7KmmM/tpMzeLDoXjrKeLzTQTIIGGqWmLnUw2/BIPO9rEknDa0d72d4WTB9RneJzObhqTQNbmhu5bFXdpNdm3E6HXaHAmU6fVoWhgWYSNNAoNX2xRJLBPKfVMo3EEuxq72Fb22n2HOohlnFKaZXPxfXrGtmyIcCFS6vTJWnyJZKaYnMW/VTR+UgDzSRooFFq5hj7yIL+SUyrpQxF4uw80Mm2tiBvHO0btekzUOllS3OAluYATY3lUxqpuJ0Oa6Sjo50ZoYFmEjTQKFUY4WiC/nCMUDT/abWUrqERnn+vk+2tQd47PTjqtpX1ZVahz+YA59TkPoMnm3T6tNuF3+PUtZ0p0EAzCRpolCqsWCJJfzjGUCROcgrvPx09Iba3BdnWFuRYb3jUbectqWRL8yI2r2+krtwz5T7q2s7kaaCZBA00Ss2OZPJMtlpsCgenGWPYf3qI7W1BtrcF6R6Opm9zCFyyopaWDQGuWdNAuXfqe9N1bSc/GmgmQQONUrNvOtNqYGWuvXmsj22tQXYe6GR45EzmmsflYFNTPS3NAS5fXTftabHM46y9LoeOdmwaaCZBA41SxTPdaTWwDmDbc6iHrW2n2d3eMyoJodzr5Pq1VubaB5bVTHtzp0OsA95SCQULuTSOBppJ0ECjVPElk4bBSJyByNSm1VKGR+K8dLCLra1BXjvaS2amdX25hxuaG2lpXsS6RRUzMjJJre343dbHdE4WnWs00EyCBhqlSsuwnR493bpmPcNRdrzXyfa207x7cnTm2rJafzpdenndzBWb9LqtdR3/AphmW/CBRkRuBh4EnMC3jTFfGe++GmiUKk0jcWsdZ3gkwXTft070ha3MtdYgR3pGH/ewflElWzYEuGF9Iw0V3nEeYfJS02w+e7Qz31KoF3SgEREnsB/4EHAMeAW4zRjzbrb7a6BRqrTF7aoDA5OsOpCNMYb3O4fTmWvBwZH0bQJcvKKGluYA161tpMI3s6equJ2OjLpscz+FeqEHmk3AfcaYm+zvvwRgjPlf2e6vgUapuWE6VQeySRrDO8f72dYa5IX9nQxEzmTAuZ3CFavrrSOqV9fhdU+u0GcuqRTq1N6duZhUsNADzS3AzcaYz9nf/zZwhTHmDzPucydwJ8CKFSsuPXLkSFH6qpSamqkU85xILJFk7+FetraeZtf73aOOoy7zOLl2bQNbmgNcsqK2IMcSpMrjlHlc+NxzY21noQeaTwE3jQk0lxtj/lO2++uIRqm5aybSo8cKRxP86n0rc23vkd5R03W1ZW42r7eSCDYsqSxIQHCIpGuylXlcJXvezkSBZiEc5XwMyDwKcBlwokh9UUoVkNvpoKHCS12ZZ0bSowH8HictGxbRsmERfaEoL+zvYnvbad4+PkBvKMZPXz/OT18/zpJqHy0brKCzsr58hn4ia0pvaCTO0EgcGMHrdlLuSWWyzewUXqEshBGNCysZoAU4jpUM8JvGmH3Z7q8jGqXml1DUWscJR2f22OdTAxGet2uutXcOj7ptTWMFWzYE2LK+kUCVb0afN5PLMbomWzH37SzoqTMAEfk14GtY6c3/YIz58nj31UCj1PwUjScZjMQYnMFptZRDXcPpdOlTA5FRt120rNrKXFvXSLU//yOqJ6vYCQULPtBMhgYapea3qRw9PZnHfvfkAFtbg7zwXid94WxHVC/iqjX1+Gc4c22s2U4o0EAzCRpolFo4IrFUttr0N4GOFU8kee1oH1tbT/PSwW7CsdFHVF+9poGWDQE2rqwteEVoh4i1UdRTuM2iGmgmQQONUgvPTG4CzSYSS7C7vZttrUFePtRDPDn6iOpU5tr5S6smfUT1VGRuFp2ptR0NNJOggUaphWumN4FmMxiJ2ZlrQd7sGH1E9aKqzCOqKwry/GOJCF6XI72+45vilJ4GmknQQKOUAmsUYtVWm5lNoNl0Do6ky98cCA6Num1VfRktG6wjqpdUT+2I6qlwOs5Ms03moDcNNJOggUYplSmWSDIQLky2Wqaj3dYR1VvbTnOib3Tm2vnnVNHSHOD69Y3Ulk39iOqpyDzW2ucaf5pNA80kaKBRSmUz3aOn82WMoe3UINvbgjz/Xic9Y46o3riyli0bFnHNmnrKPLO7515E8LnPTLNlbhjVQDMJGmiUUrmEonEGwvEpHz2dr0TS8GZHH1tbg/zyQCfDGZtOvakjqjcEuGzV9I+ongqn48zenSq/RwNNvjTQKKXyFY0nGYjMbG21iZ5r9yErc213ezexxJnnq/C6uG5dAzduWMRFy6pnJXNtrHMDlRpo8qWBRik1WYmkYWiGaqvlY2gkzosHutjWFuT1MUdUN1R4uGF9gJYNAdYGZuaI6nxooJkEDTRKqemYqaOn82UdUW3VXGsdc0T18lq/XehzEUtrC5u5poFmEjTQKKVmwkwePZ2v4xlHVB8dc0R18+JKWjYEuGF9gLrymc9c00AzCRpolFIzKZE06fToeLLw02pgZa4dCA6l9+h0DY3OXPvg8hq2bFjEtWsbqPDOTOaaBppJ0ECjlCqEVNWBgUickVmaVgPrPJu3j/WztTXIzgOdDI45ovrKpnpamgNc2VQ/rcw1DTSToIFGKVVokViCgXCM4ejsTauBlbn2yuEetrUG2dXezUhGmZ1yj5Nr1zbSsiHAxctrJn2SpwaaSdBAo5SaLfFEkoFInMECFfOcSCga56WD3WxrC7L3cM+ozLW6cg+b1zfS0hygeXF+R1RroJkEDTRKqdlWyDNy8mEdUd3JttYg75wYGHXbOTU+WpqtzLUV9WXjPoYGmknQQKOUKqZiTaulnOqPWDXXWk9zuHt05tqaQAUtzVahz8ZK76jbNNBMggYapVQpSJ2RM5vZamO93zmUTpcODo6k2wX4wPJqtjQv4rq1DVT53RpoJkMDjVKqlBhjGI5ao5zZ2gQ6VtIY3j0xwLbWIDv2d9KfcUS1yyFcvrqOx+7cNG6gmd3Sn0oppSZFRKjwuqjwuhiJJxiMxGeltlomhwgXLK3mgqXVfOGGc9l7pJftbUFePNhFJJbkV+93T3i9BhqllJojvC4n3gondWWe9NHTs1FbLZPL6eDKpnqubKonHEuw+/1utrYGOTLBNbNfV1oppdS0OBxCdZmb5XVlLK72zfq5NCl+t5MbmgN8+TcumPB+OqJRSqk5rMzjoszjmtUjCyZLA41SSs0DHpeDhgpvUafVxqOBRiml5pHUtFp1mZvhESvghKPFyVZL96kYTyoinxKRfSKSFJGNY277kogcFJH3ROSmjPZLReRt+7aHxK6JICJeEfmh3f6yiKzKuOZ2ETlgf9w+az+gUkqVgHKviyXVfpbW+qn0uWftELSxipUM8A7wSWBnZqOInAfcCpwP3Ax8U0Sc9s3fAu4E1tofN9vtdwC9xpg1wFeBB+zHqgP+ArgCuBz4CxGpLeDPpJRSJcnrctJY6WVFXRl15R5cjtl96y9KoDHGtBpj3sty08eBx40xI8aYQ8BB4HIRWQJUGWN2GWuH6aPAJzKu+Z799ZNAiz3auQl4zhjTY4zpBZ7jTHBSSqkFx+kQaso8LK/zE6jy4XU7c180A0ptjWYpsDvj+2N2W8z+emx76poOAGNMXET6gfrM9izXjCIid2KNllixYsW0fwillCplmZtAZ6O2WsECjYhsBRZnuem/GWN+Nt5lWdrMBO1TvWZ0ozGPAI+AVYJmnL4ppdS843M78bmdBT2yoGCBxhhz4xQuOwYsz/h+GXDCbl+WpT3zmmMi4gKqgR67ffOYa3ZMoU9KKTXvuZwO6so91Ja5Z/zIglKrDPAUcKudSbYaa9F/jzHmJDAoIlfa6y+fBX6WcU0qo+wWYLu9jvMs8GERqbWTAD5stymllBqHiFDlc7Ostowl1X7KvdMfjxRljUZEfgP4O6AR+LmIvGGMuckYs09EngDeBeLAF4wxqQTwzwPfBfzA0/YHwHeA74vIQayRzK0AxpgeEfkr4BX7fvcbY3oK/9MppdT84Pc48XucxBJJBsIxBqdYdUCPCRhDjwlQSqnskskzJ4GOrTow0Xk0pZZ1ppRSqkQ5HEK13021300oGqc/nF/VAQ00SimlJi2zmGfmQWjZlFoygFJKqTnE43LQWOmd8D4aaJRSShWUBhqllFIFpYFGKaVUQWmgUUopVVAaaJRSShWUBhqllFIFpYFGKaVUQWmgUUopVVAaaJRSShWUFtUcQ0Q6gSMT3KUB6Jql7kyF9m96tH/To/2bnrncv5XGmMZsN2igmSQR2TtehdJSoP2bHu3f9Gj/pme+9k+nzpRSShWUBhqllFIFpYFm8h4pdgdy0P5Nj/ZverR/0zMv+6drNEoppQpKRzRKKaUKSgONUkqpgtJAMw4R+QcRCYrIOxlt94nIcRF5w/74tSL2b7mIPC8irSKyT0TusdvrROQ5ETlgf64tsf6VxGsoIj4R2SMib9r9+0u7vVRev/H6VxKvX0Y/nSLyuoj8q/19Sbx+E/SvZF4/ETksIm/b/dhrt5XM6zdO/6b0+ukazThE5DpgCHjUGHOB3XYfMGSM+eti9s3uyxJgiTHmNRGpBF4FPgH8DtBjjPmKiNwL1Bpj/rSE+vdpSuA1FBEByo0xQyLiBl4E7gE+SWm8fuP172ZK4PVLEZE/BjYCVcaYj4rI/6YEXr8J+ncfJfL6ichhYKMxpiujrWRev3H6dx9TeP10RDMOY8xOoKfY/RiPMeakMeY1++tBoBVYCnwc+J59t+9hvbmXUv9KgrEM2d+67Q9D6bx+4/WvZIjIMuDXgW9nNJfE6wfj9q/UlczrN5M00EzeH4rIW/bUWlGnBVJEZBXwQeBlYJEx5iRYb/ZAoIhdA87qH5TIa2hPq7wBBIHnjDEl9fqN0z8okdcP+BrwX4FkRlvJvH5k7x+UzutngH8TkVdF5E67rZRev2z9gym8fhpoJudbwLnAxcBJ4G+K2htARCqAHwN/ZIwZKHZ/xsrSv5J5DY0xCWPMxcAy4HIRuaBYfclmnP6VxOsnIh8FgsaYV4vx/LlM0L+SeP1sVxtjLgE+AnzBnq4vJdn6N6XXTwPNJBhjTtv/+ZPA3wOXF7M/9tz9j4F/Msb8xG4+ba+PpNZJgqXUv1J7De0+9QE7sNY/Sub1S8nsXwm9flcDH7Pn8R8HtojIDyid1y9r/0ro9cMYc8L+HAR+avelVF6/rP2b6uungWYSUr8Att8A3hnvvrPQFwG+A7QaY/4246angNvtr28HfjbbfYPx+1cqr6GINIpIjf21H7gRaKN0Xr+s/SuV188Y8yVjzDJjzCrgVmC7Mea3KJHXb7z+lcrrJyLldpIMIlIOfNjuS0m8fuP1b6qvn2vmuzg/iMhjwGagQUSOAX8BbBaRi7HmLg8DdxWrf1h/sf028LY9jw/wZ8BXgCdE5A7gKPCp4nRv3P7dViKv4RLgeyLixPqD6wljzL+KyC5K4/Ubr3/fL5HXbzyl8vs3nv9dIq/fIuCn1t9juIB/NsY8IyKvUBqv33j9m9Lvn6Y3K6WUKiidOlNKKVVQGmiUUkoVlAYapZRSBaWBRimlVEFpoFFKKVVQGmiUypOIrJKMat4Z7feLyI05rr1PRL5YuN4pVbp0H41S02SM+fNi90GpUqYjGqUmxykify/WGTH/JiJ+EfmuiNwCICK/JiJtIvKiiDwk9jkotvNEZIeItIvI3fb9/2vG118Vke321y12SRdE5FsisldGn0vTIiI/TT2wiHxIRH7CGPZI6nt2Xw+LyCdF5H+Ldc7IM3aZoNTZIw+IdQbOHhFZY7efKyK7ReQVe+Q2NPY5lMpFA41Sk7MW+IYx5nygD/j3qRtExAc8DHzEGHMN0Djm2mbgJqz6UH9hv8nvBK61b98IVNjt1wC/tNv/mzFmI3ARcL2IXARsBzaISOo5fhf4x3H6fC5WufyPAz8AnjfGXAiE7faUAWPM5cDXsSofAzwIPGiMuQw4MfFLo1R2GmiUmpxDxpg37K9fBVZl3NYMtBtjDtnfPzbm2p8bY0bsg6SCWGU+XgUutetKjQC7sALOtZwJNJ8WkdeA14HzgfOMVdLj+8Bv2TXRNgFPj9Pnp40xMeBtwAk8Y7e/Pab/j2V83mR/vQn4kf31P4/z+EpNSNdolJqckYyvE4A/43uZ5LUuY0zMrjD8u8CvgLeAG7BGIa0ishr4InCZMaZXRL4L+OzH+EfgX4AI8CNjTFxEvgD8R/v21DG7IwDGmKSIxMyZulNJRr8HmHG+VmpadESj1MxpA5rEOugN4DN5XrcTK5jsxBrF/D7whh0QqoBhoF9EFmGdDQKky7ifAP478F277RvGmIvtj8lOdX0m4/Mu++vdnJkevHWSj6cUoCMapWaMMSYsIn8APCMiXcCePC/9JfDfgF3GmGERidhtGGPeFJHXgX1AO/DSmGv/CWg0xrw7Az+CV0RexvoD9Da77Y+AH4jIfwF+DvTPwPOoBUarNys1g0SkwhgzZJ/H8w3ggDHmqwV8vq8DrxtjvjPNxzkMbLTXjzLby4CwMcaIyK3AbcaYj0/nudTCoyMapWbWfxSR2wEP1uL9w4V6IhF5FWta7b8U6jmAS4Gv24GzD/i9Aj6Xmqd0RKOUUqqgNBlAKaVUQWmgUUopVVAaaJRSShWUBhqllFIFpYFGKaVUQf3/RJrsRrT/CLoAAAAASUVORK5CYII=\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": 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>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', 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": [
"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": 16,
"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": 16,
"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": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\",\"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"\n",
"df[[\"stroke\",\"price\"]].corr()\n",
"\n",
"```\n",
"\n",
"</details>\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": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='stroke', 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": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We can see this using \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"```\n",
"\n",
"</details>\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": 20,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"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": 21,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.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": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAieElEQVR4nO3df5RV5X3v8fdnYCqoxR/MiITBYIWkQa/By4RL6s2PRvnZpJhGG7pu6qyWW6wlYK7NSuNt74pZLW3svantmKvRqMvRtFVq0iu1TAWxRpOLP4aoKBgvk0p0IoEZ/BGMARnme//YzymH4TAMntnnzJn5vNY66+z93fvZ59keme959rP38ygiMDMze6fqql0BMzOrbU4kZmZWFicSMzMrixOJmZmVxYnEzMzKMrbaFai0hoaGmDZtWrWrYWZWUzZv3twTEY2lto26RDJt2jQ6OjqqXQ0zs5oi6UdH2+ZLW2ZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEMoL09PSwcuVK9uzZU+2qmNko4kQygrS1tbFlyxba2tqqXRUzG0WcSEaInp4e2tvbiQja29vdKjGzisk9kUgaI+kpSfen9Wsl/VjS0+m1uGjfayR1SnpB0oKi+GxJz6ZtrZKU4idIuifFH5c0Le/zGa7a2tooTAnQ19fnVomZVUwlWiRXAc/3i10fEbPSax2ApJnAUuBcYCFwo6Qxaf+bgOXAjPRamOLLgNciYjpwPXBdrmcyjG3YsIEDBw4AcODAAdavX1/lGpnZaJFrIpHUBPwacOsgdl8C3B0R+yPiRaATmCNpMjAhIjZF9pP7TuCSojKFn973AhcVWiujzbx586ivrwegvr6e+fPnV7lGZjZa5N0i+WvgC0Bfv/hnJW2RdLuk01JsCvBy0T5dKTYlLfePH1YmInqBN4CJ/SshabmkDkkd3d3d5Z3RMNXS0kIhh9bV1dHS0lLlGpnZaJFbIpH0cWB3RGzut+km4BxgFrAT+GqhSInDxADxgcocHoi4JSKaI6K5sbHkmGM1r6GhgUWLFiGJRYsWMXHiEfnUzCwXeQ7aeCHw66kzfRwwQdI3I+IzhR0kfQO4P612AVOLyjcBr6R4U4l4cZkuSWOBU4BXcziXmtDS0sKOHTvcGjGzisqtRRIR10REU0RMI+tEfygiPpP6PAo+CTyXltcCS9OdWGeTdao/ERE7gb2S5qb+j8uB+4rKFP5qXpo+44gWyWjR0NDADTfc4NaImVVUNYaR/0tJs8guQe0ArgCIiK2S1gDbgF5gRUQcTGWuBO4AxgPt6QVwG3CXpE6ylsjSypyCmZkVaLT9gG9ubg7PR2JmdnwkbY6I5lLb/GS7mZmVxYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmZlYWJxIzMyuLE8kI4jnbzawanEhGEM/ZbmbV4EQyQvT09LBu3ToignXr1rlVYmYV40QyQrS1tdHb2wtkU+26VWJmleJEMkKsX7+ewgCcEcEDDzxQ5RqZ2WjhRDJCTJo0acB1M7O8OJGMELt27Rpw3cwsL04kI8T8+fPJJpAESSxYsKDKNTKz0SL3RCJpjKSnJN2f1k+XtEHS9vR+WtG+10jqlPSCpAVF8dmSnk3bWtOUu6Rpee9J8cclTcv7fIarlpYW6uvrAaivr/e87WZWMZVokVwFPF+0/kVgY0TMADamdSTNJJsq91xgIXCjpDGpzE3AcrJ53Gek7QDLgNciYjpwPXBdvqcyfDU0NLBo0SIksXjxYs/bbmYVk2sikdQE/Bpwa1F4CVC4N7UNuKQofndE7I+IF4FOYI6kycCEiNgU2W1Jd/YrUzjWvcBFhdbKaNTS0sL555/v1oiZVVTeLZK/Br4A9BXFJkXEToD0fkaKTwFeLtqvK8WmpOX+8cPKREQv8AZwxE9xScsldUjq6O7uLvOUhq+GhgZuuOEGt0bMrKJySySSPg7sjojNgy1SIhYDxAcqc3gg4paIaI6I5sbGxkFWx8zMBmNsjse+EPh1SYuBccAESd8EdkmaHBE702Wr3Wn/LmBqUfkm4JUUbyoRLy7TJWkscArwal4nZGZmR8qtRRIR10REU0RMI+tEfygiPgOsBQoX8VuA+9LyWmBpuhPrbLJO9SfS5a+9kuam/o/L+5UpHOvS9BlHtEjMzCw/ebZIjuYrwBpJy4CXgMsAImKrpDXANqAXWBERB1OZK4E7gPFAe3oB3AbcJamTrCWytFInYWZmGY22H/DNzc3R0dFR7WqYmdUUSZsjornUNj/ZbmZmZXEiMTOzsjiRmJlZWZxIzMysLE4kI0hPTw8rV670NLtmVlFOJCPIzTffzDPPPMPNN99c7aqY2SjiRDJC9PT0sGHDBiCbdtetEjOrFCeSEeLmm2+mry8bG7Ovr8+tEjOrGCeSEWLjxo2HrT/44INVqomZjTZOJCNE/xEKRtuIBWZWPU4kI8TFF1982Pq8efOqVBMzG22cSEaIK664grq67Ousq6vjiiuuqHKNzGy0qMbov6Nea2srnZ2dQ37csWPH8vbbb3PKKafw5S9/eUiPPX36dFatWjWkxzSzkcEtkhFkzJgx1NXV8a53vavaVTGzUcQtkirI65d94bitra25HN/MrJQ852wfJ+kJSc9I2irpyyl+raQfS3o6vRYXlblGUqekFyQtKIrPlvRs2taaZkokzaZ4T4o/LmlaXudjZmal5Xlpaz/wsYh4PzALWChpbtp2fUTMSq91AJJmks1weC6wELhR0pi0/03AcrLpd2ek7QDLgNciYjpwPXBdjudjZmYl5Dlne0TEm2m1Pr0GerhhCXB3ROyPiBeBTmCOpMnAhIjYlOZjvxO4pKhMW1q+F7io0FoxM7PKyLWzXdIYSU8Du4ENEfF42vRZSVsk3S7ptBSbArxcVLwrxaak5f7xw8pERC/wBjCxRD2WS+qQ1NHd3T00J2dmZkDOiSQiDkbELKCJrHVxHtllqnPILnftBL6adi/VkogB4gOV6V+PWyKiOSKaGxsbj+sczMxsYBW5/TciXgceBhZGxK6UYPqAbwBz0m5dwNSiYk3AKyneVCJ+WBlJY4FTgFfzOQszMyslz7u2GiWdmpbHAxcDP0h9HgWfBJ5Ly2uBpelOrLPJOtWfiIidwF5Jc1P/x+XAfUVlWtLypcBD4UGmzMwqKs/nSCYDbenOqzpgTUTcL+kuSbPILkHtAK4AiIitktYA24BeYEVEHEzHuhK4AxgPtKcXwG3AXZI6yVoiS3M8HzMzKyG3RBIRW4ALSsR/e4Ayq4HVJeIdwHkl4vuAy8qrqZmZlcNDpJiZWVmcSMzMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEYmZmZXEiMTOzsjiRmJlZWZxIzMysLE4kZmZWFicSMzMrixOJmZmVxYnEzMzK4kRiZmZlcSIxM7Oy5DnV7jhJT0h6RtJWSV9O8dMlbZC0Pb2fVlTmGkmdkl6QtKAoPlvSs2lba5pylzQt7z0p/rikaXmdj5mZlZZni2Q/8LGIeD8wC1goaS7wRWBjRMwANqZ1JM0kmyr3XGAhcGOaphfgJmA52TzuM9J2gGXAaxExHbgeuC7H8zEzsxJySySReTOt1qdXAEuAthRvAy5Jy0uAuyNif0S8CHQCcyRNBiZExKaICODOfmUKx7oXuKjQWjEzs8rItY9E0hhJTwO7gQ0R8TgwKSJ2AqT3M9LuU4CXi4p3pdiUtNw/fliZiOgF3gAmlqjHckkdkjq6u7uH6OzMzAxyTiQRcTAiZgFNZK2L8wbYvVRLIgaID1Smfz1uiYjmiGhubGw8Rq3NzOx4VOSurYh4HXiYrG9jV7pcRXrfnXbrAqYWFWsCXknxphLxw8pIGgucAryaxzmYmVlped611Sjp1LQ8HrgY+AGwFmhJu7UA96XltcDSdCfW2WSd6k+ky197Jc1N/R+X9ytTONalwEOpH8XMzCpkbI7Hngy0pTuv6oA1EXG/pE3AGknLgJeAywAiYqukNcA2oBdYEREH07GuBO4AxgPt6QVwG3CXpE6ylsjSHM/HzMxKyC2RRMQW4IIS8T3ARUcpsxpYXSLeARzRvxIR+0iJyMzMqsNPtpuZWVmcSMzMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEYmZmZRl0IpH0bkkXp+Xxkn4xv2qZmVmtGFQikfR7ZMO035xCTcD/yalOZmZWQwbbIlkBXAj8FCAitnNo+HczMxvFBptI9kfE24WVNNKuB0c0M7NBJ5LvSPrvwHhJ84B/AP4pv2qZmVmtGGwi+SLQDTwLXAGsA/4kr0qZmVntGOzov+OB2yPiG5BNoZtib+VVMTMzqw2DbZFsJEscBeOBB4e+OmZmVmsGm0jGRcSbhZW0fOJABSRNlfSvkp6XtFXSVSl+raQfS3o6vRYXlblGUqekFyQtKIrPlvRs2taaZkokzaZ4T4o/LmnacZy7mZkNgcEmkp9J+o+FFUmzgZ8fo0wv8IcR8T5gLrBC0sy07fqImJVe69IxZ5LNcHgu2dzuN6ZLaAA3AcvJpt+dkbYDLANei4jpwPXAdYM8HzMzGyKD7SP5HPAPkl5J65OBTw9UIM21vjMt75X0PDBlgCJLgLsjYj/wYpo+d46kHcCEiNgEIOlO4BKy6XaXANem8vcCX5Mkz9tuZlY5g2qRRMSTwC+TzZ3+B8D7ImLzYD8kXXK6AHg8hT4raYuk2yWdlmJTgJeLinWl2JS03D9+WJmI6AXeACaW+PzlkjokdXR3dw+22mZmNggDJhJJH0vvvwF8AngP2aWlT6TYMUk6GfgW8LmI+CnZZapzgFlkLZavFnYtUTwGiA9U5vBAxC0R0RwRzY2NjYOptpmZDdKxWiQfSe+fKPH6+LEOLqmeLIn8bUR8GyAidkXEwYjoA74BzEm7dwFTi4o3Aa+keFOJ+GFl0tP2pwCvHqteZsNNT08PK1euZM+ePdWuitlxGzCRRMSXJNUB7RHxO/1evztQ2XRn1W3A8xHxV0XxyUW7fRJ4Li2vBZamO7HOJmv5PJH6WvZKmpuOeTlwX1GZlrR8KfCQ+0esFrW1tbFlyxba2tqqXRWz43bMPpLUcvjsOzj2hcBvAx/rd6vvX6ZbebcAvwr8t/Q5W4E1wDbgX4AVEXEwHetK4FagE/ghWUc7ZIlqYuqYv5rsCXyzmtLT00N7ezsRQXt7u1slVnMGe9fWBkmfB+4BflYIRsRRLyNFxHcp3YexboAyq4HVJeIdwHkl4vuAywasudkw19bWRqEh3dfXR1tbG1dffXWVa2U2eIN9juR3ye7W+g7QUfQyszJt2LCBAwcOAHDgwAHWr19f5RqZHZ/BJpKZwP8GngGeBm4ge3DQzMo0b9486uvrAaivr2f+/PlVrpHZ8RlsImkD3ge0kiWR96WYmZWppaWFNOoPdXV1tLS0HKOE2fAy2ETy3oj4rxHxr+m1HHhvnhUzGy0aGhpYtGgRkli0aBETJx7xTK3ZsDbYRPKUpLmFFUn/CfhePlUyG31aWlo4//zz3RqxmqTBPHaRxsl6L/BSCp0FPA/0ARER5+dWwyHW3NwcHR3Hvk+gtbWVzs7OCtRo6Gzfvh2AGTNmVLkmx2f69OmsWrWq2tUwswFI2hwRzaW2Dfb234XH3mVk6ezs5Klnt9F34unVrsqg6e3sR8HmH/6kyjUZvLq3PBCBWa0bVCKJiB/lXZHhqO/E09k385gjwVgZxm27v9pVMLMyDbaPxMzMrCQnEjMzK4sTiZmZlcWJxMzMyuJEYmZmZXEiMTOzsjiRmJlZWZxIzMysLLklEklTJf2rpOclbZV0VYqfLmmDpO3p/bSiMtdI6pT0gqQFRfHZaVbFTkmtacpd0rS896T445Km5XU+ZmZWWp4tkl7gDyPifcBcYIWkmWTT4W6MiBnAxrRO2raUbJ6ThcCNksakY90ELCebx30Gh4ZsWQa8FhHTgeuB63I8HzMzKyG3RBIROyPi+2l5L9kgj1OAJRyay6QNuCQtLwHujoj9EfEi2fzscyRNBiZExKbIRpi8s1+ZwrHuBS4qtFbMzKwyKtJHki45XQA8DkyKiJ2QJRvgjLTbFODlomJdKTYlLfePH1YmInqBN4AjJnOQtFxSh6SO7u7uITorMzODCiQSSScD3wI+FxE/HWjXErEYID5QmcMDEbdERHNENDc2Nh6rymYV19PTw8qVK9mzZ0+1q2J23HJNJJLqyZLI30bEt1N4V7pcRXrfneJdwNSi4k3AKyneVCJ+WBlJY4FTAI9LbjWnra2NLVu20NbmGayt9uR515aA24DnI+KvijatBQrTwLUA9xXFl6Y7sc4m61R/Il3+2itpbjrm5f3KFI51KfBQDGamLrNhpKenh3Xr1hERrFu3zq0Sqzl5tkguBH4b+Jikp9NrMfAVYJ6k7cC8tE5EbAXWANuAfwFWRMTBdKwrgVvJOuB/CLSn+G3AREmdwNWkO8DMaklbWxu9vb0AHDhwwK0SqzmDnSHxuEXEdyndhwFw0VHKrAZWl4h3AOeViO8DLiujmmZVt379egoN6YjggQce4Oqrr65yrcwGz0+2m1XZpEmTBlw3G+6cSMyq7Cc/+cmA62bDnROJWZWdeeaZA67b8Dfab992IjGrMrdIat9ov33bicSsytwiqW09PT20t7cTEbS3t4/KVokTiVmV7dq1a8B1G97a2tr+/a67vr6+UdkqcSIxq7L58+dTGGtUEgsWLDhGCRtONmzYwIEDB4DsOaD169dXuUaV50RiVmUtLS2MHZs90lVfX09LS8sxSthwMm/ePOrr64Hs+5s/f36Va1R5uT2QWOu6urqoe+sNxm27v9pVGdHq3tpDV1dvtatRVQ0NDSxevJi1a9eyePFiJk48YgBrG8ZaWlpob88G26irqxuVPwTcIjEbBlpaWjj//PNH5R+hWtfQ0MCiRYuQxKJFi0blDwG3SI6iqamJXfvHsm/mx6tdlRFt3Lb7aWryXUoNDQ3ccMMN1a6GvUMtLS3s2LFj1P4QcCIxMyvTaP8h4EtbZsPAaH8y2mqbE4nZMDDan4y22uZEYlZlfjLaal2eMyTeLmm3pOeKYtdK+nG/ia4K266R1CnpBUkLiuKzJT2btrWmWRJJMynek+KPS5qW17mY5clPRluty7Oz/Q7ga8Cd/eLXR8T/Kg5ImgksBc4F3gU8KOk9aYbEm4DlwGPAOmAh2QyJy4DXImK6pKXAdcCn8zsdM2htbaWzs3NIj7llyxb6+vqA7MnotWvXsmPHjiH9jOnTp7Nq1aohPaZZQW4tkoh4BHh1kLsvAe6OiP0R8SLZlLpzJE0GJkTEpjQX+53AJUVlCj/d7gUuKrRWzGrJaaedNuC62XBXjdt/PyvpcqAD+MOIeA2YQtbiKOhKsQNpuX+c9P4yQET0SnoDmAj09P9AScvJWjWcddZZQ3oyNrrk8au+p6eHT33qU0QEJ5xwArfeeuuofKjNalelO9tvAs4BZgE7ga+meKmWRAwQH6jMkcGIWyKiOSKaGxsbj6vCZnlraGjg9NNPBxi1T0ZbbatoIomIXRFxMCL6gG8Ac9KmLmBq0a5NwCsp3lQiflgZSWOBUxj8pTSzYeXMM8/kpJNOGrVPRlttq2giSX0eBZ8ECnd0rQWWpjuxzgZmAE9ExE5gr6S5qf/jcuC+ojKFf3WXAg9F4dYXsxpTX1/PjBkz3BqxmpRbH4mkvwc+CjRI6gK+BHxU0iyyS1A7gCsAImKrpDXANqAXWJHu2AK4kuwOsPFkd2u1p/htwF2SOslaIkvzOhczMzu63BJJRPxWifBtA+y/GlhdIt4BnFcivg+4rJw6mplZ+fxku5mZlcWj/w6g7q1Xa2piK+37KQAxbkKVazJ4dW+9CngYebNa5kRyFNOnT692FY7b9u17AZhxTi39YT6zJv9bm9khTiRHUYvDSRTq3NraWuWamNlo4j4SMzMrixOJmZmVxYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZfPuvmY0aecxwCdDVlU2b1NTUdIw9j18tzG7pRGJmw0pef+wh+4P/85//fMiPWzhmHsfu6urK7b/HUCUpJxIzG1Y6Ozt5autTcGoOBxdwYg7H7cve3jzxzSE/9Ju8SfePu4f8uLw+dIdyIjGz4edU6PtoX7VrMaLVPTx0XeTubDczs7I4kZiZWVnynCHxduDjwO6IOC/FTgfuAaaRzZD4mxHxWtp2DbAMOAisiogHUnw2h2ZIXAdcFREh6QTgTmA2sAf4dETsyOt8rLbk2WGbh+3btwO1N1hoLdxRZPnLs4/kDuBrZH/sC74IbIyIr0j6Ylr/I0kzyabKPRd4F/CgpPek6XZvApYDj5ElkoVk0+0uA16LiOmSlgLXAZ/O8XyshnR2dvL/nvs+Z5188Ng7DwO/cCC7OLBvx5NVrsngvfTmmGpXwYaJPKfafUTStH7hJWTzuAO0AQ8Df5Tid0fEfuDFNA/7HEk7gAkRsQlA0p3AJWSJZAlwbTrWvcDXJCkiIp8zslpz1skH+ZPmob+LxjJ/1nFytatgw0Sl+0gmRcROgPR+RopPAV4u2q8rxaak5f7xw8pERC/wBjCx1IdKWi6pQ1JHd3cOt9GZmY1iw6WzXSViMUB8oDJHBiNuiYjmiGhubGx8h1U0M7NSKp1IdkmaDJDed6d4FzC1aL8m4JUUbyoRP6yMpLHAKcCrudXczMxKqnQiWQu0pOUW4L6i+FJJJ0g6G5gBPJEuf+2VNFeSgMv7lSkc61LgIfePmJlVXp63//49Wcd6g6Qu4EvAV4A1kpYBLwGXAUTEVklrgG1AL7Ai3bEFcCWHbv9tTy+A24C7Usf8q2R3fZlZjevq6oI3hvbJayvhdeiKrmPuNhh53rX1W0fZdNFR9l8NrC4R7wDOKxHfR0pEZmZWPR5ry8yGlaamJrrV7bG2clb3cB1NU4Zm2Hu3Hc3MrCxukdiI1NXVxc/2jvFDczn60d4xnNQ1NNfYrbY5kZjZ8PN6jXW2FwZQqKXfLa9z6PHuMjmR2IjU1NTEvt6dHiIlR3/WcTLjcppattYUBt2cMWVGlWtyHKYM3X9rJxIzG1byHE241kaFhtoYYdmJxMysTOPHj692FarKicTMRo3h/su+VjmR2Ij10pu1c9fWrreyjuVJJ9bOsxMvvTmG91S7EjYsOJFUQV7XafOcZa8WrtMWq7UO27fTdzduWu101r6H2vvvbPlwIhlBRvt12mK1lPTgUH1bW1urXBOz4+dEUgW19kfOzGwgNfTEj5mZDUdOJGZmVhYnEjMzK0tVEomkHZKelfS0pI4UO13SBknb0/tpRftfI6lT0guSFhTFZ6fjdEpqTbMomplZBVWzRfKrETErIprT+heBjRExA9iY1pE0k2z2w3OBhcCNksakMjcBy8mm5p2RtpuZWQUNp7u2lpBNzQvQBjwM/FGK3x0R+4EX09S6cyTtACZExCYASXcCl3BoKl6zIVeLzwBB7T0HZLWlWi2SANZL2ixpeYpNioidAOn9jBSfArxcVLYrxaak5f7xI0haLqlDUkd3d/cQnobZ0Bg/fryfA7KaVa0WyYUR8YqkM4ANkn4wwL6l+j1igPiRwYhbgFsAmpubS+5jNhj+VW92pKq0SCLilfS+G/hHYA6wS9JkgPS+O+3eBUwtKt4EvJLiTSXiZmZWQRVPJJJOkvSLhWVgPvAcsBZoSbu1APel5bXAUkknSDqbrFP9iXT5a6+kuelurcuLypiZWYVU49LWJOAf0526Y4G/i4h/kfQksEbSMuAl4DKAiNgqaQ2wDegFVkTEwXSsK4E7gPFknezuaDczqzBFjK4ug+bm5ujo6Kh2NczMaoqkzUWPaxzGT7abmVlZnEjMzKwsTiRmZlYWJxIzMyvLqOtsl9QN/Kja9chRA9BT7UrYO+LvrraN9O/v3RHRWGrDqEskI52kjqPdWWHDm7+72jaavz9f2jIzs7I4kZiZWVmcSEaeW6pdAXvH/N3VtlH7/bmPxMzMyuIWiZmZlcWJxMzMyuJEMkpI+qik+6tdj9FO0ipJz0v62+Mst0NSQ171smOTNEbSU+/035GkN4e6TsPFcJqz3Y5DmoNFEdFX7brYcfkDYFFEvFjtithxuwp4HphQ7YoMN26R1BBJ09Kv2RuBfwNuS/GrJP1bWj5H0nfT8kJJP0jrv1G1ihsAkr4O/BKwVlIoc6qkPkkfTvs8Kmm6pImS1qdfwDdTemppqxBJTcCvAbem9TMkbU7L70/f51lp/YeSTpR0tqRNkp6U9KfVq33+nEhqz3uBO4EPAuel2IeAPZKmAP8ZeFTSOOAbwCfS9jOrUFcrEhG/TzYd9K8CDwAzyb6vzcCHJJ0ANEVEJ/Al4LsRcQHZLKFnVafWlvw18AWgD/59mvBxkiaQ/fvqIPsO3w3sjoi3gL8BboqIDwA/qUqtK8SJpPb8KCIei4ifACenaYunAn8HfJjsf+pHgV8GXoyI7ZHd4/3NqtXYSnmU7Pv6MPAXZAnlA8CTafuHSd9ZRPwz8FoV6miApI+TJYfN/Tb9X+BCsu/qzzn83x9p29+n5bsqUNWqcSKpPT8rWt4E/A7wAtn/vB8ia6l8L233Q0LDV+H7mgOsA04FPgo8UrSPv7/h4ULg1yXtAO4GPibpmxz6Dt8N3Ae8n+wHwaj7Dp1IatsjwOfT+1Nkl0z2R8QbwA+AsyWdk/b9repU0Y7iceBXgL6I2Ac8DVzBoV+zjwD/BUDSIuC0KtTRgIi4JiKaImIasBR4KCI+Q/YdfQbYnm56eRVYzKEfct9L+0P6LkcqJ5La9ijZZa1HIuIg8DLwXYD0x2k58M+ps30kD51fcyJiP9n39VgKPQr8IvBsWv8y8GFJ3wfmAy9VvJI2oIjYkRYLLZDvAq9HROEy5FXACklPAqdUuHoV5SFSzMysLG6RmJlZWZxIzMysLE4kZmZWFicSMzMrixOJmZmVxYnEbACSrpX0+RLx35d0eYXqMCSjxnoEaMuLR/81O06SxkbE16tdD7Phwi0Ss34k/bGkFyQ9SDZIJpIelvTnkr4DXFVoqUh6n6QnispOk7QlLc+W9B1JmyU9IGlyic/6gqRVafl6SQ+l5YvSMByF/VZLekbSY5ImpVijpG+l0WWflHRhip8k6fYUe0rSkhKf+xFJT6fXU2nMNrN3xInErIik2WTDWlxANvT+B4o2nxoRH4mIrxYCEfE88AuSfimFPg2skVQP3ABcGhGzgduB1SU+8hGy8ZoAmskG4qwnjeKc4icBj0XE+9P+v5fifwNcn0aX/RRpiHPgj8mG8fgA2bA5/1PSSf0+9/PAioiYlT7/58f8j2N2FL60ZXa4DwH/mIYBR9Laom33HKXMGuA3ga+QJZJPk7VkzgM2ZHOQMQbYWaLsZmB2ahHsB75PllA+BKxK+7wN3F+0/7y0fDEwMx0fYEI6znyyQQYLfTvjOHIY+u8Bf5Vmavx2RHQd5dzMjsmJxOxIRxs36GdHid8D/IOkbwMREdsl/Qdga0R8sHhHSVOBf0qrX4+Ir6dRZX+HbFjyLWStiHPIZuMDOBCHxjI6yKF/t3XAByPisNZEmj3zUxHxQr/4pH8/wYivSPpnskEGH5N0cUT84CjnZzYgX9oyO9wjwCcljU+/7j9xrAIR8UOyP/D/g0OtlheARkkfBJBUL+nciHg5ImalV6HDvngU50eB3weejmMPhLce+GxhRdKstPgAsDIlFCRd0L+gpHMi4tmIuI5sUqZfPtZ5mh2NE4lZkYj4PlkyeBr4Fof6KY7lHrIhxdek47wNXApcJ+mZdLxfOUrZR4HJwKaI2AXsG+TnrgKaJW2RtI0sAQH8KVAPbJH0XFrv73OSnkt1+znQPojPMyvJo/+amVlZ3CIxM7OyOJGYmVlZnEjMzKwsTiRmZlYWJxIzMyuLE4mZmZXFicTMzMry/wHZ7Sb7DZCl1AAAAABJRU5ErkJggg==\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": 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>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": 23,
"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": 24,
"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": 24,
"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": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 25,
"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": 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>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": 26,
"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": 27,
"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": 27,
"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": 28,
"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": 28,
"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": 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>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": 29,
"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": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data.\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"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": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"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": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>\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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 35,
"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": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>\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>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": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"Test1 = df[[\"body-style\",\"price\"]]\n",
"Test1 = Test1.groupby(\"body-style\",as_index=False).mean()\n",
"Test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\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",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. \n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"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": 40,
"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": 41,
"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": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 42,
"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": 43,
"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": 44,
"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": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.369057428260101e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>\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": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>\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": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522673 with a P-value of P = 9.200335510481646e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751).\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": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-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": 49,
"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": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935489e-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": 51,
"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": 52,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-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 < 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": 53,
"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": 53,
"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": 54,
"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": 54,
"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": 55,
"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": 55,
"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": 56,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>\n"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>\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.12"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment