Created
January 25, 2020 21:54
-
-
Save yogeshkumarpilli/b97e37f7ccbd8e7053dbb10b30208652 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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": 3, | |
| "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": 4, | |
| "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": 4, | |
| "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": 5, | |
| "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": 6, | |
| "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": 7, | |
| "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> float64" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Double-click <b>here</b> for the solution.\n", | |
| "\n", | |
| "<!-- The answer is below:\n", | |
| "\n", | |
| "float64\n", | |
| "\n", | |
| "-->" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "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": 8, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df.corr()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
| "<h1> Question #2: </h1>\n", | |
| "\n", | |
| "<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n", | |
| "<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n", | |
| "</div>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>bore</th>\n", | |
| " <th>stroke</th>\n", | |
| " <th>compression-ratio</th>\n", | |
| " <th>horsepower</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>bore</th>\n", | |
| " <td>1.000000</td>\n", | |
| " <td>-0.055390</td>\n", | |
| " <td>0.001263</td>\n", | |
| " <td>0.566936</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>stroke</th>\n", | |
| " <td>-0.055390</td>\n", | |
| " <td>1.000000</td>\n", | |
| " <td>0.187923</td>\n", | |
| " <td>0.098462</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>compression-ratio</th>\n", | |
| " <td>0.001263</td>\n", | |
| " <td>0.187923</td>\n", | |
| " <td>1.000000</td>\n", | |
| " <td>-0.214514</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>horsepower</th>\n", | |
| " <td>0.566936</td>\n", | |
| " <td>0.098462</td>\n", | |
| " <td>-0.214514</td>\n", | |
| " <td>1.000000</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " bore stroke compression-ratio horsepower\n", | |
| "bore 1.000000 -0.055390 0.001263 0.566936\n", | |
| "stroke -0.055390 1.000000 0.187923 0.098462\n", | |
| "compression-ratio 0.001263 0.187923 1.000000 -0.214514\n", | |
| "horsepower 0.566936 0.098462 -0.214514 1.000000" | |
| ] | |
| }, | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "df[['bore','stroke','compression-ratio','horsepower']].corr()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "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": 11, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(0, 56413.42408408074)" | |
| ] | |
| }, | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXxbZ53o/89Xmy3vdvbFSewkbbqHNk2XtGmAAi1bC7TTFigBWpK2MDCvGeZHmQvcGe5wp9yZC5SZoW260BYopRSYdrgUuibpkjRNui9pk9hJ7GxOvNuStZ3n98c5UmRbsiVbsrx836+XY/mRztE5lqOvzvN9nu8jxhiUUkqpkXIV+gCUUkpNbBpIlFJKjYoGEqWUUqOigUQppdSoaCBRSik1Kp5CH8BYmz59ulm0aFGhD0MppSaUHTt2HDPGzEh135QLJIsWLWL79u2FPgyllJpQRGRfuvu0a0sppdSoaCBRSik1KhpIlFJKjYoGEqWUUqOigUQppdSoaCBRSik1KhpIlFJKjYoGEqWUUqOigUQppdSoTLmZ7UoppTIXjlp0BMNDPkYDiVJKqUGMMXQEInQEI3hcMuRjNZAopZTqpy8S42h3iEjMclo0kCillMqAZRlae8N090Wy2k4DiVJKKXpDUVp7wkQta/gHD6CBRCmlprBozKK1N0xvKDrifWggUUqpKaozGKG9N4xlzKj2o4FEKaWmmHDU4lhPiL5ILCf700CilFJTRPKQXjPKq5BkGkiUUmoKGDykN3c0kCil1CQ20iG92chrrS0R2Ssib4jIqyKy3WmrEZEnRGSX87066fHfFpHdIvKuiHwkqf0sZz+7ReSnIiJOe5GI/MZpf1FEFuXzfJRSaiLpCUVpbg/mNYjA2BRtfL8xZrkxZoXz883AU8aYpcBTzs+IyMnA1cApwCXAz0TE7WxzG7AOWOp8XeK0Xwe0G2OWAD8GfjgG56OUUuNaNGZxpKuPlq6+Ec0LyVYhqv9eBtzn3L4PuDyp/UFjTMgY0wjsBlaKyBygwhizxdjZofsHbBPf18PAB+NXK0opNRV1BiM0twdHNS8kW/kOJAZ4XER2iMg6p22WMeYQgPN9ptM+D2hK2rbZaZvn3B7Y3m8bY0wU6ASmDTwIEVknIttFZPvRo0dzcmJKKTWehKIxDnQEae0JjXpeSLbynWxfZYw5KCIzgSdEZOcQj011JWGGaB9qm/4NxmwANgCsWLFibH/DSimVR8YY2gMROnM8pDcbeb0iMcYcdL63AH8AVgJHnO4qnO8tzsObgdqkzecDB532+Sna+20jIh6gEmjLx7kopdR4EwzHaG4P0hEIFyyIQB4DiYiUikh5/DbwYeBN4FFgrfOwtcAjzu1HgaudkVh12En1bU73V7eInOvkP74wYJv4vq4AnjaF/G0qpdQYiFmGo90hDnUG8zIvZKDoMM+Rz66tWcAfnNy3B3jAGPNnEXkJeEhErgP2A1cCGGPeEpGHgLeBKPBVY0x8/v6NwL2AH3jM+QK4G/iFiOzGvhK5Oo/no5RSBdcTitLaEyJm5f8zszGGF/a0smFzw5CPy1sgMcY0AGekaG8FPphmmx8AP0jRvh04NUV7H04gUkqpySwaszjWEyYQHpvRWO8d6eb2TXt4talz2MfqzHallBrnOgMR2gOjr9KbiaPdIe55vpHH3zqSGLl0Tl0N+4bYRgOJUkqNU6FojGM9YUI5qtI7lGA4xm9eauI325sIRe2cSN30Um64qJ7zF0/noRvSb6uBRCmlxpmxHNIbswyPv3WYe57fS2tvGIDqEi9fWrWIS0+dg9s1/BxvDSRKKTWOBMMxjvXkp0rvQC/va+e2TXvYc7QXAJ/HxZVnzeealbWU+DIPDxpIlFJqHIhZhtbeED19+U+m728NcPvmPWxtOD7t7uKTZnLdBXXMqijOen8aSJRSqsDGakhvZyDCvVv28t+vHST+VKfNq+DGNYtZNrtixPvVQKKUUgUSiVm0jsGQ3nDU4vevHOBXW/fRG7YT93Orill3YT0XLp3OaGvdaiBRSqkCGIshvcYYNr13lA2bGznc1QdAWZGHa89dwGXL5+Hz5Ka4iQYSpZQaQ2M1pPftg138bOMe3j7UBYDbJVy2fC7XnruQSr83p8+lgUQppcaAMYa23jBdfdHEkN5tDW08+FITh7qCzKnwc/XZtaysrxnV8xzu7OPOZxt45t3jS2asWjyNdavrqa0pGdW+09FAopRSeZZqSO+2hjZufXoXHpdQUeyhtTfErU/v4hssHVEw6QlFeeDF/fzu5WYiMTtQLZ1Zxk1rFnNGbVXOziUVDSRKKZUnQw3pffClJjwuwe+1VxT3e90EIzEefKkpq0ASswx/fP0g976wj86gvTb79DIf119Qx8Unz8I1BovGaiBRSqk86O6L0NYbTjuk91BXkIri/m/BxV4Xh7uCGe3fGMOLjW3csamBfW2BxPbXnL2AK1fMp9gJUGNBA4lSSuVQJGZxrCdEMDx0Mn1OhZ/W3lDiigSgL2Ixu8I/7HPsaenh9k172LG/A7CXir3k1Nl8edUippUVjer4R0IDiVJK5UhnIEJbhqsVXn12Lbc+vYtgJEax10VfxCJqGa4+uzbtNq09Ie55fi9/fvNwojLvWQuquOGixSyeWZajs8ieBhKllBqlUDTG0e4Q4Wjm9bFW1tfwDZby4EtNHO4KMnuIUVvBSIzfbm/iwZea6IvYz7GwpoT1F9VzTl3NqCcUDsc1TOFGDSRKKTVC8SG98SR3tlbW1wyZWLeM4cm3j3DXc40c67Er81b5vaw9fxEfPz2zyryj4XW7qCzxUl40dKjQQKKUUiMQCEdp7QnnrUrvq00d3LZxD7taegDwuoXPnDmfz56zgLJh3thHy+t2UVXipbw4s4mLGkiUUioL+a7S29QWYMPmBp7f05poe/+JM/jKhfXMrsy+Mm82sg0gcRpIlFIqQ8MN6R2NzmCEX2zZxyOvHUzs/+Q5Fdy0ZjEnzx15Zd5MeN0uqkt9I77S0UCilFLDyHRI70j3/V+vHOAXW/fTE7KvcmZXFLNudR0XnTAjr4l0n8dFVcnIA0icBhKllErDGENnMEJ7IPdL3hpjeHbXMe7Y3MChTrsyb6nPzefOXcin35e7yryp+Dwuqkt8lOYo16KBRCmlUuiL2PWxshnSm6l3DnVx+6Y9vHHArszrEvjEGXNZe95Cqkp8OX++uCKvmyq/N2cBJE4DiVJKJbEsQ3tg5EN6h3Kkq4+7nm3kqZ0tibbz6qexfnU9C6blpzIv2AGkusSb1Trs2dBAopRSjnwN6Q2Eo/x6WxO/3dGcuMJZMqOMG9bUc+aC6pw+V7J8B5A4DSRKTRIbd7Zwx+YGmtoD1FaXsH51PWuWzSz0YU0IMcvQ2hNKJLtzud8/vXGIe1/YS3vAvsKZVurjugvq+NDJs/I2obDY66a6xIffNzaFGzWQKDUJbNzZwvcefQuvW6jye2np7uN7j77F90GDyTDyNaR3W2Mbt2/aw95WuzJvkcfFVStquWplbb9CjYO2G8ViV2MdQOI0kCg1CdyxuQGvWxJdGCU+D4FwlDs2N2ggSSNfQ3objvZw+6YGtu9rB+zKvB8+ZRZfXlXHjPKhK/OOdLErv88OIGNZOj6ZBhKlJoGm9gBVA9bh9nvdNLcHCnRE41e+hvS29Ya594W9/OmNQ8QvbpbXVnLjRYtZOqs8o31ku9hVoQNIXN4DiYi4ge3AAWPMx0WkBvgNsAjYC/yVMabdeey3geuAGPB1Y8xfnPazgHsBP/An4BvGGCMiRcD9wFlAK3CVMWZvvs9JqfGmtrqElu6+fknVYCTG/Or8jQSaiPIxpDcUifHwy8088GITwYh9dTO/2s/61fWcv3haVhMKM13sqsTnoarEW/AAEpe/GS/HfQN4J+nnm4GnjDFLgaecnxGRk4GrgVOAS4CfOUEI4DZgHbDU+brEab8OaDfGLAF+DPwwv6ei1Pi0fnU9kZghEI5ijP09EjOsX11f6EMbFywnmX6wI5izIGIZw5PvHGHtz1/i7uf2EozEqCj28NcfWMI9a1ewasn0rGelz6nwJ8rExyUvdlXi8zC3ys/syuJxE0Qgz4FEROYDHwPuSmq+DLjPuX0fcHlS+4PGmJAxphHYDawUkTlAhTFmi7GvQ+8fsE18Xw8DH5R8F+ZXahxas2wm3//kKcwsL6YzGGFmeTHf/+Qpmh/BHnp7oCOY03khrzd38NUHXuF//2knLd0hvG7hr1bM55fXncOn3jcPj3tkb61Xn11L1DIEIzEM9veoZVh7/sJxGUDi8t219RPg/wOSOwhnGWMOARhjDolI/C99HrA16XHNTlvEuT2wPb5Nk7OvqIh0AtOAYzk+D6XGvTXLZmrgSJKPIb0H2oNseLaBZ3cdf4u56IQZfOXCOuZWDb9E7nAGLnY1r6qEGy6q50OnzB71vvMpb4FERD4OtBhjdojImkw2SdFmhmgfapuBx7IOu2uMBQsWZHAoSqmJLNdDerv7Ivxy637+8MoBos4+T5pTzo0XLebUeZU5eY64lfU1fOCkmVSWeCnyjL+rj1TyeUWyCvikiHwUKAYqROSXwBERmeNcjcwB4rUCmoHkxYrnAwed9vkp2pO3aRYRD1AJtA08EGPMBmADwIoVK3Jf/1kpNS7kekhvJGbx6GsH+cWWfXQ564/MLC9i3ep63n9i7ivzlhV5qCrx5bVgYz7kLZAYY74NfBvAuSL5pjHm8yLyr8Ba4Bbn+yPOJo8CD4jIj4C52En1bcaYmIh0i8i5wIvAF4B/T9pmLbAFuAJ42uS6RKdSakLoDERoD4SxcvAWYIzh+d2tbHi2geZ2e8RUic/NZ1cu4DNnzqMox3mKsmIPVf6JF0DiCjGP5BbgIRG5DtgPXAlgjHlLRB4C3gaiwFeNMfGPFTdyfPjvY84XwN3AL0RkN/aVyNVjdRJKqfEhFI1xrCdMKJKbq5D3jnRz28Y9vNbcCdiVeT9++lzWnr+Q6hxX5p3oASROptoH+BUrVpjt27cX+jCUUqNkjKE9EKEzmJuJhUe7Q9z9XCNPvH0kkWhdWVfD+tX11E0vHfX+40SE0iJ7IqF3hKO7CkFEdhhjVqS6T2e2K6UmnGDYnliYiyq9wXCMB1/az0Pbmwk5c0zqppdyw0X1nL0osxpXmRARJwfinVABJBMaSJRSE4ZlGVp7w3T3jX5OSMwy/OWtw9zz/F7aesMAVJd4+dKqOi49dXbOKvNO5gASp4FEKTUh9ISitPWEiVqjvwrZsa+d2zbtoeFoL2AvPXvlWfO5ZmVtztbuEBHKiz1U+b0jnqA4UWggUWoc0LVE0ovGLFp7w/TmYGLh3tZe7tjUwIuNx2cJfOjkWVy3ahEzK4pHvX+YWgEkTgOJUgWWq7VEJmMw6gxGaO8d/ZDe9kCY+17Yxx9fP5iozHv6fLsy74mzM6vMOxwRu/R75RQKIHEaSJQqsFysJTLZFrYKR+2JhX2jHNIbjlr87uVmHnhxP73OJMV5VXZl3lVLsqvMm85UDiBxGkiUKrBcrCUyWRa2MsbQEYjQMcohvcYYnnn3KHc+28CRrhAA5cUerj13IZctn5uTpPdU7MJKRwOJUgWWi7VEJsPCVn2RGEe7Rz+k980Dndy2aQ/vHOoGwOMSLls+l2vPXUjFgN/RSMRHYVWXTJwAku9uTw0kShXY+tX1fO/RtwiEo4kV8bJdS2QiL2xlWYa2QJiuUZZ5P9gR5M5nG9n03tFE24VLp7PuwnrmVY++Mi/YM9En2kTCsej21ECiVIGtWTaT72N3TzW3B5g/gk+MuQhGhdAbitKa4ZDebQ1tPPhSE4e6gsyp8HP12bWsrK+hpy/KL1/cxx9eOUAkZneHnTirnBvW1HPG/KqcHOdELaYIY9PtqYFEqXFgtGuJ5CIYjaVs1wrZ1tDGrU/vwuOyE9utvSF+8tR7rNxTw8b3jiYq884oK+L6C+v44EkzceUgkT6RA0jcWHR7aiBRapIoxMJWI+l77+qL0NaT3ZDeB19qwuMS/F43xhhiluFYT5hHXz8E2G+M16ys5Yqz5udkBcFSZyb6RFkPZChj0e2pgUQpNSLZ9r2HoxatvSNbK+RQV5CKYo+dkO8JE0waFvyx0+bwpVWLqCkdfWXeEp8dQMbjcrYjNRbdnhpIlFIjkmnfuzHGnlgYGPmQ3umlRext7U3MBQEo8rhYNK2Uv/vwCaM7EcDvs6vxTqYAEjcW3Z4aSJRSI9LUHsAt0HC0h3DMwud2Mb3M16/vvS9iV+kNR0c2pDcYifHQS02819KdSKT73EKF34vHJXzp/EWjOofJHECS5bvbUwOJUuPARCxvUl7kYVdLD26X4HYJUctwoKOPpTPLsCxDeyBM5wiH9MYsw+NvH+Ge5xtp7bEr85Y6b/qRWIw5lSWJUVsjMVUCyFjRQKJUgU3U8iaJbqp4b5XzPWZZHOgIjnhi4cv727l9YwO7j/YA4HULV5w1n8+uXEBp0ejesiZjDmQ80ECiVIFN1PImPeEY86qKOdYTJhyz8LqE6aVFdPVFRxRE9rcF2LC5gRf2tCbaPrBsJtdfWMfsUVbm1QCSXxpIlCqwiVreJD6stH5GGTHLELUsguEYM7J80+8MRLh/6z4efe0gMac076lzK7hxzWJOmlMxqmPUADI2NJAoVWATtbzJ+tX1fPeRN4nGwvg8LvoiFlHLcPXZtRltH45a/OGVA/zyxX30huzRWHMqi1m3up7VS6ePqjLvZJoHMhFoIFGqwNavrufvH36NA+1BopaFx+WivNjDdz92cqEPLS1jDGfUVvHV9y/hwW1NHO4KMjupbMlw227edYwNmxs41NkHQGmRm2vPXcjly+eNaha5BpDC0ECi1DhgAMSuLIscz1+PR8GwPaQ3ErNYWVfDyrrMR069c6iLn23cw1sHuwBwu4TLzpjLtectpHKYyrzpam3B5ChlMpFpIFGqwO7Y3ECl38ucyuMVasdjsj1mGVp7Q/T0Zb/k7eGuPu56tpGnd7Yk2s5fPI11q+tZUDN8F16qWlu3Pr2Lb3mX8dHT52gAKTANJEoV2ERItnf3RWjrDSeS4ZnqDUV5YNt+Ht7RnJhQuGRmGTetWczy2swr8ybX2kLsLqxwNMZvtjdx+ZnzsjomlXsaSJTKsWwnF47nZPtI62PFLMP/e+MQ9z6/lw5nUuK0Mh/XX1DHh06elXVl3nitLZdL8LgEEfv7eAq2U5kGEqVyaCSTC8fjWiIjrY9ljOHFxjbu2NzAvlb7Tb7Y6+Kasxdw5YqRVeYVEWqrS2jrDVHsPd6FNV6CrdJAolROjWRy4XhbS2SkS97uOdrD7Zsa2LGvHQABLjl1Nl9etYhpZUVZH0fymuhfe/+ScRds1XEaSJTKoZHmO3JRVG+09bosy9DaG6a7L7v6WG29Ye55vpE/v3mYeArlzAVV3HjRYhbPLMtqX9A/gMTXRB9vwVb1p4FEqRwqVL5jtPW6ekJRWntCWSXT+yIxfrujmV9v209fxL56WVBjv8GfW1+T9YTCVAEkWSEW7lKZ0UCiVA4VKt8x0npdkZhFa0+YQDjzIb2WMTz5Tgt3P9vI0Z4QAJV+L2vPW8jHT5+TMggMZbgAosa/jAOJiCwElhpjnhQRP+AxxnQP8fhiYDNQ5DzPw8aY/ykiNcBvgEXAXuCvjDHtzjbfBq4DYsDXjTF/cdrPAu4F/MCfgG8YY4yIFAH3A2cBrcBVxpi9GZ+9UjlWqC6YbLvURppMf625g9s3NvDuEfu/vtctfPp98/jcuQspy7Iyr4g9J6RSA8iEl9ErLyJfAdYBNcBiYD5wO/DBITYLAR8wxvSIiBd4TkQeAz4NPGWMuUVEbgZuBr4lIicDVwOnAHOBJ0XkBGNMDLjNef6t2IHkEuAx7KDTboxZIiJXAz8ErsrqN6BUjhWiCyabLrWRLDbV3B5gw+ZGntt9LNH2/hNncP2Fdf0mUmZCA8jkk+lHiK8CK4EXAYwxu0RkyP8pxv6Y0+P86HW+DHAZsMZpvw/YCHzLaX/QGBMCGkVkN7BSRPYCFcaYLQAicj9wOXYguQz4R2dfDwP/ISJiRrqep1ITVCZdapZlaAuE6cpisamuoF2Z95FXj1fmPXlOOTeuWcwpcyuzOsZ4AKkq8eF2jbwgoxp/Mg0kIWNMOJ48ExEPGZQDEhE3sANYAvynMeZFEZlljDkEYIw5lBSQ5mFfccQ1O20R5/bA9vg2Tc6+oiLSCUwDjiU9HhFZh31Fw4IFCzI8ZaUmjuG61HpDUVp7wkStzK5CIjGL/3r1IL/cuo9upyTK7Ipi1q2u46ITZmSVSHeJvTRupd+rAWSSyjSQbBKRfwD8IvIh4Cbgv4fbyOmWWi4iVcAfROTUIR6e6i/MDNE+1DYDj2MDsAFgxYoVerWiJqVUXWrRmMWxLJLpxhie3X2MOzc3cqAjCNhL3H7unAV8+sz5WdW00gAydWQaSG7Gzke8AazHzlPclemTGGM6RGQjdm7jiIjMca5G5gDxKm7NQPJCBvOBg077/BTtyds0O1dJlUBbpsel1GTWGYjQHghjZdjT++7hbn62cQ9vHOgEwCXwiTPmsva8hVSV+DJ+XrdLqCi2A4hLA8iUkGkg8QP3GGPuhESXlR9IO8tKRGYAESeI+IGLsZPhjwJrgVuc7484mzwKPCAiP8JOti8FthljYiLSLSLnYudovgD8e9I2a4EtwBXA05ofUVNdtsn0lq4+7nqukSffOV6Z99z6GtavrmfhtNKMn9ftEir9XiqKNYBMNZkGkqewA0E8ee4HHgfOH2KbOcB9TtBxAQ8ZY/4oIluAh0TkOmA/cCWAMeYtEXkIeBuIAl91usYAbuT48N/HnC+Au4FfOIn5NuxRX0oV1E+ffI+7nmukNxyj1Ofm+gvq+PrFJ+T9eS3L0B4I05lhMj0QjvLrbU38dkdzIujUzyjlxosWc9bC6oyfVwOIkkw+wIvIq8aY5cO1TQQrVqww27dvL/RhqEnqp0++x61P78YldteQZeyvb3xgSV6DSTbJ9JhleOzNw/z8+UbaA05l3lIfX161iA+fMjvjfIYGkKlFRHYYY1akui/TK5JeETnTGPOys8OzgGCuDlCpyeKu5xpxCXhcdlLaJRC1LO56rjEvgSQas2jtDdMbyiyZ/tLeNm7f1EDjsV4AijwurlpRy1Vn1+L3ZVaZVwOIGijTQPI3wG9FJJ7knoNO/FNqkN5wjIEDm1xit+daZzBCe29myfTGY73csWkP2/Yer8z74VNm8eVVdcwoz6wyr9slVPl9lDvrgigVl1EgMca8JCLLgBOx/wZ3GmOyKxGq1BRQ6rMnAya/z1rGbs+VUDTGsZ4wocjwwamtN8x9L+zl/71xKFGZd3ltJTdctJgTZpVn9Hwel8u+AvF7si7EqKaGIQOJiHzAGPO0iHx6wF1LRQRjzO/zeGxKTTjXX1DHrU/vJmpZ/XIk119QN+p9Z5NMD0Vi/O7lAzywbT8B52pofrWf9avrOX/xtIwCgsflorLES0WxBhA1tOGuSC4CngY+keI+A2ggUSpJPA+S61FbmSbTLWN4ZmcLdz7bSEu3XZm3otjDtect5JNnzMWbQW0rDSAqW8OO2hIRF3CFMeahsTmk/NJRW2oiyWZm+hvNnfxs0x7ePWxX5vW4hE+9bx6fP3cB5cXeYbbWAKKGNqpRW8YYS0S+BkyKQKLURBAv894RiAybTD/QEeTOZxvY/N7xEnOrl07nK6vrmVc1fGVeDSBqtDIdtfWEiHwTex2R3nijMUbLkSiVY5nOTO/ui/DLrfv5wysHiDqZ9GWzy7nxosWcNn/4yrwaQFSuZBpIvoydE7lpQHt+l31TagIa6drpma6ZHo1ZPPraIe7fspcupzLvzPIivnJhHe9fNhPXMEHB67YDSHmRBhCVG5kGkpOxg8gF2AHlWeyFrZRSSUa6dnpPKErbMMl0Ywwv7Gl1SsXb84FLfG4+u3IBnzlzHkXeoYcYawBR+ZJpILkP6AJ+6vx8jdP2V/k4KKUmqmzXTs90zfT3jnRz+6Y9vNp0vDLvR0+bwxfPX0RN6dCVeb1uF1Ul3owS7kqNRKaB5ERjzBlJPz8jIq/l44CUmsgyXTs90zXTj3aHuPu5Rp54+0hioZ2Vi6pZf9Fi6qYPXZnX63ZRXerLei11pbKV6V/YKyJyrjFmK4CInAM8n7/DUmpsjDSfkU4ma6dnkkwPhmP85qUmfrO9iZDzuEXTSrhxzWLOXlQz5DH4PC6qS3yUagBRYyTTv7RzgC+IyH7n5wXAOyLyBvby7Kfn5eiUyqOR5jOGMtTa6ZmsmR6zDI+/dZh7nt9La28YgOoSL19atYhLT50zZGXeIq+bKr9XA4gac5n+xV2S16NQqgCyzWdkIt3a6WfX1dDcHhwymf7yvnZu27SHPUftEfY+j4srz5rPNStr+13hDFTkdVNd4h3yMUrlU6ZFG/fl+0DU5JbrLqRcyDSfka3ktdPjZd6PdPWlffz+1gC3b97D1obj07IuPmkm119Qx8yK4rTbFXvdVJf4Mi7/rlS+6EcYlXf56ELKhUzyGaPR1RehrSd9mfeOQJj7tuzjv187mKjMe9q8Sm5cU8+y2RVp96tXIGq80b9ElXf56ELKhaHyGaMRjloc6wnRl6bMezhq8fuXm/nVtv30huzHzK0qZt3qei5cMj3tHA+fx0VNqU8DiBp39C9S5V2+upBGK10+Y6TBzRhDRyBCRzD1kF5jDBvfPcqdzzZy2OnqKiuyK/Nevjx9ZV4dhaXGO/3LVHmX7y6k0UjOZ4xGMGwP6Y3EUifT3zrYyW0b9/D2Ibsyr9slXLZ8Lteeu5BKf+qJgjoPRE0U+heq8i7bLqRUiXlg3CXrwR6u29oboqcv9cz0Q51B7nq2kWfePZpoW7VkGusurKe2JnUg1ZnoaqIZdj2SyUbXIymMeHAYrgspOTEfDzpdwQgGqPR7+wWi73/ylIIGk+6+CG29YWLW4P9DPaEoD7y4n9+93EwkZt9/wqwybrxoMWfUVqXcn8floqpUa2Gp8WlU65EolQuZdiGlSswfaA+CwJxKf6ItOVk/1kOLw1GL1t4QwfDgZHrMMi+xmocAACAASURBVPzx9YPc+8K+xJK4M8qKuO7COi4+KXVlXi3nriY6DSRqXEmVmI9a1qA32HiyfiyHFg+VTDfG8GJjG7dvamB/mz2IoNjr4pqVC7jyrPkUp6jM63YJVX4fFX4NIGpi00CixpVUiXmPywUD3mfjyfqxGlr8+JuHuX3THg50BplT4efqs2tZWW/XvNrT0sNtm/bw8v4OwK7Me8mps/nyqrqUlXldIlSVeKko9uIaouSJUhOFBhI1rqRKzJcXezCQMln/nUfeHNXQ4uG6xSzL8MfXDvIvf96JxyVUFHto7Q1x69O7+FJwEa80d/DnNw8nKvOetaCKG9YsZvGMskHP5RKh0u+l0q8BRE0uGkjUuJJqbsd3P3YykHq+R+3mkQ8t3rizhb9/+DW6+6JELYtj3SH+/uHX+NcrzmDNspkEwlGOdYe55/m9eFx28h+gyOOiszvELX/ZmZiRvrCmhBvW1LNyUc2gbioROwBVlfiGLLqo1ESlgUSNO+kS86naRjM7/Yd/3kl7IILbJXjcLoyB9kCEWx57h5PnVtATsof0HuoKUlHswRhDV1+UY0kjtSr9Xr54/kI+fvrcQUFCA4iaKjSQqAltNLPTG4714hISI6lEwMKi4VhvIogAzKnwc6AjQFdfNLE2CNjrpN+1dsWgCYMiQlmRh+oSL540s9WVmkw0kKgJLxez05NHYSWPx2pqCxCOWRztCSfaSrxuSovd/O3FJwwKImXFHqpLfGnLnSg1GeXtr11EakXkGRF5R0TeEpFvOO01IvKEiOxyvlcnbfNtEdktIu+KyEeS2s8SkTec+34qTie0iBSJyG+c9hdFZFG+zkdNPnXTSohZhljMwjKGmGWwDNRW+ekMRviPp3fz5fu28/ahLgBKfW5qSrycMKucv7v4xMSoLRGhvNhLbU0JM8uLNYioKSefVyRR4O+MMS+LSDmwQ0SeAL4IPGWMuUVEbgZuBr4lIicDVwOnAHOBJ0XkBGNMDLgNWAdsBf6EvdDWY8B1QLsxZomIXA38ELgqj+ekJpG//dCJfOv3r9MbjmJZBpdLKPd6WDangmvv3pbo3ppTWcxXLqznohP6V+aNd2FVlXjxul3jcs0VpcZC3j46GWMOGWNedm53A+8A84DLgPuch90HXO7cvgx40BgTMsY0AruBlSIyB6gwxmwxdv/D/QO2ie/rYeCDIjqzSw3NsgzHekIsmVXGtz6yjJNnVzKt1MfcCj8ul4s/vXmYnlCU0iI361fX8/Mvns2aE2ckgoiIUOH3UlvtZ0Z5USKIfO/Rt2jp7us3MXLjzpYCn61S+TcmORKny+l9wIvALGPMIbCDjYjEP7LNw77iiGt22iLO7YHt8W2anH1FRaQTmAYcG/D867CvaFiwYEGuTkvlST4/2ceH9MaXvF1ZX0O538NtG/fw5kG7C8sl8Ikz5vLF8xZRWXJ8jordheWhyj84iT5e11xRaizkPZCISBnwO+BvjDFdQ1wwpLrDDNE+1Db9G4zZAGwAu2jjcMescitdYEhX5TcfJU/iS972Jo3GOtzVx93PNvJU0lXDefXTWL+6ngXTjs9DyWQU1nhdc0WpsZDXQCIiXuwg8itjzO+d5iMiMse5GpkDxP8XNwO1SZvPBw467fNTtCdv0ywiHqASaEPlXaZXDelqYV3R3MHDLx8Y1F7qc+f0k70xhq5glPbA8SVve0NRHti2n4d3HK/Mu2RGGTesqefMBdX9ts90FNZ4XnNFqXzLWyBxchV3A+8YY36UdNejwFrgFuf7I0ntD4jIj7CT7UuBbcaYmIh0i8i52F1jXwD+fcC+tgBXAE+bqVYXvwCyKZR4x+YGIrEYrT1RwjELn9tFkcfFrU/vRrBniU8vK6LC7yUQjrK7pQevW4hYBp/bxYzyIsqKPCP6ZN8XiXG0+/hiUzHL8Kc3DvHz5/fS4VTmnVbq47oL6vjQybP6TRq0k+g+fJ7M0ojrV9fzzYdf40BHkJhlcLvsq5j4rHylJrN8XpGsAq4F3hCRV522f8AOIA+JyHXAfuBKAGPMWyLyEPA29oivrzojtgBuBO4F/NijtR5z2u8GfiEiu7GvRK7O4/koR6rgUOH3pLxq2NXSTWcggssluF1COGbRm1R+PRaO2Vc1lACGiGVA7Mq4UctwsKOPaWVeFk0bXLsqnVSLTW1rbOP2TXvY2+pU5vW4+Kuza7nq7NpE6RPIPoAkEwDjzEkxkrLfVanJKG+BxBjzHKlzGAAfTLPND4AfpGjfDpyaor0PJxCpsTMwOEQtw7HuMJFY96DHhqMWJM0ejw5YitYAxsDhziDiErzO+7ex4jPNDW29Ef7lU0OXPIl3te1r62VWeTFXrbCr8zYc7eH2TQ1s39cO2H+QHzllNl9atYgZ5UWJ7UcTQMAOrhV+L7OdNVMATbarKUNntqusDQwOImCJsdsH8LqFYMQeciuSYiSEIxQzuCxDbbUfEI71hBJXO36va8gFrDbubOG7j7yJS+xJg8d6QvzoyfdYNK2U7fvaEoUVl9dWcdOaxSyZefzqpqzYQ5V/5AEkTpPtairTQKKyNig4OG/UPvfgC9ATZlXQeKyH7j67GyxOGBxUBAjHLKaXFVPhvCkHwlFmlhenzcv8kzH858Y9ABR53FjGEAjHaOsN09IdAqC22s/6i+o5r35aYi5IrgJInCbb1VSmtRxU1k6YVcG0Uh8etxAzBo9bmFbqY+msikGPXb+6Hp/HzezKYk6cVZ4INqmCiDFwrCdMIBzFGEMgHE1U8k2epyFif3e74KdP76apPUA0FqOxtZfdR3tp7Q3b48YF/voDS7h77QrOXzw9MYx3frVdyiRXQSR+nl3BCLuOdPPOoU52HemmKxjJqAqxUhOdXpFMYSOd+HdefQ0v728nalkUOYl2r9ud8k1zYHXexTPKONAeoCvUf71zj0vsLjJj8LqEXS09ANRPLwX6dx0ZY4haBo9LONQZxCXCoc7QoOdeUF3Cp95nz10dbQ4kEwZA7HknDNGNp9Rko4FkihpuUaehtrt/6z4sy8KyIGBZRHrC/PX7lwwbhAxQVeLj0lNn8+OndmGMPYvcLfZ6IDFnn3uO9Sbmd+w52sPfP/wa00p9BCMxijxue1a6ge6+KMGIRaczlHegvkiUUqcWVpFn8Jrpmf6eMgm2d2xuoNLvZY4m29UUpF1bU1R8UScD9qJO2Is6/fDPO4fc7pbH3qEjEMEl9nyQImdBqD+9cSjl41PVoHr45QPMqyzG4xK8Lhdul2BZhmjMYAGRmEGI50wMbb1hekJRgpEY3X0RojGLg51BDneF0gYRgNaeMLMqikcVRDKtn9XUHug3jBg02a6mDg0kU1Tyok6C4BLBJXb7UBpbA/Z2LkFEcLns7RpbU79hpspteN3Hq+aKC2LGIC5wJyXrDce7hmIGjnSHuOmixVgWNB4L0ON0jc2qKBr8pPHtsvqNpD72cDTG4c4+3j3SzeHOPsLRGHdsbhj02NrqEoKR/s+oyXY1VWjXVgFNhbLj6YbFdgYj/NsVZ/Rb2XBXSzfHkhaQShazDLdvbuBAZxCAEp+bz52zgM+cOZ+P/fRZYikSEikGkWX1O3/vSJd91WbsoBaNxQhGYoPmwsDolvxVaqLTQFIg2ZQZyYe6aSXsPtqLJA3htQwsmT70J+j66aW8d6SbcKz/p+/5VamvDIYaFjtwZcNrNmzlWE9ryv1YBprbg7gEPn76XNaev5DqEh9+n5vFM0rZ3dKbuIqJd4stmdF/Nny2v/NAOJaYgwLHJ08mz8yPG82Sv0pNdBpICqTQZcdvvvQkvvnwa/SEoonaUFVFXm6+9KQht7v01Nm8c3jwDPbuUJSNO1sGHftQn9QHXh2cV1/DlobUgQTgnLoa1l9Uz6JppRR73YlA8g8fPXnQuZQVeQadS7a/86gTRST+T/zKxEo9HisXS/4qNRFpICmQQs+EXrNs5qCupUw+QW9paMPnFsJJfUkCBMOxlG/I6T6pQ/9y8Ue6gjy4vYmZ5T6Odof7DZ11CyyaVsq/fPo0irxuapwAMtS5nFdfwx2bG/jOI28murCy/Z27RPC47OV3jbHnpbiTZvQrpWwaSApkPMyEHskn6Kb2QCIfkfx2Go4ZdrUMvlJJ9zzXbNiK1y34vW5ixr6KCIZjdAUjiSDidgkVxR6KPC5uWrOY2ZXF/X5f6Z4jXRdWeZGHYCSW8e+8fnopu5xqxPHuv5hlEnNblFI2HbVVIOtX1xOJmZSzuMez2uoSEpX648kIR6paW+k0tQcocruIxAxdwQj7WoO0ByLEjF2CZVZ5EdNKvdRNK+UfP3EKn1lRmzaIDJRutJUxJqvf+bcuWUZ1iRfBLjYpQHWJl29dsizl4zfubOGaDVu54IdPc82GrbrMrpoy9IqkQCZqcnb96nq2OnmM5JVf3K7UtbZSicYsZpUXc6AjQHdftF/yurrEy+2fP4t51X6qS3yUFmX/J/rekS66+qK4ENwiRGOG1t4w0ZjFv125POPf+ZplM/nXDLv/Cj14QqlC0kBSQLlOzo50OHE2261ZNpNls8vZ3dJN/AKkyOOiqsRL3fSh1wyJr1bYcNTuLjrcdbysSZHHZSfIL1nGKfMqKcsygCSfQ0fQvuLwOOVQROwCk+GYyfp3nunjCz14QqlC0kCSY4WaGzLST8Qj2e5blyxLbJPpnIm+SIwDHQF+/WITD2zbT8C5Ciny2GXiF00rZf3qxVx6+pxRn/uhjiCWgUgsZs/ad8YF57POVqEHTyhVSBpIcqiQ3Rsj/UQ8ku2y6ZaLWYZHXznAT57aRVN7IDEvo7zYwxfOW8hnzpzP9PIiyos8iRLv2QbjgedQ7HXTF7XngMScJXsrSrNbZTFbtdUl7DzcSWcwiuXUEKv0e1g2uzJvz6nUeKGBJIcK2b0x0k/EI90uky6frr4Itz+zmzufa0wUYQR78am/+9BSZpQV8w+/f4PmjmAiYABZB+Om9gBugYajPYRjFm5nBS2XCCfOKh+TWeazK3xsaTi+tK9loD0QZXaFL2/PqdR4oYEkhwrZvTHS4cTx7aIxk1iV0O0SFtWMfBhyXyTG6wc6+c+nd7PpvaOJ9rIiN9PL7Bnwv35xP8GoGRQwSn3ujNeDjysv8rCrpQe3s/SvceZ9GAzvHO6m1Ofm+gvq8hrMn9p5FLccn/3uVJLnqZ1Hh9tUqQlPh//mUCEL9410OPH61fV0BiMc6AgScYa4xkc5ZTt8NRqz2NPSzXf/600+d+fWRBAp8riYX+2ntqaEsiIPZUUe9rYFUxZz3N3Sw7HuMFFnhnp8Pfh0c1SA48ORnVxIzLKrCMe7tnpCUe58tiGvw3F7wzE8bqHI46bY66bI48bjlpTlVJSabDSQ5FAh54asWTaT73/yFGaWF9MZjDCzvJjvf/KUYT+Fr1k2k2KPC8vYo5qilqGmxEuF35uyyi0Mni/xzDtHONrdx0+f2sWnfvYCv93RTCRmmFFWxIKaEmZXFFHl9+JxuRCRRLBNVXY9akxiPfh4VWJk6DkqPeEY86qKEys2DixhYhnoDsX4zh9ez+RXOSKlPjcDK6dYxm5XarLTrq0cKvTckJEMJ964s4VDXX14XPabtjHQHozg96XukosPKAhHY3T3RTnYHuSlva2U+jx09tk5Ar/XzWfPqeWL59fx3uFu/umPbxOMxPqN8KqfXppylnl8Kkom68HHxbvn6p0ijW8c6EzcF69mYgwc6Bq8imKuXH9BHbc+vZuoZeESO4hYxm5XarLTQJInE2WZ1Ts2N+B1uZw1zu1SIFj2+h/vq61O+fjuvjDtgaTEsgWdfVEE+Njpc7hpzWKWzCzH53FRW1OC2yVpa20NLOa4dGY57YEw3X3HcyTlxUPPURlYGDJuYOgxeXxRvn7xCQDc9VwjveFYIi8Tb1dqMtNAkkMTbXbzxp0tvLy/nXDUSgQ+l5MkxkjKLjl7jY7ooHaA+dV+/u3KMyge0GWV7kppqGKOsys9w1YLjl/tDbwSjF8RJDi3S/LczfT1i0/QwKGmJA0kOTSRZjfH12xPDiJw/A24tqq43zEbYzjc2UdXMHUQATjQHhwURIYykgCTLkgn7+unT77HT57aZZ+Lcz4ugRvGeR0zpSYqDSQ5NJFmNyev2T6QxyX9ksTdfRF+9eJ+7tzcQCTNWhwAFvab+Gg/laerFpzpsGDtZlJqbGkgyaHa6hL2tvbQFez/ZpfPGdUjFV+z3VmvqZ95VcX0hmOEojEef+swtz65m91HezLa713PNeblDXtXSzedgQguZ65IfFhwJJZ6WLB2Myk1djSQ5NB59TVs29uGS+yulHDMoqU7zDVn1xT60NKKj4xKDiiHO/uYXVHM2nu2sbWhLfHYar8XEdJeyQB096Xv+hqNcNRKDAuOH7clJqvS9Uqp/NB5JDm0paGNGWU+fG4XlgGf28WMMh9bkt6Mx4u6aSX2xL2kuXxxoZhhX3swEUROnVvBXWtXUFLkZm6VnwVDzHrP18AorzP817IMxhgs58AzLV2vlMqfvAUSEblHRFpE5M2kthoReUJEdjnfq5Pu+7aI7BaRd0XkI0ntZ4nIG859PxWnsp+IFInIb5z2F0VkUb7OJVNN7QGmlxVRP6OMZbMrqJ9RxvSyonGZI/noaXOIDfOu7xb458tP4aH153HxSbNYUGPP/agYkAcaCyfMqqCsyE3EsuiLWkQsi7IiN0tnVYz5sSil+svnFcm9wCUD2m4GnjLGLAWecn5GRE4GrgZOcbb5mYjEs723AeuApc5XfJ/XAe3GmCXAj4Ef5u1MMlTIEinZeuzNwwz3YT5m4PPnLqLEWRskeeb+SIxmBcHz6mvo6ovhdglFHjtP0tUX47z68dttqNRUkbdAYozZDAzs07kMuM+5fR9weVL7g8aYkDGmEdgNrBSROUCFMWaLsQsq3T9gm/i+HgY+GL9aKZRCL5+7cWcLl/5kMyd+5zFO/M5jXPLjTWnfrPdkmDxPFi/D4nVl/2uOz7Fp6e7rN3w302CypaGNimI3McsQihpilqGi2D0uuw2VmmrGOkcyyxhzCMD5Hh+3OQ9oSnpcs9M2z7k9sL3fNsaYKNAJTEv1pCKyTkS2i8j2o0fzV411pPWuciE+L+Tdw92EohahqMXOIz3c9Ksd/d6sIzGLV/e3E7HMsF1b6QQi6RPc6YLMHZsbiMT6r6MeicXS1vMaaFdLNz19MbxuF8VeF163i56+2JDFHJVSY2O8jNpK9e5jhmgfapvBjcZsADYArFixIq/VS3K9fG6m7tjcQFsgzMC3+EDE4ruPvMkzS9fQ1BZkw7N7eHhHc0blQsqLBn/OiAeEQbPHHUtmph7qnO3w3YF01JZS49dYB5IjIjLHGHPI6baKf1RuBmqTHjcfOOi0z0/RnrxNs4h4gEoGd6VNSqlKhTS1B4ileU9tag/yH8/s5ufP76UzGAHA7RJiQ0wuBEhVAT0eENJtWuVP/Sc12kDgdQvBSHbFHJVSY2Osu7YeBdY6t9cCjyS1X+2MxKrDTqpvc7q/ukXkXCf/8YUB28T3dQXwtDH5LMs3PqTLNZQXDf2Z4CdP7qIzGKHY4+JL5y9iRpmPBdXFQ5Y5D6V4k48HhHRe3Nuesn20w3d11JZS41ferkhE5NfAGmC6iDQD/xO4BXhIRK4D9gNXAhhj3hKRh4C3gSjwVWNM/PPwjdgjwPzAY84XwN3AL0RkN/aVyNX5OpfxJF09r+FiqACXnjqb9WsWs2x2OTsPd9PS3cf0Mhe9bZkPT45fGaST7krlhFkVNB7ryaqqb7L4ZE+3S/A63Wo6akup8SFvgcQYc02auz6Y5vE/AH6Qon07cGqK9j6cQDSVDFyf3Od2Mb3MR0eairxgz7K/8wsrWFlXQ3mxPQdk/ep6vvnwa7T2hNNvl6ItHhAOZ7m2R7zUe6qqvpmIT/bsH4g8bGlo4+tZHYlSKtfGS7JdZWDjzhbaesIEIjEE++ogErNobg8OmTy3DLz/xJm4BoyoCoRjQ85ErykdPPEwHhCyNdpFv+KTPWeUFyfajDHjcrKnUlONBpIJIp4bCUXtHj8DhGMmka4YLjk0MIh895E3CQyznniqkvHxgPDFe19Kuc1QGY/RjGiLr4I4cEXF8TjZU6mpRgPJBHHH5gbC0diguR+Zji4YONKrqT047DbhNAmPNctmUlvtT7mP+dX+DI8oOwNXQcy2a0wplT9atHGCaGoP0DVUlnsYA0d6ZWKoq4v/ddmpg1YcLPG5+V+XDUpn5UQhJ3sqpYamVyQTQHdfhBllRTRncBWRzsCRXpmYVuYb8v4SnxvL2OVK3C7J+1K2hZrsqZQaml6RjGM9oShNbQEOdgQ50jXyIAL2So3ZiKdU0tXCumNzA5V+L0tnlrNsdgVLZ5ZT6fdmXPJEKTV5aCAZh3pDUZrbAxzpDPLUziN8+d7tHOzMbrhtMhEGVSUeSqnPTW11yZCBoak9MCg4jddlhZVS+aVdW+NIIBylrTdMOGqx83AXt21s4I0DnaPe77zK4kRV4nii2uMiUVIlOaVe5BbqZ9iTBIcaXqujqJRScXpFMg4EwlEOdAQ53NlHU1uA//2nd7jpV68kgsi5o5i97RL458tPG5So/voHljKtzEeR14XXLfbywMDsyuOjroYKDIUuma+UGj/0iqRANu5s4Wcb97C/vZfZ5X4+tXwu7x3t4bc7mhOFDBfPKOXGixZz5sJqPvB/Nw27z4oiN12h411YboFvfHBpIkE9MFF9+vyqxATBsiIPR3tCeNyCMWbY4bWjnWColJo8NJBkIFW13dG8YT7+5mH+8Y9v4RahzOdmX1sv//T/3k7UqZpW6uPLqxbx4VNmU+RxDzt6CuyrCQOJ8u4usUdVnT6/Ku02A0dBxc8z08Cgo6iUUqCBZFjxGeVet/Srtvt9Bn/CH05fJEZ7IMzPNu7BLYJlGfa3hQg7yQoRuPachVx1di0lRR4q/V6qS7xksvCjAYIRC6/LlSizHoxY3PLYOxkfpwYGpdRIaCAZRrpqu3dsbsj4TTceQIJOSZKm9l6CEatfiZLyYg/FHhdfXLUIv8/NtNIifJ7jKayKYg9dfekLM8avRuKlUETAWIbGVh1FpZTKL022D2M0w1z7IvbSsgc7ggTDMdp6w/z4ifdo7Y0kgojf62ZBtZ8qv5f51SXMrChmTqW/XxABuP6CutydlFJK5ZBekQxjJMNcQ9EY7b0RAmH7CiIUifG7lw/wwLb9iQDidgnVfi9VJR5CUYNl4K8/sISyNAtUff3iE3hoexPNHanLm0wv9dIRjCLm+AqCloGlM0pHeupKKZURvSIZRjbDXEPRGEe6+jjQHiQQjmIZw1PvHGHtz1/irucaCYRjVBR7+Nr7l/D9T5zC/OoSekMx5lb6+cHlp/KBk2YNeSz/fPlpLKgpocrvScw8F4FPLZ/Dv1253M6nANGYhQDVJV6+dcmy3P9SlFIqiUyB1Wn7WbFihdm+fXtW2ww3mikctegIhOkJHc9hvNHcyc827eHdw90AeFzCp943j8+fu4DyYi8uEapLfFSWDF7zY6THku2oK6WUypSI7DDGrEh5nwaSkQtHLTqCYXqSkuAHOoLcubmBzbuOJdpWnzCdr1xYz7wqe7Jfic/DtDIfXrdeECqlJoahAonmSEYgErNoD/QPIN19EX65dT9/eOUAUWdCyImzy7nposWcNr8SAI/LRU2ZL20eRCmlJiJ9R8tCNGbRHojQE7LzJfG2R187yP1b9iWG584sL+IrF9bz/mUzcDlzQCr8XmpKfINWKlRKqYlOA0kGojGLjmCE7r7jAcQYwwt7Wp2chF3ivcTn5rMrF/CZM+dR5AwZ9nlcTC8rojjLMu5KKTVRaCAZQqoAAvDekW5u37SHV5vsooougY+dPocvnr+I6hK7nImIUF3ipdKf2cx0pZSaqDSQpJAugBztDnHP8408/taRROn1lXU1rF9dT9304/M1/D4308uKNJmulJoSNJAkSRdAguEYD760n4e2NxNyKvPWTS/lhovqOXvR8RLvbpdQU+qjvDi7Ib1KKTWRaSAhfQCJWYa/vHWYe57fS1tvGLAn+X1pVR2Xnjobd1LivKzYw7TSon5tSik1FUzpQJIugADs2NfObZv20HC0F7CT5leeNZ9rVtb2K5fiddvJdL9Pk+lKqalpSgaSaMyiMxihK0UA2dfayx2bG9ja0JZou/ikmVx3QR2zKooTbSJ2WfmqDMu8K6XUZDXlAknUMjS1BwcFkI5AmPte2Md/v34wscDUafMquWnNYk6cXd7vsZpMV0qp46ZcILEs0y+IhKMWv3+5mV+9uJ9epzLv3Kpi1q2u58Il0/tdbWgyXSmlBptygSTOGMPGd49y57ONHO6yS7OXF3u49tyFXLZ87qCrDU2mK6VUahM+kIjIJcCtgBu4yxhzy3DbvHWwk9s27uHtQ3ZlXrdLuHz5XK49dyEV/v5XG5pMV0qpoU3oQCIibuA/gQ8BzcBLIvKoMebtdNsc7Azy179+NfHzqiXTWL+6ftBCVZpMV0qpzEzoQAKsBHYbYxoARORB4DIgbSDp7otSBpwwq4wb1yzmjPlVgx5T7LWT6QOXu1VKKTXYRA8k84CmpJ+bgXMGPkhE1gHrnB979v3w4+/uA56A6cCxgY+fZKbCOcLUOE89x8ljIp7nwnR3TPRAkqrPadBKXcaYDcCGQRuLbE+3UMtkMRXOEabGeeo5Th6T7Twnet9NM1Cb9PN84GCBjkUppaakiR5IXgKWikidiPiAq4FHC3xMSik1pUzori1jTFREvgb8BXv47z3GmLey2MWg7q5JaCqcI0yN89RznDwm1XnKwFIhSimlVDYmeteWUkqpAtNAopRSalSmTCARkb0i8oaIvCoi2522GhF5QkR2Od+rC32c2RKRe0SkRUTeTGpLe14i8m0R2S0i74rIRwpz1NlJc47/KCIHfoam1QAABWhJREFUnNfzVRH5aNJ9E/Eca0XkGRF5R0TeEpFvOO2T5rUc4hwn22tZLCLbROQ15zz/yWmfNK/lIMaYKfEF7AWmD2j7P8DNzu2bgR8W+jhHcF6rgTOBN4c7L+Bk4DWgCKgD9gDuQp/DCM/xH4FvpnjsRD3HOcCZzu1y4D3nXCbNaznEOU6211KAMue2F3gROHcyvZYDv6bMFUkalwH3ObfvAy4v4LGMiDFmM9A2oDndeV0GPGiMCRljGoHd2GVmxrU055jORD3HQ8aYl53b3cA72JUbJs1rOcQ5pjPhzhHA2HqcH73Ol2ESvZYDTaVAYoDHRWSHUzIFYJYx5hDYf+TAzIIdXW6lO69UJWWG+o883n1NRF53ur7i3QQT/hxFZBHwPuxPspPytRxwjjDJXksRcYvIq0AL8IQxZtK+ljC1AskqY8yZwKXAV0VkdaEPqAAyKikzQdwGLAaWA4eA/+u0T+hzFJEy4HfA3xhjuoZ6aIq2CXGeKc5x0r2WxpiYMWY5drWNlSJy6hAPn7DnGTdlAokx5qDzvQX4A/al4xERmQPgfG8p3BHmVLrzmjQlZYwxR5z/rBZwJ8e7AibsOYqIF/sN9lfGmN87zZPqtUx1jpPxtYwzxnQAG4FLmGSvZbIpEUhEpFREyuO3gQ8Db2KXU1nrPGwt8EhhjjDn0p3Xo8DVIlIkInXAUmBbAY5v1OL/IR2fwn49YYKeo9iL3twNvGOM+VHSXZPmtUx3jpPwtZwhIlXObT9wMbCTSfRaDlLobP9YfAH12KMiXgPeAv6H0z4NeArY5XyvKfSxjuDcfo3dHRDB/mRz3VDnBfwP7FEh7wKXFvr4R3GOvwDeAF7H/o84Z4Kf4wXY3RmvA686Xx+dTK/lEOc42V7L04FXnPN5E/ie0z5pXsuBX1oiRSml1KhMia4tpZRS+aOBRCml1KhoIFFKKTUqGkiUUkqNigYSpZRSo6KBRKk8E5G5IvJwnp/jT/G5C0qNNR3+q5RSalT0ikSpIYjI5521JV4VkTucYnw9IvIDZ72JrSIyy3nsYufnl0Tk+yLS47Qviq+lIiJfFJHfi8ifnXUp/k/Sc31YRLaIyMsi8lunJtXA45kjIpud43lTRC502veKyHQRuSFpXY9GEXkm030rNVIaSJRKQ0ROAq7CLvi5HIgBnwNKga3GmDOAzcBXnE1uBW41xpzN0LWSljv7PQ24ylnwaTrwHeBiYxcX3Q78bYptPwv8xTmeM7BnhycYY2537jsbuwrAj7LYt1Ij4in0ASg1jn0QOAt4yS4ThR+70F4Y+KPzmB3Ah5zb53F8jYkHgH9Ls9+njDGdACLyNrAQqMJe4Oh557l8wJYU274E3OMUP/wvY8yrKR4DdlB72hjz3yLy8Qz3rdSIaCBRKj0B7jPGfLtfo8g3zfHkYozs/x+Fkm7HtxfsdSuuGfBc5wB3OD9+zxjzqLMEwseAX4jIvxpj7h+wzRexg9PXks5j0L6VyhXt2lIqvaeAK0RkJiTW3F44xOO3Ap9xbl+d5XNtBVaJyBLnuUpE5ARjzIvGmOXO16PO87cYY+7ErqR7ZvJOROQs4JvA541dlj3tvrM8PqXS0kCiVBrGmLexcwuPi8jrwBPY646n8zfA38r/394d4iAUA1EUvWORrALPBtgBFhxBsxkSJJ5lYAkG9oEBhRwEVQQD8+Gbe2ybzriXZpo04tj23T6odQEWwK7VOgCjN1snwDkiTjxDa/2yvgKGwL4N3LcfnC19xee/UkciYgDcMzMjYgbMM3Pad1/SrzkjkbozBjbtA6crsOy5H+kvvJFIkkqckUiSSgwSSVKJQSJJKjFIJEklBokkqeQBifLj7u7XGSgAAAAASUVORK5CYII=\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": 12, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>engine-size</th>\n", | |
| " <th>price</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>engine-size</th>\n", | |
| " <td>1.000000</td>\n", | |
| " <td>0.872335</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>price</th>\n", | |
| " <td>0.872335</td>\n", | |
| " <td>1.000000</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " engine-size price\n", | |
| "engine-size 1.000000 0.872335\n", | |
| "price 0.872335 1.000000" | |
| ] | |
| }, | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df[[\"engine-size\", \"price\"]].corr()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Highway mpg is a potential predictor variable of price " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7f6aa88112b0>" | |
| ] | |
| }, | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.regplot(x=\"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": 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>highway-mpg</th>\n", | |
| " <th>price</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>highway-mpg</th>\n", | |
| " <td>1.000000</td>\n", | |
| " <td>-0.704692</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>price</th>\n", | |
| " <td>-0.704692</td>\n", | |
| " <td>1.000000</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " highway-mpg price\n", | |
| "highway-mpg 1.000000 -0.704692\n", | |
| "price -0.704692 1.000000" | |
| ] | |
| }, | |
| "execution_count": 14, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df[['highway-mpg', 'price']].corr()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>Weak Linear Relationship</h3>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Let's see if \"Peak-rpm\" as a predictor variable of \"price\"." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7f6aa878f5f8>" | |
| ] | |
| }, | |
| "execution_count": 15, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>" | |
| ] | |
| }, | |
| { | |
| "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": 16, | |
| "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": 16, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "df[['peak-rpm','price']].corr()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
| "<h1> Question 3 a): </h1>\n", | |
| "\n", | |
| "<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n", | |
| "<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n", | |
| "</div>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 17, | |
| "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": 17, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute\n", | |
| "df[['stroke','price']].corr()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Double-click <b>here</b> for the solution.\n", | |
| "\n", | |
| "<!-- The answer is below:\n", | |
| "\n", | |
| "#The correlation is 0.0823, the non-diagonal elements of the table.\n", | |
| "#code:\n", | |
| "df[[\"stroke\",\"price\"]].corr() \n", | |
| "\n", | |
| "-->" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
| "<h1>Question 3 b):</h1>\n", | |
| "\n", | |
| "<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n", | |
| "<p>Verify your results using the function \"regplot()\".</p>\n", | |
| "</div>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 18, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO29eZhc5Xng+3tr6b1bawuEWljIiAhEzCYTPDiKAp4bvATsubINz7Xh3sERw5ABTzZDbkIcPH7Gih0TE48J8nINJDYmSiZWHMCxkTXYEwQIDMYCGWRJoAah1tJS77Wc894/zneqq6qru6u7a+16f89TqlPfWeo7p0vnPe8uqophGIZhzJZItSdgGIZh1DcmSAzDMIw5YYLEMAzDmBMmSAzDMIw5YYLEMAzDmBOxak+g0ixdulRXrVpV7WkYhmHUFc8+++wxVe0utK7hBMmqVavYvXt3tadhGIZRV4jIa5OtM9OWYRiGMSdMkBiGYRhzwgSJYRiGMSdMkBiGYRhzwgSJYRiGMScaLmrLMIzC7Nzbx31P7OdQ/wgrF7Vx04bVbFy7rNrTMuoA00gMw2Dn3j7u3L6HvsExFrbG6Rsc487te9i5t6/aUzPqgLILEhGJishPReR77vOnReQNEXnevd6Xte0dIrJPRH4hIr+VNX6JiLzo1t0jIuLGm0XkO278KRFZVe7zMYz5yH1P7CceFdqaYogE7/GocN8T+6s9NaMOqIRGchvwct7Y3ap6oXs9AiAi5wHXAuuAq4CviEjUbX8vsBlY415XufEbgX5VPRu4G9hS1jMxjHnKof4RWuPRnLHWeJTe/pEqzcioJ8oqSESkB3g/8LUiNr8GeEhVE6p6ANgHXCoiy4EuVX1Sgy5cDwAfzNrnfre8Dbgy1FYMwyielYvaGE15OWOjKY+eRW1VmpFRT5RbI/kr4I8AP2/8d0XkZyLyDRFZ5MZWAIeytul1Yyvccv54zj6qmgZOAUvyJyEim0Vkt4jsPnr06BxPyTDmHzdtWE3KU0aSaVSD95Sn3LRhdbWnZtQBZRMkIvIBoE9Vn81bdS/wduBC4DDwl+EuBQ6jU4xPtU/ugOpWVV2vquu7uwvWHDOMhmbj2mXcdfU6lnW2cGo0xbLOFu66ep1FbRlFUc7w38uBq50zvQXoEpG/VdWPhRuIyFeB77mPvcDKrP17gDfdeE+B8ex9ekUkBiwATpThXAxj3rNx7TITHMasKJtGoqp3qGqPqq4icKLvUNWPOZ9HyIeAn7vl7cC1LhLrLAKn+tOqehgYFJHLnP/jeuC7Wfvc4JY3ue+YoJEYhmEY5aMaCYl/ISIXEpigDgI3AajqHhF5GHgJSAO3qGro/bsZ+CbQCjzqXgBfBx4UkX0Emsi1FToHwzAMwyGN9gC/fv16tX4khmEYM0NEnlXV9YXWWWa7YRiGMSdMkBiGYRhzwgSJYRiGMSdMkBiGYRhzwgSJYRiGMSdMkBiGYRhzwgSJYRiGMSdMkBiGYRhzwgSJYRiGMSesZ7thGJNifdyNYjCNxDCMglgfd6NYTCMxDAOYqH30DycyfdwB2ppijCTT3PfEftNKjBxMIzEMo6D28erRIdJebnNT6+NuFMIEiWEY3PfE/oz2IRK8xyMRjgwmcrazPu5GIUyQGIbBof4RWuPRnLHTupqtj7tRFCZIDMNg5aI2RlNezlgsGuGcZR3Wx92YlrI720UkCuwG3lDVD4jIYuA7wCqCDokfUdV+t+0dwI2AB9yqqt9345cw3iHxEeA2VVURaQYeAC4BjgMfVdWD5T4nw5hv3LRhNXdu38NIMk1rPMpoyiPlKX/6/rUmOIxpqYRGchvwctbn24HHVXUN8Lj7jIicR9Aqdx1wFfAVJ4QA7gU2E/RxX+PWQyB0+lX1bOBuYEt5T8Uw5icb1y7jrqvXmfZhzIqyaiQi0gO8H/gs8Htu+Bpgo1u+H9gJfMqNP6SqCeCA68N+qYgcBLpU9Ul3zAeADxL0bb8G+LQ71jbgyyIi2mj9gw2jBGxcu8wEhzEryq2R/BXwR0B2DOFpqnoYwL2Hv9wVwKGs7Xrd2Aq3nD+es4+qpoFTwJL8SYjIZhHZLSK7jx49OtdzMgzDMLIomyARkQ8Afar6bLG7FBjTKcan2id3QHWrqq5X1fXd3d1FTscwDMMohnKati4HrhaR9wEtQJeI/C1wRESWq+phEVkOhPUWeoGVWfv3AG+68Z4C49n79IpIDFgAnCjXCRmGYRgTKZtGoqp3qGqPqq4icKLvUNWPAduBG9xmNwDfdcvbgWtFpFlEziJwqj/tzF+DInKZiAhwfd4+4bE2ue8w/4hhGEYFqUatrc8BD4vIjcDrwIcBVHWPiDwMvASkgVtUNQxsv5nx8N9H3Qvg68CDzjF/gkBgGYZhGBVEGu0Bfv369bp79+5qT8MwDKOuEJFnVXV9oXWW2W4YhmHMCRMkhmEYxpwwQWIYhmHMCRMkhmEYxpwwQWIYhmHMCWu1axhMbDN704bVVnfKMIrEBInR8IRtZuNRybSZvXP7Hu6ChhcmJmCNYjDTltHwFGwzGxXue2J/tadWVQr1cb9z+x527u2bfmejoTBBYjQ8hdrMtsaj9PaPVGlGtYEJWKNYTJAYDU+hNrOjKY+eRW1VmlFtYALWKBYTJEbdsXNvH9dt3cW7t+zguq275mxquWnDalKeMpJMoxq8pzzlpg2rSzTj+sQErFEsJkiMuqIcdntrM1sYE7BGsVjUllFXZNvtAdqaYowk09z3xP453fitzexENq5dxl0E17y3f4Qei9oyJsEEiVFXHOofYWFrPGfM7PblwwRs/VOJEG4zbRl1hdntDaN4KhXCXc6e7S0i8rSIvCAie0Tkz934p0XkDRF53r3el7XPHSKyT0R+ISK/lTV+iYi86Nbd4zol4ropfseNPyUiq8p1PkZtMJ/s9qUOGjCMfCoVwl1OjSQBXKGqFwAXAleJyGVu3d2qeqF7PQIgIucRdDhcB1wFfEVEwtjDe4HNBO1317j1ADcC/ap6NnA3sKWM52PUAPPFMW7JfkYlqFQId9l8JK53+pD7GHevqdoxXgM8pKoJ4IBrn3upiBwEulT1SQAReQD4IEG73WuAT7v9twFfFhGxvu3zm/lgty9X0IBhZLNyURt9g2OZ3xmUxxRcVh+JiERF5HmgD/iBqj7lVv2uiPxMRL4hIovc2ArgUNbuvW5shVvOH8/ZR1XTwClgSYF5bBaR3SKy++jRoyU6O8OYPZbsZ1SCSpmCyypIVNVT1QuBHgLt4nwCM9XbCcxdh4G/dJtLoUNMMT7VPvnz2Kqq61V1fXd39wzPwjBKz8pFbRwfTrD/6BB73xpg/9Ehjg8nLGjAKCmVMgVXJPxXVU+KyE7gKlX9QjguIl8Fvuc+9gIrs3brAd504z0FxrP36RWRGLAAOFGOczDmN5Wucvuu1Yt5+uAJIgIRgaTn0zeY5Lp3Li7bdxqNSSVMweWM2uoWkYVuuRV4D7BXRJZnbfYh4OdueTtwrYvEOovAqf60qh4GBkXkMhetdT3w3ax9bnDLm4Ad5h8xZko1HN9P7j9Bd0cTTdEIvkJTNEJ3RxNP7rfnIKP+KKdGshy430VeRYCHVfV7IvKgiFxIYII6CNwEoKp7RORh4CUgDdyiqmHCwM3AN4FWAif7o27868CDzjF/giDqyzBmRDUc34f6R1ja0Ux3Z0tmTFXNR2LUJeWM2voZcFGB8Y9Psc9ngc8WGN8NnF9gfAz48NxmajQ61ciWr1Q0jWFUAstsNxqeamTLz6fESsMwQWI0PNW4qc+XxErDACvaaBhVq3I7HxIrDQNMIzGMHCzkzzBmjgkSo+GxuleGMTfMtGU0PFb3ypjPWD8Sw6gAVvfKmK/UfT8Sw6gXrFmWMV+ZD/1IDKMusJyO+sIaghVPpbRtEyRGw2M5HfWDBUbMjEpp2+ZsNwwsp6NesMCImXHThtXcuX0PI8k0rfEooymv/vqRGIZhlBILjJgZ86ofiWEY9Uml+7RMhxW7nDl13Y/EMIz6phb9ERYYUZuYIDEMoyCVCh2dCRYYUZuYacswjIJUo09LMVhgRO1Rzla7LSLytIi8ICJ7ROTP3fhiEfmBiLzq3hdl7XOHiOwTkV+IyG9ljV8iIi+6dfe4lru4trzfceNPiciqcp2PYTQalqhpFEs5TVsJ4ApVvQC4ELhKRC4DbgceV9U1wOPuMyJyHkGr3HXAVcBXXJtegHuBzQR93Ne49QA3Av2qejZwN7CljOdjGA2F+SOMYimbINGAIfcx7l4KXAPc78bvBz7olq8BHlLVhKoeAPYBl4rIcqBLVZ9UVQUeyNsnPNY24MpQWzEMY26YP8IolrL6SJxG8SxwNvA/VPUpETlNVQ8DqOphEQl/lSuAXVm797qxlFvOHw/3OeSOlRaRU8AS4FjePDYTaDSceeaZpTtBw5jnmD/CKIayRm2pqqeqFwI9BNrF+VNsXkiT0CnGp9onfx5bVXW9qq7v7u6ebtqGYRjGDKhI+K+qngR2Evg2jjhzFe49DErvBVZm7dYDvOnGewqM5+wjIjFgAXCiLCdhGIZhFKScUVvdIrLQLbcC7wH2AtuBG9xmNwDfdcvbgWtdJNZZBE71p50ZbFBELnP+j+vz9gmPtQnY4fwohmEYRoUop49kOXC/85NEgIdV9Xsi8iTwsIjcCLwOfBhAVfeIyMPAS0AauEVVw9jDm4FvAq3Ao+4F8HXgQRHZR6CJXFvG8zEMwzAKII32AL9+/XrdvXt3tadhGMYsqbX6X42CiDyrqusLrbMSKYZh1A079/bxB9te4KeH+jkyMMZPD/XzB9tesH4kVcYEiWEYdcPnHn2ZkyMp1IeoCOrDyZEUn3v05WpPraGxWluGYdQNB46PEBGIRILIfxFQXzlw3PqRVBPTSAzDMIw5YYLEMIy6YfXSdnwFXxVF8VXxNRg3qocJEsMw6oZPXbWWRW1xBEh7PgIsaovzqavWVntqDY0JEsMw6oaNa5fx+U0XcNGZi1i+oJWLzlzE5zddYOG/VaZoZ7uIvA1Yo6o/dJnqMVUdLN/UDMMwJmKFJGuPojQSEfkdgjLt97mhHuCfyjUpwzAMo34o1rR1C3A5MACgqq8C9khgGIZhFC1IEqqaDD+4SruNVVvFMAzDKEixguR/icgfA60i8u+Bvwf+uXzTMgzDMOqFYgXJ7cBR4EXgJuAR4E/KNSnDMAyjfig2aqsV+IaqfhUyLXRbAatLYBhGRbHqv7VHsRrJ4wSCI6QV+GHpp2MYhjE5O/f2cef2PfQNjrGwNU7f4Bh3bt9j1X+rTLGCpEVVh8IPbrltqh1EZKWI/EhEXhaRPSJymxv/tIi8ISLPu9f7sva5Q0T2icgvROS3ssYvEZEX3bp7XKdEXDfF77jxp0RkVfGnbhhGvXHfE/uJR4W2phgiwXs8Ktz3xP5qT62hKVaQDIvIxeEHEbkEGJ1mnzTw+6p6LnAZcIuInOfW3a2qF7rXI+6Y5xF0OFxH0Nv9K86EBnAvsJmg/e4atx7gRqBfVc8G7ga2FHk+hmHUIYf6R2iNR3PGWuNRevvNyl5NivWRfBL4exF5031eDnx0qh1cr/XDbnlQRF4GVkyxyzXAQ6qaAA649rmXishBoEtVnwQQkQeADxK0270G+LTbfxvwZRER69tuzFca3T+wclEbfYNjtDWN37pGUx49i6Y0kBhlpiiNRFWfAdYS9E7/z8C5qvpssV/iTE4XAU+5od8VkZ+JyDdEZJEbWwEcytqt142tcMv54zn7qGoaOAUsKfD9m0Vkt4jsPnr0aLHTNoyawvwDcNOG1aQ8ZSSZRjV4T3nKTRtWV3tqDc2UgkRErnDv/wH4beAcAtPSb7uxaRGRDuAfgE+q6gCBmertwIUEGstfhpsW2F2nGJ9qn9wB1a2qul5V13d3dxczbcOoOcw/ENTZuuvqdSzrbOHUaIplnS3cdfW6htLKapHpTFu/AewgECL5KPCPU+0sInECIfJ3qvqPAKp6JGv9V4HvuY+9wMqs3XuAN914T4Hx7H16Xbb9AuDENOdkGHXJof4RFrbGc8Ya0T9gRRtrjykFiar+mYhEgEdV9eGZHNhFVn0deFlVv5g1vtz5TwA+BPzcLW8HviUiXwTOINB8nlZVT0QGReQyAtPY9cBfZ+1zA/AksAnYYf4RY75STf9Ao/tmjKmZ1keiqj7wu7M49uXAx4Er8kJ9/8KF8v4M+E3gv7rv2QM8DLwEPAbcoqqeO9bNwNeAfcAvCRztEAiqJc4x/3sEGfiGMS+pln/AfDPGdEgxD/Ai8qcE4b7fAYbDcVWtOzPS+vXrdffu3dWehmHMilAz6O0foadCmsF1W3dN0IRGkmmWdbbw7c2XlfW7jdpBRJ5V1fWF1hUb/vsfCXwi/zlv3EIlDKOCVMM/YL4ZYzqKTUg8D/gfwAvA8wQ+inXlmpRhGLXDykVtjKa8nDHL3TCyKVaQ3A+cC9xDIETOdWOGYcxzLHfDmI5iTVu/oqoXZH3+kYi8UI4JGYZRW1FSG9cu4y6ouG/GqB+K1Uh+6sJvARCRXwP+d3mmZBiNTS1HSVlsvVGIYgXJrwH/JiIHXe2rJ4HfyArjNQyjRNRaBnstCzajNijWtHXV9JsYhjFTCpmwai1KKluwAbQ1xRhJprnvif1m3jKAIgWJqr5W7okYRqMRPunHo5LzpN/ZHGM05dVMhdtaE2xG7VGsacswjBIzmQlLVWsqSsrCf43pMEFiNBw79/Zx3dZdvHvLDq7buqtqtv7JmjQNJ72aqnBr4b/GdBTrIzGMecFk5qS7oOI36qmKME6WwV6NsGAL/zWmwwSJ0VDUkuP4pg2ruXP7HkaSaVrjUUZT3pRP+jv39vGH215gcCxN2vc5NpjgD7e9wOc3XVARYWKCw5gMM20ZDUUt9fyeaZOmLY/tpX8khQKxaAQF+kdSbHlsb0XnbRj5mEZiNBS11vN7Jk/6+48NExGISNAYVARUlP3HhqfZ0zDKi2kkRkNhjmPDKD0mSIyGop57fp+1pA1fwfcVVcX3FV+DccOoJmUzbYnISuAB4HTAB7aq6pdEZDFBg6xVwEHgI6ra7/a5A7gR8IBbVfX7bvwS4JtAK/AIcJuqqog0u++4BDgOfFRVD5brnIz5Qb06jm9/77n8wbYXGEqk8XwlGhEWNse5/b3nVntqRoNTTo0kDfy+qp4LXAbcIiLnEbTDfVxV1wCPu8+4ddcS9Dm5CviKiIRe0XuBzQR93NcwXrLlRqBfVc8G7ga2lPF8DKOqbFy7jC9suoCLVi7i9K4WLlq5iC9MEbFVK/kyxvynbBqJqh4GDrvlQRF5GVgBXANsdJvdD+wEPuXGH1LVBHDA9WG/1BWJ7FLVJwFE5AHggwR9268BPu2OtQ34soiIFtM/2DDqkGK1qVrKlzHmPxXxkYjIKuAi4CngNCdkQmET/qpXAIeydut1Yyvccv54zj6qmgZOAUsKfP9mEdktIruPHj1ampMyjBqm1ioIG/ObsgsSEekA/gH4pKoOTLVpgTGdYnyqfXIHVLeq6npVXd/d3T3dlA2j7qmlfBlj/lPWPBIRiRMIkb9T1X90w0dEZLmqHhaR5UBouO0FVmbt3gO86cZ7Coxn79MrIjFgAXCiLCdjGBXknh++wtd+coDhpEd7U5RPvPssbn3POUXvX+p8mVrq2GjUHmXTSEREgK8DL6vqF7NWbQducMs3AN/NGr9WRJpF5CwCp/rTzvw1KCKXuWNen7dPeKxNwA7zjxj1zj0/fIUv7djHaMojFgkEwJd27OOeH75S9DFKmS9jja0aC1UlkfYYGEtxbCjBmydHp9Vky6mRXA58HHhRRJ53Y38MfA54WERuBF4HPgygqntE5GHgJYKIr1tUNaxdfTPj4b+PuhcEgupB55g/QRD1ZRg1x0ye6L/2kwNEBGKR4DkvIpD2fb72kwNFayWlLLRYS/XJjNKiqiQ9n0TaJ5HySXo+ybRP/vN4PDq1zlHOqK2fUNiHAXDlJPt8FvhsgfHdwPkFxsdwgsgwapWZRlANJz0iKGMpL8fh5/npWX3/XFX0WmtsZWa22ZFyAiOZ9kk5gZF2ya1zxWptGUaZue+J/aQ8j+NDaZKeT1M0QldrbNIn+uZYhJGkN2FcNbiJbly7bNqbaSnDf2upPpmFNReH72ugZaQ9EmmfsZSH55fP6m+CxDDKzKt9g5waSRGJCNGIkPaVY4NJUt5gwe0Xt8YKChKBTPjudDfTUpqjZlrufjJKoUmYma0wyTyhkUz7Ff1+EySGUWaSaR/yqvb6opP/Z49MtEdHgGhU6O0fKepmWkpz1Ma1y9jUe3JCFFmxiZH3PbGfV/sGGRxLs6gtztKO5llrErVmZqs0gSN83JcRvvwqxxiZIDGMMhOPCqOpwNwgEpioAJqihV2IKxe1cWwwgTIufHxfkQj0LGor6mZaSnPUzr19PLjrNZJpHyEQgA/ueo139CycUghkm6FGEml8VY4PJ2mORelqjc9Kk6glM1u5CYVGIuWT8DwSqcC3UYtY9V/DKDPnnNbFkvYmYlHBUyUWFZa0N7HmtK6C29+0YTWdLTE8X/F8P3ip0tEc46YNq1m5qI3RVK7pK/9mWsrw39k21MrWnFKuyGQE4dhQApidJjGf2wAk0h6DLuT2jZOjHDw+wpsnRzk+nGBoLF2zQgRMkBhG2blpw2qaYlFOX9DCr5zWyekLWmiKRSe9+W1cu4zPb7qANcs6EBFEhLO72zMFGou5mW5cu4xNF6/g6GCCl98a5Ohggk0Xr5iVHyG7oZYgRESICNM21MrOrm+KRvD8INR0OOmx/+gQx4cTM9Yk6rkNQIjnBxF5p0ZTHB0MhMaBY8O80T/K0cEEA6MpEimvJNFUlcJMW8a8oVbDQmeb07GwrYnuzvSEcynmeDv39rHtuTfo7mzmTOcg3/bcG9Oao0pJthmqoznGkcFEZt1w0mM05XHdO8+c8XHrpQ2A7wRn6M9IeT6ptJL2a1ezmC0mSCpIrd7o5gO1HhY6k5vfVOcC5PyGPnPN+QWPW8roprOWtLHv6DCS5ePxFc5eOrU2kR3tdXIkmbNOBFB49Odvzaj0Sy0S+jLC3IzkPBYYk2GCpELU+o2u2sxVyM40V6OWyD/3kyPJguey5bG9DCe9on5Ds4lumuxvMJOGWvnH2HTxCp7cf4JfHh1GgFhEiLksac/3667ffNrLjZgKBUijYz6SCmFlvSenFLWcXu0b5NhgkrS70YW5Gq/2Fc7VqBUKnfsvjgzSN5CYcC77+oaK/g0V45Cfbh7h36DYhlqFjrHtuTe4acNqmmMR4tFxIVLrhPWmBsdSHB9KcPjUKK8dH+b1EyO8dWqME8NJhhK17QCvJKaRVIhGj3+filKYYWacq1EjFDp3AE+hKe9c0r4WXRp+pkmE9z2xn2Q6VwvqbBnX6IoxzU31d5yteawSeL6Oaxie5/wZpSkd0iiYIKkQjRT/PlNKIWRnmqtRKxQ695Cw1pYQ5ChGJfjNFPMbmqmD/5UjAwyMpYkgREVIe0HOR9qbqoXQ9OcS/h0/c835Ve83HxYoDAVFKDwayZdRLkyQVIhSlZmYj5RCyJ5zWhcHjg0xOJb9RB3nrKUd5ZhyySh07rGIkPQ0kCBOkqgPZyxqzYT9FvMbmomDP+UpKU/JL/GY9Ip/Kp/q7xiax0pRjbgYPD8wTSVS434MM0OVDxMkFWIuZSbmO6UQsuExTl8Qq0lBPZkju9C5+6pEXRn5ULvyVGlvinL7e88ty804mZ5Y22uq8UJM93csR9iu7ysp3ycdahhekAluWkZlaThBkvaVY0OJTFKVuPdoJEi2Egls0sH68W3mSi3E9dcqpeidUcr+G6Vmuoi9/HmfGk3R3hTl2FAyo12d3tHMcNIrWw5FapL7bjheTFRdOf8GGT+GN26OarQQ21qmbIJERL4BfADoU9Xz3dingd8BjrrN/lhVH3Hr7gBuBDzgVlX9vhu/hPGmVo8At6mqikgz8ABwCXAc+KiqHpxuXr6vDIymZnouPHPgOA89fYg3B8ZYsaCVG971Nn79nG6i0cCmHI0EgifqKrzmY1VLp6YUN8haTVSb7m+fP+/rtu6ib3CM1d3jZrmRZJplnS1lm2PoWJbwHw2MXKo6o9D1uf4NVAMTWyLt5QiOcpZAN3IJ82IGx9IMjKUYHEsXrEadTTk1km8CXya42Wdzt6p+IXtARM4j6G64DjgD+KGInOM6JN4LbAZ2EQiSqwg6JN4I9Kvq2SJyLbAF+Gg5TuSpXx7nSzteJRYROpuj9A2O8d8f28tI0uPS1YsL7pMtWCIiHDw+zIKWGOksO21TNMLrx4cZHEtltptKGBn1yUyDCarhT+tojjGcTKMamNICrRzam2JleQhKe0FTpaQXmKXSrulSqRotlYun95/goWcOcXhglOVdrVz7zpWT3gOqjaoynAxCmAfH0gyMBu+DiTSDYykGRtPB57EUA+49FB6pGfjGoLwdEp8QkVVFbn4N8JCqJoADrnXupSJyEOhS1ScBROQB4IMEguQa4NNu/23Al0VEytGz/aFnDhGLSCb0MvzP/dAzhyb9EXm+4qGEofyndbZwfDiRE745mvLo7mzhaFbpiGxikQiRSO57VCSzPG6CGzfRlcIMZ5SWmQYTVMNM94l3n8WXduwjGgkEiO/Ccz/x7rN4+NneWUfVeb5mOvOlskqF1KOG8fT+E5kHyq6WGMeHE3xpx6vcxpqyChPPV4YSuTf6QDDkjg0lJo6V6jJ3NE8tKqrhI/ldEbke2A38vqr2AysINI6QXjeWcsv547j3QwCqmhaRU8AS4Fj+F4rIZgKthhU9K2c84cMDo3S15F6qlniEtwZGiz7Gte9cyZd2vMpoyqMlHmEsFTx9XfvOyeeT9n3wIcnM7MAZTSgiOYInKoJEsoRPlk8oKMZnAqkczEbDKIWZbibVAsIyJfnBILe+5xye3H9iSkEYahdpXzOZ3ymnZdSjwJiMh545RCrtcTLpkfJ84tEI7U3RKR8os0l5fkYDyBEI4djo+Fj2+qHE7Fos5xMR6GyJ09kSo7MlRpdb7soeax0f62iOufE4LfEoZ941+bErLedAW+QAACAASURBVEjuBT5DYH79DPCXwH+kcG93nWKcadblDqpuBbYCvOPCi2f8y17e1TpBmxhL+Zze1Vr0MS5dvZjbWMNDzxzirYFRTi+jWuyr4nsaeJvmgIggZAmayHgQQjA2LngywQkRzEyXRzU0jNmU5Ln1PecUrHv1O79+Fn+2fQ++pmiJRRlJBTfS/3DRCg4cG65pU1QpOXg8CC8P/0+k0j4n0j6jqQH+5WeHs0xE4+aioSyBkF9pYLbEozIuEJrHb/7jQiFOV55g6GyO09YczSTslpqKChJVPRIui8hXge+5j71A9qN5D/CmG+8pMJ69T6+IxIAFwIlyzHs22kQhLl29uGbtqYVQ1UAyh//MIUAmPxgh1IqiEcmJnMvOTM9oTNS/plTpQIBi/Bqqiuc0Cc9XPFU8b/xz2oXVrlrazi0bz57wEHTJqkV1K0Ty/Qfhzf/U6ESNIRQKp0bT40+qWac9nPT5yx+8MuM5tMQiOUIgEAChRhB87mwdFxbhuuZYpOb+H1RUkIjIclU97D5+CPi5W94OfEtEvkjgbF8DPK2qnogMishlwFPA9cBfZ+1zA/AksAnYUQ7/CFRWm5iv5PuMZotIYK4TgUieppOjPbn1gWlvXCBla1SRbG1qHmlNqsrrJ4ZZ0BrPmJZUlVgkCPro7R9xTbOK/+/yi7cGeLVvkNGUx+BYml+8NTDj3385HNXF+g9yncrBcqmsbgKcvqAlT0MobELqaImxoDUwGzXF6qPuWDGUM/z328BGYKmI9AJ/BmwUkQsJ5PlB4CYAVd0jIg8DLwFp4BYXsQVwM+Phv4+6F8DXgQedY/4EQdRX2ag3bWK+oqqkw+eF0lgKMkzwLU3iMwoFVrAcSKhQUGXmmbUcalThfoXMC75qEDFFliYYHisr4VxRfA22CRzigQbh+xqYNN267o7CwR2ndbbMuP7Yg/92kPt3vea0xqCT3/27XgPg4/9uVVHHmM5RHfoPBrJ8BUOJyvoPOjJP/rEsQTCuIWx//jAnRxMu4VGJR4WO5ig9izr44kcvKMk86hWpV9V0trzjwov1n37wRLWnYeRRT2GVlWCu1+Pp/Sf4zPf2MJLyM87GtniEP/3Auhlf19/+65+QSHtEI+NP0J7v0xyL8s//5d2ZsUL5B6Fg+NbTrzM0liYiQZa+55NJJoxFIiX1H4RP/rkCYdx/EAqGcbNSnLam6f0H2cIw28R92xXljdqqBeLRCGcuaX9WVdcXWt9wme1G7VGtsMpapRTX4xdvDWSECAQKzUjKL8okFbTv9TKCYCTpIZCTRS4EXQ5ve+j5OeUfAKS8iUIk9B+EAiFfCGSWW+N0htFFrXFayug/MBP35JggMarObPJ05jMPPXOItOdxcmQ8zLSjufgwU4CHn+3NBDCEt3bPV7719Ou0t8QL+A+mzj/IFw/h5xffODXlPNqbo3S1xDk+nCSZ9nNMgKqwtKOJW69ckxEKvzwyxD//7DBHBsdqUjOdzMTd6Bq1CRKj6pQiT2c+8dqJYQZHU4jz16Q8nxNDPon0ED9/41RR+QfDrqSFl6chJDzlyz/aV5J5tsYjfGT9yiDaqDWWCTMNlgOHchj6/YlvPsNrJ0YygQ6q4KN0Nse4/OylQHAz/sa/HaxpzbSQwAAaXqM2QWJUnVLk6dQ6U/kPMjkHiWDs1KjTCPKEwMBYmlsfen5O8xDgzCVtueahlvwQ1Fz/wSfuf4aU53NyJJ3xtyxsi9Eci3JDkc724ZTHaV3N9I+kMlrWorYmRrJ8I7WumT69/wRbvr+XYddTpX84yZbvD7OoNV7T864EJkiMqlOqPJ1KkO8/yK9VlF+/KChbkZq1/6AQoXmoKRbhjAWtrFjUmicQ4vz0tRPsfOWYizgb70j4f7/rbUVHWoWcsaCN48MJujvGi0aOpjyWtDcXfYzwYWFlVlmY0ZTHsqxj1LpmuvXH+xkYTQVRfVFBleBvO5pidXd7zra1NO9KYILEqDrVcGLOLP+gPPWLQv9BftjpU/uPM5RIkfSCXI9YRGhritLVGieZDp7mQ4E7mvJ4//nLJ1yrD7xjOav+7SAPP9vLaMqjNR7lI5f0zFiIQCDot3x/L0cGx/B9JRIR2pti3LLx7BkdY7qHhVrXTA/1j2TyjsCFgIuS8oN51uq8K4EJEqMmmG2eTi3UL+rILlORlYXc4bSEo4Nj/OtLR4hHI7TGI6S8IOfjk1eeM4njdknBMNOYCBqNFG1C+fi/WzUrwTEpmpvTMhOKeVioJ800m1gk6HNUb/MuJSZIjKpTyH9Q2GRUvvpFsYhkIoe6WmJ0OKdxV4EM5WzfQjH1i37vOy8Qi8DgWIoTw9NHYU1207378VeIChzqT2T5GeIzNqHk1Esr0MQtHAvPattzvSxojXN6V65pa9tzvfz7daeNhxi7hfFkTTfu1l1x3jKuOHdZ5rOnQSKl55Ipaz28duXCVl47MQK+5pgL37a4jc0b3l6z864EJkiMklGM/2D/0eFMqY2oCPFYhDFXDbcUtMQjOdpAxomcV7qiK3t9mfMP8qOw0r7SP5wi7Q9Puk8hDa39xzFeOz5MxB3H85UjAwnOWtpOa1PUlY7JqlsWKa7p2nS8NTBGVOD1EyOZjo1LO5o4MjDGko6p/SQzqUDs+8rblrSzaX0Pyni2P+Cy/tXdvMcz+MPP4fYomYx/z9eMwCpF4vXmDW8PnO3JdMbE19UUZ/OGtzd85QsTJMYEPF8ZToybggr5D3Kb48zOf5BCGZukXMdk/oMJCWlOaITLtVi/KJn2Ic+27olOW6okHo0QizoBIEI0fNLX8Gk/0B5iEWH5gvLZ4zubY7zaN5QRRGlfeePkGGuWdUy530wrEI/XOyu9QPfDopR5pWQKCaRQaGULJV+Vy9cs5Y7IWr799CEOn2pMzWMyTJDMY2brPxhOpGdjBp9Atv+goznGGydHSaY9VxuKjA+gu6OF//p/rKGrZdy3MJ9Kz8ejQiId3MxCkwhAkxMSsWiEeFRoikaIZ14yQUMaTfv0LGrN6uUumV7u5WLn3j4OHh/OVASOZVVonu4p/74n9pPyPI4PpTOaTFdr0HExXF+MplIKIhEhgpDlD58VKxefyUfeeWbms+9rjvYUCh3P/ca9jGaUJcj88e3mCyZIapxs/8FgniDIb485OJbOEQ6l9B+MN7zJ9R+EJqSu7DyE1sL9D/7Pe/+NUS8wCURjwQ11NOnRP5pk3RkLSjLXWmTV0g7e6B9hODF+Q+1siXPW0g7etqR9+gM4wk6L+b3cm6IRrtu6q+Q35VCjSHlKLBKktaR8pSUmrFjQMq0Ae7VvkFMjLlzWaTLHBpMMjZ3kD7e9wOBYmrTvc2wwwR9ue4HPb7qgoqX2S0GoRUVnqUVlC6JM4c48c53maU8ZLYpxM19+0c5KY4KkQsw0/2Cu9YsK0RKLZNUoKpyQNqFrWgn9B7M18dQLEefzCbWLpliEpmiET165hju376GrNZ7TIfE//cbbZ3T8Qp0WB0ZTKJD0/KIbWE1Gvj+jfzhByvMyN6iIkDG1xaIRlnW2THm8Qn9vX4I+IKMpP3McVegfSbHlsb11J0jmylwFUSFCM56v41qRr2GFaHI0pGwhNJduliZIZkh+/sEEgZA9Vqb+ye3N0ZxSFFP5D8LGOJ014D+YysRTT8QiEeIxCUxQbrkpGiEWLXx9S9UhsdBx4hEh5euUDayKoZA/I+h+OB7t6yv4nuL707cKhuDvPZqa+Pf2NQiZzRYwKsr+Y5MHHxjFE5rxZkO+EPKdwJmOhhUkxfgPsh3K5cw/yHYoF3Yu5zqW69V/sGpJB739wwzn9LyO0bOoePNOpcjXLkLHd1N0dtpZqTok5h/n3Vt2sLA1nrNNazxKb//IjI5bqKNiKESE3NQRBe66et2053POaV0cOBa0p8026R0ZTEy6zz0/fKVg33ijMsxWCDWcIPnl0SHef89PyuI/CJ/8MwXsWvKb5IwLhfbmWNn6J9cqYYZ0+ITjqeIpVU3cEhGanMBojkan1S5qjdBvEgoACHI8erJKkRTDof6RCQJJ895DIlKc2Sw0xZ2+IJZj0luxoIW3BhJIXj7GwpYoX9qxLzChRYLz+NKOoMCkCZPappwdEr8BfADoU9Xz3dhi4DvAKoIOiR9R1X637g7gRoK+d7eq6vfd+CWMd0h8BLhNVVVEmoEHgEuA48BHVfXgdPMKM1DzaYlFAsfxJNpAfkJaVwXyD+YjKc8nmR63cTRFK+MfiUUCjSKWFx1VbXPfXCnkNynG7JRPIYE0GWk/0Bzyb+6FckY2Xbxigobxjp6F3Prt5xhKehnfS0dTlOGk54RI8DeJSNAD5Ws/OVDzgmQm+TLzkXJqJN8Evkxwsw+5HXhcVT8nIre7z58SkfMIWuWuI+jZ/kMROce1270X2AzsIhAkVxG0270R6FfVs0XkWmAL8NHpJnV6VwufuWbdhC5q9X5DqQe2/ng/o0nPhbaOR21t/fH+ksXix6MRmuORaUNp5wul8r8UEkhTka8pFPKx/MG2FxCgu7OZM90xtz33BgBN8ShNLqQ4GhGa4lEGh5I0xXL/ThGhrOHNpWCm+TLzkbIJElV9QkRW5Q1fQ9DHHeB+YCfwKTf+kKomgAOuD/ulInIQ6FLVJwFE5AHggwSC5Brg0+5Y24Avi4joNLFvC1rjmf4HRmWZrOjdoRna8yHI3A6jouLuvbkOtMNyPLmWwv9SSCD1DYwxnPAorDNqjqYQ+ljSnnLg1DBJz8dzpquRpJeTR/K1nxygu7M5J4lyJJmmfySV0VBCfIX2pjkmf5SZQv6l2QQ81DOV9pGcpqqHAVT1sIiEV3kFgcYR0uvGUm45fzzc55A7VlpETgFLgGP5Xyoimwm0Glb0NE4htfmAiBDLEhpNsUBg1IsPI5ude/tqOn8iXyBdt3UXB48PcfjUROe455MTeHKof4SBkQQDiTyxo0FocnYeiafKmYtzfTit8SjtzryV9n0iEmaVwyfefVZpT7TEHOofISqw/+hQTgmZmQY81DO18r+x0GOkTjE+1T4TB1W3qup6VV2/eIlpI9Vi5cJWPB8SaT/z8vxgHHDFDGMsbm/itK4Weha1sWpJGysXt3FaVwuL2ptob47VtBDZubeP67bu4t1bdnDd1l3s3NuXWbflsb30jwR5H7FoBGU8f6IWuWnDauLRidpAppBJtvbn+xOFiMPzFcFlxLvCkPmms9GUx7ozFnD1O07HV0ikgxyHq99xes37RzqbY7xxcoy0M9OFJWQ6mhsnlqnS/yOPiMhyAPce/i/rBbJVhR7gTTfeU2A8Zx8RiQELgBNlm7kxZ37jnO4JZhIf1ztjSTsrF7exrKuFhW2BwGiqA1NVNqGtvG9wLMdWHgqT/ceGM6a98MYaEWo2f2Lj2mXcdfW6CTeJ8GmtLT7+tzkxOnlYfCYj2yVStcWFgdEUrx4Z5OXDp3j1yCADoynetXoxz75+ilVL2jj/jC5WLWnj2ddP5QjjWiRjTdesF9XJMK8WlRYk24Eb3PINwHezxq8VkWYROQtYAzztzGCDInKZBHeU6/P2CY+1CdgxnX/EqCwREVqboixojbOsq4WX3hrk9K4m2puixKNCe1OU5Quaeea1k1kF++qXsLbUW6fG+MWRQd46NUbK8zK1peqVjryuhRGBha0xzl+xKDM2MoVDPCJBqHcsKixpb2LFwrbgXuu0EyS49z7y4mGS6dzrl0zX/vUbSnqsWNhCLCqZ81yxcPoSMvOJcob/fpvAsb5URHqBPwM+BzwsIjcCrwMfBlDVPSLyMPASkAZucRFbADczHv77qHsBfB140DnmTxBEfRlVIhYJoqWaYxGXlxG8snnj5ChLO1ro7hwXGqo6b2zJk9WWSnmDAJy1pI19R4cn5E+cvXRmOR+VYufePm799nMMJHJviLFIkNVfbIhxWCvKc1FaIsKC1vgEZ/u+o8NBLxSCasdpTzk+nCTtDZT0vErNZDXQpishM58oZ9TWdZOsunKS7T8LfLbA+G7g/ALjYzhBZFQOEcmtVOuc3/lCoxClSp6rVZJpPygp4QWF9sLe6mEtsdvfey5/sO0FhhLpTNjrwuY4t7/33LLPbTbRYn/yTy9OECIASU9nVB1aydU8jg4lcppkQeBs9/zgaT7UTkWCkh3JEtWaKxelyuWpZ2rXa2lUlTDju6MlxpL2IFTzzMVtnLW0nZ5FgS9jUXsTHc2xooQIBP/hUp4ykky7IpbpefUfzlcfz2kZQWXWoGKuaiBINq5dxhc2XcBFKxdxelcLF61cxBcqELE1ne9mMt44NTbpunhUckxOU5XtaW+Ksvb0LtYs62SB6ztfyNkei4rrAaIommlUVes5XqEvaVlnC6dGUyzrbCmqhMx8onHCCowpiUaE5liUlniElni0LDkZG9cuY1PvyQmZzvPlP1wiVThqaSxrvFQ1t2bCVH1BsueSr7VM5XE8ciqRU5U6HglCggvR3TneRbE1HqUpKpkHiuwn+LcvbadvMMHJ0fF8koWtcdYs65zzNSg31fi71hImSBqM/NpS4XIlQmp37u3jwV2vkUz7CEH5+Ad3vcY7ehbOi/+Ek8iRSccrxat9g/QPJzOaUtrzJrQ33rm3L8fsdmxo8sKKEETbDY6NR2o1xaIk0oUbonW2jNfwGk15rDmti5s2rJ6Qjf+z3pN8acc+ohEh7vJITo2leZd1IKx5TJDMY+LRcf9FU5YTvFpseWwvx4aSmZtN2vdJDCUbsg9FKZmuYu5I0iPbzaAEJrfsSKvPPfoyJ0dSrqWvoEUIv0RWH5mmWCTonhgZL3+Tcv1ICvkOCj3B3/fEfro7mvKqBcd4cv8Jbp311TEqgQmSeUCoZTRl1ZmqxXIhrxwZnPDEqm7cyKVY5/g9P3xl2oq5Y5OEoWaPHzjuytdkObqZQfTqmmWdHDw+xMDouBBYvKCZBS1xFrU3F1UH7FD/CEs7munOinaaT1F98xkTJHVGKDTCMNtmJ0BqTWgUYrLgmxoPyimaCBSsSzVTHXAmRQC/9pMD01bMnUy5KIXFLawCHEYudbYEJq9E2ufEcIrr3nlm0Znp8z2qbz5T2+EQRqZsyJKOZs5Y2MqqJW2sWNjK0o5mulriNMeidSFEGoEVi1pnND4Z2UUARYL3/CipkLD0ejazqZi7emm7q22VFTFVBH/j5rRx7TIuOXMBRwYSDCc9PF9pb4qy7bk3is5Mn+9RffMZ00hqhGzzVFNWbka9dkNsREaThcuETDY+GYf6R0imPA4cG85ELy1tbyrY2769KcrAWJp8O1RXy8z+a3/qqrXjBSU9n1gkwoLWGMmUx2h6cqES+ll27u3jkZ8fyfR0V4WhhEdzPFJ0FdxSlcQ3Ko8JkioQERn3ZcSjGeFh1DfHh1MzGofCvhAB+oaSCK7NrQafVxbQbLqaQ0EycXwmbFy7jM9vumDCTRyCG/uT+49Puf99T+wPEgojQR0xEfBRTo2k6I0U7+No9DDaesUESZkJ+2Y0x6I5mkYj0tUSY3AsN0RUgM4ZPj3XKpM9t082PllZ+VOjqYL7FQrJ7S1Q4j1/vFjfzWQ38Y1rl7Hq9n+Z5CwCDvWP0ByLkPaC8i8QOOwTnm8+jgZgfvwPrhFikcgER3gtlzyvNJ9491mZCKN66jdRLsKy8tFIkMejGpSVT/s64eYfgVmXConHIiTT/gQBHp+BFiwUFoih4XXlojbSns/x4ST4gRDxVIlFiq/JZdQvJkhmSVikMDvk1oTG1ITRO1PlPNQzM43ayi4rD8HNVyW4Xfu4m7S7g/tA2yzNn2GxyKiM53h4qpy1pHhNIdyv0DiM15ta0t6UidqKRoRbNr7dTFUNgAmSacgUKYxFMpngTTFzgs+WW99zzrwRHPmU4sk/G838E7C4dXb/XUtRLLKjOcZwIjBLZhekbHfNm8xR3tiYIMkikwEeHc8CNye4USxTPfkXcqpPVlY+HhEWtsU4Pjxec2pJexyJzO63uHHtMq6/7G2BJuh5tEYjXH/Z22Z0kw/NktEpzJLmKG9cGvIuGYbadrbEs/Iz2ie0dDUhYsyE2997Lm3xCCnfZyztk/J92uIR3verywtW333fry5nYVsciQQCRyKwsC3O2cs6iEUjtMaDBmCt8SixaKSg0zo+yU80e3zn3j62PfcG3Z3NnHt6J92dzTPK74BAk7ztirNpjUdJ+0HxxduuOHveapfGzKiKRiIiB4FBguD3tKquF5HFwHeAVcBB4COq2u+2vwO40W1/q6p+341fwnjTq0eA26brkhiPRli1pG3eJvHNpu+EUV4eefFwJsEQoK0pxkgyzZP7T/CFAiG3YfHCMCgh6fn0DSa57p0TixcWUy0gO8Ex+/uLze8Imc9mSWNuVNO09Zuqeizr8+3A46r6ORG53X3+lIicR9D9cB1wBvBDETnHdVC8F9gM7CIQJFcx3kGxIBK295yHzKS0hlF6tjy2l5GUTzwayZiqRlI+vzw2zK+cllsKvTUepbd/ZM7FC/1JBEn2+KH+ERa2xnPWh99vGKWglmw31wD3u+X7gQ9mjT+kqglVPQDsAy4VkeVAl6o+6bSQB7L2aUhmUlrDKD3ZUViCEBEJal95WrCR02T5FWHxwtXdHaw9vYvV3R0s7WgueOOPZhVZDF/Z4xCE5s7k+w1jplRLkCjwryLyrIhsdmOnqephAPcePqatAA5l7dvrxla45fzxCYjIZhHZLSK7jx49WsLTqC0O9Y/QGs/NaLYnz+oTi8iMakjN5MZ/9TtOB8K+6OMhuuE4WA0ro/xUS5BcrqoXA+8FbhGRDVNsW8gOpVOMTxxU3aqq61V1fXd398xnWyfYk2d1OWtJWxDN5Cuqiu8rvsLbu9tn1Ip1Jjf+u6+9mA9duDyjgUQjwocuXM7d116c2cZawRrlpio+ElV90733icj/BC4FjojIclU97MxWYUhJL7Aya/ce4E033lNgvGEJk8IKNRIyys9U+RozCY2daU7G3ddezN3XTn9MExxGuZBpgpxK/4Ui7UBEVQfd8g+Au4ArgeNZzvbFqvpHIrIO+BaBsDkDeBxYo6qeiDwD/BfgKQJn+1+r6iNTff/69et19+7dZTu/ahNGbVlSWHWw62/MV0TkWVVdX2hdNTSS04D/6SKnYsC3VPUxJxQeFpEbgdeBDwOo6h4ReRh4CUgDt7iILYCbGQ//fZRpIrYaAXvyrC52/Y1GpOIaSbWZ7xqJYRhGOZhKI6ml8F/DMAyjDjFBYhiGYcwJEySGYRjGnDBBYhiGYcyJhnO2i8hR4LUCq5YCxwqMGwF2fabGrs/U2PWZnlq/Rm9T1YIZ3Q0nSCZDRHZPFpFg2PWZDrs+U2PXZ3rq+RqZacswDMOYEyZIDMMwjDlhgmScrdWeQI1j12dq7PpMjV2f6anba2Q+EsMwDGNOmEZiGIZhzAkTJIZhGMacaBhBIiIrReRHIvKyiOwRkdsKbCMico+I7BORn4nIxYWONV8p8hptFJFTIvK8e91ZjblWAxFpEZGnReQFd33+vMA2DfsbKvL6NOzvJ0REoiLyUxH5XoF1dfn7qUpjqyqRBn5fVZ8TkU7gWRH5gaq+lLXNe4E17vVrwL3uvVEo5hoB/FhVP1CF+VWbBHCFqg6JSBz4iYg8qqq7srZp5N9QMdcHGvf3E3Ib8DLQVWBdXf5+GkYjUdXDqvqcWx4k+EPm93i/BnhAA3YBC123xoagyGvUsLjfxZD7GHev/GiVhv0NFXl9GhoR6QHeD3xtkk3q8vfTMIIkGxFZBVxE0FkxmxXAoazPvTTojXSKawTwLme+eNR1sGwYnFnieYJW0D9QVfsNZVHE9YEG/v0AfwX8EeBPsr4ufz8NJ0hEpAP4B+CTqjqQv7rALg33RDXNNXqOoObOBcBfA/9U6flVE1X1VPVCoAe4VETOz9ukoX9DRVyfhv39iMgHgD5VfXaqzQqM1fzvp6EEibPb/gPwd6r6jwU26QVWZn3uAd6sxNxqhemukaoOhOYLVX0EiIvI0gpPs+qo6klgJ3BV3qqG/w3B5NenwX8/lwNXi8hB4CHgChH527xt6vL30zCCRIIm8V8HXlbVL06y2Xbgehc5cRlwSlUPV2ySVaaYayQip7vtEJFLCX5Dxys3y+ohIt0istAttwLvAfbmbdawv6Firk8j/35U9Q5V7VHVVcC1wA5V/VjeZnX5+2mkqK3LgY8DLzobLsAfA2cCqOrfAI8A7wP2ASPA/1OFeVaTYq7RJuBmEUkDo8C12jjlEZYD94tIlOAG+LCqfk9E/hPYb4jirk8j/34KMh9+P1YixTAMw5gTDWPaMgzDMMqDCRLDMAxjTpggMQzDMOaECRLDMAxjTpggMQzDMOaECRLDqAAi8kkRaZvFfgcbKGHPqFNMkBhGZfgkUFCQuLwLw6hbTJAYRokRkXYR+RdXmPDnIvJnwBnAj0TkR26bIRG5S0SeIihieKXrUfGiiHxDRJrzjtkqIo+JyO+4zx9zvT+eF5H7TBgZ1cQEiWGUnquAN1X1AlU9n6Di65vAb6rqb7pt2oGfq+qvAbuBbwIfVdVfJag4cXPW8TqAfwa+papfFZFzgY8Cl7sCiR7wf1XgvAyjICZIDKP0vAi8R0S2iMivq+qpAtt4BMUxAX4FOKCqr7jP9wMbsrb9LvD/qeoD7vOVwCXAM66UzZXA6lKfhGEUSyPV2jKMiqCqr4jIJQQ1k/67iPxrgc3GVNVzy4VKh2fzv4H3isi3XF0qAe5X1TtKN2vDmD2mkRhGiRGRM4ARVf1b4AvAxcAg0DnJLnuBVSJytvv8ceB/Za2/k6BC7lfc58eBTSKyzH3fYhF5W2nPwjCKxwSJYZSeXwWedman/xf4b8BW4NHQ2Z6Nqo4RVHn9exF5kaB73t/kbfZJoEVE/kJVXwL+BPhXEfkZ8AOCyruGURWs+q9hGIYxJ0wjMQzDMOaEyul4jQAAADNJREFUCRLDMAxjTpggMQzDMOaECRLDMAxjTpggMQzDMOaECRLDMAxjTpggMQzDMObE/w+ol6IU1WZfWwAAAABJRU5ErkJggg==\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "sns.regplot(x='stroke',y='price',data=df)\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "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": 19, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7f6aa86ceb70>" | |
| ] | |
| }, | |
| "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=\"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": 20, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7f6aa85f4128>" | |
| ] | |
| }, | |
| "execution_count": 20, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.boxplot(x=\"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": 21, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7f6aa85a1860>" | |
| ] | |
| }, | |
| "execution_count": 21, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3df5RV5X3v8fdnYCqoxSgzImE0WCFp0BpymXLJ9dqmUX42KabRhq6bOqvlFmuJmGuz0njbu2rWLV2x96a2Y65Goy5Hk1aoSa/UMhXEGk0uSoaoKBjLpBKdSGAGfwRjQGC+94/9nHIYDsPgmX3OnDmf11pnnb2/ez/7PNsj8z3PfvZ+HkUEZmZm71RDtStgZma1zYnEzMzK4kRiZmZlcSIxM7OyOJGYmVlZxla7ApXW1NQUU6dOrXY1zMxqyubNm/siornUtrpLJFOnTqWrq6va1TAzqymSfnisbb60ZWZmZXEiMTOzsjiRmJlZWZxIzMysLE4ko0hfXx/XXHMNe/bsqXZVzKyOOJGMIh0dHWzZsoWOjo5qV8XM6ogTySjR19dHZ2cnEUFnZ6dbJWZWMbknEkljJD0l6cG0foOkH0l6Or0WFe17vaRuSS9Iml8UnyXp2bStXZJS/CRJq1L8SUlT8z6fkaqjo4PClAD9/f1ulZhZxVSiRXIt8PyA2E0RMTO91gJImgEsAc4HFgC3SBqT9r8VWAZMT68FKb4UeC0ipgE3ATfmeiYj2Pr16zlw4AAABw4cYN26dVWukZnVi1wTiaQW4NeBO4aw+2LgvojYHxEvAt3AbEmTgQkRsTGyn9z3AJcVlSn89L4fuKTQWqk3c+fOpbGxEYDGxkbmzZtX5RqZWb3Iu0Xy18DngP4B8U9L2iLpLkmnp9gU4OWifXpSbEpaHhg/okxEHATeACYOrISkZZK6JHX19vaWeUojU1tbG4Uc2tDQQFtbW5VrZGb1IrdEIumjwO6I2Dxg063AecBMYCfwpUKREoeJQeKDlTkyEHF7RLRGRGtzc8kxx2peU1MTCxcuRBILFy5k4sSj8qmZWS7yHLTxIuA3Umf6OGCCpK9FxKcKO0j6KvBgWu0Bzi4q3wK8kuItJeLFZXokjQVOA17N4VxqQltbGzt27HBrxMwqKrcWSURcHxEtETGVrBP9kYj4VOrzKPg48FxaXgMsSXdinUvWqb4pInYCeyXNSf0fVwIPFJUp/NW8PH3GUS2SetHU1MTNN9/s1oiZVVQ1hpH/S0kzyS5B7QCuAoiIrZJWA9uAg8DyiDiUylwN3A2MBzrTC+BO4F5J3WQtkSUVOgczM0tUbz/gW1tbw/ORmJmdGEmbI6K11DY/2W5mZmVxIjEzs7I4kZiZWVmcSMzMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEMop4znYzqwYnklHEc7abWTU4kYwSfX19rF27lohg7dq1bpWYWcU4kYwSHR0dHDx4EMim2nWrxMwqxYlklFi3bh2FATgjgoceeqjKNTKzeuFEMkpMmjRp0HUzs7w4kYwSu3btGnTdzCwvTiSjxLx588gmkARJzJ8/v8o1MrN6kXsikTRG0lOSHkzrZ0haL2l7ej+9aN/rJXVLekHS/KL4LEnPpm3tacpd0rS8q1L8SUlT8z6fkaqtrY3GxkYAGhsbPW+7mVVMJVok1wLPF61/HtgQEdOBDWkdSTPIpso9H1gA3CJpTCpzK7CMbB736Wk7wFLgtYiYBtwE3JjvqYxcTU1NLFy4EEksWrTI87abWcXkmkgktQC/DtxRFF4MFO5N7QAuK4rfFxH7I+JFoBuYLWkyMCEiNkZ2W9I9A8oUjnU/cEmhtVKP2trauPDCC90aMbOKyrtF8tfA54D+otikiNgJkN7PTPEpwMtF+/Wk2JS0PDB+RJmIOAi8ARz1U1zSMkldkrp6e3vLPacRq6mpiZtvvtmtETOrqNwSiaSPArsjYvNQi5SIxSDxwcocGYi4PSJaI6K1ubl5iNUxM7OhGJvjsS8CfkPSImAcMEHS14BdkiZHxM502Wp32r8HOLuofAvwSoq3lIgXl+mRNBY4DXg1rxMyM7Oj5dYiiYjrI6IlIqaSdaI/EhGfAtYAhYv4bcADaXkNsCTdiXUuWaf6pnT5a6+kOan/48oBZQrHujx9xlEtEjMzy0+eLZJj+SKwWtJS4CXgCoCI2CppNbANOAgsj4hDqczVwN3AeKAzvQDuBO6V1E3WEllSqZMwM7OM6u0HfGtra3R1dVW7GmZmNUXS5ohoLbXNT7abmVlZnEjMzKwsTiRmZlYWJxIzMyuLE8ko0tfXxzXXXONpds2sopxIRpHbbruNZ555httuu63aVTGzOuJEMkr09fWxfv16IJt2160SM6sUJ5JR4rbbbqO/Pxsbs7+/360SM6sYJ5JRYsOGDUesP/zww1WqiZnVGyeSUWLgCAX1NmKBmVWPE8kocemllx6xPnfu3CrVxMzqjRPJKHHVVVfR0JB9nQ0NDVx11VVVrpGZ1YtqjP5b99rb2+nu7h72444dO5a3336b0047jS984QvDeuxp06axYsWKYT2mmY0ObpGMImPGjKGhoYF3v/vd1a6KmdURt0iqIK9f9oXjtre353J8M7NS8pyzfZykTZKekbRV0hdS/AZJP5L0dHotKipzvaRuSS9Iml8UnyXp2bStPc2USJpNcVWKPylpal7nY2ZmpeV5aWs/8JGI+AAwE1ggaU7adlNEzEyvtQCSZpDNcHg+sAC4RdKYtP+twDKy6Xenp+0AS4HXImIacBNwY47nY2ZmJeQ5Z3tExJtptTG9Bnu4YTFwX0Tsj4gXgW5gtqTJwISI2JjmY78HuKyoTEdavh+4pNBaMTOzysi1s13SGElPA7uB9RHxZNr0aUlbJN0l6fQUmwK8XFS8J8WmpOWB8SPKRMRB4A1gYol6LJPUJamrt7d3mM7OzMwg50QSEYciYibQQta6uIDsMtV5ZJe7dgJfSruXaknEIPHBygysx+0R0RoRrc3NzSd4FmZmNpiK3P4bEa8DjwILImJXSjD9wFeB2Wm3HuDsomItwCsp3lIifkQZSWOB04BXczoNMzMrIc+7tpolvSstjwcuBb6f+jwKPg48l5bXAEvSnVjnknWqb4qIncBeSXNS/8eVwANFZdrS8uXAI+FBpszMKirP50gmAx3pzqsGYHVEPCjpXkkzyS5B7QCuAoiIrZJWA9uAg8DyiDiUjnU1cDcwHuhML4A7gXsldZO1RJbkeD5mZlZCbokkIrYAHywR/51ByqwEVpaIdwEXlIjvA64or6ZmZlYOD5FiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmZlYWJxIzMyuLE4mZmZXFicTMzMriRGJmZmVxIjEzs7I4kZiZWVmcSMzMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMypLnVLvjJG2S9IykrZK+kOJnSFovaXt6P72ozPWSuiW9IGl+UXyWpGfTtvY05S5pWt5VKf6kpKl5nY+ZmZWWZ4tkP/CRiPgAMBNYIGkO8HlgQ0RMBzakdSTNIJsq93xgAXBLmqYX4FZgGdk87tPTdoClwGsRMQ24Cbgxx/MxM7MSckskkXkzrTamVwCLgY4U7wAuS8uLgfsiYn9EvAh0A7MlTQYmRMTGiAjgngFlCse6H7ik0FoxM7PKyLWPRNIYSU8Du4H1EfEkMCkidgKk9zPT7lOAl4uK96TYlLQ8MH5EmYg4CLwBTCxRj2WSuiR19fb2DtfpmZkZOSeSiDgUETOBFrLWxQWD7F6qJRGDxAcrM7Aet0dEa0S0Njc3H6/aZmZ2Aipy11ZEvA48Sta3sStdriK970679QBnFxVrAV5J8ZYS8SPKSBoLnAa8mstJmJlZSXnetdUs6V1peTxwKfB9YA3QlnZrAx5Iy2uAJelOrHPJOtU3pctfeyXNSf0fVw4oUzjW5cAjqR/FzMwqZGyOx54MdKQ7rxqA1RHxoKSNwGpJS4GXgCsAImKrpNXANuAgsDwiDqVjXQ3cDYwHOtML4E7gXkndZC2RJTmej5mZlZBbIomILcAHS8T3AJcco8xKYGWJeBdwVP9KROwjJSIzM6sOP9luZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmZlYWJxIzMyuLE4mZmZVlyIlE0nskXZqWx0v6+fyqZWZmtWJIiUTS75MN035bCrUA/zevSpmZWe0YaotkOXAR8BOAiNjO4eHfzcysjg01keyPiLcLK2mkXQ+OaGZmQ04k35L034HxkuYCfw/8Y37VMjOzWjHURPJ5oBd4FrgKWAv8aV6VMjOz2jHU0X/HA3dFxFchm0I3xd7Kq2JmZlYbhtoi2UCWOArGAw8Pf3XMzKzWDDWRjIuINwsrafnkwQpIOlvSv0h6XtJWSdem+A2SfiTp6fRaVFTmekndkl6QNL8oPkvSs2lbe5opkTSb4qoUf1LS1KGfupmZDYehJpKfSvoPhRVJs4CfHafMQeCPIuL9wBxguaQZadtNETEzvdamY84gm+HwfLK53W9Jl9AAbgWWkU2/Oz1tB1gKvBYR04CbgBuHeD5mZjZMhtpH8hng7yW9ktYnA58crECaa31nWt4r6XlgyiBFFgP3RcR+4MU0fe5sSTuACRGxEUDSPcBlZNPtLgZuSOXvB74sSZ633cyscobUIomI7wK/SDZ3+h8C74+IzUP9kHTJ6YPAkyn0aUlbJN0l6fQUmwK8XFSsJ8WmpOWB8SPKRMRB4A1gYonPXyapS1JXb2/vUKttZmZDMGgikfSR9P6bwMeA95JdWvpYih2XpFOBbwCfiYifkF2mOg+YSdZi+VJh1xLFY5D4YGWODETcHhGtEdHa3Nw8lGqbmdkQHa9F8qvp/WMlXh893sElNZIlka9HxDcBImJXRByKiH7gq8DstHsPcHZR8RbglRRvKRE/okx62v404NXj1ctspOnr6+Oaa65hz5491a6K2QkbNJFExJ9JagA6I+J3B7x+b7Cy6c6qO4HnI+KviuKTi3b7OPBcWl4DLEl3Yp1L1vLZlPpa9kqak455JfBAUZm2tHw58Ij7R6wWdXR0sGXLFjo6OqpdFbMTdtw+ktRy+PQ7OPZFwO8AHxlwq+9fplt5twC/Bvy39DlbgdXANuCfgeURcSgd62rgDqAb+AFZRztkiWpi6pi/juwJfLOa0tfXR2dnJxFBZ2enWyVWc4Z619Z6SZ8FVgE/LQQj4piXkSLi25Tuw1g7SJmVwMoS8S7gghLxfcAVg9bcbITr6Oig0JDu7++no6OD6667rsq1Mhu6oT5H8ntkd2t9C+gqeplZmdavX8+BAwcAOHDgAOvWratyjcxOzFATyQzg/wDPAE8DN5M9OGhmZZo7dy6NjY0ANDY2Mm/evCrXyOzEDDWRdADvB9rJksj7U8zMytTW1kYa9YeGhgba2tqOU8JsZBlqInlfRPzXiPiX9FoGvC/PipnVi6amJhYuXIgkFi5cyMSJRz1TazaiDTWRPCVpTmFF0n8EvpNPlczqT1tbGxdeeKFbI1aTNJTHLtI4We8DXkqhc4DngX4gIuLC3Go4zFpbW6Or6/j3CbS3t9Pd3V2BGg2f7du3AzB9+vQq1+TETJs2jRUrVlS7GmY2CEmbI6K11Lah3v674Pi7jC7d3d089ew2+k8+o9pVGTK9nf0o2PyDH1e5JkPX8JYHIjCrdUNKJBHxw7wrMhL1n3wG+2YcdyQYK8O4bQ9WuwpmVqah9pGYmZmV5ERiZmZlcSIxM7OyOJGYmVlZnEjMzKwsTiRmZlYWJxIzMyuLE4mZmZUlt0Qi6WxJ/yLpeUlbJV2b4mdIWi9pe3o/vajM9ZK6Jb0gaX5RfFaaVbFbUnuacpc0Le+qFH9S0tS8zsfMzErLs0VyEPijiHg/MAdYLmkG2XS4GyJiOrAhrZO2LSGb52QBcIukMelYtwLLyOZxn87hIVuWAq9FxDTgJuDGHM/HzMxKyC2RRMTOiPheWt5LNsjjFGAxh+cy6QAuS8uLgfsiYn9EvEg2P/tsSZOBCRGxMbIRJu8ZUKZwrPuBSwqtFTMzq4yK9JGkS04fBJ4EJkXETsiSDXBm2m0K8HJRsZ4Um5KWB8aPKBMRB4E3gKMmc5C0TFKXpK7e3t7hOSkzMwMqkEgknQp8A/hMRPxksF1LxGKQ+GBljgxE3B4RrRHR2tzcfLwqm1VcX18f11xzDXv27Kl2VcxOWK6JRFIjWRL5ekR8M4V3pctVpPfdKd4DnF1UvAV4JcVbSsSPKCNpLHAa4HHJreZ0dHSwZcsWOjo8g7XVnjzv2hJwJ/B8RPxV0aY1QGEauDbggaL4knQn1rlkneqb0uWvvZLmpGNeOaBM4ViXA4/EUGbqMhtB+vr6WLt2LRHB2rVr3SqxmpNni+Qi4HeAj0h6Or0WAV8E5kraDsxN60TEVmA1sA34Z2B5RBxKx7oauIOsA/4HQGeK3wlMlNQNXEe6A8yslnR0dHDw4EEADhw44FaJ1ZyhzpB4wiLi25TuwwC45BhlVgIrS8S7gAtKxPcBV5RRTbOqW7duHYWGdETw0EMPcd1111W5VmZD5yfbzaps0qRJg66bjXROJGZV9uMf/3jQdbORzonErMrOOuusQddt5Kv327edSMyqzC2S2lfvt287kZhVmVskta2vr4/Ozk4igs7OzrpslTiRmFXZrl27Bl23ka2jo+Pf77rr7++vy1aJE4lZlc2bN4/CWKOSmD9//nFK2Eiyfv16Dhw4AGTPAa1bt67KNao8JxKzKmtra2Ps2OyRrsbGRtra2o5TwkaSuXPn0tjYCGTf37x586pco8rL7YHEWtfT00PDW28wbtuD1a7KqNbw1h56eg5WuxpV1dTUxKJFi1izZg2LFi1i4sSjBrC2EaytrY3OzmywjYaGhrr8IeAWidkI0NbWxoUXXliXf4RqXVNTEwsXLkQSCxcurMsfAm6RHENLSwu79o9l34yPVrsqo9q4bQ/S0uK7lJqamrj55purXQ17h9ra2tixY0fd/hBwIjEzK1O9/xDwpS2zEaDen4y22uZEYjYC1PuT0VbbnEjMqsxPRluty3OGxLsk7Zb0XFHsBkk/GjDRVWHb9ZK6Jb0gaX5RfJakZ9O29jRLImkmxVUp/qSkqXmdi1me/GS01bo8O9vvBr4M3DMgflNE/O/igKQZwBLgfODdwMOS3ptmSLwVWAY8AawFFpDNkLgUeC0ipklaAtwIfDK/0zGD9vZ2uru7h/WYW7Zsob+/H8iejF6zZg07duwY1s+YNm0aK1asGNZjmhXk1iKJiMeAV4e4+2LgvojYHxEvkk2pO1vSZGBCRGxMc7HfA1xWVKbw0+1+4JJCa8Wslpx++umDrpuNdNW4/ffTkq4EuoA/iojXgClkLY6CnhQ7kJYHxknvLwNExEFJbwATgb6BHyhpGVmrhnPOOWdYT8bqSx6/6vv6+vjEJz5BRHDSSSdxxx131OVDbVa7Kt3ZfitwHjAT2Al8KcVLtSRikPhgZY4ORtweEa0R0drc3HxiNTbLWVNTE2eccQZA3T4ZbbWtookkInZFxKGI6Ae+CsxOm3qAs4t2bQFeSfGWEvEjykgaC5zG0C+lmY0oZ511FqecckrdPhltta2iiST1eRR8HCjc0bUGWJLuxDoXmA5sioidwF5Jc1L/x5XAA0VlCv/qLgceicKtL2Y1prGxkenTp7s1YjUptz4SSX8HfBhoktQD/BnwYUkzyS5B7QCuAoiIrZJWA9uAg8DydMcWwNVkd4CNJ7tbqzPF7wTuldRN1hJZkte5mJnZseWWSCLit0uE7xxk/5XAyhLxLuCCEvF9wBXl1NHMzMrnJ9vNzKwsHv13EA1vvVpTE1tp308AiHETqlyToWt461XAw8ib1TInkmOYNm1atatwwrZv3wvA9PNq6Q/zWTX539rMDnMiOYZaHE6iUOf29vYq18TM6on7SMzMrCxOJGZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEYmZmZfHtv2ZWN/KY4RKgpyebNqmlpeU4e564Wpjd0onEzEaUvP7YQ/YH/2c/+9mwH7dwzDyO3dPTk9t/j+FKUk4kZjaidHd389TWp+BdORxcwMk5HLc/e3vz5DeH/dBv8ia9P+od9uPy+vAdyonEzEaed0H/h/urXYtRreHR4esid2e7mZmVxYnEzMzKkucMiXcBHwV2R8QFKXYGsAqYSjZD4m9FxGtp2/XAUuAQsCIiHkrxWRyeIXEtcG1EhKSTgHuAWcAe4JMRsSOv87HakmeHbR62b98O1N5gobVwR5HlL88+kruBL5P9sS/4PLAhIr4o6fNp/Y8lzSCbKvd84N3Aw5Lem6bbvRVYBjxBlkgWkE23uxR4LSKmSVoC3Ah8MsfzsRrS3d3Nvz73Pc459dDxdx4Bfu5AdnFg347vVrkmQ/fSm2OqXQUbIfKcavcxSVMHhBeTzeMO0AE8Cvxxit8XEfuBF9M87LMl7QAmRMRGAEn3AJeRJZLFwA3pWPcDX5akiIh8zshqzTmnHuJPW4f/LhrL/HnXqdWugo0Qle4jmRQROwHS+5kpPgV4uWi/nhSbkpYHxo8oExEHgTeAiaU+VNIySV2Sunp7c7iNzsysjo2UznaViMUg8cHKHB2MuD0iWiOitbm5+R1W0czMSql0ItklaTJAet+d4j3A2UX7tQCvpHhLifgRZSSNBU4DXs2t5mZmVlKlE8kaoC0ttwEPFMWXSDpJ0rnAdGBTuvy1V9IcSQKuHFCmcKzLgUfcP2JmVnl53v77d2Qd602SeoA/A74IrJa0FHgJuAIgIrZKWg1sAw4Cy9MdWwBXc/j23870ArgTuDd1zL9KdteXmdW4np4eeGN4n7y2El6Hnug5/n5DkOddW799jE2XHGP/lcDKEvEu4IIS8X2kRGRmZtXjsbbMbERpaWmhV70eaytnDY820DJleIa9d9vRzMzK4haJjUo9PT38dO8YPzSXox/uHcMpPcNzjd1qmxOJmY08r9dYZ3thAIVa+t3yOocf7y6TE4mNSi0tLew7uNNDpOToz7tOZVxOU8vWmsKgm9OnTK9yTU7AlOH7b+1EYmYjSp6jCdfaqNBQGyMsO5GYmZVp/Pjx1a5CVTmRmFndGOm/7GuVE4mNWi+9WTt3be16K+tYnnRy7Tw78dKbY3hvtSthI4ITSRXkdZ02z1n2auE6bbFa67B9O31346bWTmfte6m9/86WDyeSUaTer9MWq6WkB4fr297eXuWamJ04J5IqqLU/cmZmg6mhJ37MzGwkciIxM7OyOJGYmVlZqpJIJO2Q9KykpyV1pdgZktZL2p7eTy/a/3pJ3ZJekDS/KD4rHadbUnuaRdHMzCqomi2SX4uImRHRmtY/D2yIiOnAhrSOpBlksx+eDywAbpE0JpW5FVhGNjXv9LTdzMwqaCTdtbWYbGpegA7gUeCPU/y+iNgPvJim1p0taQcwISI2Aki6B7iMw1Pxmg27WnwGCGrvOSCrLdVqkQSwTtJmSctSbFJE7ARI72em+BTg5aKyPSk2JS0PjB9F0jJJXZK6ent7h/E0zIbH+PHj/RyQ1axqtUguiohXJJ0JrJf0/UH2LdXvEYPEjw5G3A7cDtDa2lpyH7Oh8K96s6NVpUUSEa+k993APwCzgV2SJgOk991p9x7g7KLiLcArKd5SIm5mZhVU8UQi6RRJP19YBuYBzwFrgLa0WxvwQFpeAyyRdJKkc8k61Tely197Jc1Jd2tdWVTGzMwqpBqXtiYB/5Du1B0L/G1E/LOk7wKrJS0FXgKuAIiIrZJWA9uAg8DyiDiUjnU1cDcwnqyT3R3tZmYVpoj66jJobW2Nrq6ualfDzKymSNpc9LjGEfxku5mZlcWJxMzMyuJEYmZmZXEiMTOzstRdZ7ukXuCH1a5HjpqAvmpXwt4Rf3e1bbR/f++JiOZSG+oukYx2krqOdWeFjWz+7mpbPX9/vrRlZmZlcSIxM7OyOJGMPrdXuwL2jvm7q211+/25j8TMzMriFomZmZXFicTMzMriRFInJH1Y0oPVrke9k7RC0vOSvn6C5R6VVJe3lo4UksZIeuqd/juS9OZw12mkGElzttsJSHOwKCL6q10XOyF/CCyMiBerXRE7YdcCzwMTql2RkcYtkhoiaWr6NXsL8G/AnSl+raR/S8vnSfp2Wl4g6ftp/TerVnEDQNJXgF8A1kjaK+ldyuyRdGXa515Jl0oaL+k+SVskrSKbc8eqRFIL8OvAHWn9TEmb0/IHJIWkc9L6DySdLOlcSRslfVfS/6xe7fPnRFJ73gfcA3wIuCDFLgb2SJoC/GfgcUnjgK8CH0vbz6pCXa1IRPwB2XTQvwZ8HbgIOJ/sR8HFabc5wBNkk7a9FREXAiuBWRWvsBX7a+BzQD/8+zTh4yRNIPvuuoCLJb0H2B0RbwF/A9waEb8M/Lg61a4MJ5La88OIeCIifgycmqYtPhv4W+BXyP6nfhz4ReDFiNge2T3eX6taja2Ux8m+r18BbgV+Kf0QeDUi3kzxrwFExBZgS7UqWu8kfZQsOWwesOn/kf0Y+BXgLzjy3x9p29+l5XsrUNWqcSKpPT8tWt4I/C7wAtn/vBeTtVS+k7b7IaGR6zGy7+ti4FGgF7icw3+EwN/fSHER8BuSdgD3AR+R9DUO/5t7D/AA8AGyKwKPFZWti+/QiaS2PQZ8Nr0/RXbJZH9EvAF8HzhX0nlp39+uThWtlIh4mWy02OkR8W/At8m+y0IieQz4LwCSLgAurEY9DSLi+ohoiYipwBLgkYj4FNl39Clge7rp5VVgEYd/yH0n7Q/puxytnEhq2+Nkl7Uei4hDwMtkf5CIiH3AMuCfUmf7aB46v1Y9CfxrWn4cmEL6/sgud50qaQvZtflNla+eDSYidqTFQgvk28DrEfFaWr8WWC7pu8BpFa5eRXmIFDMzK4tbJGZmVhYnEjMzK4sTiZmZlcWJxMzMyuJEYmZmZXEiMRuEpBskfbZE/A8K42NVoA7DMmqsR4C2vHj0X7MTJGlsRHyl2vUwGyncIjEbQNKfSHpB0sNkg2QW5gP5C0nfAq4ttFQkvV/SpqKyU9NDhEiaJelbkjZLekjS5BKf9TlJK1DB9UkAAAJ8SURBVNLyTZIeScuXpGE4CvutlPSMpCckTUqxZknfSKPLflfSRSl+iqS7UuwpSYtLfO6vSno6vZ5KY7aZvSNOJGZFJM0iG9big2RD7/9y0eZ3RcSvRsSXCoGIeB74OUm/kEKfBFZLagRuBi6PiFnAXWSj+A5UGHMLoJXsafZG0ijOKX4K8EREfCDt//sp/jfATWl02U+QhjgH/oRsGI9fJhs2539JOmXA534WWB4RM9Pn/+z4/3XMSvOlLbMjXQz8QxoGHElriratOkaZ1cBvAV8kSySfJGvJXACsz+YgYwyws0TZzcCs1CLYD3yPLKFcDKxI+7wNPFi0/9y0fCkwIx0fYEI6zjyyQQYLfTvjgHMGfO53gL9KMzV+MyJ6jnFuZsflRGJ2tGONG/TTY8RXAX8v6ZtARMR2Sb8EbI2IDxXvKOls4B/T6lci4itpVNnfJRuWfAtZK+I8stn4AA7E4bGMDnH4320D8KGIOKI1kWbP/EREvDAgPunfTzDii5L+iWyQwSckXRoR3z/G+ZkNype2zI70GPDxNEPhz5NNDDaoiPgB2R/4/8HhVssLQLOkDwFIapR0fkS8HBEz06vQYV88ivPjwB8AT8fxB8JbB3y6sCJpZlp8CLgmJRQkfXBgQUnnRcSzEXEj2aRMv3i88zQ7FicSsyIR8T2yZPA08A2OnB9kMKvIhhRfnY7zNtn8IjdKeiYd7z8do+zjwGRgY0TsAvYN8XNXAK1pOt5tZAkI4H8CjcAWSc+l9YE+I+m5VLefAZ1D+Dyzkjz6r5mZlcUtEjMzK4sTiZmZlcWJxMzMyuJEYmZmZXEiMTOzsjiRmJlZWZxIzMysLP8fRUwm+ji5VB8AAAAASUVORK5CYII=\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": 22, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>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": 22, | |
| "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 | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>make</th>\n", | |
| " <th>aspiration</th>\n", | |
| " <th>num-of-doors</th>\n", | |
| " <th>body-style</th>\n", | |
| " <th>drive-wheels</th>\n", | |
| " <th>engine-location</th>\n", | |
| " <th>engine-type</th>\n", | |
| " <th>num-of-cylinders</th>\n", | |
| " <th>fuel-system</th>\n", | |
| " <th>horsepower-binned</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>count</th>\n", | |
| " <td>201</td>\n", | |
| " <td>201</td>\n", | |
| " <td>201</td>\n", | |
| " <td>201</td>\n", | |
| " <td>201</td>\n", | |
| " <td>201</td>\n", | |
| " <td>201</td>\n", | |
| " <td>201</td>\n", | |
| " <td>201</td>\n", | |
| " <td>200</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>unique</th>\n", | |
| " <td>22</td>\n", | |
| " <td>2</td>\n", | |
| " <td>2</td>\n", | |
| " <td>5</td>\n", | |
| " <td>3</td>\n", | |
| " <td>2</td>\n", | |
| " <td>6</td>\n", | |
| " <td>7</td>\n", | |
| " <td>8</td>\n", | |
| " <td>3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>top</th>\n", | |
| " <td>toyota</td>\n", | |
| " <td>std</td>\n", | |
| " <td>four</td>\n", | |
| " <td>sedan</td>\n", | |
| " <td>fwd</td>\n", | |
| " <td>front</td>\n", | |
| " <td>ohc</td>\n", | |
| " <td>four</td>\n", | |
| " <td>mpfi</td>\n", | |
| " <td>Low</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>freq</th>\n", | |
| " <td>32</td>\n", | |
| " <td>165</td>\n", | |
| " <td>115</td>\n", | |
| " <td>94</td>\n", | |
| " <td>118</td>\n", | |
| " <td>198</td>\n", | |
| " <td>145</td>\n", | |
| " <td>157</td>\n", | |
| " <td>92</td>\n", | |
| " <td>115</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " make aspiration num-of-doors body-style drive-wheels \\\n", | |
| "count 201 201 201 201 201 \n", | |
| "unique 22 2 2 5 3 \n", | |
| "top toyota std four sedan fwd \n", | |
| "freq 32 165 115 94 118 \n", | |
| "\n", | |
| " engine-location engine-type num-of-cylinders fuel-system \\\n", | |
| "count 201 201 201 201 \n", | |
| "unique 2 6 7 8 \n", | |
| "top front ohc four mpfi \n", | |
| "freq 198 145 157 92 \n", | |
| "\n", | |
| " horsepower-binned \n", | |
| "count 200 \n", | |
| "unique 3 \n", | |
| "top Low \n", | |
| "freq 115 " | |
| ] | |
| }, | |
| "execution_count": 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": 29, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array(['rwd', 'fwd', '4wd'], dtype=object)" | |
| ] | |
| }, | |
| "execution_count": 29, | |
| "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": 32, | |
| "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": 31, | |
| "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": 31, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# grouping results\n", | |
| "df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n", | |
| "df_group_one" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n", | |
| "\n", | |
| "<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 33, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>drive-wheels</th>\n", | |
| " <th>body-style</th>\n", | |
| " <th>price</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>4wd</td>\n", | |
| " <td>hatchback</td>\n", | |
| " <td>7603.000000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>4wd</td>\n", | |
| " <td>sedan</td>\n", | |
| " <td>12647.333333</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>4wd</td>\n", | |
| " <td>wagon</td>\n", | |
| " <td>9095.750000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>fwd</td>\n", | |
| " <td>convertible</td>\n", | |
| " <td>11595.000000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>fwd</td>\n", | |
| " <td>hardtop</td>\n", | |
| " <td>8249.000000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5</th>\n", | |
| " <td>fwd</td>\n", | |
| " <td>hatchback</td>\n", | |
| " <td>8396.387755</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>fwd</td>\n", | |
| " <td>sedan</td>\n", | |
| " <td>9811.800000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>fwd</td>\n", | |
| " <td>wagon</td>\n", | |
| " <td>9997.333333</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>rwd</td>\n", | |
| " <td>convertible</td>\n", | |
| " <td>23949.600000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>rwd</td>\n", | |
| " <td>hardtop</td>\n", | |
| " <td>24202.714286</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td>rwd</td>\n", | |
| " <td>hatchback</td>\n", | |
| " <td>14337.777778</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>11</th>\n", | |
| " <td>rwd</td>\n", | |
| " <td>sedan</td>\n", | |
| " <td>21711.833333</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <td>rwd</td>\n", | |
| " <td>wagon</td>\n", | |
| " <td>16994.222222</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " drive-wheels body-style price\n", | |
| "0 4wd hatchback 7603.000000\n", | |
| "1 4wd sedan 12647.333333\n", | |
| "2 4wd wagon 9095.750000\n", | |
| "3 fwd convertible 11595.000000\n", | |
| "4 fwd hardtop 8249.000000\n", | |
| "5 fwd hatchback 8396.387755\n", | |
| "6 fwd sedan 9811.800000\n", | |
| "7 fwd wagon 9997.333333\n", | |
| "8 rwd convertible 23949.600000\n", | |
| "9 rwd hardtop 24202.714286\n", | |
| "10 rwd hatchback 14337.777778\n", | |
| "11 rwd sedan 21711.833333\n", | |
| "12 rwd wagon 16994.222222" | |
| ] | |
| }, | |
| "execution_count": 33, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# grouping results\n", | |
| "df_gptest = df[['drive-wheels','body-style','price']]\n", | |
| "grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n", | |
| "grouped_test1" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n", | |
| "\n", | |
| "<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 34, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead tr th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead tr:last-of-type th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr>\n", | |
| " <th></th>\n", | |
| " <th colspan=\"5\" halign=\"left\">price</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>body-style</th>\n", | |
| " <th>convertible</th>\n", | |
| " <th>hardtop</th>\n", | |
| " <th>hatchback</th>\n", | |
| " <th>sedan</th>\n", | |
| " <th>wagon</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>drive-wheels</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>4wd</th>\n", | |
| " <td>NaN</td>\n", | |
| " <td>NaN</td>\n", | |
| " <td>7603.000000</td>\n", | |
| " <td>12647.333333</td>\n", | |
| " <td>9095.750000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>fwd</th>\n", | |
| " <td>11595.0</td>\n", | |
| " <td>8249.000000</td>\n", | |
| " <td>8396.387755</td>\n", | |
| " <td>9811.800000</td>\n", | |
| " <td>9997.333333</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>rwd</th>\n", | |
| " <td>23949.6</td>\n", | |
| " <td>24202.714286</td>\n", | |
| " <td>14337.777778</td>\n", | |
| " <td>21711.833333</td>\n", | |
| " <td>16994.222222</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " price \\\n", | |
| "body-style convertible hardtop hatchback sedan \n", | |
| "drive-wheels \n", | |
| "4wd NaN NaN 7603.000000 12647.333333 \n", | |
| "fwd 11595.0 8249.000000 8396.387755 9811.800000 \n", | |
| "rwd 23949.6 24202.714286 14337.777778 21711.833333 \n", | |
| "\n", | |
| " \n", | |
| "body-style wagon \n", | |
| "drive-wheels \n", | |
| "4wd 9095.750000 \n", | |
| "fwd 9997.333333 \n", | |
| "rwd 16994.222222 " | |
| ] | |
| }, | |
| "execution_count": 34, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n", | |
| "grouped_pivot" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 35, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead tr th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead tr:last-of-type th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr>\n", | |
| " <th></th>\n", | |
| " <th colspan=\"5\" halign=\"left\">price</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>body-style</th>\n", | |
| " <th>convertible</th>\n", | |
| " <th>hardtop</th>\n", | |
| " <th>hatchback</th>\n", | |
| " <th>sedan</th>\n", | |
| " <th>wagon</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>drive-wheels</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>4wd</th>\n", | |
| " <td>0.0</td>\n", | |
| " <td>0.000000</td>\n", | |
| " <td>7603.000000</td>\n", | |
| " <td>12647.333333</td>\n", | |
| " <td>9095.750000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>fwd</th>\n", | |
| " <td>11595.0</td>\n", | |
| " <td>8249.000000</td>\n", | |
| " <td>8396.387755</td>\n", | |
| " <td>9811.800000</td>\n", | |
| " <td>9997.333333</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>rwd</th>\n", | |
| " <td>23949.6</td>\n", | |
| " <td>24202.714286</td>\n", | |
| " <td>14337.777778</td>\n", | |
| " <td>21711.833333</td>\n", | |
| " <td>16994.222222</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " price \\\n", | |
| "body-style convertible hardtop hatchback sedan \n", | |
| "drive-wheels \n", | |
| "4wd 0.0 0.000000 7603.000000 12647.333333 \n", | |
| "fwd 11595.0 8249.000000 8396.387755 9811.800000 \n", | |
| "rwd 23949.6 24202.714286 14337.777778 21711.833333 \n", | |
| "\n", | |
| " \n", | |
| "body-style wagon \n", | |
| "drive-wheels \n", | |
| "4wd 9095.750000 \n", | |
| "fwd 9997.333333 \n", | |
| "rwd 16994.222222 " | |
| ] | |
| }, | |
| "execution_count": 35, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n", | |
| "grouped_pivot" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
| "<h1>Question 4:</h1>\n", | |
| "\n", | |
| "<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n", | |
| "</div>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 38, | |
| "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": 38, | |
| "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_bodystyle=df_group_two.groupby(['body-style'],as_index=False).mean()\n", | |
| "df_group_two_bodystyle" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Double-click <b>here</b> for the solution.\n", | |
| "\n", | |
| "<!-- The answer is below:\n", | |
| "\n", | |
| "# grouping results\n", | |
| "df_gptest2 = df[['body-style','price']]\n", | |
| "grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n", | |
| "grouped_test_bodystyle\n", | |
| "\n", | |
| "-->" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "If you did not import \"pyplot\" let's do it again. " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 39, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import matplotlib.pyplot as plt\n", | |
| "%matplotlib inline " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h4>Variables: Drive Wheels and Body Style vs Price</h4>" | |
| ] | |
| }, | |
| { | |
| "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": 40, | |
| "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": null, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "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": 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>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": 41, | |
| "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": 42, | |
| "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": 43, | |
| "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": null, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "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": 44, | |
| "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": 45, | |
| "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": 46, | |
| "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": 47, | |
| "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": 48, | |
| "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": 51, | |
| "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": 50, | |
| "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": 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>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": 52, | |
| "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": 53, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>drive-wheels</th>\n", | |
| " <th>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": 53, | |
| "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": 54, | |
| "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": 54, | |
| "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": 55, | |
| "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": 56, | |
| "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": 57, | |
| "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": 58, | |
| "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 © 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