Skip to content

Instantly share code, notes, and snippets.

@mahyahemmat
Created February 27, 2020 20:48
Show Gist options
  • Save mahyahemmat/074562bf455ed3d746acd0d671f7ed9c to your computer and use it in GitHub Desktop.
Save mahyahemmat/074562bf455ed3d746acd0d671f7ed9c to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {
"jupyter": {
"source_hidden": true
}
},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"corr=df.corr()\n",
"ax=sns.heatmap(corr,vmin=-1,vmax=1,center=0,cmap=sns.diverging_palette(10,220,n=100),square=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 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>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": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_corr=df[['bore','stroke','compression-ratio','horsepower']]\n",
"df_corr.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {
"jupyter": {
"source_hidden": true
}
},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56621.986087564255)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de3ycZZn4/881p8zknPSYtmmblEI5CAVKKVDaqqiICrqiFlcFBQroLu5rf+4X3IPrsl9fX/yuX3dx3S0tB0VWBezqAqu4cmoL2EJbzoVC26Rt0lPanJM5z9y/P55nppNkksxMZnK83q9XXknumeeZ50nauXLf133flxhjUEoppXLlGOsLUEopNbFpIFFKKTUiGkiUUkqNiAYSpZRSI6KBRCml1Ii4xvoCRtv06dPNwoULx/oylFJqQtm1a9dJY8yMdI9NuUCycOFCdu7cOdaXoZRSE4qIHBzsMR3aUkopNSIaSJRSSo2IBhKllFIjooFEKaXUiGggUUopNSIaSJRSSo2IBhKllFIjooFEKaXUiGggUUopNSJTbmW7UkqpzIWjcToC4SGfo4FEKaXUAMYYOvwROgIRXA4Z8rkaSJRSSvURjMQ40R0iEovbLRpIlFJKZSAeN7T2hukORrI6TgOJUkopekJRWntCxOIm62M1kCil1BQWjcU52RPGH47mfA4NJEopNUV1+iO0+8PETfa9kFQaSJRSaooJRWOc7AkTisTycj4NJEopNUUYY2jrDdMVjGJG2AtJpYFEKaWmAH84SmtPOGVKb/5oIFFKqUksFje09oToCeWeTB+OBhKllJqkuoMR2nrDOU3pzUZBN20UkQMi8paIvC4iO+22ahF5WkT22p+rUp7/bRHZJyLvicjHUtovtM+zT0R+JCJitxeJyKN2+8sisrCQ96OUUhNBJBbnaGeAE925rQvJ1mjs/vtBY8xSY8wy+/s7gWeNMYuBZ+3vEZGzgLXA2cCVwL+LiNM+Zj2wDlhsf1xpt98ItBtjTgP+Gfj+KNyPUkqNS9b+WGGa2wMEwvmZkZWJsdhG/hrgIfvrh4BPp7Q/YowJGWMagX3AchGpAcqNMduMNc3gZ/2OSZxrE/DhRG9FKaWmkmAkxuGOAG294bzOyMpEoQOJAf4gIrtEZJ3dNssYcxTA/jzTbp8LNKUc22y3zbW/7t/e5xhjTBToBKb1vwgRWSciO0Vk54kTJ/JyY0opNR7E44aTPSGOdAQIR/M/IysThU62X2aMOSIiM4GnRWTPEM9N15MwQ7QPdUzfBmM2AhsBli1bNrqhWimlCqQ3ZE3pjcbHJoAkFLRHYow5Yn9uAX4DLAeO28NV2J9b7Kc3A7Uph88Djtjt89K09zlGRFxABdBWiHtRSqnxIhqLc7wryPGu4JgHEShgIBGREhEpS3wNfBR4G3gCuN5+2vXA4/bXTwBr7ZlYdVhJ9Vfs4a9uEVlh5z++0u+YxLmuBZ4zoz04qJRSo6gzEKG5PUBvAdeF9LevpWfIxws5tDUL+I2d+3YBvzDG/F5EdgCPiciNwCHgcwDGmN0i8hjwDhAFvmGMSUw7uA34KeADnrI/AB4AHhaRfVg9kbUFvB+llBoz+d4fKxMne0L85KUD/P7tY0M+r2CBxBjTAJyXpr0V+PAgx3wP+F6a9p3AOWnag9iBSCmlJiNjDO3+CJ2ByKjNxgpEYjy2o4lHdzQRzCCBryvblVJqnAqEY5zsCRVkf6x0YnHDH3Yf48GXDtDaGwag0ufmxpV13D7EKj0NJEopNc7E4obW3hA9wdHLg+w62M69W/az/0QvAG6ncO2F8/ji8vlUFnu4fYhjNZAopdQ4Mlr7YyUcaO1lw5YGXm48NeH1ijNncuPKOmaVezM6hwYSpZQaByKxOCd7QqO2tUm7P8xP/3iA3755lETM+sDcCm5bU8+S2eVZnUsDiVJKjSFjDF2BKG3+0dnaJBSJ8Z+vHuYXrxzCbwetuZU+1q2qZ+Vp08hllykNJEopNUaCESuZPhpbm8SN4bk9Ldz/QiMt3SEAyr0uvnzJAq4+bw5uZ+7LCjWQKKXUKIvHDe3+MJ2ByKi83pvNHazf3MB7x7sBcDmEz5w/ly+tmE+Z1z3i82sgUUqpUeQPRznZPTr7YzW3+9m4tZEX951Mtq06fTo3X17P3Epf3l5HA4lSSo2CaCxOW2+4T8nbVxraeGRHE0e7AtSU+1h7US3L66tH/FqdgQgPbz/I468fSc7+OrOmjNtWL+KcuRUjPn9/GkiUUqrAuoIR2nrCxFOS6a80tHHPc3txOYRyr4vW3hD3PLeXb7I452ASjsZ5/PXDPLz9UDJgzSov4ubL6/ngGTNySqRnQgOJUkoVSDhqTekNptkf65EdTbgcgs9tFYL1uZ0EIjEe2dGUdSAxxrB170k2bm3gaGcQgBKPkz+9eD5/csE8PK7Clp7SQKKUUnlmlbyN0DHE/lhHuwKUe/u+BXvdDo51BbJ6rXePdrF+837ePtIFgEPg6vPmcP0lC6koHnkiPRMaSJRSKo+CkRgnuoffH6um3EdrbyjZI7GOjTO7PLMk+NHOAPe/0Mjz752q+nrpommsW1XP/Ori3C4+RxpIlFIqD+JxQ2tvmO5gZlN6115Uyz3P7SUQieF1OwhG4kTjhrUX1Q55XE8wys9fPsivXztMJGb1dhbPLOW2NYtYWls54vvIhQYSpZQaoZ5QlLYsS94ur6/mmyzmkR1NHOsKMHuYWVvRWJwn3zzKQ388QJe9meP0Ug83razjirNm4ShQIj0TGkiUUipH0Vickz1h/OHcduldXl89bGLdGMMf97eyYWsDze1W/sTrdnDd8vl87sJ5eFOGxvLNIUKFz025b+hciwYSpZTKQac/Qru/75TefHv/eDf3btnP602dgJVIv+oDNdxw6UKqSzwFe91EAKnwuXE4hu/paCBRSqksjEbJ2xPdIR54sZGn3zlOIkwtX1jFLasXUTe9pGCvm20ASdBAopRSGTDG0NYbpisYLdguvf5wlEd2NPGrnc2E7I0c66aXcOvqei5aOPIV74NxOoRyb/YBJEEDiVJKDaPQJW9jccNTbx/jJy810u63Zn1VFbv56mV1fPyc2ThzeHPPhNNh50C8uQWQBA0kSik1iNEoebvjQBv3bmmg8aRV4rbI5eBzy+ax9qJaij2FeYvOVwBJ0ECilFJpFLrkbcOJHjZsbWDHgXYABPjo2bP42mV1zCgrKshr5juAJGggUUqpFIUuedvWG+bBlxr5/dvHkiVul9ZWcuvqek6fVVaQ1yxUAEnQQKKUUrZOf6RgJW+DkRi/2tXML185RDBi5Vpqq3zcsrqeS+pzK3E7HKdDqPR5KPO6ChJAEjSQKDVJbN7TwoatDTS1+6mtKuaWVfWsWTJzrC9rQijklN64MTz9znEeeLGRkz1hACp8bq6/ZAGfPLcG1whK3A4mEUDKfa6CbR2fSgOJUpPA5j0tfOeJ3bidQqXPTUt3kO88sZu7QIPJEIwxtPsjdA6xS+9IvHaonfVbGtjX0gOA2yl89oJ5fPHi+ZQW5f/td7QDSIIGEqUmgQ1bG3A7JTnLp9jjwh+OsmFrgwaSQWS6S28uDrX62bC1gW0Nrcm2D54xg5sur6OmYujdfXOpmuhyOOytTEY3gCRff9RfUSmVd03tfir77YfkcztpbveP0RWNX9nu0puNTn+En247wJNvHEkm0s+eU87X1yzizJryYY/PtmriWAeQ5HWM2SsrpfKmtqqYlu5gn3UHgUiMeVWjW5divOsNRWnNcpfeTISjcX792mF+/vJBekNWnqWmwsu6VfWsWjw94zf5TKsmuhwOKordlHvHNoAkFLb+IiAiThF5TUT+2/6+WkSeFpG99ueqlOd+W0T2ich7IvKxlPYLReQt+7Efif2TE5EiEXnUbn9ZRBYW+n6UGo9uWVVPJGbwh63tO/zhKJGY4ZZV9WN9aeNCLG5o6QpyvCuY1yBijOG5PS3c8JMdbNzaQG8oRmmRi9tW1/OTGy5i9enZ1Uk/2hXA6+77tpxaNdHlcDCttIjaah8VPve4CCIwOj2SbwLvAol+3Z3As8aYu0XkTvv7O0TkLGAtcDYwB3hGRE43xsSA9cA6YDvwO+BK4CngRqDdGHOaiKwFvg98YRTuSalxZc2SmdwF9lbjfubprK2kQi0sfPtwJ+u37Ofdo92Alei+ZukcvrxiARXDbLs+mMGqJtZU+JhWWjRueiD9FTSQiMg84BPA94C/tJuvAdbYXz8EbAbusNsfMcaEgEYR2QcsF5EDQLkxZpt9zp8Bn8YKJNcA37XPtQn4sYiIKdSOakqNY2uWzNTAkaJQCwuPdATY+EIDW98/mWxbedp01q2qG/FQYv+qiaFoHGPg9g+dlnNwGg2F7pH8C/C/gNTlmrOMMUcBjDFHRSTxL38uVo8jodlui9hf929PHNNknysqIp3ANOBkyvMRkXVYPRrmz58/8rtSSo1rhVhY2B2M8B/bD/Gb1w4TtXs3Z8wq49Y19Zw3Lz8lbhNVEx/d2URLd5DaqmJuXb1o3P+BULBAIiKfBFqMMbtEZE0mh6RpM0O0D3VM3wZjNgIbAZYtW6a9FaUmqUIsLIzE4jzxxhEe3nYwWeJ2ZlkRN19exweXzMxriVu308FV59XwheW143IIazCF7JFcBlwtIlcBXqBcRP4DOC4iNXZvpAZosZ/fDKRWvZ8HHLHb56VpTz2mWURcQAXQVqgbUkqNT4VYWGiM4YV9J7lvayOHO6xkd7HHyReXz+ezF8ylKI8lbt1OaxZWWdH4zIEMp2CBxBjzbeDbAHaP5FvGmC+JyD8B1wN3258ftw95AviFiPwQK9m+GHjFGBMTkW4RWQG8DHwF+NeUY64HtgHXAs9pfkSpqaUQCwv3HOti/eYG3jp8qsTtJ861StxWFeevxO1EDyAJY7GO5G7gMRG5ETgEfA7AGLNbRB4D3gGiwDfsGVsAtwE/BXxYSfan7PYHgIftxHwb1qwvpdQUUIiFhce7gtz/QiPP7mlJtq2or2bdqnoWTstfiVu300FlsZvSCR5AEmSq/QG/bNkys3PnzrG+DKXUCOR7YWFvKMovXznEr3Y1E4lZ74mLZpRw2+pFXLCgapijMzeRA4iI7DLGLEv3mK5sV0pNGLG4obUnRE8oPxULY3HDf795lIf+eICOgNWzmVbi4Wsr6/joWbPyVuI2EUDKvON3Cu9IaCBRSk0IXcEI7XlaWGiM4eXGNjZsaeBgm7Ufmdfl4PMX1fKFi2r7LAgcickeQBI0kCilxrVw1FpYGMzTlN79LT2s37KfVw91ANYagivPmc1XL1vI9NL8lLidKgEkQQOJUuNAPopSTbbCVsYYOvwROvI0pfdkT4gHXzzA/+w+llxsduH8Sm5dvYhFM0tHfH6wAkhViacgtUbGs6l1t0qNQ/koSjXZClsFwjFO9uRnSm8gEuPRHU08tqOJYNQ634LqYm5ZXc/FddV5SXpP1QCSMDXvWqlxJB9FqSZLYatY3NDaG6InOPJkeixu+MPuYzz40gFae60St5U+NzdctpBPfKAmL4n0qR5AEqb23Ss1DuSjKNVkKGyVz116dx1sZ/2W/TSc6AXA43Jw7QVzuW75fEry8KbvcTmoLNYAkqA/BaXGWD6KUk3kwlb53KX3QGsvG7Y08HLjqZ2SrjhzJjeurGNWuXfE5/e4HFQVe/ISjEZTofNnE+unodQkdMuqer7zxG784WiyIl62RanycY7RZoyhMxCh3Z9ZMn2oWuZtvWEe2naA3755NFni9gNzK7htTT1LZg9f4nY4EzWAwOjkzybeT0WpSSYfRakmWmGrbPfHGqyW+ddjizjQ1ssvX2nCb/do5lb6WLeqnpWnTRtxIn0iB5CE0cifTdyfjlKTSD6KUo1FYatsh0xy3R+rfy1zr8tBa2+Yu377TnJLk3Kvi69csoBPnTcHt3NkVcQnQwBJGI382cT/KSmlxkS2QyY9oShtOe6PdbQrQLnXervyh2Oc6AkRsqfyuhzCZ86fy5dWzB/xAsAit5OqYnefXNNENxr5s5GFbaXUlJU6ZCJifXY7hQ1bG/o8LxKLc6wzSEtXMOdNFmvKfXQHoxzuCNDcEUgGkQqfm5989SJuW7NoREGkyO1kdoWXuZW+SRVEwMqfRWIGfziKMdbnfOfPJtdPTCk1aoYbMsk2mT6YzkCE4iInx7pCyTaPUyjzuvmrj57B3EpfzueejD2Q/kYjfzZ5f3pKTSATcXuT2qpiDrT20BWIEo7F8TgdlPtcLJxWSjBirUwPR3NfmR6Oxnn89cM8vP1Qcrdfj9OBz+NgYXUJ1y2fn5y1la2pEEBSFTp/NjV+ikqNYxN1e5NL6qt55UAbDrEqCIZjcY53hbjmvDkcsUvT5sIYw5b3T3LfCw0c7QwCUOJx8qcrFvAn58/F48p9RH6qBZDRoj9NpcbYRN3eZFtDGzNKPXQHrR6J2yFU+Nxsb2jn8xfNz+mc7xzpYv2W/ew+0gVYAepT583h+ksWUDmCErcaQApLf6pKjbGJur1JU7uf6aVFTC8tIho3xOMGg+FYV/a9kaOdAe5/oZHn3zuRbLt00TTWrapnfnXus4s0gIwO/ekqNcYm6vYmtVXFHO0MWENNdi49GIkzuzzz5HdPMMrPXz7Ir187nFwPctrMUm5bXc/583MvcasBZHTpT1mpMTYRtzcJR+Nce+FcfvCH94nFDV63g2AkTjRuWHtR7bDHR2NxnrRL3HbZO/1OL/Vw08o6rjhrFo4cV6RrABkb+tNWaoytWTKTa5s7uP/FRnrDMUo8Tm5aWTcu8yOpU3rPn1/FNz+0mEd2NHGsK8DsfvtfDXb8H/e3snFrA03t1hCYz+3kuuW1XHvhPLw5lrjVADK29Keu1BjbvKeFTa8eZkZZEfPtHsmmVw9z7rzKcRVM0k3pXV5fnfEU3PePd3Pvlv283tQJWIn0qz5Qww2XLqS6ZPhEerpNGy8/Y4YGkHFAf/pKjbHxPmvLGEO7P0KHP5zT8S1dQR546QBPv3M82bZ8YRXrVtVTPyOzErf9N21s84f48eZ9zK7wjouf0VSngUSpPMt2ceF4nrU1kpK3/nCUX77SxK92NSd7MfXTS7hldT0XLcxuIWFi08ZijwuXQ/C6x1ewneo0kCiVR7ksLhyPs7ZGUvI2Fjc89fZRfvLSAdr91i6/1SUevnrpQq48Z3ZOJW6PdQeo9nlwpuzqO16CrdJAolRe5TJMNd5mbY2k5O0rjW3cu2U/B1qtN/gil4PPL5vH2ovm4/Nkn0hPJNHrppVawTYlkIx1sFWnaCBRKo9yGaYaL0WpwtE4rb25lbxtONHDvVsa2HmwHQABPnr2LL52WR0zyoqyPl//WVjjLdiqvjSQKJVHuQ5T5WNTvVw3fjTG0OGP0BHIfpfett4wP3npAE+9farE7dLaSm5bXc/iWWVZ34PX7aSq2DOg9zJegq1KTwOJUnk0Vn8557rxY7Ylb1OP+9XOZn654xDBiHVsbZWPW1bXc0l99iVufR4rgAy1jmQsKkCqzGQcSERkAbDYGPOMiPgAlzGme4jne4GtQJH9OpuMMX8vItXAo8BC4ADweWNMu33Mt4EbgRhwuzHmf+z2C4GfAj7gd8A3jTFGRIqAnwEXAq3AF4wxBzK+e6XybKz+cs42NxOLG9pyKHkbN4an3znOAy82crLHmg5c7nVxw6UL+eS5NbiyLHGbSQBR419GgUREbgbWAdXAImAecC/w4SEOCwEfMsb0iIgbeFFEngL+BHjWGHO3iNwJ3AncISJnAWuBs4E5wDMicroxJgast19/O1YguRJ4CivotBtjThORtcD3gS9k9RNQKs/G4i/nbHIzuSbTXzvUzvotDexr6QHA7RQ+e8E8vnjxfEqzrG2uAWRyyfS3/w1gOfAygDFmr4gM+T/FWIOtPfa3bvvDANcAa+z2h4DNwB12+yPGmBDQKCL7gOUicgAoN8ZsAxCRnwGfxgok1wDftc+1CfixiIgZSTk2pSagTHIzkVickz3ZJ9MPtfnZsKWBbQ2tybYPnjGDmy+vZ3aFN6tzFXtcVBa7NYBMMpkGkpAxJpwY9xQRF8n9PgcnIk5gF3Aa8G/GmJdFZJYx5iiAMeZoSkCai9XjSGi22yL21/3bE8c02eeKikgnMA04meF9KTUpDJWbybXkbYc/zEPbDvLkG0eSifSz55Tz9TWLOLOmPKvrKylyUeHTADJZZRpItojIXwM+EfkI8HXgyeEOsoellopIJfAbETlniKeny86ZIdqHOqbviUXWYQ2NMX9+bgV3lBrPBsvNrFg0jcMdgaxK3oajcX79ajM/f/kQvXbvpabCy7pV9axaPD2rRHpJkdUDKXJpAJnMMg0kd2LlI94CbsHKU9yf6YsYYzpEZDNWbuO4iNTYvZEaoMV+WjOQuv/0POCI3T4vTXvqMc12L6kCaEvz+huBjQDLli3TYS81KaXmZuJxQ7s/nFXJW2MMz793gvteaOB4VwiA0iIXX14xn2uWZlfitrTIRYUGkCkj00DiAx40xtwHySErHzDoKisRmQFE7CDiA67ASoY/AVwP3G1/ftw+5AngFyLyQ6xk+2LgFWNMTES6RWQFVo7mK8C/phxzPbANuBZ4TvMjaqrzh6O09oSzmtL79uFO1m/Zz7tHrYmYLodw9dI5fHnFAir6JfGHUlrkorLYM6K66mriyTSQPIsVCBLJcx/wB+DSIY6pAR6yg44DeMwY898isg14TERuBA4BnwMwxuwWkceAd4Ao8A17aAzgNk5N/33K/gB4AHjYTsy3Yc36UmpM5bowcKRy2R/rcEeA+15oYOv7p9KKly+ezrrL65lblXmlQw0gU5tk8ge8iLxujFk6XNtEsGzZMrNz586xvgw1SW3e08K3Nr1BTyhKLG5wOoTSIhc/uPa8ggaTbKf0dgcj/Mf2Q/zmtcNE7WPOmFXGrWvqOW9eZcavW+p1UenTADIViMguY8yydI9l2iPpFZELjDGv2ie8EMh88FWpKeLup96lwx/BKYJTBBOHDn+Eu596tyCBJNspvZFYnMdfP8LD2w/SbfdcZpYVcdPldXxoycyMS9xqAFGpMg0kfwH8SkQSSe4adOGfUgM0tvpxCDgcianyYOKGxtb8bnee7ZReYwwv7rNK3B62E/DFHidfXD6fz14wl6IMp+VqAFHpZBRIjDE7RGQJcAbWlNs9xpjs9lZQSuVFupK3Q9lzrIv1mxt46/CpErefPHcO11+6gKri4UvcggYQNbQhA4mIfMgY85yI/Em/hxaLCMaYXxfw2pSacOqnl7C3pQcxxuqNGIgbWDyjZMTnjscNrVnsj3W8K8gDLzbyzLstybYV9dXcsqqeBdOGvx4RoaTI2srEneUeWmpqGa5Hshp4DvhUmscMoIFEqRR3XLmEv9r0Bt3BKNFYHJfDQVWxmzuuXDKi8/aGrCm90fjwvZDeUJRfvHKITbuaicSsYa9FM0q4bfUiLlhQNezxImLPwnJrAFEZGTKQ2Lv1OoCnjDGPjdI1KTVhrVkyk3+69ry87f4bixtae0L0hIaf0huLG3771lEe+uOpErfTSjx8bWUdHz1r1rAlbjWAqFwNmyMxxsRF5M8ADSRKZSBfu/92BSO09YSJD5NMN8bwcmMbG7Y0cLDNSup7XQ6+cFEtn7+oFt8wiXQNIGqkMp219bSIfAurjkhvotEYM2A7EqXUyISj1pTeYGT4Kb37Wnq4d8t+Xj3UAVgzYT5+zmy+etlCppUOXeJWRCjzuqj0ubOuI6JUqkwDydewciJf79euBZOVyhNjDO3+CJ0ZlLw90R3iwZca+cPu48ldSi+cX8mtqxexaGbpkMdqAFH5lmkgOQsriKzECigvYBW2Ukr1k8sWKZnujxWIxHh0RxOP7WgiaE//XTDNeo2L66qH3JlXRCj3Wtu5awBR+ZRpIHkI6AJ+ZH9/nd32+UJclFITVba10zNNpsfihj/sPsaDLx2gtdcqcVtV7OaGSxdy1QdqhkykawBRhZZpIDnDGHNeyvfPi8gbhbggpSaybGqnZ5pM33WwnfVb9tNwwkpPelwOPnfhPNZeVEvJECVuEwGkstgz7IwtpUYi00DymoisMMZsBxCRi4GXCndZSo2OfO/Um0nt9FA0RmtPeNhk+oHWXjZsaeDlxlNzWq44cyY3rqxjVvngJW61B6JGW6aB5GLgKyJyyP5+PvCuiLyFVZ793IJcnVIFlO0wVCaGqp2eaTK9rTfMQ388wG/fOposcXvuvApuW72IM2aXDXqcBhA1VjINJFcW9CqUGgPZDENlarDa6TdcsoDm9sCQyfRQJMZ/vnqYX7xyCL+9m++8Kh/rLq/nstOmDZpI1wCixlqmmzYeLPSFqMltrIo9DSWTYahs9a+dPrfSx9qL5rN4dtmgQSRuDM++28IDLzbS0m2VuC33uvjKJQv41HlzBl0kqDkQNV5k2iNRKmeFGELKh6GGoUYisbI9k2JTbzR3cO/mBt47fqrE7WfOn8uXVsynzJu+xK0jsQ5EA4gaJzSQqIIrxBBSPgw2DHXLqpGts43G4pzsCeMPDz6lt7ndz4atDby0rzXZtvr0Gdx8eR1zKtOXuHWIUO5zU+FzawBR44oGElVwhRhCyof+w1Aj3WARhp/S2xmI8PD2gzz++pFkT+WsmjJuXb2Ic+ZWpD3G6RDKvVYAcWgAUeOQBhJVcIUaQsqHfG2wONz+WOFonP96/TD/sf1QcvHh7HIvN19ex5ozZqRNpDsdQoXPTblXA4ga3zSQqILLdghpPCbmh9Lpj9DmD6ed0muMYcv7J7nvhQaOdgYBKCly8qcXL+BPzp+btuKgQ6wAoj0QNVFoIFEFl80Q0mCJ+WubO9jW0DaugstwJW/fOdLF+i372X2kC7B6GJ86t4brL1lIRfHARHoigJRrDkRNMDLcLqOTzbJly8zOnTvH+jLUIK7buH3AMNjJniBtvRHmVfn69Gjuuvps1iyZOeo9mHjc0OYP0xVIX/L2aGeA+19o5Pn3TiTbLl00jXWr6plfPXA4T3sgaiIQkV3GmGXpHtMeiRpX0iXmO/0RYnGTdtYXMKpTi3tCUdoGKXnbE4zy8613lNUAACAASURBVJcP8uvXDidL3J42s5Svr1nE0trKAc/XAKImCw0kalxJl5gPxeJ4XX2r/CVmfY3W1OJn3jnGv2/ez+GOADXlPtZeVMvy+mrAmu775JtWiduuoJVIn17q4aaVdVxx1iwc/RLpGkDUZKOBRI0r6RLzLoeDMm/ff6qJWV+FnlpsjOG3bx7le797F5fDWkne2hvinuf2crs5jagxbNzaQFN7IPna1y2v5doL5+HtV+JWp/GqyUoDiRpX0iXmrzlvDptePZx21teGrQ0jmlr8o2fe5/4XG+kNxyjxOLlpZR23X3E6YCXTT3SHuP+FRlwOSdY+97mddAYifO+pPcmpvA6Bqz5Qww2XLqS6xNPnNXQar5rsNJCocSfd2o5z51UOOusr19XpP3rmfe55bh8OAZfDCkD3PLePuDH86YqFdAetZPrRrgDldo8oEovT2htODmEBLF9YxS2rF1E3vaTP+TWAqKlCA4maEAZbODiS1en3v9hoBxFrLYdDIBKLcf8LjVy9dG7yeTXlPk70BAmEY7T7I8ka6V63g3+4+mwuWljd57waQNRUo4FETXi5rk7vDcdIrAc0xmAAEfCnrE6PxQ1100t483BHsjaIQ6DM6+KOjy3pE0Q0ia6mqoIVLxCRWhF5XkTeFZHdIvJNu71aRJ4Wkb3256qUY74tIvtE5D0R+VhK+4Ui8pb92I/E3k9CRIpE5FG7/WURWVio+1GTT4nHSSxukkEEwBiSuZBXGtu4+Wc7+c3rh4kbK8iUeJycXVPBt688kxWLpgFWAKkq9jC/upiqEo8GETXlFLJHEgX+P2PMqyJSBuwSkaeBG4BnjTF3i8idwJ3AHSJyFrAWOBuYAzwjIqcbY2LAemAdsB34HVahraeAG4F2Y8xpIrIW+D7whQLek5pErr9kAf+2eT/ReBwRK4jEDVyxZCb/a9Ob7DzYDoAAHz17Fl+7rI4ZZUXJ4/v3QCba1i5K5UvBAokx5ihw1P66W0TeBeYC1wBr7Kc9BGwG7rDbHzHGhIBGEdkHLBeRA0C5MWYbgIj8DPg0ViC5Bviufa5NwI9FRMxUW66vshKLG1p7Qnzmgnn0BKM8tquZQCRGkctBbVUxT6aUuF1aW8ltq+tZPOtUidt0W5mM15orSo2GUcmR2ENO5wMvA7PsIIMx5qiIJP6XzcXqcSQ0220R++v+7YljmuxzRUWkE5gGnOz3+uuwejTMnz8/X7elJqCuYIT2lGJTX750IZ+7qJZf7WzmlzsO8X5LDwC1VT5uWV3PJfWnStwOVQ9kvNZcUWo0FDyQiEgp8J/AXxhjugarO401gtCfGaJ9qGP6NhizEdgI1l5bw12zyq/BhnyybR+JdNu8x43h6XeO88CLjZzsCQNQ4XNzw6UL+MQHapL1zzMpKDVea64oNRoKGkhExI0VRH5ujPm13XxcRGrs3kgN0GK3NwO1KYfPA47Y7fPStKce0ywiLqACaCvIzag+Mn2zH2o3302vHs64PdchImMMHf4IHYFIn23eXzvUzvotDeyzeyBup/DZC+bxxYvnU1pk/bfIpiLheK65olShFSyQ2DOrHgDeNcb8MOWhJ4Drgbvtz4+ntP9CRH6IlWxfDLxijImJSLeIrMAaGvsK8K/9zrUNuBZ4TvMjhZdNPmDD1gYisRitPVHCsTgep4Mil4N7ntuHAEUuB9NLiyj3ufGHo9z/YiMzyoryMkSUWJkeiZ3aYPFQq7U/17aGUyVuP3jGDG6+vJ7ZFV4gt5K2t6yq51ub3uBwR4BY3OB0CKVFLv7uE2dldc1KTUSF7JFcBnwZeEtEXrfb/horgDwmIjcCh4DPARhjdovIY8A7WDO+vmHP2AK4Dfgp4MNKsj9ltz8APGwn5tuwZn2pAksXHMp9rrRv9ntbuun0R3A4BKdDCMfi9IZT1mmEY1avhmLKvC56QlGisTiRuMHjdDCjrIjSIldWQ0SxuKG1N0RPyurzDn+Yh7Yd5Mk3jiQT6WfPKefraxZxZk05YAWQMq+LymJPTvVABMBYvSCMpB13VWoyKuSsrRdJn8MA+PAgx3wP+F6a9p3AOWnag9iBSI2e/sEhGjec7A4TiXUPeG44GgchuQNuNNZ3+3WDNe32WGeAUNSDASL2X/TRuOFIR5BppW4WTisd8poSQ20H23qZVeblC8us3XnD0Ti/frWZn798KBnAaiq8rFtVz6rF0xERRKzNGHMNIGAF13Kfm9kVvmSbJtvVVKEr21XW+gcHEYiLSVsp0O0UAhGrGJRImpkQtlDM0NobptLnoicUw8Tt82Jo643wfz5TP2Ry/u8efxuHvWDwZE+If3n2fT7YPJPn3mvheFcIgNIiF1++ZAHXnDcHj8uBJHogPncysZ4rTbarqUwDicragOBgRwePc+Bf86fPKqfxZA/dQWsYLEEYGFSiMUO5102512OVsLWHzXxu601+sLzMvz2/D4CiRM0SA229YX65owmw9r66ZukcvrxiARX2m32p10V1sWfEASRBk+1qKtNAorLWPzh4nA7KvG7qpg8cfkrUF5ld4cLndvL+8W7CMTMgiCRC0NHOIGfMLqfcfsP3h6PMLPOmXafRG4rwo+f2crgjgFPgYFuQcLTvuS9fPJ2bL69LvqGXFllDWB5XfncHumVVPX+16Q0OtweIxuPJGiqabFdTgQaSKSzX9Rr9g8NQW7f335130YxSDrf76QrF+jzP5RDixhCOGU50B+kORglF41Zv4rw5PLarOTl0ZIxJzow60hHA63JysG3gEFJNhZd/uPpswAo8VSXuU72WAjAAgrWAcYhhPKUmGw0kU9RItvR4s7mDE91BApE4Asyr8vGP15wz7HEGqCz28PFzZvPPz+7FGGsnXacILqeDWDxOLGY4Zuc0rGMMD28/yLQSD4FIDK/bSTRmbbQYCMdwiHAoTRABiMfjeN1Oqks8A6oVZirTYLthawMVPjc1mmxXU1DBdv9V41tiCu+xziDvHe/mWGeQSCzGhq0NQx6XKAYVjRuKXILLKRzpDPJmc0fa5ycCVkt3MBmwNr16mLkVXlwOwe1w4HQI8bghGjv1N7zYH7G4le/oCUUJRuJ0BSLE4jFae8Mc7QpxpDM46F/+rT1h5lT6RhRE+l/7d57YzeY9LQOe29TuT+4anKDJdjVVaCCZova2dHOyO0w0Zartye4we1sGTuFNlVoMyiEO+7PVnk5qbkPE+ux2ip2rcCMOiBmDOMCZkqw3nBoaihlo6Q7x5x88DZ/bycG2AK32fllDzdaNDf5QRjZsbSAc7Rtsw9H0wba2qphApO8rarJdTRUaSKao1Cm8glhTeYW0U3hT9YZjA968HUKfRYapBvtLvTcc4wfXnsf5tVXMLvdyfm1VckZVOrG44el3j/N+Sw8Ru+eyor6aB65fRprJYgBp2zfvaeG6jdtZ+f3nuG7j9rS9i4T3j3fR2hsmGjM4RYjaU5T3Hu8a8NxbVtUTiRn84SjGWJ8zLfmr1ESnOZIxNJb1K7KZwpuqxOOkNxwlFu8bOBJTdPsbalps/8qG123czsme1nSnIWbgWftNf9GMEm5bvYgLFlThdjpYNL2EfSd6k72YxLDYaTP6ziLLNi8UiVlJ/RgGYxe2AgjHBg6mjaTkr1ITnQaSMTLW9SuymcKb6sNLZvCb148OaBexCjv1v/bEDC9/ODpghlf/QHpJfXWfPbD6m1bi4Wsr6/joWbPwup1UFrsp87r560+cxbc2vUFPKNpnn6s7P35mn+Oz3erdGJPcTsX6/lR7OrmW/FVqotOhrTEyWO5guGR3vtyyqh6Py8nsCi9nzCpjdoUXj8s57FDMsa4wrjSJiWgsnvba1yyZyV1Xn83MMi+dgQgzy7zcZU/JTU1kH+8K8OjOZmaVedL+o5xd7uVnNy7n6vPmMKvCy7wqH2Ved/I1+g+T/eDa8wa8qWebEBcRnA5r6E6wZ5g5YIhSCEpNSdojGSNjvaVGrkMxTe3+tMVgwjEzaKI+3V/q123cngyksbjB5XTQG4rQFYySmqUp8TgpKXLxlx9ZzLyqYsq9rrRv5P1fI5ELSR02zHb1ucflIBAWHE45VYo3bvK+mFGpiU4DyRgZD1tq5DIUU1tVzJGOgPVN4v3cjizDJepTNbX7Kfe6CEfjRKIxTvaG6UrZrbesyIXHJcyvLuGmlXVcdW5Nxj2BzXta+gx1newJ8a1Nb/CVFQvY9OrhtMNs6SyeWcaB1h66Aim7HJcMv4GkUlONBpIxMlTuYDy7ZVU92+08RmqqwOkYPlGfEI3FmVXm5VhXgEA4Rrs/kuzleF0O/v7qs7ikfhpVxUWU+9L3QIZy91Pv0uGP4BTBKYKJQ4c/wu/eOspdV5+dcS8smxX8MLaTJ5QaSxpIxsh4muWTzRvgmiUzWTK7jH0t3SQ6IEUuB5XFwyfqjTF0BaKc7AmxcFoxrzW1J5PZDrH2wbrzyiV8/Jwayr1uHDlu6d7Y6schJI8XARM3NLb6s+qFZfM7GuvJE0qNJQ0keZbtm3I+32Ry+Ys4lzfAO65ckjwm095Uolrhtv0nuXdrAw0negFrdKzY46R+RinrLq/jqnPn5FQTJPXew7E4Dqxe0khl+jvKdkaYUpOJBpI8Gsu/SnN97VzeALP5Sz0WNzz5+hHu3bKfhtbePnmUK86cyU2X13PazNI+NUGyDYgD7r0rSDhmiMRiuJwOK0luYPGMkgx+krlpavcTikRpPNlL3N5DbFqJO6u8kVITlQaSPBrLv0pzfe1cZ49l8pd6VzDCr145xP97Zi/+lJXvHqew7vJ6TptZxj8//T6HOwLJgAGD1x0Z7PX6l/51iiBYa0CiMWtL96piN3dcuWTI6x0RYzjRE0l+GzdwoifCvMrC7Tas1HihgSSPxnJKb66vnZg9Fo2ZZDEpp0NYWJ377LFgJMaRjgA/f/kgP3npQDIP4nYKM0qLcDng6XeO8cSbRwcEjBKPM+N68An9S/8aYxfOMmBE8LgcfHnFgoIG87ZeK4ikDsqZlHalJjOdEJ9HY7lxX66vfcuqejoDEQ53BIjErG3hE3tKDbUPVTqxuOF4V5CH/niAtRu388CLB5LDPDNKPdRNK6Gq2EO5z8OBtkDaBZn7Wnqy3kyy/75hxkAc6408Fjf0hKLc90JD1veTjVAsjttxahsVEXA7rHalJjsNJHk0lhv35fraa5bMtHsJggHcTgfzqnyU+9yDrrJPt/FhdzDCb988wlceeIX/89QeWrpDuBxWD2ROhZcZZV6K3E4cDkkGvHSrzKN2dyKbzSTd9rTjeNyqUxLu9+YdN9AdivG3v3lzuB9jzko8ThChyOXE63ZaBbRErHalJjkd2sqjsZzSO5LXbukO4nQIMXszQmMGHxZLJLbD0RjdwShHOwLsPNBKTYWPQ+2B5PNWnz6DW1fX09YT5u7f7yEUjfWZ4VU/vYRAJDZgQWZiKUo2m0kOVhceTvUQjIHDKQWz8u2mlXV2nZY4DrGCV9xY7UpNdhpICmQsyqzmMp14854WekIx4ubUVulHOgNMi3rSrgvZsLWB7mCYdv+pVegxQzKInFlTxjfWnMbKxdOTa0FKilwDAhyQdkHm4plltPvDWW0m2X/h4NtHrG3e+4eeQfZazIvbrzgdsOqy9IZjlHic3LSyLtmu1GQmg+1kOlktW7bM7Ny5syDnTp2GmvrmeNfVZ4/LtQSb97Rw+yOv0R2MJgNfYoNCl9PBhi9dOOC6L/zHP9A6SAJ5VlkRv/vm5VQWezJaC5KY5psuwKT7GQKDTgtOPdfhjgBxO+FuZd2twF7scfLOXVdm/4NSSiEiu4wxy9I9pj2SPJpIi9ISQa8nFO3Te0rMsCpxOQZcc08wQm9o8LqD7f4w00qLMr6GwXpQ6YboYOhpwann+tEz7/Mvz+617iVl5fyt43z7GaUmKg0keTTWO/pmI7H2IrXehmDlFPr3JoKRGFveP8E9z+wlOETSOxrPT+92sN2CM50WrMNMSo0uDSR5VFtVPHC3WJ9rXO4Wm1h7kcpg5RGcWMntaCzOW0c6+dEze3n+vRPDnjNurN5AId6w+68VSUwLjsTSTwu+/YrTNXAoNUp0+m8eXVJfTUt32NrrSSAci9PSHeaS+uqxvrQBTq29GPiYiRvKfW7+5r/e5vP3bksGEZ/bSYXXNSCJnerfNu8v8PVmV2NeKVV4GkjyaFtDGzNKPXicDuIGPE4HM0o9bGtoG+tLGyCx9iLdP4CogYaTfh7d0UQkZphe6uFvrjqTymIXtdXFzB9i1XuoQG/s/deKxO1htEy3rldKFU7BAomIPCgiLSLydkpbtYg8LSJ77c9VKY99W0T2ich7IvKxlPYLReQt+7EfiV2cQkSKRORRu/1lEVlYqHvJVFO7n+mlRdTPKGXJ7HLqZ5QyvbRoXOZITp9VTonHyVBv+wLcuLKOJ/98JTddXsfCaaUEIjHK++WBRsPps8opLXISiccJRuNE4nFKi5wsnlU+6teilOqrkD2SnwL951reCTxrjFkMPGt/j4icBawFzraP+XcRSSwJXg+sAxbbH4lz3gi0G2NOA/4Z+H7B7iRDY7lFSrYuqa+2ytoOkR83wF9fdSY1FT5EpM/q+VykWxGf3fXGcDqEIpeVJ+kKxsblsKFSU03BAokxZivQf0znGuAh++uHgE+ntD9ijAkZYxqBfcByEakByo0x24y14OVn/Y5JnGsT8GHJtpReno3lFilgvVF//F+2csbfPsUZf/sUV/7zlkHfrH/31tGMFuilzuBas2Qmd119Nu4c64V854ndtHQH+0zfzTSYbGtoo9zrJBY3hKKGWNxQ7nWOy2FDpaaa0c6RzDLGHAWwPyfmbc4FmlKe12y3zbW/7t/e5xhjTBToBKale1ERWSciO0Vk54kTw88+ylXijXZmmZfOQISZZd5RW4y4eU8Lf7XpDd471k0oGicUjbPneA9f//muPm/W0VicAyd7eb+lZ9jV94OFC39kiH2vBgkyienGxzqDvHe8m2OdQSKx2KD7efW3t6WbnmAMt9OB1+3A7XTQE4wNuZmjUmp0jJfpv+nefcwQ7UMdM7DRmI3ARrBWtudygZnKd9XDTG3Y2kCbPzwg5+GPxPm7x99m8+kf5GRPkEd3NPOTlxqHHNJKcKX5MyMREBL7SaUS4LSZ6ac6Zzt9t7/UWVtgrXeJi9FZW0qNA6MdSI6LSI0x5qg9bJX4U7kZqE153jzgiN0+L0176jHNIuICKhg4lDYppasg2NTuZ7Ady5vaA2za1cT6zfs50Jp54j+WJtgk15+kecwAHz9ndtpzjTQQuJ1CIJLdZo5KqdEx2kNbTwDX219fDzye0r7WnolVh5VUf8Ue/uoWkRV2/uMr/Y5JnOta4DkzBTYOGyzXUFY09N8Ed/znWxxo9SPAx86elVwPMlRWKV2vJREQBnv7/9n2g2nbRzp9V2dtKTV+FXL67y+BbcAZItIsIjcCdwMfEZG9wEfs7zHG7AYeA94Bfg98wxiTmP50G3A/VgJ+P/CU3f4AME1E9gF/iT0DbLJL3c8rtSBUJjF0aW0l91+/jB9+filnzalgdkURniwT5+5h3vhP9oTTtp8+q5xpJR5cTiFmDC6nMK3Ek3Eg0FlbSo1fBRvaMsZcN8hDHx7k+d8DvpemfSdwTpr2IPC5kVzjRNTU7scp0HCiJ7kNy/RSD52BwTdTFOB/f+YcPn72bKpKPMmpvN/a9AbhdONXtnR/ZSRqfxzLsrZH/63eE7v6ZjqjLbHYs+/28i62NbRxe1ZXopTKN13ZPsGUFbk43BHsU4q2uT1A2yA9AbByF59fVkt1aRGpM6QjsfiQM7eqSwYuPLxlVT0eV/ZV/0Y6o20iLfZUaqoZL7O2VAY272lhf0sP0bhJ7rTrtBPPw6Ws3c6+fzN8//d76AoMvbAw3eOJSow3/HRHNpeePDbXGW21VcW0dAcHVFQcj4s9lZpqtEcyQWze02INRfXLgMcyCCLpvH+8e9h1JP1fK2HNkpnUVvnSPjZY+0iN9WJPpdTgtEcyQVglbtNXJsxE/ynDQ6RGkoZKq//jNefw9V+8ij98KjdT7HHyj9cMSGflxUhq0iulCksDyQQQjMRobO0lFM19dnP/6oKZmFbqGfLxYo+TuLG2K3E6hGJP9rmTbIzVYk+l1NB0aGscC0ZiHO0McLjdjz+Ue28EGDBleDiJWcGD7YW1YWsDFT43i2eWsWR2OYtnllHhc2e85YlSavLQHsk4FIrGaO+N4A9HeftwJ/++eT9dwcGn92bC5868t1DicTK9tAiXUwatNz+RygorpQpLA8k4Eo7G6fCH6QlFOdwR4L6tDWzde3LE5/W5HQQisT49EbcD0u29WOQU6mdY+2UZYwYNDDqLSimVoENb40A4GqelK0hzu58jHQH+ffM+vvqTHckgcsbsspzP7RC4bfWiATOeKoo9lBc57Z10BYdY/xhmV5yadTVUYNBZVEqpBO2RjJHNe1pYv2U/h9r8zCrzcu2FcznSGeTh7QfpDlrrN2aWFXHz5XV8cMlMrvjh1mHPWV7kpCt0agjMKfDNDy/m9itO59x5lX1mPP3dJ84CTs2CKi1ycaInhMvebmW4lec6i0oplaCBJAPpdtsdyRvmM7uP8fdPvoNDoMTjoKndz98/+Q4xe91GscfJF5fP57MXzKWkyD3s7CmwehMGktu7O8Q6z7nzKoHBZzyltiXuM9PAoLOolFKggWRYid12U6fOfueJ3dwFWb+JRmJx2v1hfvz8fhxirdM43BEkkJKsuPq8OVx/6QKqS4qo8Lmp9LlxZLCxogECkThuhyO5zXogEufup97N+Do1MCilcqGBZBipu+0CFHtc+MPRQWczpRONxWn3R+gJWfmE5g4/oUiM7pRhqBKPE5/bwV9csRifx8m0kiI8KZWlyr0uuoKDb2mS6I0kgo4ImLihMYv6I0oplQtNtg+jqd0/YOpsptNcI7E4J7pDNLUH6A5G6AlGuO+FBlp7wskgUuRyMK/SS3WJh9rqEmaWe6mp8PUJIgA3razL300ppVQeaY9kGLlMc+3fA4nFDf/95hEe+uNBOgLWwkKHQIXPzbQSN6GoIW7gzz90GqWDFKi6/YrTeWxnE80d6VelTy9x0xGIIuZUBcG4gcUzSkZw90opNTztkQwjm2mu0Vickz2neiDxeJxt+1u58aGd3PPsPjoCEbwuBzdcuoDvfvJsFlSX0BuKUVPh43ufPocPnTlryGv535/+APOri6n0uZIrz0XgM0tr+MHnllJV7Ebs6xCgqtjNHVcuyf8PRSmlUsgUqE7bx7Jly8zOnTuzOma42UzRWJyOQITuYDRZqXBfSw/rt+zntUMdgJVY//g5s/nqZQuZZtcFqfS5qSx296kRMpJryXbWlVJKZUpEdhljlqV9TANJ7tIFkJM9IR588QD/s/tYcpv2C+dXcuvqRSyaaa0YT5dMV0qp8WyoQKI5khxEYnE6UnIgAIFwjEd3NPHYziaCUWs674JpVq/g4rpqRKw649UlHsq8AysPKqXURKWBJAv9k+gAsbjhf3Yf4ycvHaC11yp3W1Xs5oZLF3LVB2pw2smMMq+baSWejNaEKKXURKKBJAPphrAAdh5o496tDTSc6AXA43LwuQvnsfaiWkrs2Vdup4MZZUV4s9h9VymlJhINJEMYLIA0nuxlw9YGXmlsS7ZdceZMblxZx6xyLwAiQoXPbc2kyiKZrpRSE40GkjRicUOHP0xXvwDS1hvmoT8e4LdvHSVRzvzceRXctnpRnx16NZmulJpKNJCkiMUNnYEIXYEI8ZQAEorE2PRqM794uYlAxFqRPq/Kx7rL67nstGnJHofL4aC61DPookKllJqM9B0PiNsBpLNfAIkbw7PvtvDAi420dIcAa8+rr1yygE+dNwe30+pxiAjlXhdVxZpMV0pNPVM6kMTjhq6gFUASW7gnvNHcwb2bG3jveDdg1Tz/9NK5fGnF/D7Td71uqyytDmMppaaqKRlIhgogTW1+Nr7QwEv7WpNtq0+fwc2X1zGn8lT1QF0TopRSlikXSGJxQ1O7f0AA6QxE+Nm2gzzxxpHkY2fVlHHr6kWcM7eiz3PLvG6qSzzJNSJKKTWVTclAkhpEwtE4//X6Yf5j+yF6Qla9j5oKLzetrGPNGTP6TN3VNSFKKTXQlAskCcYYtrx/gvteaORop7U1e0mRky9dvIDPnD+3T84j1w0WlVJqKpjwgURErgTuAZzA/caYu4c7ZveRTtZvbuCdo12Ale/41Lk1XH/JQiqK++Y8NJmulFJDm9CBREScwL8BHwGagR0i8oQx5p3BjjnSGeDPf/l68vtLF01j3ap65lf3LVTlEKG61EO5JtOVUmpIEzqQAMuBfcaYBgAReQS4Bhg0kHQHo5QCi2eWctuaRSytrRzwnNIiF9UlHlxO7YUopdRwJnogmQs0pXzfDFzc/0kisg5YZ3/bc/D7n3zvIPAMTAdOFvwqx9ZUuEeYGvep9zh5TMT7XDDYAxM9kKTLfA+o1GWM2QhsHHCwyM7BCrVMFlPhHmFq3Kfe4+Qx2e5zoo/dNAO1Kd/PA46M0bUopdSUNNEDyQ5gsYjUiYgHWAs8McbXpJRSU8qEHtoyxkRF5M+A/8Ga/vugMWZ3FqcYMNw1CU2Fe4SpcZ96j5PHpLpPSa23oZRSSmVrog9tKaWUGmMaSJRSSo3IlAkkInJARN4SkddFZKfdVi0iT4vIXvtz1VhfZ7ZE5EERaRGRt1PaBr0vEfm2iOwTkfdE5GNjc9XZGeQevysih+3f5+siclXKYxPxHmtF5HkReVdEdovIN+32SfO7HOIeJ9vv0isir4jIG/Z9/oPdPml+lwMYY6bEB3AAmN6v7f8Cd9pf3wl8f6yvM4f7WgVcALw93H0BZwFvAEVAHbAfcI71PeR4j98FvpXmuRP1HmuAC+yvy4D37XuZNL/LAkUvNgAABNpJREFUIe5xsv0uBSi1v3YDLwMrJtPvsv/HlOmRDOIa4CH764eAT4/hteTEGLMVaOvXPNh9XQM8YowJGWMagX1Y28yMa4Pc42Am6j0eNca8an/dDbyLtXPDpPldDnGPg5lw9whgLD32t277wzCJfpf9TaVAYoA/iMgue8sUgFnGmKNg/SMHZo7Z1eXXYPeVbkuZof4jj3d/JiJv2kNfiWGCCX+PIrIQOB/rL9lJ+bvsd48wyX6XIuIUkdeBFuBpY8yk/V3C1AoklxljLgA+DnxDRFaN9QWNgYy2lJkg1gOLgKXAUeD/2e0T+h5FpBT4T+AvjDFdQz01TduEuM809zjpfpfGmJgxZinWbhvLReScIZ4+Ye8zYcoEEmPMEftzC/AbrK7jcRGpAbA/t4zdFebVYPc1abaUMcYct/+zxoH7ODUUMGHvUUTcWG+wPzfG/NpunlS/y3T3OBl/lwnGmA5gM3Alk+x3mWpKBBIRKRGRssTXwEeBt7G2U7neftr1wONjc4V5N9h9PQGsFZEiEakDFgOvjMH1jVjiP6TtM1i/T5ig9yhW6c0HgHeNMT9MeWjS/C4Hu8dJ+LucISKV9tc+4ApgD5PodznAWGf7R+MDqMeaFfEGsBv4G7t9GvAssNf+XD3W15rDvf0SazgggvWXzY1D3RfwN1izQt4DPj7W1z+Ce3wYeAt4E+s/Ys0Ev8eVWMMZbwKv2x9XTabf5RD3ONl+l+cCr9n38zbwHbt90vwu+3/oFilKKaVGZEoMbSmllCocDSRKKaVGRAOJUkqpEdFAopRSakQ0kCillBoRDSRKFZiIzBGRTQV+jd8l1i4oNdp0+q9SSqkR0R6JUkMQkS/ZtSVeF5EN9mZ8PSLyPbvexHYRmWU/d5H9/Q4RuUtEeuz2hYlaKiJyg4j8WkR+b9el+L8pr/VREdkmIq+KyK/sPan6X0+NiGy1r+dtEbncbj8gItNF5NaUuh6NIvJ8pudWKlcaSJQahIicCXwBa8PPpUAM+FOgBNhujDkP2ArcbB9yD3CPMeYiht4raal93g8AX7ALPk0H/ha4wlibi+4E/jLNsV8E/se+nvOwVocnGWPutR+7CGsXgB9mcW6lcuIa6wtQahz7MHAhsMPaJgof1kZ7YeC/7efsAj5if30Jp2pM/AL4wSDnfdYY0wkgIu8AC4BKrAJHL9mv5QG2pTl2B/CgvfnhfxljXk/zHLCC2nPGmCdF5JMZnlupnGggUWpwAjxkjPl2n0aRb5lTycUY2f8/CqV8nThesOpWXNfvtS4GNtjffscY84RdAuETwMMi8k/GmJ/1O+YGrOD0Zyn3MeDcSuWLDm0pNbhngWtFZCYka24vGOL524HP2l+vzfK1tgOXichp9msVi8jpxpiXjTFL7Y8n7NdvMcbch7WT7gWpJxGRC4FvAV8y1rbsg547y+tTalAaSJQahDHmHazcwh9E5E3gaay644P5C+AvReQV+3mdWbzWCeAG4Jf2a20HlqR56hrgdRF5DSto3dPv8T8DqoHn7YT7/VmcW6mc6PRfpfJERIqBgDHGiMha4DpjzDVjfV1KFZrmSJTKnwuBH9sFnDqAr43x9Sg1KrRHopRSakQ0R6KUUmpENJAopZQaEQ0kSimlRkQDiVJKqRHRQKKUUmpE/n/n0dbS3qZMtwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8cdbdc4710>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8cdbd375c0>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 14,
"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": {
"jupyter": {
"source_hidden": true
}
},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8cdbcfe6a0>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO29e5hc5XWv+a5dVX3v1rUbCbWwJCMiLjE3mZADR1FszwRsB/AZ2YZnYpg5ONJw8AGf3AyZBDtk/IwVOyYQHxPkyxhIHKwoObFMwI6NrBCfIEDCYCyQQZEEahBqXVpSX+uy95o/9t7VVdXV3VXdde1a7/NU165vX/rbu6v3b39rrW8tUVUMwzAMY6Y41e6AYRiGUd+YkBiGYRizwoTEMAzDmBUmJIZhGMasMCExDMMwZkW02h2oNIsXL9YVK1ZUuxuGYRh1xZ49e46rane+dQ0nJCtWrGD37t3V7oZhGEZdISJvTLbOTFuGYRjGrDAhMQzDMGaFCYlhGIYxK0xIDMMwjFlhQmIYhmHMioaL2jIMIz879/Xz0NMHODwwwvIFbWxat4r1a3qq3S2jDrARiWEY7NzXzz3b99I/OMb81hj9g2Pcs30vO/f1V7trRh1QdiERkYiI/FREHg8+f05E3hKRF4PXBzO2vVtE9ovIL0TkNzLaLxeRl4N1D4iIBO3NIvKdoP1ZEVlR7vMxjLnIQ08fIBYR2pqiiPjvsYjw0NMHqt01ow6oxIjkTuDVnLb7VPWS4PUEgIhcANwIXAhcA3xVRCLB9g8CG4HVweuaoP1WYEBVzwXuAzaX9UwMY45yeGCE1lgkq601FqFvYKRKPTLqibIKiYj0Ah8Cvl7A5tcDj6lqXFUPAvuBK0RkKdClqs+oX4XrEeCGjH0eDpa3Ae8PRyuGYRTO8gVtjCbdrLbRpEvvgrYq9cioJ8o9IvkL4A8AL6f9UyLyMxH5pogsCNqWAYcztukL2pYFy7ntWfuoago4DSzK7YSIbBSR3SKy+9ixY7M8JcOYe2xat4qkq4wkUqj670lX2bRuVbW7ZtQBZRMSEfkw0K+qe3JWPQi8G7gEOAL8ebhLnsPoFO1T7ZPdoLpFVdeq6tru7rw5xwyjoVm/pod7r7uQns4WTo8m6els4d7rLrSoLaMgyhn+exVwXeBMbwG6ROSvVfW3wg1E5GvA48HHPmB5xv69wNtBe2+e9sx9+kQkCswDTpbhXAxjzrN+TY8JhzEjyjYiUdW7VbVXVVfgO9F3qOpvBT6PkI8APw+WtwM3BpFYK/Gd6s+p6hFgUESuDPwfNwPfzdjnlmB5Q/A7JoxIDMMwjPJRjQmJfyYil+CboA4BmwBUda+IbAVeAVLA7aoaev9uA74FtAJPBi+AbwCPish+/JHIjRU6B8MwDCNAGu0Bfu3atWr1SAzDMIpDRPao6tp862xmu2EYhjErTEgMwzCMWWFCYhiGYcwKExLDMAxjVpiQGIZhGLPChMQwDMOYFSYkhmEYxqwwITEMwzBmhQmJYRiGMSusZrthGJNiddyNQrARiWEYebE67kah2IjEMAxg4uhjYDieruMO0NYUZSSR4qGnD9ioxMjCRiSGYeQdfbx+bIiUm13c1Oq4G/kwITEMg4eePpAefYj47zHH4ehgPGs7q+Nu5MOExDAMDg+M0BqLZLWd1dVsddyNgjAhMQyD5QvaGE26WW3RiMN5PR1Wx92YlrI720UkAuwG3lLVD4vIQuA7wAr8CokfU9WBYNu7gVsBF7hDVX8QtF/OeIXEJ4A7VVVFpBl4BLgcOAF8XFUPlfucDGOusWndKu7ZvpeRRIrWWITRpEvSVf74Q2tMOIxpqcSI5E7g1YzPdwFPqepq4KngMyJyAX6p3AuBa4CvBiIE8CCwEb+O++pgPfiiM6Cq5wL3AZvLeyqGMTdZv6aHe6+70EYfxowo64hERHqBDwGfB34naL4eWB8sPwzsBD4TtD+mqnHgYFCH/QoROQR0qeozwTEfAW7Ar9t+PfC54FjbgK+IiGij1Q82jBKwfk2PCYcxI8o9IvkL4A+AzBjCs1T1CEDwHn5zlwGHM7brC9qWBcu57Vn7qGoKOA0syu2EiGwUkd0isvvYsWOzPSfDMAwjg7IJiYh8GOhX1T2F7pKnTadon2qf7AbVLaq6VlXXdnd3F9gdwzAMoxDKadq6CrhORD4ItABdIvLXwFERWaqqR0RkKRDmW+gDlmfs3wu8HbT35mnP3KdPRKLAPOBkuU7IMAzDmEjZRiSqereq9qrqCnwn+g5V/S1gO3BLsNktwHeD5e3AjSLSLCIr8Z3qzwXmr0ERuVJEBLg5Z5/wWBuC32H+EcMwjApSjVxbXwC2isitwJvARwFUda+IbAVeAVLA7aoaBrbfxnj475PBC+AbwKOBY/4kvmAZhmEYFUQa7QF+7dq1unv37mp3wzAMo64QkT2qujbfOpvZbhiGYcwKExLDMAxjVpiQGIZhGLPChMQwDMOYFSYkhmEYxqywUruGwcQys5vWrbK8U4ZRICYkRsMTlpmNRSRdZvae7Xu5FxpeTExgjUIw05bR8OQtMxsRHnr6QLW7VlXy1XG/Z/tedu7rn35no6EwITEannxlZltjEfoGRqrUo9rABNYoFBMSo+HJV2Z2NOnSu6CtSj2qDUxgjUIxITHqjp37+rlpyy6u3ryDm7bsmrWpZdO6VSRdZSSRQtV/T7rKpnWrStTj+sQE1igUExKjriiH3d7KzObHBNYoFIvaMuqKTLs9QFtTlJFEioeePjCrG7+VmZ3I+jU93It/zfsGRui1qC1jEkxIjLri8MAI81tjWW1mty8fJrD1TyVCuM20ZdQVZrc3jMKpVAh3OWu2t4jIcyLykojsFZE/Cdo/JyJviciLweuDGfvcLSL7ReQXIvIbGe2Xi8jLwboHgkqJBNUUvxO0PysiK8p1PkZtMJfs9qUOGjCMXCoVwl3OEUkceJ+qXgxcAlwjIlcG6+5T1UuC1xMAInIBfoXDC4FrgK+KSBh7+CCwEb/87upgPcCtwICqngvcB2wu4/kYNcBccYzbZD+jElQqhLtsPpKgdvpQ8DEWvKYqx3g98JiqxoGDQfncK0TkENClqs8AiMgjwA345XavBz4X7L8N+IqIiNVtn9vMBbt9uYIGDCOT5Qva6B8cS3/PoDym4LL6SEQkIiIvAv3AD1X12WDVp0TkZyLyTRFZELQtAw5n7N4XtC0LlnPbs/ZR1RRwGliUpx8bRWS3iOw+duxYic7OMGaOTfYzKkGlTMFlFRJVdVX1EqAXf3RxEb6Z6t345q4jwJ8Hm0u+Q0zRPtU+uf3YoqprVXVtd3d3kWdhGKVn+YI2TgzHOXBsiH3vnOHAsSFODMctaMAoKZUyBVck/FdVT4nITuAaVf1S2C4iXwMeDz72AcszdusF3g7ae/O0Z+7TJyJRYB5wshznYMxtKp3l9ldXLeS5QydxBByBhOvRP5jgpvcuLNvvNBqTSpiCyxm11S0i84PlVuADwD4RWZqx2UeAnwfL24Ebg0islfhO9edU9QgwKCJXBtFaNwPfzdjnlmB5A7DD/CNGsVTD8f3MgZN0dzTRFHHwFJoiDt0dTTxzwJ6DjPqjnCOSpcDDQeSVA2xV1cdF5FERuQTfBHUI2ASgqntFZCvwCpACblfVcMLAbcC3gFZ8J/uTQfs3gEcDx/xJ/KgvwyiKaji+Dw+MsLijme7OlnSbqpqPxKhLyhm19TPg0jztn5hin88Dn8/Tvhu4KE/7GPDR2fXUaHSqMVu+UtE0hlEJbGa70fBUY7b8XJpYaRgmJEbDU42b+lyZWGkYYEkbDaNqWW7nwsRKwwAbkRhGFhbyZxjFY0JiNDyW98owZoeZtoyGx/JeGXMZq0diGBXA8l4Zc5W6r0diGPWCFcsy5ipzoR6JYdQFNqejvrCCYIVTqdG2CYnR8NicjvrBAiOKo1KjbXO2GwY2p6NesMCI4ti0bhX3bN/LSCJFayzCaNKtv3okhmEYpcQCI4pjTtUjMQyjPql0nZbpsGSXxVPX9UgMw6hvatEfYYERtYkJiWEYealU6GgxWGBEbWKmLcMw8lKNOi2FYIERtUc5S+22iMhzIvKSiOwVkT8J2heKyA9F5PXgfUHGPneLyH4R+YWI/EZG++Ui8nKw7oGg5C5BWd7vBO3PisiKcp2PYTQaNlHTKJRymrbiwPtU9WLgEuAaEbkSuAt4SlVXA08FnxGRC/BL5V4IXAN8NSjTC/AgsBG/jvvqYD3ArcCAqp4L3AdsLuP5GEZDYf4Io1DKJiTqMxR8jAUvBa4HHg7aHwZuCJavBx5T1biqHgT2A1eIyFKgS1WfUVUFHsnZJzzWNuD94WjFMIzZYf4Io1DK6iMJRhR7gHOB/66qz4rIWap6BEBVj4hI+K1cBuzK2L0vaEsGy7nt4T6Hg2OlROQ0sAg4ntOPjfgjGs4555zSnaBhzHHMH2EUQlmjtlTVVdVLgF780cVFU2yebyShU7RPtU9uP7ao6lpVXdvd3T1dtw3DMIwiqEj4r6qeAnbi+zaOBuYqgvcwKL0PWJ6xWy/wdtDem6c9ax8RiQLzgJNlOQnDMAwjL+WM2uoWkfnBcivwAWAfsB24JdjsFuC7wfJ24MYgEmslvlP9ucAMNigiVwb+j5tz9gmPtQHYEfhRDMMwjApRTh/JUuDhwE/iAFtV9XEReQbYKiK3Am8CHwVQ1b0ishV4BUgBt6tqGHt4G/AtoBV4MngBfAN4VET2449Ebizj+RiGYRh5kEZ7gF+7dq3u3r272t0wDGOG1Fr+r0ZBRPao6tp86yxFimEYdcPOff383raX+OnhAY6eGeOnhwf4vW0vWT2SKmNCYhhG3fCFJ1/l1EgS9SAignpwaiTJF558tdpda2gs15ZhGHXDwRMjOAKO40f+i4B6ysETVo+kmtiIxDAMw5gVJiSGYdQNqxa34yl4qiiKp4qnfrtRPUxIDMOoGz5zzRoWtMUQIOV6CLCgLcZnrllT7a41NCYkhmHUDevX9PDFDRdz6TkLWDqvlUvPWcAXN1xs4b9VpmBnu4i8C1itqj8KZqpHVXWwfF0zDMOYiCWSrD0KGpGIyG/jp2l/KGjqBf6xXJ0yDMMw6odCTVu3A1cBZwBU9XXAHgkMwzCMgoUkrqqJ8EOQabexcqsYhmEYeSlUSP5FRP4QaBWR/wX4O+B75euWYRiGUS8UKiR3AceAl4FNwBPAH5WrU4ZhGEb9UGjUVivwTVX9GqRL6LYClpfAMIyKYtl/a49CRyRP4QtHSCvwo9J3xzAMY3J27uvnnu176R8cY35rjP7BMe7Zvtey/1aZQoWkRVWHwg/BcttUO4jIchH5sYi8KiJ7ReTOoP1zIvKWiLwYvD6Ysc/dIrJfRH4hIr+R0X65iLwcrHsgqJRIUE3xO0H7syKyovBTNwyj3njo6QPEIkJbUxQR/z0WER56+kC1u9bQFCokwyJyWfhBRC4HRqfZJwX8rqqeD1wJ3C4iFwTr7lPVS4LXE8ExL8CvcHghfm33rwYmNIAHgY345XdXB+sBbgUGVPVc4D5gc4HnYxhGHXJ4YITWWCSrrTUWoW/ArOzVpFAfyaeBvxORt4PPS4GPT7VDUGv9SLA8KCKvAsum2OV64DFVjQMHg/K5V4jIIaBLVZ8BEJFHgBvwy+1eD3wu2H8b8BUREavbbsxVGt0/sHxBG/2DY7Q1jd+6RpMuvQumNJAYZaagEYmqPg+swa+d/l+A81V1T6G/JDA5XQo8GzR9SkR+JiLfFJEFQdsy4HDGbn1B27JgObc9ax9VTQGngUV5fv9GEdktIruPHTtWaLcNo6Yw/wBsWreKpKuMJFKo+u9JV9m0blW1u9bQTCkkIvK+4P0/Ab8JnIdvWvrNoG1aRKQD+Hvg06p6Bt9M9W7gEvwRy5+Hm+bZXadon2qf7AbVLaq6VlXXdnd3F9Jtw6g5zD/g59m697oL6els4fRokp7OFu697sKGGpXVItOZtn4N2IEvIrko8A9T7SwiMXwR+RtV/QcAVT2asf5rwOPBxz5gecbuvcDbQXtvnvbMffqC2fbzgJPTnJNh1CWHB0aY3xrLamtE/4Albaw9phQSVf2siDjAk6q6tZgDB5FV3wBeVdUvZ7QvDfwnAB8Bfh4sbwe+LSJfBs7GH/k8p6quiAyKyJX4prGbgb/M2OcW4BlgA7DD/CPGXKWa/oFG980YUzOtj0RVPeBTMzj2VcAngPflhPr+WRDK+zPg14H/FvyevcBW4BXg+8DtquoGx7oN+DqwH/h3fEc7+EK1KHDM/w7+DHzDmJNUyz9gvhljOqSQB3gR+WP8cN/vAMNhu6rWnRlp7dq1unv37mp3wzBmRDgy6BsYobdCI4ObtuyaMBIaSaTo6WzhbzdeWdbfbdQOIrJHVdfmW1do+O9/xveJ/JecdguVMIwKUg3/gPlmjOkodELiBcB/B14CXsT3UVxYrk4ZhlE7LF/QxmjSzWqzuRtGJoUKycPA+cAD+CJyftBmGMYcx+ZuGNNRqGnrl1T14ozPPxaRl8rRIcMwaitKav2aHu6FivtmjPqh0BHJT4PwWwBE5FeA/1meLhlGY1PLUVIWW2/ko1Ah+RXg30TkUJD76hng1zLCeA3DKBG1NoO9loXNqA0KNW1dM/0mhmEUSz4TVq1FSWUKG0BbU5SRRIqHnj5g5i0DKFBIVPWNcnfEMBqN8Ek/FpGsJ/3O5iijSbdmMtzWmrAZtUehpi3DMErMZCYsVa2pKCkL/zWmw4TEaDh27uvnpi27uHrzDm7asqtqtv7JijQNJ9yaynBr4b/GdBTqIzGMOcFk5qR7oeI36qmSME42g70aYcEW/mtMhwmJ0VDUkuN407pV3LN9LyOJFK2xCKNJd8on/Z37+vn9bS8xOJYi5XkcH4zz+9te4osbLq6ImJhwGJNhpi2joailmt/FFmna/P19DIwkUSAacVBgYCTJ5u/vq2i/DSMXG5EYDUWt1fwu5kn/wPFhHAFH/MKgIqCiHDg+PM2ehlFebERiNBTmODaM0mNCYjQU9Vzze+WiNjwFz1NUFc9TPPXbDaOalM20JSLLgUeAJYAHbFHV+0VkIX6BrBXAIeBjqjoQ7HM3cCvgAneo6g+C9suBbwGtwBPAnaqqItIc/I7LgRPAx1X1ULnOyZgb1Kvj+K5rz+f3tr3EUDyF6ykRR5jfHOOua8+vdteMBqecI5IU8Luqej5wJXC7iFyAXw73KVVdDTwVfCZYdyN+nZNrgK+KSOgVfRDYiF/HfTXjKVtuBQZU9VzgPmBzGc/HMKrK+jU9fGnDxVy6fAFLulq4dPkCvjRFxFatzJcx5j5lG5Go6hHgSLA8KCKvAsuA64H1wWYPAzuBzwTtj6lqHDgY1GG/IkgS2aWqzwCIyCPADfh1268HPhccaxvwFRERLaR+sGHUIYWOpmppvowx96mIj0REVgCXAs8CZwUiE4pN+K1eBhzO2K0vaFsWLOe2Z+2jqingNLAoz+/fKCK7RWT3sWPHSnNShlHD1FoGYWNuU3YhEZEO4O+BT6vqmak2zdOmU7RPtU92g+oWVV2rqmu7u7un67Jh1D21NF/GmPuUdR6JiMTwReRvVPUfguajIrJUVY+IyFIgNNz2Acszdu8F3g7ae/O0Z+7TJyJRYB5wsiwnYxgV5IEfvcbXf3KQ4YRLe1OET169kjs+cF7B+5d6vkwtVWw0yk8i5RFPucRTHvGUh+dN7S0o24hERAT4BvCqqn45Y9V24JZg+RbguxntN4pIs4isxHeqPxeYvwZF5MrgmDfn7BMeawOww/wjRr3zwI9e4/4d+xlNukQdXwDu37GfB370WsHHKOV8GStsNbdJpDwGx5KcGIrz9qlRDh4fpm9ghGODcc6MJonnZH7ORzlHJFcBnwBeFpEXg7Y/BL4AbBWRW4E3gY8CqOpeEdkKvIIf8XW7qoZncBvj4b9PBi/wherRwDF/Ej/qyzBqjmKe6L/+k4M4AlHHf85zBFKex9d/crDgUUkpEy3WUn4yY3akXC89yoinXBIpD3ea0UYhlDNq6yfk92EAvH+SfT4PfD5P+27gojztYwRCZBi1SrERVMMJFwdlLOlmOfxcLzWj3z/b20StFbYyM1theJ6mBSOe8ognPVKeV5bfZbm2DKPMPPT0AZKuy4mhFAnXoyni0NUanfSJvjnqMJKYaE5Q9W+i69f0THszLWX4by3lJ7Ow5vyoalos4q5LPOmRdMsjGvkwITGMMvN6/yCnR5I4jhBxhJSnHB9MkHQH826/sDWaV0gE0uG7091MS2mOKjbd/WSUYiRhZjbfPJV01XeIV0E08mFCYhhlJpHyICdrryf+jSAvzsQYGAeIRIS+gZGCbqalNEetX9PDhr5TE6LICp0Y+dDTB3i9f5DBsRQL2mIs7mie8Uii1sxs5Sb0YyRSHgnXK5lPo9RY0kbDKDOxiC8gmckWAZoi+V2Iyxe00RJ1aI46tMYitMYixCIOEUfoXdBW0ByRUtZZ37mvn0d3vUEi5SH4AvjorjemjdrKjPYaiafwVDkxnGBwLDXjCZJzuX58yvUYjqfS0VOHjg/z1sAoxwbjnB5NMppwa1JEwITEMMrOeWd1sai9iWhEcFWJRoRF7U2sPqsr7/ab1q2isyWK6ymu5/kvVTqao2xat6qgm2kpw39nWlArc+SUDJJMOgjHh+LAzEYSc6UMgKofTHF6NEn/mTEOnxzhzZMjHD0zxunRJGNJF6+OZjKYkBhGmdm0bhVN0QhL5rXwS2d1smReC03RyKQ3v/VrevjihotZ3dOBiCAinNvdnk7QWMjNdP2aHjZctoxjg3FefWeQY4NxNly2bEZ+hMyCWoLgiOAI0xbUyhw5NUUcXE9JuB7DCZcDx4Y4MRwveiRRj2UAQtE4M5bk2GCct06NcujECG+fGuXEUJyheKrqPo7ZYj4SY85Qq2GhM53TMb+tie7O1IRzKeR4O/f1s+2Ft+jubOacwEG+7YW3eE/v/Ipdk8xor47mKEcH4+l1wwmX0aTLTe89p+jj1nIZgGTgx8j0adS7SBSCCUkFqdUb3Vyg1sNCi7n5TXUuQNZ36E+vvyjvcUsZ3bRyURv7jw0jnvrlfRU8hXMXTz2ayIz2OjWSyFonAig8+fN3ikr9UkuEjvB4alw86skcVUpMSCpErd/oqs1sRbbYuRq1RO65nxpJ5D2Xzd/fx3DCLeg7NJPopsn+BsUU1Mo9xobLlvHMgZP8+7FhBIg6QjTiW9Rdz6uLevOup9mjjGCkYdmYxjEfSYWwtN6TU4pcTq/3D3J8MEEquNGFczVe788/V6NWyHfuvzg6SP+Z+IRz2d8/VPB3qNjopqn+BoUW1Mp3jG0vvMWmdatojjrEIuMiUquEkVMDwwneOT3GmydGeOPEMEdOj3JiOM7gmJ97ykQkGxuRVIhGi38vhlKYYYqeq1Ej5Dt3AFehKedcUp4WnBq+2EmEDz19gEQqexTU2TI+oivENDfV33Gm5rFyEs4GH0uWP4XIXKe2Hw/mEHM5/n22lKJ2RrFzNWqFfOceMpb0HdJhKGhEKPg7VGx002tHz3BiOEHKVSIipFx/zsfrR6cqITT9uYR/x7uuPZ/5bTHEAVcVcWB+W+XqzfuiMR451TcwwsHjw7x9apSTwwmG4ykTkVlgI5IKUao0E3ORUuRyOu+sLg4eH2JwLPOJOsbKxR3l6HLJyHfuUUdIuOrnRAlKu6kHZy9oTYf9FvIdKsbBn3SVpKvkpnhMuIWbcKb6O4bmsVJkI56OMMNtMvBnhOlEzBxVPkxIKsRs0kzMdUohsuExlsyL1qRQT+bIznfu4egj6jhpM5CrSntThLuuPb8sN+NEKn/Nicna8zHd37HUYbuupyRdL3hpuhhTrc7+nsuYkFSIWojrr1VKUTujlPU3Ss10EXu5/T49mqS9KcLxoUR6dLWko5nhhFu2ORTJSaw6YXshUXXl+Buo+iMl11NSnkfK9Sc1mj+jtiibkIjIN4EPA/2qelHQ9jngt4FjwWZ/qKpPBOvuBm4FXOAOVf1B0H4540WtngDuVFUVkWbgEeBy4ATwcVU9VK7zKUV4aqNnLZ2KUtwga3Wi2nR/+9x+37RlF/2DY6zqHjfLjSRS9HS2lK2PodlHwh/qG7lUtajQ9Zn+DcKJe5nmqJRbmwkK5zphEMLgWIozY0kGx1J5s1FnUs4RybeAr+Df7DO5T1W/lNkgIhfgVze8EDgb+JGInBdUSHwQ2AjswheSa/ArJN4KDKjquSJyI7AZ+Ph0nUp5Sv/gWJDqwY/ycRx/OeKE6R/8zyKCAP/yi34++71XZjUHxKK2Gpdi//bV8Kd1NEcZTqRQ9U1pIn5lxvamaEkfgsKbVDgXI57ySNbRRL7nDpzksecPc+TMKEu7Wrnxvcu5YtXCancrL6rKcMJlMBCDM6P++2A8xeBYkjOjKf/zWJIzwXsoHskifGNQ3gqJT4vIigI3vx54TFXjwMGgdO4VInII6FLVZwBE5BHgBnwhuR74XLD/NuArIiLT1Wz3PGVorLhKc/c/tR9VJeI4JFyPiCMkXY/7n3qdd/d0BP90kn4PhSjihCIlnD2vlWND445IwX/KXDa/FVVFpLaji4yZU2wwQTXMdJ+8eiX379hPxPEFxAvCcz959Uq27ukr+iHIC/JqJVxfKFLBpL56Thfy3IGT3L/jdaKO0NUS5cRwnPt3vM6drC6rmLieMhTPvtH7wpDdNhSf2FaqAV1H89RSUQ0fyadE5GZgN/C7qjoALMMfcYT0BW3JYDm3neD9MICqpkTkNLAIOJ77C0VkI/6ohmW9y4vu8JEzo3S1RLMCWpqjDkdOjxb8j/GfLl3G/TteJ+UmaYk5jCX9f64bLlnGwWB2bzgCkoz5EOnRUpC8z8kUK2d8Odwn4oyPpozaYCYjjFKY6Yoxx4ZpSnKDQe74wHk8c+DkpEKYcgORcH3/RXIO55d67PnDJFMupxIuSdcjFnFob4rw2POHCxKSpOulRwBZghC2jY63Za4fis+sxHIujkBnS4zOliidLVG6guWuzLbW8baO5mjQHqMlFuGceyc/dqWF5EHgT/FvyX8K/Dnwn8lf212naA4uqFEAACAASURBVGeaddmNqluALQDvueSyojV6aVcrJ4bjWTHyY0mPJV2tBR/jilULuZPVPPb8Yd45M8qSPMNiVfVPQCFdrbvwoJksMkVHMsx2acEJBSgtRiD46yVzmWyBM4EqnmqMMGaSkueOD5yXN+/Vb1+9ks9+by+el6Q55vhCmFJuuORs3jzZOKbZQyf88PLwfyGZ8jiZ8hhNnuGffnYkw0Q0bi4ayhCE3DlAMyUWkXFBaB6/+Y+LQoyuHGHobI7R1hxJP6CWmooKiaoeDZdF5GvA48HHPiBzqNALvB209+Zpz9ynT0SiwDzgZDn6feN7l3P/jtcZTbpZo4kb31vc6OaKVQsrZk9VVdxMQSohk42I0o5axoXICUQoFK1QmLJELj2DOxiFzUHBqnQgQDF+Dc9Tkp7v2E6m/OVwdOF6yorudm5ff+6Eh6D3rqxN30Ah5PoPwpv/6dGJI4ZQFE6Ppsb/mzL+rYYTHn/+w9eK7kNL1MkSAV8AwhGB/7mzdVwswnXNUafm/j8qKiQislRVjwQfPwL8PFjeDnxbRL6M72xfDTynqq6IDIrIlcCzwM3AX2bscwvwDLAB2DGdf2SmFDKaaCQ8Vd85WkbrRabY+J/HlzOHpFmBETLeLpmjLGd82yyzoWQHXMwVXE958+Qw81pj/kz/oD0WEd44MczRM2NB0Sz/VYij+xfvnOH1/kFGky6DYyl+8c6Zor//5XBUF+o/yHYq+8ul8h8IsGReS84IIb8JqaMlyrxW32zUFJ07iUXKGf77t8B6YLGI9AGfBdaLyCX494JDwCYAVd0rIluBV4AUcHsQsQVwG+Phv08GL4BvAI8GjvmT+FFfZaOSowmjvCOqycgcXUUcSZv40n1C/aim4HO4JnPkRcY++UyDmYTHSps0g7bcfb0g5YvvANfxfTK2BfA8f+KiqtLd0TLBHDuadOnpbGG4SJv7o/92iId3vREEkPjp0x/e9QYAn/gPKwo6xnSO6tB/cCbDVzAUr6z/oCP95B/NEILxEcL2F49wajQezGFRYhGhozlC74IOvvzxi0vSj3pFGi1twHsuuUz/8YdPV7sbRg71FFZZCWZ7PZ47cJI/fXwvI0kv7Wxsizn88YcvLPq6/uZf/oR4yiXijD9Bu55HczTC9/7r1em2fPMPQmH49nNvMjSWwhFf7FyP9ITCqOOU1H8QPvlnC8K4/yAUhnGzUoy2pun9B5limGnivvN95Y3aqgViEYdzFrXvUdW1+dbbzHaj6lQrrLJWKcX1+MU7Z9IiAv7IZyTpFWSS8sv3umkhGEm4CGTNJBf8Kod3PvbirOYfACTdiSIS+g9CQcgVgfRya4zOMLqoNUZLGf0HZuKeHBMSo+o89vxhoo6kzTBhiGyhYZVzjceeP0zKdTk1Mh5m2tFceJgpwNY9fem5TOGt3fWUbz/3Ju0tsTz+g6nnH+TKQ/j55bdOT9mP9uYIXS0xTgwnSKS88aAMfDPe4o4m7nj/6rQo/PvRIb73syMcHRyryZHpZCbuRh9Rm5AYVSc9TyeDlpjDO2dGq9Sj6vLGyWEGR5NIMKE16XqcHPKIp4b4+VunC5p/MByktHBzRghxV/nKj/eXpJ+tMYePrV3uRxu1RtNhpv6y71COBEEMn/zW87xxciTtg/JjNZTO5ihXnbsY8G/G3/y3QzU9Ms0nGEDDj6hNSIyqU4p5OrXOVP6D9JyDuN92ejQYEeSIwJmxFHc89uKs+iHAOYvass1DLbkhqNn+g08+/DxJ1+PUSCrtb5nfFqU5GuGWAp3tw0mXs7qaGRhJpkdZC9qaGMnwjdT6yPS5AyfZ/IN9DAclhweGE2z+wTALWmM13e9KYEJiVJ1SzdOpBLn+g9xcRbn5i/y0FckZ+w/yEZqHmqIOZ89rZdmC1hxBiPHTN06y87XjQWj0eEXC/+NX31VwpFXI2fPaODEcp7tjPGnkaNJlUXtzwccIHxaWZ6SFGU269GQco9ZHplv+9QBnRpM4jhCJCKr4f9vRJKu627O2raV+VwITEqPqVMOJWdz8g/LkLwr9B7lhp88eOMFQPEkiSJ8edYS2pghdrTESKf9pPhTc0aTLhy5aOuFaffg9S1nxb4fYuqeP0aRLayzCxy7vLVpEwBf6zT/Yx9HBMTxPcRyhvSnK7evPLeoY0z0s1PrI9PDAyIS5TYiS9Px+1mq/K4EJiVETzHSeTi3kL+rITFORMQu5IxglHBsc459fOUos4tAac0i6/iTAT7//vEkct4vyhplGRdCIU7AJ5RP/YcWMhGNSgszAM5naU8jDQj2NTDOJOn5W8XrrdykxITGqTj7/QX6TUfnyF0UdSUcOdbVE6Qicxl15Zihn+hYKyV/0O995iagDg2NJTg5PH4U12U33vqdeIyJweCCe4WeIlcyEkpUNIMwSILB1z2E6W6Kc1ZVh2kqk2LrnML+2pjtrYiWQTkWv+JMow/bpHhZqPbx2+fxW3jg5Ap5mmQvftbCNjeveXbP9rgQmJEbJKMR/cODYcDrVRkSEWNRhLMiGWwpaYk7WaCDtRM5JXdGVub7M8w9yo7BSnjIwnCTlDU+6T76bbvu/RnnjxLCfETo4ztEzcd61yLfPT5WoM+o4RBwhmtGWW/ZgsvPvH4z7AnZyJF2xcXFHE8cG4yydN7X5JjMDce/8Vn77P67iP57X7YuM54uNm5HG5YMXL+Xa9yzNygKgnj+j39WMdC5p8Qo/anamAA1T+YwL2WzZuO7dvrM9kUqb+LqaYmxc9+6Gz3xhQmJMwPWU4fi4KSif/yC7OM7M/AdJlLFU/oRdk/kPJkxIC0QjXK7F/EWJlAc5tnVX/PocUxGWBRgXAL9dNJiLEVzrmENWNcVS09kc5fX+oXRfUp7y1qkxVvdM/TtzMxAfG4rzJ4+/wr3XXVjRBJYaCEpuXrFw0Z9p76ehcadIR3PV6sX8oXM+337uTd45PcqSea3c9N7lXLFqUd0U5ioXJiRzmJn6D4bjqZmYwSeQ6T/oaI7y1qlREimXlOc/jYY+gO6OFv7b/7qarpZx30I4/2AuEIsI8ZSfZTc0iQA0RYSOligxxyES8VP7hzfrSJ5EkmMpj94FreO13KMOSzuaGJms4HoJ2Lmvn0Mnhkl5447/dPLMaW6eDz19gKTrcmIolR7JdLX6FRfD9TMtXV0MIkIkGKHNluUL2/joJL4PLxAqNxCeULjCHGhhstPM0ZLnZX6uXzEyIalxMv0HgzlCkFsec3AslSUOpfQfjBe8yfYfhCaksP5BenJanvoH/9uD/8ao65sEIlH/hjqacBkYTXDh2fNK0tdaIuo4xKLCuT2dvHlymKGxzBtqEysXdxRVhz2stJhby70p4nDTll0lvymHI4qkq0Qdf1pL0lNaosKyeS3pSY+T8Xr/IKdHgnDZYCRzfDDB0Ngpfn/bSwyOpUh5HscH4/z+tpf44oaLKzpSKTWOIzjIrG6qafEJBCdTZDwvY1nHR1q5AlWNOvcmJBWi2PkHs81flI+WqJORoyj/hLQJVdNK6D+YqYmnHohFHJqjDs3RCE1Rh6aok34C/tSvn8s92/fS2RKbVQ32fJUWz4wmUSDhegUXsJqM3IqKA8Nxkq6bvnE5AtFIYGqLONOKYL6/tyd+HZDRpJc+jioMjCTZ/P19dS0kpSDiCJG8NfuKY9LRUR4BCgUqd5tiMCEpktz5BxMEIbOtTPWT25sjWakopvIfhIVxOmvAfzCViadeiEV8kYhFHGIR8T9HnCnrmZSqQmK+48QcIelpQQWspiJfRcWDx4ez0uZ7Cp6reF5hQhiLCKPJiX9vT/2Q2UyBUVEOHJ88+MAojtmOjnKFaDpdaVghKcR/kOlQLuf8g0yHcn7ncrZjuV79BysWddA3MMxwVs3rKL0L2qffucKIiD+yCISjOTq9YExFqSok5h7n6s07mN8ay9qmNRahb6C4Erj5KiqGIiJkTx1RKMhhft5ZXRw87penDU16nS0xjg7GJ93ngR+9lrduvFFZihWihhOSfz82xIce+ElZ/Afhk386gV1LbpGccVFob46WrX5yrRLOkHaDxxs3KF5VzYlbIn5EVDQiRB2H5ti4aNRaOdN8hH6TUADATz3Sm5GKpBAOD4xMECTNeQ9xpDCzWWiKWzIvmmXSWzavhXfOxJGc+RjzWyLcv2O/b0Jz/PO4f4efYNLEpLYpZ4XEbwIfBvpV9aKgbSHwHWAFfoXEj6nqQLDubuBWwAXuUNUfBO2XM14h8QngTlVVEWkGHgEuB04AH1fVQ9P1K5yBmktL1PEdx5OMBnInpHVVYP7BXCTpeiRS4zaOpkhl/SN+epEIzTGHlsCfUc/k85vMxP+ST5AmI+X5I4fcm3uuj2XTulVsuGzZhBHGe3rnc8ffvsBQwk37XjqaIgwn3EBE/L+JI34NlK//5GDNC0m+c28kf085RyTfAr6Cf7MPuQt4SlW/ICJ3BZ8/IyIX4JfKvRC/ZvuPROS8oNzug8BGYBe+kFyDX273VmBAVc8VkRuBzcDHp+vUkq4W/vT6CydUUav3G0o9sOVfDzCacIlFxlOJjyZctvzrgbJM5oo4EpilIrTE/Pd6NQtORqn8L/kEaSpyRwr5fCy/t+0lBOjubOac4JjbXngLgKZYhKYgpDjiCE2xCINDCZqi2X8fR5g2Oqza5Dv3mQY81CtlExJVfVpEVuQ0X49fxx3gYWAn8Jmg/TFVjQMHgzrsV4jIIaBLVZ8BEJFHgBvwheR64HPBsbYBXxER0WnCDea1xtL1D4zKMlnSu8NF2vNzCQUj6vgmqWhE0g7xWqMcT66l8L/kE6T+M2MMx13yjxk1a6QQ+lhSrnLw9DAJ18MNTFcjCTdrHsnXf3KQ7s7mrFnxI4kUAyPJ9AglxFNob4rk/vKaIp9/aSYBD/VMpX0kZ6nqEQBVPSIi4VVehj/iCOkL2pLBcm57uM/h4FgpETkNLAKO5/5SEdmIP6phWW/jJFKba4gIsYjQFHHS0VPNUYdoDQpGPnbu66/p+RO5gnTTll0cOjHEkdMTneOuR1bgyeGBEc6MxDkTz5Ed9UOTM+eRuKqcszDbh9Mai9AemLdSnocjQZSYwievXlnaEy0xhwdGiAgcODaUlUKm2ICHeqZW/gPz2Rt0ivap9pnYqLpFVdeq6tqFi2w0Ui2Wz2/F9SCe8tIv1/PbMxERmmN+2vTFwZPrOQvbWLm4nd4FbfR0tbCgvYn25mjNicjOff3ctGUXV2/ewU1bdrFzX3963ebv72NgxJ/3EY04KOPzJ2qRTetWEYtMHA2E/3hZvkHPmygiAa6nCMGM+CCnV67pbDTpcuHZ87juPUvwFOIpfz7Dde9ZUvP+kc7mKG+dGiMVmOnCFDIdzY0Ty1Tp/8KjIrIUIHgP/8v6gMyhQi/wdtDem6c9ax8RiQLzgJNl67kxa37tvO4JZhIPWP9LPXQ0R1nU3szZ81tZsaiNZfNbWdzRTFdLjNamSM0JRj5CW3n/4FiWrTwUkwPHh8eTKjKeLLFW50+sX9PDvdddOOEmET6ttcXGheTk6ORh8elJcMFEqraYcGY0yetHB3n1yGlePzrImdEkv7pqIXvePM2KRW1cdHYXKxa1sefN01liXIukrema8aL4SX31TKX/O7cDtwTLtwDfzWi/UUSaRWQlsBp4LjCDDYrIleI//tycs094rA3Ajun8I0Z1+enh03R3xGiNOUQdaIs5LOlq4tV3BunpamFeW4yWWKRuo+DC3FLvnB7jF0cHeef0GEnXTeeWqlc6cqoWOgLzW6NctGxBum1kCoe4I36odzQiLGpvYtn8Nv9eG2YcFv/e+8TLR0iksq9fIlX7128o4bJsfgvRiKTPc9n86VPIzCXKGf77t/iO9cUi0gd8FvgCsFVEbgXeBD4KoKp7RWQr8AqQAm4PIrYAbmM8/PfJ4AXwDeDRwDF/Ej/qy6gxMlOHHBsao6ezhSXzxp9fVHXO2JInyy2VdAcBWLmojf3HhifMnzh3cXFzPirFzn393PG3L3Amnn1DjDr+jP5CQ4w1GJG4QZSWiDCvNTbB2b7/2LCf2h4/aWXKVU4MJ0i5Z0p6XqVmshxoxeRRq3fKGbV10ySr3j/J9p8HPp+nfTdwUZ72MQIhMmqDUDSaMnJOZYbbnrOwPZirMC4kM5k8V6skUp6fVsL100qEtdXDXGJ3XXs+v7ftJYbiqXTY6/zmGHdde37Z+zaTaLE/+seXJ4gIQMLVorJDK9kjj2NDcZZ0Zd9kW2MRP7twZDzrsYifqiNRolxz5aJUc3nqmdo3PBs1iV/lL8rC9iaWzmvlXYvaWb7Qd4TPb2uitWninI1N61aRdJWRRCpIYpmaU/9wnnq4wShD8d9dBVVfSNav6eFLGy7m0uULWNLVwqXLF/ClCkRsTee7mYy3To9Nui4WkSyT01Tzc9qbIqxZ0sXqnk7mBXXn8znboxFfafw6IEFadaXm53iFvqSezhZOjybp6WypeM2VatM4YQXGjMnNbNscnVnOqfVretjQd2rCTOe58g8Xn6QuyFhGe6lybhXDVHVBMvuSO2qZyuN49HQ8Kyt1zPFDgvPR3dmcXm6NRWiKSPqBIvMJ/t2L2+kfjHNqdHw+yfzWGKt7Omd9DcpNNf6utYQJiZFFpmg0x2aXqDCXnfv6eXTXGyRSHoKfPv7RXW/wnt75c+KfcLL6UmWsO1UQr/cPMjCcSI+UUq47obzxzn39WWa340OTJ1YEP9pucGw8UqspGiGeyl8QrbNlPIfXaNJl9VldbFq3asJs/J/1neL+HfuJOEIsmEdyeizFrzZwCdt6wYSkgYlFgiSFkdKLRj42f38fx4cS6ZtNyvOIDyWsDsUsmS5j7kjCJdPNoPgmt8xIqy88+SqnRpJ+lUYRtADxi2fUkfEzC/j+jTCQIBnUI8nnO8j3BP/Q0wfo7mjKyRYc5ZkDJ7ljxlfHqAQmJA1CZmbb5mhkxuap2fDa0cEJT6watBvZFOocf+BHr02bMXdskjDUzPaDJ4L0NRmOboqIXl3d08mhE0OcGR0XgYXzmpnXEmNBe3NBecAOD4ywuKOZ7oxop7kU1TeXMSGZgzhBLY2WWCQQjtpIIzJZ8E2NB+UUjAN581IVe+WLSQL49Z8cnDZj7mSDi1JY3MIswGHkUmeLb/KKpzxODie56b3nFDwzvVQp8Y3KU/27izFrYhE/Bf7izmaWLWhlxeJ2zp7fysIaTSMyV1m2oLWo9snITAIo4r/nRkmFhKnXM5lJxtxVi9vT5VfTEVMF8FdBn9av6eHyc+Zx9Eyc4YSL6yntTRG2vfBWwTPT53pU31zGRiR1RsSRtGkqHHFU2kRl5Gc0kT9NyGTtk3F4YIRE0uXg8eF09NLi9qa8te3bmyKcGUuRa4fqainuX/sz16wZTyjpekQdh3mtURJJl9HU5KIS+ll27uvniZ8fTdd0V4WhuEtzzCk4C26pUuIblceEpIYJI6jCTLe1mhrd8DkxnCyqHfL7QgToH0ogBGVu1f+8PM/Ipqs5FJKJ7cWwfk0PX9xw8YSbOPg39mcOnJhy/4eePuBPKHT8PGIi4KGcHknS5xTu42j0MNp6xYSkBgh9GulXICD1mnNqMrpaogyOZYeICtBZ5NNzrTLZc/tk7ZOllT89msy7X76Q3L48Kd5z2wv13Ux2E1+/pocVd/3TJGfhc3hghOaoQ8r107+A77CPu575OBqAufEfXEeISHpSX+Ykv0bgk1evTEcY1VO9iXIRppWPOOKnlVc/rXzK0wk3fwdmnCokFnVIpLwJAh4r4nsn5BfE8FFn+YI2Uq7HieEEeL6IuKpEncJzchn1S2PcwapI6Ahf1DExRXqjlfi94wPncef7zqU1FiHl+bOc73zfuTVfb6JQJvtLTtY+WVp58EVEGM/X5QHNM/yurFzU5vvWIg4tUYfmiJ8DbeWiwkcKkw2Ow/ZN61bRFI2wqL2JaMRPWOmIcPv6d5upqgGwEUkJKVUqkbnMHR84b84IRy6lePLPRNM/fBa2zuzftRTJIjuaowzHfbNkZkLK9qB4kznKGxsTkhkSdcZLvfoT/SYmKTQaizBNfETGZ3e7qqxc1JbXqT5ZWvmYI8xvi3JieDzn1KL2GOLMTJDWr+nh5ivf5c9+d11aIw43X/muom7yoVkyMoVZ0hzljUvj2FVmQdRxaG+OsqCtiSXzWjhnYRvnLGpjyTy/5GtbU9RExOCua8+nLeaQ9DzGUh5Jz6Mt5vDBX16aN/vuB395KfPbYojjC444ML8txrk9HUQjDq2xCLGI0BrzK0Tmc1rHJvkPzmzfua+fbS+8RXdnM+cv6aS7s7mo+R0w982SxuyoyohERA4Bg/jB7ylVXSsiC4HvACuAQ8DHVHUg2P5u4NZg+ztU9QdB++WMF716ArhztlUSp6upUevMpO6EUV6eePlIeoIhQFtTlJFEimcOnORLeUJuw+SFYVBCwvXoH0xw03snJi8sJFtA5gTHzN9f6PyOkLlsljRmRzVNW7+uqsczPt8FPKWqXxCRu4LPnxGRC/CrH14InA38SETOCyooPghsBHbhC8k1jFdQnJZKJy0sN8Wk1jBKz+bv72Mk6RGLOGlT1UjS49+PD/NLZ2WnQm+NRegbGJl18kJvEiHJbD88MML81ljW+vD3G0YpqCUfyfX4pXkBHgZ2Ap8J2h9T1ThwMCite0UwqulS1WcAROQR4AamEZJoRDh7fuucnKdRqidPY2ZkRmGB75BWUZKuMpp0C84hVUzywogjQflaMrbNLjRlOayMclMtH4kC/ywie0RkY9B2lqoeAQjewzvfMuBwxr59QduyYDm3fQIislFEdovI7hPHj9MSi8w5EQH/BtQay57RbE+e1SfqSFE5pJYvaMtbQTDfjf+69ywBwrropItRhe1gOayM8lMtIblKVS8DrgVuF5F1U2yb746vU7RPbFTdoqprVXVtd3d38b2tE4q5ARmlZ+WiNj+ayVNUFc9TPIV3d7cXVYq1mBv/fTdexkcuWZoegUQc4SOXLOW+Gy9Lb2OlYI1yUxXTlqq+Hbz3i8j/AK4AjorIUlU9IiJLgTCkpA9YnrF7L/B20N6bp71hCVN55yskZJSfqeZrFBMaW+ycjPtuvIz7bpz+mCYcRrmQWQY5Ff8LRdoBR1UHg+UfAvcC7wdOZDjbF6rqH4jIhcC38cXmbOApYLWquiLyPPBfgWfxne1/qapPTPX7165dq7t37y7b+VWbMGrLJoVVB7v+xlxFRPao6tp866oxIjkL+B+BjyIKfFtVvx+IwlYRuRV4E/gogKruFZGtwCtACrg9iNgCuI3x8N8nKSJia65iT57Vxa6/0YhUfERSbeb6iMQwDKMcTDUisZnthmEYxqwwITEMwzBmhQmJYRiGMStMSAzDMIxZ0XDOdhE5BryRZ9Vi4HiedsPHrs/U2PWZGrs+01Pr1+hdqpp3RnfDCclkiMjuySISDLs+02HXZ2rs+kxPPV8jM20ZhmEYs8KExDAMw5gVJiTjbKl2B2ocuz5TY9dnauz6TE/dXiPzkRiGYRizwkYkhmEYxqwwITEMwzBmRcMIiYgsF5Efi8irIrJXRO7Ms42IyAMisl9EfiYil+U71lylwGu0XkROi8iLweueavS1GohIi4g8JyIvBdfnT/Js07DfoQKvT8N+f0JEJCIiPxWRx/Osq8vvTy3VbC83KeB3VfUFEekE9ojID1X1lYxtrgVWB69fAR4M3huFQq4RwL+q6oer0L9qEwfep6pDIhIDfiIiT6rqroxtGvk7VMj1gcb9/oTcCbwKdOVZV5ffn4YZkajqEVV9IVgexP9D5tZ4vx54RH12AfODao0NQYHXqGEJvhdDwcdY8MqNVmnY71CB16ehEZFe4EPA1yfZpC6/Pw0jJJmIyArgUvzKipksAw5nfO6jQW+kU1wjgF8NzBdPBhUsG4bALPEifinoH6qqfYcyKOD6QAN/f4C/AP4A8CZZX5ffn4YTEhHpAP4e+LSqnsldnWeXhnuimuYavYCfc+di4C+Bf6x0/6qJqrqqegnQC1whIhflbNLQ36ECrk/Dfn9E5MNAv6rumWqzPG01//1pKCEJ7LZ/D/yNqv5Dnk36gOUZn3uBtyvRt1phumukqmdC84WqPgHERGRxhbtZdVT1FLATuCZnVcN/h2Dy69Pg35+rgOtE5BDwGPA+EfnrnG3q8vvTMEIifpH4bwCvquqXJ9lsO3BzEDlxJXBaVY9UrJNVppBrJCJLgu0QkSvwv0MnKtfL6iEi3SIyP1huBT4A7MvZrGG/Q4Vcn0b+/qjq3araq6orgBuBHar6Wzmb1eX3p5Gitq4CPgG8HNhwAf4QOAdAVf8KeAL4ILAfGAH+zyr0s5oUco02ALeJSAoYBW7UxkmPsBR4WEQi+DfArar6uIj8X2DfIQq7Po38/cnLXPj+WIoUwzAMY1Y0jGnLMAzDKA8mJIZhGMasMCExDMMwZoUJiWEYhjErTEgMwzCMWWFCYhgVQEQ+LSJtM9jvUANN2DPqFBMSw6gMnwbyCkkw78Iw6hYTEsMoMSLSLiL/FCQm/LmIfBY4G/ixiPw42GZIRO4VkWfxkxi+P6hR8bKIfFNEmnOO2Soi3xeR3w4+/1ZQ++NFEXnIxMioJiYkhlF6rgHeVtWLVfUi/IyvbwO/rqq/HmzTDvxcVX8F2A18C/i4qv4yfsaJ2zKO1wF8D/i2qn5NRM4HPg5cFSRIdIH/vQLnZRh5MSExjNLzMvABEdksIv9RVU/n2cbFT44J8EvAQVV9Lfj8MLAuY9vvAv+fqj4SfH4/cDnwfJDK5v3AqlKfhGEUSiPl2jKMiqCqr4nI5fg5k/5fEfnnPJuNqaobLOdLHZ7J/wSuFZFvB3mpBHhYVe8uXa8NY+bYiMQwSoyInA2MqOpfA18CLgMGgc5JdtkHrBCRc4PPnwD+JWP9PfgZcr8afH4K8p8crAAAAJNJREFU2CAiPcHvWygi7yrtWRhG4ZiQGEbp+WXgucDs9H8D/w+wBXgydLZnoqpj+Fle/05EXsavnvdXOZt9GmgRkT9T1VeAPwL+WUR+BvwQP/OuYVQFy/5rGIZhzAobkRiGYRizwoTEMAzDmBUmJIZhGMasMCExDMMwZoUJiWEYhjErTEgMwzCMWWFCYhiGYcyK/x8sv6BSGwkHtwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x='stroke',y='price',data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8cdbb5be48>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8cdba1bb38>"
]
},
"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": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8cdb992358>"
]
},
"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": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>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": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_group_two = df[['body-style','price']]\n",
"df_group_two=df_group_two.groupby(['body-style'], as_index=False).mean()\n",
"df_group_two"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5846418222655081 with a P-value of P = 8.076488270732955e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.690628380448364 with a P-value of P = 8.016477466159053e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522674 with a P-value of P = 9.200335510481426e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702846 with a P-value of P = 2.1895772388936997e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622197996e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935364e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844677 with a P-value of P = 2.3211320655676368e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.7046922650589529 with a P-value of P = 1.7495471144476807e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 66,
"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": 64,
"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": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". "
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>."
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment