Created
December 3, 2019 14:35
-
-
Save kshirsagarsiddharth/061f0a487b82dfff81ad8665c9137a4d 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": 8, | |
| "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": 9, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>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": 9, | |
| "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": 10, | |
| "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": 11, | |
| "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": 12, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "symboling int64\n", | |
| "normalized-losses int64\n", | |
| "make object\n", | |
| "aspiration object\n", | |
| "num-of-doors object\n", | |
| "body-style object\n", | |
| "drive-wheels object\n", | |
| "engine-location object\n", | |
| "wheel-base float64\n", | |
| "length float64\n", | |
| "width float64\n", | |
| "height float64\n", | |
| "curb-weight int64\n", | |
| "engine-type object\n", | |
| "num-of-cylinders object\n", | |
| "engine-size int64\n", | |
| "fuel-system object\n", | |
| "bore float64\n", | |
| "stroke float64\n", | |
| "compression-ratio float64\n", | |
| "horsepower float64\n", | |
| "peak-rpm float64\n", | |
| "city-mpg int64\n", | |
| "highway-mpg int64\n", | |
| "price float64\n", | |
| "city-L/100km float64\n", | |
| "horsepower-binned object\n", | |
| "diesel int64\n", | |
| "gas int64\n", | |
| "dtype: object\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# list the data types for each column\n", | |
| "print(df.dtypes)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n", | |
| "<h3>Question #1:</h3>\n", | |
| "\n", | |
| "<b>What is the data type of the column \"peak-rpm\"? </b>\n", | |
| "</div>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Double-click <b>here</b> for the solution.\n", | |
| "\n", | |
| "<!-- The answer is below:\n", | |
| "\n", | |
| "float64\n", | |
| "\n", | |
| "-->" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>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": 13, | |
| "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": 15, | |
| "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": 15, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "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": 16, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(0, 56387.220480657335)" | |
| ] | |
| }, | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# 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": 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>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": 17, | |
| "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": 18, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7fee18b98c50>" | |
| ] | |
| }, | |
| "execution_count": 18, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.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": 19, | |
| "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": 19, | |
| "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": 20, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7fee18b0e748>" | |
| ] | |
| }, | |
| "execution_count": 20, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO29e5hc1XXg+1v16oe6W2pJ3UiWBJKMHIEcA0Ym+PEpip1csOMAvp8cw3djmDsk0jj4mkziBJhJCIPH85nEMTH2mCv5cXlkYkyUh3V9wR4DURSPAVmywY5AWKIl3AJJ3ZIa9aO6ux5n3T/Oru5T1VXdVd317F6/7yvVOavOPmcfVfVZe6+19lqiqhiGYRjGbAnVugOGYRhGY2OKxDAMw5gTpkgMwzCMOWGKxDAMw5gTpkgMwzCMORGpdQeqzfLly3Xt2rW17oZhGEZDcfDgwTOq2pXvswWnSNauXcuBAwdq3Q3DMIyGQkReK/SZmbYMwzCMOWGKxDAMw5gTpkgMwzCMOWGKxDAMw5gTpkgMwzCMObHgorYWAnsP97FzXw+9A3HWdLayY8t6tm7srnW3DMOYp9iMZJ6x93Afd+85RN/QGEtaovQNjXH3nkPsPdxX664ZhjFPqbgiEZGwiPxERL7j9u8RkddF5AX3+lDg2LtE5KiIvCIi1wTkV4rIz9xnD4iIOHmTiHzLyZ8XkbWVvp96Z+e+HqJhoTUWQcR/j4aFnft6at01wzDmKdWYkdwOvJwju19VL3evJwBE5FLgRmATcC3wFREJu+MfBLYDG9zrWie/FRhQ1YuB+4H7KnonDUDvQJyWaDhL1hINc2IgXqMeGYYx36moIhGR1cBvAl8r4vDrgcdUdVxVjwFHgatEZCXQoarPql+F6xHghkCbh932buADmdnKQmVNZyujyXSWbDSZZnVna416ZBjGfKfSM5K/Bv4E8HLknxSRn4rIN0Sk08lWAb2BY0442Sq3nSvPaqOqKeA8sCy3EyKyXUQOiMiB/v7+Od5SfbNjy3qSaSWeSKHqvyfTyo4t62vdNcMw5ikVUyQi8mGgT1UP5nz0IPBW4HLgJPBXmSZ5TqPTyKdrky1Q3aWqm1V1c1dX3pxj84atG7u597pNdLc3c340SXd7M/det8mitgzDqBiVDP99L3Cdc6Y3Ax0i8jeq+juZA0Tkq8B33O4JYE2g/WrgDSdfnUcebHNCRCLAYuBcBe6lodi6sdsUh2EYVaNiMxJVvUtVV6vqWnwn+jOq+jvO55HhI8C/ue09wI0uEmsdvlN9v6qeBIZE5Grn/7gZ+HagzS1ue5u7xpQZiWEYhlE5arEg8S9E5HJ8E9RxYAeAqh4SkceBl4AUcJuqZrzGnwAeAlqAJ90L4OvAoyJyFH8mcmOV7sEwDMNwyEIbwG/evFmtHolhGEZpiMhBVd2c7zNb2W4YhmHMCVMkhmEYxpwwRWIYhmHMCVMkhmEYxpwwRWIYhmHMCVMkhmEYxpwwRWIYhmHMCVMkhmEYxpwwRWIYhmHMCavZbhh1xt7Dfezc10PvQJw1na3s2LLeknAadY3NSAyjjth7uI+79xyib2iMJS1R+obGuHvPIfYe7qt11wyjIDYjmYfYiLZx2bmvh2hYaI35f5qtsQjxRIqd+3rsOzTqFpuRzDNsRNvY9A7EaYmGs2Qt0TAnBuI16pFhzIwpknlGcEQr4r9Hw8LOfT217ppRBGs6WxlNprNko8k0qztba9Qjw5gZUyTzDBvRNjY7tqwnmVbiiRSq/nsyrezYsr7WXTOMgpgimWfYiLax2bqxm3uv20R3ezPnR5N0tzdz73WbzD9i1DUVd7aLSBg4ALyuqh8WkaXAt4C1+BUSf1tVB9yxdwG3AmngU6r6PSe/kskKiU8At6uqikgT8AhwJXAW+JiqHq/0PdUzO7as5+49h4gnUrREw4wm0zaibTC2buw2xWE0FNWYkdwOvBzYvxN4WlU3AE+7fUTkUvxSuZuAa4GvOCUE8CCwHb+O+wb3OfhKZ0BVLwbuB+6r7K3UPzaiNQyj2lR0RiIiq4HfBD4L/KETXw9sddsPA3uBO5z8MVUdB465OuxXichxoENVn3XnfAS4Ab9u+/XAPe5cu4Evi4joQqsfnIONaA3DqCaVnpH8NfAngBeQXaCqJwHce+aJtwroDRx3wslWue1ceVYbVU0B54FluZ0Qke0ickBEDvT398/1ngzDMIwAFVMkIvJhoE9VDxbbJI9Mp5FP1yZboLpLVTer6uaurq4iu2MYhmEUQyVNW+8FrhORDwHNQIeI/A1wWkRWqupJEVkJZFbKnQDWBNqvBt5w8tV55ME2J0QkAiwGzlXqhgzDMIypVGxGoqp3qepqVV2L70R/RlV/B9gD3OIOuwX4ttveA9woIk0isg7fqb7fmb+GRORqERHg5pw2mXNtc9dY0P4RwzCMalOLXFufAx4XkVuBXwAfBVDVQyLyOPASkAJuU9XMgohPMBn++6R7AXwdeNQ55s/hKyzDMAyjishCG8Bv3rxZDxw4UOtuGIZhNBQiclBVN+f7zFa2G4ZhGHPCFIlhGIYxJ0yRGIZhGHPCFIlhGIYxJ0yRGIZhGHPCSu0ahlFzrDx0Y2OKxDDqjIX2UM2Uh46GJas89L0wr+97PmGmLcOoIzIP1b6hsayH6t7DfTM3blCsPHTjY4rEMOqIhfhQtfLQjY8pEsOoIxbiQ9XKQzc+pkiMecPew33ctOs53nffM9y067mGNActxIfqji3rSaaVeCKFqv9u5aEbC1MkxrxgvvgWFuJD1cpDNz4WtWXMC4K+BYDWWIR4IsXOfT0N9UDaurGbe/Hv58RAnNULIGoLrDx0o2OKxCgrtQpd7R2Is6QlmiVrVN+CPVSNRsNMW0bZqKV5aSH6FgyjXqhkzfZmEdkvIi+KyCER+S9Ofo+IvC4iL7jXhwJt7hKRoyLyiohcE5BfKSI/c5894Col4qopfsvJnxeRtZW6H2Nmdu7rIZFKc+r8GK+cHuLU+TESqXRVQlcXom/BMOqFSpq2xoH3q+qwiESBH4hIprLh/ar6+eDBInIpfoXDTcBbgKdE5G2uSuKDwHbgOeAJ4Fr8Kom3AgOqerGI3AjcB3ysgvdkTMPPTw8yOJYihBAWIZVWzo4kSKUHK37thepbMIx6oGKKxNVOH3a7Ufearhzj9cBjqjoOHHPlc68SkeNAh6o+CyAijwA34CuS64F7XPvdwJdFRKxue21Ipv3/9lBIABABz1MS6ep8HeZbMIzaUFEfiYiEReQFoA/4vqo+7z76pIj8VES+ISKdTrYK6A00P+Fkq9x2rjyrjaqmgPPAsjz92C4iB0TkQH9/f5nuzsglFgmBgqeKoniqoE5uGMa8paJ/4aqaVtXLgdX4s4u345up3gpcDpwE/sodLvlOMY18uja5/dilqptVdXNXV1eJd2EUy4budtqbIyTTHmNJj2Tao705wobu9lp3zTCMClKV8F9VfVNE9gLXBn0jIvJV4Dtu9wSwJtBsNfCGk6/OIw+2OSEiEWAxcK4S92DMzLvXL2X/8XOEQ0JUwFM4P5bi3euX1rprRp2z0DIezzcqGbXVJSJL3HYL8OvAYRFZGTjsI8C/ue09wI0uEmsdsAHYr6ongSERudpFa90MfDvQ5ha3vQ14xvwjtePZnnN0tcWIhUN4CrFwiK62GM/2mG43CjNfshIsZCo5I1kJPCwiYXyF9biqfkdEHhWRy/FNUMeBHQCqekhEHgdeAlLAbS5iC+ATwENAC76TPRP99XXgUeeYP4cf9WXUiN6BOMvbmuhqb56QqWpDLgo0qsd8yUqwkKlk1NZPgSvyyD8+TZvPAp/NIz8AvD2PfAz46Nx6apSLNZ2t9A2NTTwQwBYFGjMzn7ISLFQsnMYoG7Yo0JgNlpWg8TFFYpQNy+JqzAYbgDQ+lrTRKCu2KNAoFctK0PjYjMQwjLrBQi4bE1MkhmHUFAv/bXzMtGWUFVtYZpSKhf82PjYjMcqGjSyN2dA7EKclGs6SWfhvY2GKxCgbwZGliP8eDUtV6pEYjYuF/zY+pkjqiL2H+7hp13O8775nuGnXcw03kreRpTEbLPy38TFFUifMB7OQjSyN2WDrjxofc7bXCfPB4bhjy3ru3nOIeCJFSzTMaDJtI0ujKGz9UWNjM5I6YT6YhWxkaRgLE5uR1AnzJeGhjSznjoVQG42GzUjqBHM4GjA/fGXGwsMUSZ1gZiEDLITaaEzMtFVHmFnIsNocRiNSyVK7zSKyX0ReFJFDIvJfnHypiHxfRI64985Am7tE5KiIvCIi1wTkV4rIz9xnD7iSu7iyvN9y8udFZG2l7scwqoGFUBuNSCVNW+PA+1X1MuBy4FoRuRq4E3haVTcAT7t9RORS/FK5m4Brga+4Mr0ADwLb8eu4b3CfA9wKDKjqxcD9wH0VvB/DqDjmKzMakYopEvUZdrtR91LgeuBhJ38YuMFtXw88pqrjqnoMOApcJSIrgQ5VfVZVFXgkp03mXLuBD2RmK4bRiJivzGhEKuojcTOKg8DFwH9X1edF5AJVPQmgqidFJPMXsgp4LtD8hJMl3XauPNOm150rJSLngWXAmZx+bMef0XDhhReW7wYNowKYr8xoNCoataWqaVW9HFiNP7t4+zSH55tJ6DTy6drk9mOXqm5W1c1dXV0zddswDMMogaqE/6rqm8BefN/GaWeuwr1nAuRPAGsCzVYDbzj56jzyrDYiEgEWA+cqchOGYRhGXioZtdUlIkvcdgvw68BhYA9wizvsFuDbbnsPcKOLxFqH71Tf78xgQyJytfN/3JzTJnOubcAzzo9iGIZhVIlK+khWAg87P0kIeFxVvyMizwKPi8itwC+AjwKo6iEReRx4CUgBt6lqJg7yE8BDQAvwpHsBfB14VESO4s9Ebqzg/RiGYRh5kIU2gN+8ebMeOHCg1t3Ii+VYMgyjXhGRg6q6Od9nliKlTth7uI9P736Rn/QOcHpwjJ/0DvDp3S9ajiXDMOoeUyR1wueefJk340nUg7AI6sGb8SSfe/LlWnfNMAxjWizXVp1w7GyckEAo5Ec0i4B6yrGzlmPJMIz6xmYkhmEYxpwwRVInrF++CE/BU0VRPFU89eWGYRj1jCmSOuGOazfS2RpFgFTaQ4DO1ih3XLux1l0zDMOYFlMkdcLWjd385bbLuOLCTlYubuGKCzv5y22XWfivYRh1T9HOdhG5CNigqk+5leoRVR2qXNcWHpaszzCMRqSoGYmI/B5+mvadTrQa+KdKdcowDMNoHIo1bd0GvBcYBFDVI4ANnQ3DMIyiFcm4qiYyOy7T7sLKrWIYhmHkpVhF8i8i8p+AFhH5DeDvgP+3ct0yDMMwGoViFcmdQD/wM2AH8ATwp5XqlGEYhtE4FBu11QJ8Q1W/ChMldFsAy99RRiz7r2EYjUixM5Kn8RVHhhbgqfJ3Z+Gy93Afd+85RN/QGEtaovQNjXH3nkOW/dcwjLqnWEXSrKrDmR233TpdAxFZIyL/LCIvi8ghEbndye8RkddF5AX3+lCgzV0iclREXhGRawLyK0XkZ+6zB1ylRFw1xW85+fMisrb4W68vdu7rIRoWWmMRRPz3aFjYua+n1l0zDMOYlmIVyYiIvDOzIyJXAqMztEkBf6SqlwBXA7eJyKXus/tV9XL3esKd81L8Coeb8Gu7f8WZ0AAeBLbjl9/d4D4HuBUYUNWLgfuB+4q8n7qjdyBOSzScJWuJhjkxYNZDwzDqm2J9JH8A/J2IvOH2VwIfm66Bq7V+0m0PicjLwKppmlwPPKaq48AxVz73KhE5DnSo6rMAIvIIcAN+ud3rgXtc+93Al0VE6qFue6n+jjWdrfQNjdEam/xKRpNpVndOO/EzDMOoOUXNSFT1R8BG/Nrpvw9coqoHi72IMzldATzvRJ8UkZ+KyDdEpNPJVgG9gWYnnGyV286VZ7VR1RRwHliW5/rbReSAiBzo7+8vttuzZjb+jh1b1pNMK/FEClX/PZlWdmxZX/H+GoZhzIVpFYmIvN+9/+/AbwFvwzct/ZaTzYiItAF/D/yBqg7im6neClyOP2P5q8yheZrrNPLp2mQLVHep6mZV3dzV1VVMt+fEbPwdWzd2c+91m+hub+b8aJLu9mbuvW6TRW0ZhlH3zGTa+lXgGXwlkosC/zBdYxGJ4iuR/6Gq/wCgqqcDn38V+I7bPQGsCTRfDbzh5KvzyINtTrjV9ouBczPcU8XpHYizpCWaJSvG32FJGw3DaESmVSSq+uciEgKeVNXHSzmxi6z6OvCyqn4hIF/p/CcAHwH+zW3vAf5WRL4AvAV/5rNfVdMiMiQiV+Obxm4GvhRocwvwLLANeKYe/CPm7zCqia0/MmrNjD4SVfWAT87i3O8FPg68PyfU9y9cKO9PgV8D/qO7ziHgceAl4LvAbaqaduf6BPA14CjwKr6jHXxFtcw55v8QfwV+zTF/h1EtbP2RUQ9IMQN4Efkz/HDfbwEjGbmq1tyMVCqbN2/WAwcOVPw6mVHiiYE4q22UaFSIm3Y9N2X2G0+k6G5v5pvbr65hz4z5hogcVNXN+T4rNvz33+P7RH4/R25D7AKYv8OoBrP1xxlGOSl2QeKlwH8HXgRewPdRbKpUpwzDKI41na2MJtNZMvPHGdWmWEXyMHAJ8AC+ErnEyQzDqCHmjzPqgWJNW7+kqpcF9v9ZRF6sRIcMY6FTShTW1o3d3AvmjzNqSrGK5CcicrWqPgcgIr8C/K/KdcuYb1iIanFkorCiYcmKwroXplUm9n9p1JJiTVu/AvxQRI673FfPAr8aCOM1jIJYiGrxWBZooxEpdkZy7cyHGEZ+gg9HgNZYhHgixc59PTaSzmE2UVg22zNqTVGKRFVfq3RHjPmLhagWT6lZEWZjCjOMclOsacswZo2FqBZPqVFYZgoz6gFTJEbFsRDV4ik1C3TvQJxU2qOnf5jDpwbp6R8mlfZstmdUlWJ9JEaJmN16EgtRLY1SorDaYmGO9o8QFiEsQiqtvP7mGBd3LapwLw1jElMkFWDv4T7+ePeLDI2lSHkeZ4bG+ePdL/KX2y5bsA9PC1GtDH6SbfzKPJnqPBqQG0YVMNNWBbjvu4cZiCdRIBIOocBAPMl93z1c664Z84yh8RSrljQTCQlpT4mEhFVLmhkeT9W6a8YCwmYkFaDnzAghgZAbFYqAitJzZmSGloZRGpkor/VdbROyTPZfw6gWNiMxjAbGAhmMesAUSQVYt6wVT8HzFFXF8xRPfblhlJNSo7wMoxJUzLQlImuAR4AVgAfsUtUvishS/AJZa4HjwG+r6oBrcxdwK5AGPqWq33PyK4GHgBbgCeB2VVURaXLXuBI4C3xMVY9X6p6K5c4PXsKnd7/I8HiKtKeEQ8KSpih3fvCSWnfNmIdYIINRayo5I0kBf6SqlwBXA7eJyKX45XCfVtUNwNNuH/fZjfh1Tq4FviIiYXeuB4Ht+HXcNzCZsuVWYEBVLwbuB+6r4P0UzdaN3Xx+22VcsaaTFR3NXLGmk88v4Iit+cTew33ctOs53nffM9y06znLF2YYVHBGoqongZNue0hEXgZWAdcDW91hDwN7gTuc/DFVHQeOuTrsV7kkkR2q+iyAiDwC3IBft/164B53rt3Al0VEtJj6wRXGRonzD0tHYhj5qYqPRETWAlcAzwMXOCWTUTaZv8BVQG+g2QknW+W2c+VZbVQ1BZwHluW5/nYROSAiB/r7+8tzU8aCw9KRGEZ+Kq5IRKQN+HvgD1R1cLpD88h0Gvl0bbIFqrtUdbOqbu7q6pqpy4aRl96BOC3RcJbMkk8aRoXXkYhIFF+J/A9V/QcnPi0iK1X1pIisBDJG5hPAmkDz1cAbTr46jzzY5oSIRIDFwLmK3Iwx7yg1jU2pmXlnc41q3IdhlJuKzUjEz9HwdeBlVf1C4KM9wC1u+xbg2wH5jSLSJCLr8J3q+535a0hErnbnvDmnTeZc24Bn6sE/YtQ/sym2VeqajWoU9LKiYUY9UEnT1nuBjwPvF5EX3OtDwOeA3xCRI8BvuH1U9RDwOPAS8F3gNlXN5B7/BPA14CjwKr6jHXxFtcw55v8QFwFmGDMxG39HqWs2quFT2bmvh0QqzanzY7xyeohT58dIpNLmtzGqSiWjtn5Afh8GwAcKtPks8Nk88gPA2/PIx4CPzqGbc8bMCvVDKd9F70CcsEBP/zCJtEcsHGJ5W6xof0cx095qFPT6+elBBsdShJjM/nt2JEEqPZ070jDKi61snwNmVqgfSv0u2psivP7mGCm3YDTl+enX25oKj61KvUY1Cnol037mhKTnMZ7ySHoenqck0oVVna2FMcqNKZIiyffHZ+Gg9UOp38WEK00Dr6C8DNeoVh6stMLE7ai/Xwgb/BiVwLL/FkGhhWgj40lWLm7JOtbCQfNTaRNgqWak4USaVUuaOTOcmDBtrWhrYiSRznv8bK5RrYJeIQFPs/cLEVSGAK2xCPFEip37eswka8yaBadIUmnl3EiCaFiIRULEwqEZiwAV+uNLppXRZLqkcNCFSDVWhJcamjub9OuzCf+tdIYDVc1SIuArlUIzq2r4bYyFx4IzbXmqvBlP0D80zusDoxw/G6f3XJy+wTEGRhKMjKdIpLysP8RCC9FikZCl8C6CapgASzUjzcbsVI8p2wuZsQrJq+G3MRYeC06R5KKqJNMew+MpBuIJTg+OcWIgPqFgTp0fY0VHM/3DY7zaN8TLJ8/T0z/M2ZFxNnS3WwrvIqjGivBSQ3Nnk35968Zutr1zFf1D47x8aoj+oXG2vXNVTb/vRCq/Ka6QvB6VodH4LDjTVrH4CsZXMr/8lg4OvjYwEfKZSqSJJ9L81jvewjvWLGHXzVcWbSZbiMzGJDQbSjUjlXr83sN97P7x63S1N3FhNMxoMs3uH7/OO1YvKasyKcWfFA6FUPX8eAH1q3GKk+ejWn4bC4tfWJgiKYJ/OXImr/ypl/u48aoLs2TRcIimSIhoOEQs8L6Q2bFlPXfvOUQ8kaLFPYArMQp+4Kmf87UfHGMkkWZRLMzvvm8dn/r1t5Xt/NVwVJfqT1q3rJWj/SNERPySzgpp1WmLqFXab2NZkhcepkiKoHcgTiQEocAoz/M8evOYZpJpj2Tay5KJiO/cD/uKJRoJTewvhBlMNUbBDzz1c+5/6sjErHFwLMX9Tx0BKJsymesixmLYua+HZDrN2eHUxDU6WiIFlVU9FlEr9R6MxscUSRVQVRIpJZHypnwWnLlEw+Lvh0OEpovhbEAqPQr+0j8fnbLaXJ28XIqkLRbmaP8IYZlcRf76m2Nc3LWoLOcHONI3xPl4klBIJhZKnhlKkEwP5T0+U0St0qaqUij1HozGxxRJEaxZ0sJr5+Lg6YT5wFO4qLNl5sYzkG8GAxAOiVMuvoKJZBRNaP4pmXKQLBCmVEg+G0QEz1PSopP+CKWss8pEygOBkDunCHiSfxCSod6KqM3mHozGxhRJEWzf8lbu+95hRhIpPE8JhYSOWJTtW95asWumPSXtpRlLTo2+ySiZiDOPmZKpDn1DY0gINPM8VJAQ9A+Nle0a0bAwklDGkumJYjyhEMTCjfO9RsPCaBK8wMALGusejNIwRVIEV61fyh3XbOSxH/VyanCUFR0t3PiuNVy1fmlN+pNRMiSnfhZUMtGQ74+JhGRemsuqTTKtBCePCqQ9ps1rVSrd7c0MjCR9DeI0iXrQNc1CyXrjbRd0cOzMMENjkz6S9uYo65a3zdy4BCwyrH4wRVIkV61fWjPFUQrTKZlIKEQ04kxmbjsS8mczje70/8jlK/nHF07mlZeL6dZslOuhpurPeMM5UViNVGYnE6W3YnGkYlF6FhlWX5giWUCkPI9UAkbJby6LhENE3fvEjMb5Z+qd6y9fzfde6iMeyJXVGgtz/eWrp2lVGskCJv5EWsv2UJtNDrB6G5lXI0rPcobVFxVTJCLyDeDDQJ+qvt3J7gF+D+h3h/0nVX3CfXYXcCuQBj6lqt9z8iuBh4AW4AngdlVVEWkCHgGuBM4CH1PV45W6n/lOZiYznuezkIivWMK+mSziIssysnpg574eVi5uzlr0WO4HS2ZWIJl/1Lc+eUrZwl1LzQFWryPzSgcAWM6w+qKST4GHgGvzyO9X1cvdK6NELgVuBDa5Nl8RkUxOjQeB7fildzcEznkrMKCqFwP3A/cV06nGMRDUD576ETcj4ynOjyY5OzzOyfOj9J6Lc+zMyEQqmTPD47wZTzA0lmQ0kSaR8mtjVIPegTiptEdP/zCHTw3S0z9MKu2V9cHS1hQhHPKjkHBRW+GQr1PODCWyapucGUpwpK/0cNdSU5gs1FIGljOsvqhkhcR9IrK2yMOvBx5T1XHgmCude5WIHAc6VPVZABF5BLgBv9Tu9cA9rv1u4MsiIjPVbP/56SE+/KUf0NYUob3Zf7U1Rd37pKy9OUfWFKWtOULYHNZZBFPJFCIk4kxnvk8mOJspl3+mvSnCkb5hwoG1C6+/OcaG7vI5eH/3fev44jNHCYcmU7d7CpGQli3ctVSz0EIdmVcrW4JRHLXwkXxSRG4GDgB/pKoDwCrgucAxJ5ws6bZz5bj3XgBVTYnIeWAZMCWfiYhsx5/VEFtxMXGXK6tvKJ8hZ3paY+EsxeJvR2hrjtDR7GRuP3icP5pdmErIU8VLK/4AcqqtPxNllnH8Z5RBSGTClDYT6hzSiZROhs3K9IWqSuVTv/42jp0ZZs9PT5FM+7OP696xgn1HzjA4lipbuGspZqFq5TGrN6qVM8wojmorkgeBz+BbmD4D/BXw78lf212nkTPDZ9lC1V3ALoCLL71M775uE0PjKYbHkgyNpxgaSzE8lnLbyaz9dI5pJqOETuf1JkzPoqZwYQWUNUOanBG1N0dY1BSZGO3OR/xFmZBPyYC/4C/ilEskJIRCk/vRcIhwSOgfHs+7sv3McOnfUyH2Hu7j4C/Os3ZZ68Qo+OAvztPd3kw0nKh4uGs+FvLIvN4WYi5kqqpIVPV0ZltEvgp8x+2eANYEDl0NvOHkq/PIg21OiEgEWAycm6kPrbEw79uwvNj+Mpb0GBxLBhRNtgLyX0mGM5+NT8py3QMj42lGxtMwWNTlJxBgUVMkx6Arqq4AACAASURBVPw21RyXMdG1B2ZDrU3hhldCk+azwseMJT1CAuFwaGKEkXJ1zOOJlFNCoTnNCgtFCqkqsUi4ouGuhbCRuTFXPE/xVF3giJ+1QRUUnbZIWpCqKhIRWamqmWD/jwD/5rb3AH8rIl8A3oLvVN+vqmkRGRKRq4HngZuBLwXa3AI8C2wDnpnJPzKL/tISC9MSC/PamXM89qNeTg6OsrKIBYm+ozTtZj5upuO2BwPKaDijjALHDY+nspSQAsPjvpKaDS3RMEtaoxMKqG2KUnKKKcck10hKKBYJMZ5M42nAvKQQCYc4dX5y5bm4PFmhkB/y7G8H3kOBzyXbrFbIH3F+NMlnrn97zR/mFkgyPwg+xlQnv1ed5mE/KZt8+Ge9Z45zDxZPi1cSwIzRmZUM//0msBVYLiIngD8HtorI5fj/N8eBHQCqekhEHgdeAlLAbaqaGX9+gsnw3yfdC+DrwKPOMX8OP+qrIuzvOccXnzlCJCR0NEc4OzLOF585wu1sKKhMRIRFTb5Zio7Sruc5JZSrgCYVTo5sLMXQeHJiP/enMZpMM3o+zcnzpfUjJJMzoQmTXEYJBZTPxL4zybU1R1gUC1d1keNFSxfx+psjDI+nSaY9ouEQbS0RVi3JTqioqqRUoQQ/eMZn093exNnhcVrcjETw/29XdDRz5dpOvrZuMyG3kDAkQirtZf0fCC7ii/Ll56rX8N9qMNP6mdyHZO4zM/iAzjxsMw/ozAg9cw4NnsPtBI8Jts881DPvwWurazy5n7+vjYY0+g2Uyjsuf6f+0/f3ldTmD7/1ImdHxrOq/I0m0yxb1MQXPnZZubs4J/7jYy9wZmScWDhE2k1ZR5MerdEwH/zlFXlnRRmT3HAeJTRbQsKEryeogHJNckEFlJkdtURLV0L7e875+dAC6dQXNUW445qNZctIsL/nHJ/5ziHiSW/CgdcaDfFnH94062uIiCtENTkzeu7Vszz63Gu8cX6UVUtauOXdF/G+DV2ERLLMDQr8h0cPcmZ4nJZY4LeZSLO8rYmv3/IukEnlVYjMw1FRBMn2PgYekGSLXdvJB23uwzJzbi1wjuB5Mueacp3AOYOfPddzli8+7Q/umqMhxpIeKU+5/f2FB3fG7ImGQ1y4bNFBVd2c73Nb2V4EJwdHCQv0DoxPjHY7W6OcGhytddemcGpojI7mCIKQ0XstMWVoLDWlCFcunirx8bTvEwr4gIbHkwF/UPbsJ3PcyHi2EvLUrwkyOFa6OS4ckjzmt1zTW4S25igdThm9GU+4h6tv2sobijFHXjk1OKFEwH8IxpMer5wanPXDa8JckVZIZ89+25rCnB4c4789eZjbx9N5r5GpkXJ6cCzrt3liIM7ZkfIFGtQbj+3vJRKSicFdxjf12I96TZHUAFMkRbAoFuG1syOE3Kgx5SmnB8e5aFn56lCUi5UdLVNmT2NJjxUdM6e8D4n4ocrNpf8s0p4yMj7V1xMMSJj4LBgpN5ackv4j7SnnR5OcH82TMKxIxFOGvBSffeJl3rVu6RQlNDEzCuw3R6cvNPb4wROEQ9llbNOex+MHT/Dx96yddV+DPPajXlLpNG/GAya6pnDBB+SiaJjXzsUJiThzmvttLq1t+O/+ntJ8iqVycnCUjpzfaXM0VJeDu4WAKZJimGLQzJHXETe+aw1ffOYIo8l01pT/xnetmbnxHAiHhI6WKB05zuhiSHs6EUwQVEKDY1MDFYbGUwyNTs6KCuWgUiDlKUPjKZ453FdUPyIhyTG7Zc+C4ok0IfH7G9Q38UQaVS2L3+O1cyMMjSaRwKBlYCRJyhvJ32DC6cLkLEyZ2Z5VQWbjUyyVuQyYjPJjiqQIRpJpLuhoYiCeDJgPYsSni0etEVetX8rtbKiblPfFEA4Ji1uiLJ6DEvrYzh+ST6eEBa7ZtCJrjVDGJBfPaZDylIF4koF44ZlQOugMCHDtF/910ic0TTRcbvh2e1OEpsDDMF9RqPQ0q+RHEqmpv822GPHE7CL8ysFjP6q82alWAyYjP6ZIiiAz+lkTWC08mkzTvaiphr0qTKOkvC8HGSVUIMM7qvDpa34p72eptMdICT6hX5yLF1QyyfTMSqgQ0bBMKJyxVBrP801mmZxeuBX6P3z1zJQFrfX426yG2akRB0zzGVMkRWCjn/qnUDTvdFG+kXCIxa0hFrcWPxN69IfHefzgCeKJNC3RENduWsH7L7mAg8cHeOaVPs7FEyyKRbi4axGLmiMT5rjhgK9oLGd2kUwr50YSnBtJZMk1YEqNJz3+9J8OTb2HkJD2JuOkRCAaEtYsbeWhHx7PmhXl+oRikcrkbK2W2WkhDZjqHVMkRVCr0U9mTYLkhCBlzN/5wi2Dx+Yzk+eGU2bOP7m+YfK6+dp6OYulcj8PxskH4/ALkQl/ze1v7kKseuHj71k7xbG+v+cc333pFJGQsKKjibGkx6tnRgqGoibTXiANTzIr+u3wyUF++OrZifDilKekPaU1FiaR8qYooVRO+gRVvz7KD189yw9fPTvtvcQioUDwQSB5aZ6Q7KBJrq0pMq0SsoHXwsMUSZFMN/oREULuARwK+dt+hbtM8kEIhcQtSJPshWmBh3go5zzziVxlUIpjOrhKNx1Y7BVc0RsW57/IISzQEgtPrOqtRMXBUiOtouEQSxfFWLooNvVkV6yaiHjKN2gJKqHBsST3f/8I50cThEOCp77PKJH2iISEi5a1ZmVNGM9RQomUx9nhBGeHE1P7MQPNkdDEotRsn5C/ePVdF3XywonznBkaZ3lbM7912Uo2rGgjlfbKViit0pFhRvEsOEUSEn+NAm4kHpJJRZBZjJWR5T7wM2RG7Rkl0ehlaqvBl54+wtd+cIyRRJpFsTC/+751fOrX31ZUWz+tCYAU/MG+ZUkLvQNTbfBvWdLCysVTTSoZ5ZRZtJly737eISa20+rPCDwvo7ymKqCSI61mYLpBS64SiidTNEdDOYEgUTyFL954RVbbRMornCkhsD8UyC2XUVjJHC09lvIYG05wpgglNDA6zBeeOsIXnjoC+P6S9uDsxymf7NlQZjvbJ5RRQtWIDDOKZ8EpkkhY6O7IX23OqAwPPPVzvvjMUUICkZDvDP7iM0cBilYmM7EoFibsaoRkzEIh8eX5yCin2SRxzCS5yyicVNqPtAoHQnFT4tdoiUVCvvO8QnXXS1njFIuEWNbWxLK20h3x48l0TqbsZE44dk7yUqeAhsdTU5VQ0mMsOU7/LDIzZ5TQ0HgSVSayQIdFSKvypX8+yr8bX5vXJLdQyzhUgwWnSMpNvdXLrke+9oNj/ug+IBMnL5ciGU6kWd3ZklXrfHlbbNpa57MlFBJCgRlqLBJiLOVN+Jz8d6E5EsqqC5J2/g7PzXLSqqTSSsrzSHuZ7RIVTpXWODVFwzRFwywvkxKaiJAbm6qEghm1CymhiXPnXGtwzF+Emo/WWHiGgnZ5fEJW0K4oTJHMgb2H+/jj3S8yNJYi5XmcGRrnj3e/yF9uu8yUSYB8iSTVycvFms5Wjp8dzpIl0h5rl1W+JsjbLujg2JnhGeuRZJI/zkQ+heM5WdpTkp4/C0p72hBrnGarhFSV8ZQXCEaYVEB/89xrvBlPMJ728Lxsc3NrLOz+JrN/dXMpaLcoFs5rapsIQMgtaOci5RYtkIJ2pkjmwH3fPcxAPOnKyIZQhYF4kvu+e7imiqScs6RynKvQ2LicY+Z3r1/K/uPnXLCCr0T6hhLc9K7K28szxaXKVY+kWIXjecraZYvoGxpj3fKmibxd8USKpXW6xqkURITmaJjmaJiu9uz76R8c4+HnXvPNpeHJiMKPv+tCPv6etX4toZQ3aWLLkz17clY0tcBdbkG7kUSakXIVtAv6hPIUtMsopUZSQqZI5kDPmZGJKCtwZg1Res7MzslaDsqZVryRUpQ/23OOrrZYzqwgwrM95/hUha9dq+JSoZDwiV99K3fvOcR4Kj2hxED4gw9s4MKlraQ831yWSnsknRktlfb9N43MT3rPs7Q1ykhiMlJuUSzMT3rP83FcLaFomJY8SmgmVJXRZDrH9FabgnatTglNKJu8SmiqSa7aVVVNkcwzClXx27mvp+QHW7nOFXJO8HzyctE7EGd5WxNd7ZOBFKrKiYF4+S4yDbUq+7p1YzfbTrw5JSIu05dI/lgDv759RrmkPRLpSQWTOxqfDdVI2ti5KMbSRZM/IkXLsnpexP/Nt8YiXFBiLaFCSmiihPf4VCUU3M8taJdRQqfmUFU1mC07o2w6mif3y1HQzhTJHFi3rJWj/SOIN1mVz1O4eHntMq8WquI3mwdquc7V2RLhbHyqP6SzpXw/vzWdrfQNjU0oPfCjw4LO7nJQb8EVew/3sfvHr9PV3sSFbkay+8ev847VS6btl4jQFAnTlOcrSHu+Qkk6RZNMeyRSXtGBAAs5aeNclVCwqmohk9xkPaHJ6LnpqqrOpqBdW1N2+PVMefAqWSHxG8CHgT5VfbuTLQW+BazFr5D426o64D67C7gVSAOfUtXvOfmVTFZIfAK4XVVVRJqAR4ArgbPAx1T1eKXuJx93fvASPvXNHzOcSOOp+wJiYe784CXV7EYW5Xyglu1cBUY35Vx/k/FTxBOpWfspZlIS9RhcsXNfD2eGxognJ01VrdHQrGagGXwfje+byCXpZi6JCUXjkUz5JrMMlrRxdpSrqupgYB1QPpPcTAXtsmsJjRW6ZBaVnJE8BHwZ/2Gf4U7gaVX9nIjc6fbvEJFL8UvlbsKv2f6UiLzNldt9ENgOPIevSK7FL7d7KzCgqheLyI3AfcDHKng/eYlFw8RcNE04JMTy/PFVk3I8UMt9rtwsuxnKGZo7Vz9FMf6gegyu+PEvzjKeM9mLJz1+8ovp06PMlmg4RDQMLWT/zj1vUrmcdsXVwK/oiFrSxkqTWWjd1hRhxeLS1sl56moJZZnespOXxhNpvjTNOSqmSFR1n4iszRFfj1/HHeBhYC9wh5M/pqrjwDFXh/0qETkOdKjqswAi8ghwA74iuR64x51rN/BlERGtYmKmnft6WNwSzVo5PVt/RLmYyWZe6rnK4UTODcOcST5b5uKnKMYf5AdRKMn0ZJ6ykFDT4IpcJZKhjJHVRREKCc1uFpOJJGt1i0FVlZFEijWdrXS0RPPOYmaDJW0sjpn8VSFx2aebC5uvouFQbRRJAS5Q1ZMAqnpSRDJ/9avwZxwZTjhZ0m3nyjNtet25UiJyHlgGnMm9qIhsx5/VcOGF05ebLYVy+iPKxWxt5oUoixO5GvG/cyRTsranfzhrQWPwu/RTqbj6Uc4nllIQqaMbqQPyzWTTHtz2axdnrSXxPCXpOT9Myp/NZAIA6ilRZyOzv+cc933vMCMupHlgJMF93xvhjms2llUJVyaPdOnkM5brNPLp2kwVqu5S1c2qurmrq2uWXZzKms5WF245SSUcvKUQHFlnHH/RsLBzX0/N+hQtkCm2kLwWtDdFeP3NMVLORJnylNffHPPzsjkiLswsU9tKc+S1oNCVa7n6YOvGbra9cxX9Q+O8fGqI/qFxtr1z1ZQBSSjkO/zbmiJ0LorR3dHM6s5W1i1fxIVLW1m5uIVlbU10tERpiYWJhOrn99Io7PrXHgZHkygQDgsKDI4m2fWv5X0eVHtGclpEVrrZyEogUwP1BBD0kq0G3nDy1XnkwTYnRCQCLAbOVbLzuezYsp4/3v0irw+MkvI8IiF/7cKf/eal1exGFvU4Syo0uiz3qPOBp34+68SQWiDVSLCPrbEwY0kva7QiFM7nVQ1CBbIe13IdWzlmxZFwiEgeX0wwbNlmMTPTOxCfstYNUXrL/DyotorfA9zitm8Bvh2Q3ygiTSKyDtgA7HdmsCERuVr8EJ+bc9pkzrUNeKaa/pEMCn4mYb+wR82tNfU4S0rke9JNI58NmcSQo8l0VmLIB576eVHthxNpVi1pJhL2k/9FwsKqJc1ZAQHd7c3ZGaH9rzxr7UrVKRT5VsOM1Dv39ZBIpTl1foxXTg9x6vwYiVS6LLPiTNhyvlnMmqWtrFjczLJFTbQ3R2mKlr4ewpgdlQz//Sa+Y325iJwA/hz4HPC4iNwK/AL4KICqHhKRx4GXgBRwm4vYAvgEk+G/T7oXwNeBR51j/hx+1FdVqUdnezmjtspFoQVu5Vj4luFrPzgGqqQn/BalJYbMhDqv75rMjxVPpOjOWeAYcplmM+uGMll9a7W+ZFEszEgi5ZvaMvc9TdbjavDz04MMjqUI4f9fpdLK2ZEEqXSJq+pKxI8oC0FOmZdgmHIiM4NJeXlLAsw31ixp4bVzcchZ63ZRZ3nX21QyauumAh99oMDxnwU+m0d+AHh7HvkYThHVino0I9UqXUetySzIyow/Vf0yu8OFwppyKEYBDyfSdLZGODuSnFg3tGxRlDPD4zVLJfOBjV384wsnJ/ZVAfXltSKTsTdTnE0kEx5cmwd3IQWTSRsTXBOTSJVnZX+9sH3LW31neyKF5/kDoY5YlO1b3lrW69jK9jlQrdXUpVKrdB21RNxwK/cRUOyix2IUcHtThFPnx4iGQxOju4F4ilgkRDSS5uzwZJ6vjpZIVWampwYTLGmJMDiWmlBuHc0RTg2WXvWwXMQiIUYTaTydHAWjVKxG/Gwp5IdJe0oilUkbM7m6v+QU/3XAVeuXcsc1Gyu+3sYUyRyoRzMS1F8aj2oQDUG+PITREp5dMylgdWasREqzimeNJ9P0JdMTRbVS6TRj7rdQaXoH4kTD2coyGpaazoo3dLfzyqlB3hydnLktaYmyobu9Zn0qhXBIaImFpygYyDaT+aHL9Z8EsxrrbUyRzIFqmZFKUQx7D/fx6d0vMuzixs8Mj/Pp3S/y+XleIyUWCTOeSk2JqIoVylo4C86MJCaUBfjvwf0JR7z6kVSFVvSXFVX6h5MTu55C/3CS1Utq5yPJpPQPh4SoS9h5fizFu+fB4sFCZjJVnZi5BCPJMnVj5jumSOZIpc1IpeZ3+tyTL/NmPElYfEenevBmPMnnnnx5niuSEBFXbnbCqehpWc0p8UQ6b4GurO2AIJGqvCLpL1CkqZC8GtQypX+tEBFiEcn7e8skwcw4+RNlWtlfT5giqXNKze907KyLGw84OtVTjp2tnamjGlTDnDI2zQwjLJMLFTMRY+EqLKAbL2A+KySvBtVK6T+XdUPVpFASzGB+stlkWa4nTJHUOfWY36keqYY5Zbrxo4gQyQkLXrestkEXtaIaQSgPPPVz/vrpIxOp0wfHUvz100cA6lKZ5COYnyxIITNZPYcs11cYhTGFTH4ndd5dVUh5FPxBrV++CM+VHVX8ut+e+vL5zLM952hvCpP2lPGUn425vSnMsz3VSXawpDWKhHwFIiF/v5blBGrJji3rSaaVeCLlamykyh6E8n/v65lSLM1TX97o+GayEIuaIixpjdHd3syqJS2sDaaOcYsum+tk0aUpkjqn1PxOd1y7kc7WKIIfJy9AZ2uUO67dWI3u1ozMIrjMwyVTU+HI6cougsvw+W2XccWaTlZ0NHPFms6qBTe0FihbUEheDbZu7Obe6zbR3d7M+dEk3e3N3HvdprL+fxQKZKhKgEMNiYRDtMTCLG6N0tXexFsCCmbF4maWLorR1hwhFgmVtd7PjP2q2pWMWdEaCzOe8iaUSCYyqNDK5a0bu/nLbZctwAWJ6bwj1KHx6jxYyhl0UUqU3oVLmzl8eqqZ88KlNUzbwsJcy1RL/DUxIVoD0WQZE1nQyZ9w+cnKfv2yn9EoK2+7oINjZ4anRMCsW95WsM1C/CNOpPL/cRSSz4YQ+f0k5ZzWlxqld6Q/vwO7kNxYOGRFkk1m759w8gcVy1xX9Jtpq87ZsWU9sUiYFYub+aUL2lmxuJlYJFzzRY/1RjVKnkQjoSnp2YXypsPPROkp/ihTmYzSy0c18pjVIy0FVpoWkhuThEJCczRMR3OU5W1NrFzcwkXLsv0vbc0RmqLhos1jNiOpcxZq7qxSiYUlby6nWLh8duJ1y1o52j8yJWljOaOzes6MTEn7raIWpZfDoqYI48kEKoGQa/XlxuyYSBkTCwOTOQQzq/enbVvhvhlloNFNVW6xd155uehui3Hi/NRFeN1tsTxHz447P3hJVtaAcEhY0rRwo7NqyYbudo6Hhxkczc5vtnZZYZOvMTv81fzTH2PzQKPirFqS3/FbSD4rQiG62qITBZ1CAl1tUaSMiwK3buzm5qsvIhYO4SnEwiFuvvqisir5dcta/fBttyjN8/zw7YW6JqUQO7asJxrONvlGw2byrRWmSIyK819v+GVac2zXrdEQ//WGXy7bNdZ0tvqhkdEw0bDQEg0TCYfKugguWPnvkhXtdLU3sfvHr7P3cN/MjYvkzg9eUtKalEIDxdoF/1aHaoQYG8VTE9OWiBwHhoA0kFLVzSKyFPgWsBY4Dvy2qg644+8CbnXHf0pVv+fkVzJZ9OoJ4PZaVEk0Zqa1KYLHpEmotQhbdilhsJmV7SG38j+R9ugbSnDTuwqvbC81S/LOfT1EwzKxYrs1Fil7IbOtG7v5fAnh24WCm+f3agqfRjf5zidq6SP5NVU9E9i/E3haVT8nIne6/TtE5FL86oebgLcAT4nI21wFxQeB7cBz+IrkWiYrKBp1wmwqSe493FdSsahSEwWWen6oXiEze0AajUY9mbauBx522w8DNwTkj6nquKoeA44CV4nISqBDVZ91s5BHAm2MOqJ3IE5LjrdupgdwcPQv4r9Hw1Kw7ncmUeD6rjY2ruhgfVcby9uaCl6j1PODbz4bTWaP9euhkJlh1JpaKRIF/qeIHBSR7U52gaqeBHDvmSHZKqA30PaEk61y27nyKYjIdhE5ICIH+vv7y3gbRjHM5gFcqvIp9RqzUW7VyCFVKu9e11mS3DAqQa0UyXtV9Z3AB4HbRGTLNMfmixLVaeRThaq7VHWzqm7u6qpdLeuFymwewKUqhlKvMRvlVo8O3m/ueM8UpfHudZ18c8d7atQjYyFSEx+Jqr7h3vtE5B+Bq4DTIrJSVU86s1UmFOYEsCbQfDXwhpOvziM36ozZLKostYxxqdeYbZnkevRfmNIwao1UO8hJRBYBIVUdctvfB+4FPgCcDTjbl6rqn4jIJuBv8ZXNW4CngQ2qmhaRHwH/F/A8vrP9S6r6xHTX37x5sx44cKBi92eUj0xUVaVW9Ff6/IYxnxCRg6q6Od9ntZiRXAD8o8vhEgH+VlW/65TC4yJyK/AL4KMAqnpIRB4HXgJSwG0uYgvgE0yG/z6JRWzNKyo9+q/H2YVhNCJVn5HUGpuRGIZhlM50M5J6Cv81DMMwGhBTJIZhGMacMEViGIZhzAlTJIZhGMacWHDOdhHpB16rdT+qxHLgzIxHzT/svhcWdt/V4SJVzbuie8EpkoWEiBwoFGUxn7H7XljYfdceM20ZhmEYc8IUiWEYhjEnTJHMb3bVugM1wu57YWH3XWPMR2IYhmHMCZuRGIZhGHPCFIlhGIYxJ0yRNCAiEhaRn4jId9z+PSLyuoi84F4fChx7l4gcFZFXROSagPxKEfmZ++wBcemY6xUROe76+4KIHHCypSLyfRE54t47A8fP5/teCN/3EhHZLSKHReRlEXn3Avm+8913/X/fqmqvBnsBf4hfo+U7bv8e4NN5jrsUeBFoAtYBrwJh99l+4N34lSafBD5Y6/ua4Z6PA8tzZH8B3Om27wTuWyD3vRC+74eB33XbMWDJAvm+89133X/fNiNpMERkNfCbwNeKOPx64DFVHVfVY8BR4CpXgbJDVZ9V/1f3CHBDxTpdOa7H/8PDvd8QkM/n+y7EvLhvEekAtgBfB1DVhKq+yTz/vqe570LUzX2bImk8/hr4E8DLkX9SRH4qIt8ITPlXAb2BY0442Sq3nSuvZxT4nyJyUES2O9kFqnoSwL1nqlTN9/uG+f19rwf6gf/HmXC/Jn411fn+fRe6b6jz79sUSQMhIh8G+lT1YM5HDwJvBS4HTgJ/lWmS5zQ6jbyeea+qvhP4IHCbiGyZ5tj5ft/z/fuOAO8EHlTVK4ARfFNWIeb7fdf9922KpLF4L3CdiBwHHgPeLyJ/o6qnVTWtqh7wVfz69uCPRNYE2q8G3nDy1XnkdYuqvuHe+4B/xL/H024aj3vvc4fP6/teAN/3CeCEqj7v9nfjP2Dn+/ed974b4fs2RdJAqOpdqrpaVdcCNwLPqOrvZP64HB8B/s1t7wFuFJEmEVkHbAD2O7PAkIhc7aI5bga+Xb07KQ0RWSQi7Zlt4H/Dv8c9wC3usFuYvId5fd/z/ftW1VNAr4j8khN9AHiJef59F7rvhvi+ax2lYK/ZvYCtTEZtPQr8DPip+3GtDBz3n/GjOV4hELkBbHY/yFeBL+OyHNTjC992/KJ7HQL+s5MvA54Gjrj3pQvkvuf19+36ezlwwN3jPwGd8/37nua+6/77thQphmEYxpww05ZhGIYxJ0yRGIZhGHPCFIlhGIYxJ0yRGIZhGHPCFIlhGIYxJ0yRGEYNEJGHRGRbrfthGOXAFIlhNAAiEq51HwyjEKZIDKMERGStqxXxsEuit1tEWl39h39xyRW/F0jl8Xsi8iMReVFE/l5EWvOc8zNuhhLKkW8VkX8Wkb8Fflbo2u7Y4yLy30TkWRE5ICLvdP14VUT+Q1X+c4wFiykSwyidXwJ2qeo7gEHgNuBLwDZVvRL4BvBZd+w/qOq7VPUy4GXg1uCJROQv8LPY/p/q51LK5Sr8Fe2XFrj27weO7VXVdwP/CjwEbAOuBu6d4/0axrSYIjGM0ulV1f/ltv8GuAZ4O/B9EXkB+FMmk+a9XUT+VUR+BvwfwKbAef4MWKKqO7Rwion96teaKHTt9wU+2+PefwY8r6pDqtoPjInIklncp2EURaTWHTCMBiT3oT8EHHKzgVweAm5Q1RdF5N/h50jL8CPgShFZqqrnRORXgJ3us7vxZxwjM1w7uD/uL4rGXgAAAM5JREFU3r3Admbf/taNimEzEsMonQtFJKM0bgKeA7oyMhGJikhm5tEOnBSRKP6MJMh3gc8B/5+ItKvq86p6uXvtIT+51/5BuW7KMGaLKRLDKJ2XgVtE5KfAUpx/BLhPRF4EXgDe4479M+B54PvA4dwTqerf4deY2CMiLbO49oNzvBfDmDOW/dcwSkBE1uKn73/7Qrq2YUyHzUgMwzCMOWEzEsMwDGNO2IzEMAzDmBOmSAzDMIw5YYrEMAzDmBOmSAzDMIw5YYrEMAzDmBP/P9A5U6yaEqPeAAAAAElFTkSuQmCC\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": 21, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>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": 21, | |
| "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": 23, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>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": 23, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute\n", | |
| "df[[\"stroke\",\"price\"]].corr()\n" | |
| ] | |
| }, | |
| { | |
| "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": 24, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7fee18ae5160>" | |
| ] | |
| }, | |
| "execution_count": 24, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "sns.regplot(x=\"price\",y=\"stroke\",data=df)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Double-click <b>here</b> for the solution.\n", | |
| "\n", | |
| "<!-- The answer is below:\n", | |
| "\n", | |
| "#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n", | |
| "\n", | |
| "#Code: \n", | |
| "sns.regplot(x=\"stroke\", y=\"price\", data=df)\n", | |
| "\n", | |
| "-->" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>Categorical variables</h3>\n", | |
| "\n", | |
| "<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Let's look at the relationship between \"body-style\" and \"price\"." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 25, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7fee18a547b8>" | |
| ] | |
| }, | |
| "execution_count": 25, | |
| "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": 26, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7fee18981320>" | |
| ] | |
| }, | |
| "execution_count": 26, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3df5BdZZ3n8feHDguNGgaaJhW7waAdVwOM0bSYXXRHJUDLKMFdWMKqaXeyxsUI0XFqJNbUgFOFJVOjDIkFGsWlw6gQGWeIVJIlgIhOQbCjSAg/iq4hQn5saBvEICHSne/+cZ4Ltzu3O50+OX26cz+vqlv3nO85z7nP6brV3/uc55znUURgZmY2VkeUXQEzM5vcnEjMzCwXJxIzM8vFicTMzHJxIjEzs1ymlF2B8XbCCSfEjBkzyq6GmdmksmnTpt9GRHOtbXWXSGbMmEF3d3fZ1TAzm1Qk/Wa4bb60ZWZmuTiRmJlZLk4kZmaWixOJmZnl4kRiY9bX18fll19OX19f2VUxsxI5kdiYdXV1sXnzZlatWlV2VcysRE4kNiZ9fX2sX7+eiGD9+vVulZjVscITiaQGSb+SdEdav0rSdkkPpdd5Vfsuk9Qj6QlJ51bF50janLYtl6QUP0rSrSm+UdKMos/HMl1dXezbtw+AgYEBt0rM6th4tEiWAo8NiV0bEbPTay2ApFnAAuBUoAO4XlJD2v8GYDEwM706UnwR8HxEtAHXAtcUeib2qrvuuov+/n4A+vv72bBhQ8k1MrOyFJpIJLUCfw58ZxS7zwduiYi9EfEU0AOcIWk6MDUi7o9sFq5VwAVVZbrS8m3AWZXWihVr3rx5TJmSDYwwZcoUzj777JJrZGZlKbpF8o/AXwP7hsQ/K+lhSd+VdFyKtQDPVO2zLcVa0vLQ+KAyEdEPvAA0Da2EpMWSuiV19/b25jwlA+js7OSII7KvT0NDAwsXLiy5RmZWlsISiaQPA89GxKYhm24A3gLMBnYCX6sUqXGYGCE+UpnBgYiVEdEeEe3NzTXHHLOD1NTUREdHB5Lo6OigqWm//G1mdaLIQRvPBM5PnelHA1Ml/VNEfLyyg6RvA3ek1W3ASVXlW4EdKd5aI15dZpukKcCxwHMFnIvV0NnZydatW90aMatzhbVIImJZRLRGxAyyTvR7IuLjqc+j4qPAI2l5DbAg3Yl1Clmn+oMRsRPYLWlu6v9YCNxeVaYzLV+YPmO/FokVo6mpieXLl7s1YlbnyhhG/u8lzSa7BLUV+DRARGyRtBp4FOgHlkTEQCpzKXAT0AisSy+AG4GbJfWQtUQWjNM5mJlZonr7Ad/e3h6ej8TM7OBI2hQR7bW2+cl2MzPLxYnEzMxycSIxM7NcnEjMzCwXJxIzM8vFicTMzHJxIjEzs1ycSMzMLBcnEhszz9luZuBEYjl4znYzAycSG6O+vj7WrVtHRLBu3Tq3SszqmBOJjUlXV9erU+2+8sorbpWY1TEnEhuTDRs2UBnwMyK48847S66RmZXFicTGZNq0aSOum1n9cCKxMdm1a9eI62ZWP5xIbEzOPvtssgkrQRLnnHNOyTUys7IUnkgkNUj6laQ70vrxkjZIejK9H1e17zJJPZKekHRuVXyOpM1p2/I05S5pWt5bU3yjpBlFn49lOjs7OfLIIwE48sgjPW+7WR0bjxbJUuCxqvUrgLsjYiZwd1pH0iyyqXJPBTqA6yU1pDI3AIvJ5nGfmbYDLAKej4g24FrgmmJPxSqampro6OhAEh/60Ic8b7tZHSs0kUhqBf4c+E5VeD7QlZa7gAuq4rdExN6IeAroAc6QNB2YGhH3R3ab0KohZSrHug04q9JaseJ1dnZy+umnuzViVueKbpH8I/DXwL6q2LSI2AmQ3k9M8Rbgmar9tqVYS1oeGh9UJiL6gReA/X4aS1osqVtSd29vb95zsqSpqYnly5e7NWJW5wpLJJI+DDwbEZtGW6RGLEaIj1RmcCBiZUS0R0R7c3PzKKtjZmajMaXAY58JnC/pPOBoYKqkfwJ2SZoeETvTZatn0/7bgJOqyrcCO1K8tUa8usw2SVOAY4HnijohMzPbX2EtkohYFhGtETGDrBP9noj4OLAG6Ey7dQK3p+U1wIJ0J9YpZJ3qD6bLX7slzU39HwuHlKkc68L0Gfu1SMzMrDhFtkiG81VgtaRFwNPARQARsUXSauBRoB9YEhEDqcylwE1AI7AuvQBuBG6W1EPWElkwXidhZmYZ1dsP+Pb29uju7i67GmZmk4qkTRHRXmubn2w3M7NcnEjMzCwXJxIzM8vFicTMzHJxIjEzs1ycSGzM+vr6uPzyyz1fu1mdcyKxMevq6mLz5s2er92szpXxQKIdBvr6+li/fj0Rwfr161m4cKEHbzQAVqxYQU9PT6l12L59OwAtLS0H2LN4bW1tXHbZZWVXo1BukdiYdHV1sW9fNqjzwMCAWyU2oezZs4c9e/aUXY264SfbbUzOO+88XnrppVfXjznmGNauXVtijcxes3TpUgCuu+66kmty+PCT7XbIzZs3b9Cc7WeffXbJNTKzsjiR2Jicf/75VFqzEcFHPvKRkmtkZmVxIrExWbNmzaAWyY9//OOSa2RmZXEisTG56667BrVINmzYUHKNzKwsTiQ2Ju973/tGXDez+lHYcySSjgbuA45Kn3NbRFwp6SrgU0Bv2vVLEbE2lVkGLAIGgMsj4v+m+Bxem9hqLbA0IkLSUcAqYA7QB1wcEVuLOid7Tb3d7TcZTITnNyaKyt+hcvdWvSv6WZYiH0jcC3wwIl6UdCTwc0mVmQ2vjYh/qN5Z0iyyGQ5PBd4I3CXprWmWxBuAxcADZImkg2yWxEXA8xHRJmkBcA1wcYHnZMnPfvazQev33Xcfy5YtK6k2Btk/zye3/IqTXz9w4J0Pc//hlexiy97f+Fb/p19sKPwzCkskae70F9Pqkek10s/Y+cAtEbEXeCpNn3uGpK3A1Ii4H0DSKuACskQyH7gqlb8N+IYked724k2bNo2tW7cOWrfynfz6Ab70rt+XXQ2bQL7yy6mFf0ahfSSSGiQ9BDwLbIiIjWnTZyU9LOm7ko5LsRbgmari21KsJS0PjQ8qExH9wAvAfuN0SFosqVtSd29v79DNNga7du0acd3M6kehiSQiBiJiNtBK1ro4jewy1VuA2cBO4Gtpd9U6xAjxkcoMrcfKiGiPiPbm5uaDPAurZegDiOecc05JNTGzso3LXVsR8TvgXqAjInalBLMP+DZwRtptG3BSVbFWYEeKt9aIDyojaQpwLPBcQadhVc4///xB634g0ax+FZZIJDVL+pO03AjMAx6XNL1qt48Cj6TlNcACSUdJOgWYCTwYETuB3ZLmKnsCbiFwe1WZzrR8IXCP+0fGhx9INLOKIu/amg50SWogS1irI+IOSTdLmk12CWor8GmAiNgiaTXwKNAPLEl3bAFcymu3/65LL4AbgZtTx/xzZHd92Tio9UDi5z//+ZJrVd+2b9/OH3Y3jEvnqk0ev9ndwOvSsPpFKfKurYeBd9aIf2KEMlcDV9eIdwOn1Yi/DFyUr6Y2FvPmzWPt2rX09/czZcoUD9poVsc8sZWNSWdnJ+vXrwegoaGBhQsXllwja2lpYW//Tt/+a4N85ZdTOargCb48RIqNSVNTEx0dHUiio6PDsyOa1TG3SGzMOjs72bp1q1sjE8jTL7qPBGDXS9lv5GnH7Cu5JuV7+sUGZhb8GU4kNmZNTU0sX7687GpY0tbWVnYVJow/prG2jnqT/yYzKf674URiY9bX18eXv/xlrrzySl/amgCKHJRvsvFUu+PLicTGrKuri82bN7Nq1Srf+muvmgijEE+k0X+LHnl3InBnu41JX18f69evJyJYv349fX19ZVfJ7FWNjY00NjaWXY264RaJjUlXVxcDA9nzov39/W6V2KsO91/ftj+3SGxM7rrrrlcTycDAgKfaNatjTiQ2Ju9973sHrXuqXbP65URiY1IZsNHMzInExmToVLtD182sfjiR2JjMmzdv0DDyHrTRrH45kdiYnH/++YOGkffEVmb1y4nExsQTW5lZhROJjUmtia3MrD4VOdXu0ZIelPRrSVskfTnFj5e0QdKT6f24qjLLJPVIekLSuVXxOZI2p23L05S7pGl5b03xjZJmFHU+Nti8efOYMiV7ntUTW5nVtyJbJHuBD0bEO4DZQIekucAVwN0RMRO4O60jaRbZVLmnAh3A9WmaXoAbgMVkA1nOTNsBFgHPR0QbcC1wTYHnY1U6Ozs54ojs6+OJrczqW2GJJDIvptUj0yuA+UBXincBF6Tl+cAtEbE3Ip4CeoAzJE0HpkbE/ZFdS1k1pEzlWLcBZ1VaK1YsT2xlZhWF9pFIapD0EPAssCEiNgLTImInQHo/Me3eAjxTVXxbirWk5aHxQWUioh94AdjvP5qkxZK6JXX39vYeqtOre52dnZx++ulujZjVuUITSUQMRMRsoJWsdXHaCLvXaknECPGRygytx8qIaI+I9ubm5gNV20apMrGVWyNm9W1c7tqKiN8B95L1bexKl6tI78+m3bYBJ1UVawV2pHhrjfigMpKmAMcCzxVyEmZmVlORd201S/qTtNwIzAMeB9YAnWm3TuD2tLwGWJDuxDqFrFP9wXT5a7ekuan/Y+GQMpVjXQjcE5V7Us3MbFwUOR/JdKAr3Xl1BLA6Iu6QdD+wWtIi4GngIoCI2CJpNfAo0A8siYiBdKxLgZuARmBdegHcCNwsqYesJbKgwPMxM7MaVG8/4Nvb26O7u7vsapiZTSqSNkVEe61tfrLdzMxy8VS7k9CKFSvo6ekpuxps374dgJaWlgPsWay2tjZP72pWIicSG7M9e/aUXQUzmwCcSCahifLre+nSpQBcd911JdfEzMrkPhIzM8vFicTMzHJxIjEzs1xGnUgkvUnSvLTcKOkNxVXLzMwmi1ElEkmfIhum/Vsp1Ar8a1GVMjOzyWO0LZIlwJnA7wEi4kleG/7dzMzq2GgTyd6I+GNlJY20W19jq5iZWU2jTSQ/lfQloFHS2cAPgR8XVy0zM5ssRptIrgB6gc3Ap4G1wN8UVSkzM5s8RvtkeyPw3Yj4NmRT6KbYS0VVzMzMJofRtkjuJkscFY3AXYe+OmZmNtmMNpEcHREvVlbS8jEjFZB0kqSfSHpM0hZJS1P8KknbJT2UXudVlVkmqUfSE5LOrYrPkbQ5bVueZkokzaZ4a4pvlDRj9KduZmaHwmgTyR8kvauyImkOcKChX/uBL0TE24G5wBJJs9K2ayNidnqtTcecRTbD4alkc7tfny6hAdwALCabfndm2g6wCHg+ItqAa4FrRnk+ZmZ2iIy2j+RzwA8l7Ujr04GLRyqQ5lrfmZZ3S3oMGGniivnALRGxF3gqTZ97hqStwNSIuB9A0irgArLpducDV6XytwHfkCTP225mNn5G1SKJiF8AbyObO/0zwNsjYtNoPyRdcnonsDGFPivpYUnflXRcirUAz1QV25ZiLWl5aHxQmYjoB14Ammp8/mJJ3ZK6e3t7R1ttMzMbhRETiaQPpvf/CnwEeCvZpaWPpNgBSXo98M/A5yLi92SXqd4CzCZrsXytsmuN4jFCfKQygwMRKyOiPSLam5ubR1NtMzMbpQNd2voz4B6yJDJUAD8aqbCkI8mSyPci4kcAEbGravu3gTvS6jbgpKrircCOFG+tEa8usy09bX8s8NwBzsnMzA6hERNJRFwp6QhgXUSsPpgDpzurbgQei4ivV8Wnp/4TgI8Cj6TlNcD3JX0deCNZy+fBiBiQtFvSXLJLYwuBFVVlOoH7gQuBe9w/YmY2vg7Y2R4R+yR9FjioREI2yOMngM2SHkqxLwGXSJpN1qLZSvakPBGxRdJq4FGyO76WRMRAKncpcBPZ8yvr0guyRHVz6ph/juyuLzMzG0ejvWtrg6S/Am4F/lAJRsSwl5Ei4ufU7sNYO0KZq4Gra8S7gdNqxF8GLhqx5mZmVqjRJpK/IGtBfGZI/M2HtjpmZjbZjDaRzCJLIu8lSyg/A75ZVKXMzGzyGG0i6SKb1Gp5Wr8kxf57EZUyM7PJY7SJ5D9GxDuq1n8i6ddFVMjMzCaX0Y619at0+y0Akt4D/FsxVTIzs8lktC2S9wALJT2d1k8GHpO0GYiI+NNCamdmZhPeaBNJx4F3MTOzejSqRBIRvym6ImZmNjmNto/EzMysJicSMzPLxYnEzMxycSIxM7NcnEjMzCwXJxIzM8vFicTMzHJxIjEzs1wKSySSTpL0E0mPSdoiaWmKHy9pg6Qn0/txVWWWSeqR9ISkc6vicyRtTtuWp2l8kXSUpFtTfKOkGUWdj5mZ1VZki6Qf+EJEvB2YCyyRNAu4Arg7ImYCd6d10rYFwKlkQ7JcL6khHesGYDHZPO4zeW3IlkXA8xHRBlwLXFPg+ZiZWQ2FJZKI2BkRv0zLu4HHgBZgPtlcJqT3C9LyfOCWiNgbEU8BPcAZkqYDUyPi/ogIYNWQMpVj3QacVWmtmJnZ+BiXPpJ0yemdwEZgWkTshCzZACem3VqAZ6qKbUuxlrQ8ND6oTET0Ay8ATTU+f7Gkbkndvb29h+akzMwMGIdEIun1wD8Dn4uI34+0a41YjBAfqczgQMTKiGiPiPbm5uYDVdnMzA5CoYlE0pFkSeR7EfGjFN6VLleR3p9N8W3ASVXFW4EdKd5aIz6ojKQpwLHAc4f+TMzMbDhF3rUl4EbgsYj4etWmNUBnWu4Ebq+KL0h3Yp1C1qn+YLr8tVvS3HTMhUPKVI51IXBP6kcxM7NxMtqJrcbiTOATwGZJD6XYl4CvAqslLQKeBi4CiIgtklYDj5Ld8bUkIgZSuUuBm4BGYF16QZaobpbUQ9YSWVDg+ZiZWQ2FJZKI+Dm1+zAAzhqmzNXA1TXi3cBpNeIvkxKRmZmVw0+2m5lZLk4kZmaWixOJmZnl4kRiZma5OJGYmVkuTiRmZpaLE4mZmeXiRGJmZrk4kZiZWS5OJGZmlosTiZmZ5VLkoI2HpRUrVtDT01N2NSaEyt9h6dKlJddkYmhra+Oyyy4ruxpm486J5CD19PTw0COPMXDM8WVXpXRH/DEbsX/Tv+8quSbla3jJ0+BY/XIiGYOBY45nz9vOK7saNoE0Pr627CqYlcZ9JGZmlkuRMyR+V9Kzkh6pil0labukh9LrvKptyyT1SHpC0rlV8TmSNqdty9MsiaSZFG9N8Y2SZhR1LmZmNrwiWyQ3AR014tdGxOz0WgsgaRbZ7IanpjLXS2pI+98ALCabendm1TEXAc9HRBtwLXBNUSdiZmbDKyyRRMR9ZNPfjsZ84JaI2BsRTwE9wBmSpgNTI+L+NBf7KuCCqjJdafk24KxKa8XMzMZPGX0kn5X0cLr0dVyKtQDPVO2zLcVa0vLQ+KAyEdEPvAA01fpASYsldUvq7u3tPXRnYmZm455IbgDeAswGdgJfS/FaLYkYIT5Smf2DESsjoj0i2pubmw+uxmZmNqJxTSQRsSsiBiJiH/Bt4Iy0aRtwUtWurcCOFG+tER9URtIU4FhGfynNzMwOkXFNJKnPo+KjQOWOrjXAgnQn1ilkneoPRsROYLekuan/YyFwe1WZzrR8IXBP6kcxM7NxVNgDiZJ+ALwfOEHSNuBK4P2SZpNdgtoKfBogIrZIWg08CvQDSyJiIB3qUrI7wBqBdekFcCNws6QespbIgqLOxczMhldYIomIS2qEbxxh/6uBq2vEu4HTasRfBi7KU0czM8vPT7abmVkuTiRmZpaLE4mZmeXiRGJmZrk4kZiZWS5OJGZmlosTiZmZ5eJEYmZmuTiRmJlZLk4kZmaWixOJmZnl4kRiZma5OJGYmVkuTiRmZpaLE4mZmeXiRGJmZrkUlkgkfVfSs5IeqYodL2mDpCfT+3FV25ZJ6pH0hKRzq+JzJG1O25anKXdJ0/LemuIbJc0o6lzMzGx4hc2QSDY97jeAVVWxK4C7I+Krkq5I61+UNItsqtxTgTcCd0l6a5pu9wZgMfAAsBboIJtudxHwfES0SVoAXANcXOD5ALB9+3YaXnqBxsfXFv1RNok0vNTH9u39ZVfDrBSFtUgi4j6yudSrzQe60nIXcEFV/JaI2BsRTwE9wBmSpgNTI+L+iAiypHRBjWPdBpxVaa2Ymdn4KbJFUsu0iNgJEBE7JZ2Y4i1kLY6KbSn2SloeGq+UeSYdq1/SC0AT8NuhHyppMVmrhpNPPjnXCbS0tPD/9k5hz9vOy3UcO7w0Pr6WlpZpZVfDrBQTpbO9VksiRoiPVGb/YMTKiGiPiPbm5uYxVtHMzGoZ70SyK12uIr0/m+LbgJOq9msFdqR4a434oDKSpgDHsv+lNDMzK9h4J5I1QGda7gRur4ovSHdinQLMBB5Ml8F2S5qb+j8WDilTOdaFwD2pH8XMzMZRYX0kkn4AvB84QdI24Ergq8BqSYuAp4GLACJii6TVwKNAP7Ak3bEFcCnZHWCNZHdrrUvxG4GbJfWQtUQWFHUuZmY2vMISSURcMsyms4bZ/2rg6hrxbuC0GvGXSYnIzMzKM1E6283MbJJyIjEzs1ycSMzMLBcnEjMzy2W8n2w/LDS89JzH2gKOePn3AOw7emrJNSlfw0vPAX6y3eqTE8lBamtrK7sKE0ZPz24A2t7sf6Awzd8Nq1tOJAfpsssuK7sKE8bSpUsBuO6660quiZmVyX0kZmaWixOJmZnl4kRiZma5OJGYmVkuTiRmZpaLE4mZmeXiRGJmZrk4kZiZWS6lJBJJWyVtlvSQpO4UO17SBklPpvfjqvZfJqlH0hOSzq2Kz0nH6ZG0PM2iaGZm46jMFskHImJ2RLSn9SuAuyNiJnB3WkfSLLLZD08FOoDrJTWkMjcAi8mm5p2ZtpuZ2TiaSEOkzCebmhegC7gX+GKK3xIRe4Gn0tS6Z0jaCkyNiPsBJK0CLuC1qXgPWytWrKCnp6fsarxah8pQKWVpa2vz0DVmJSqrRRLAnZI2SVqcYtMiYidAej8xxVuAZ6rKbkuxlrQ8NL4fSYsldUvq7u3tPYSnUd8aGxtpbGwsuxpmVrKyWiRnRsQOSScCGyQ9PsK+tfo9YoT4/sGIlcBKgPb29pr7TCb+9W1mE0kpLZKI2JHenwX+BTgD2CVpOkB6fzbtvg04qap4K7AjxVtrxM3MbByNeyKR9DpJb6gsA+cAjwBrgM60Wydwe1peAyyQdJSkU8g61R9Ml792S5qb7tZaWFXGzMzGSRmXtqYB/5Lu1J0CfD8i1kv6BbBa0iLgaeAigIjYImk18CjQDyyJiIF0rEuBm4BGsk72w76j3cxsolHEpO8yOCjt7e3R3d1ddjXMzCYVSZuqHtcYxE+2m5lZLk4kZmaWixOJmZnl4kRiZma51F1nu6Re4Ddl1+MwcgLw27IrYVaDv5uH1psiornWhrpLJHZoSeoe7k4OszL5uzl+fGnLzMxycSIxM7NcnEgsr5VlV8BsGP5ujhP3kZiZWS5ukZiZWS5OJGZmlosTie1H0uWSHpP0vUNwrC8dijqZ2cTlPhLbT5qx8kMR8VRVbEpE9I/hWC9GxOsPaQXNqqT5iBQR+8ZYfkzfbXuNWyQ2iKRvAm8G1kh6QdJKSXcCqyQdLen/SNos6VeSPpDKfFLSjyStl/SkpL9P8a8CjZIeOhStG7MKSTNSq/l64JfAJyTdL+mXkn4o6fVpv7+V9AtJj6TvslL8XklfkfRTYGmJp3JYcIvE9iNpK9AOfBb4CPDeiNgj6QvAaRHxPyW9DbgTeCuwAPhb4J3AXuCJVOYZt0isCJJmAP8O/GegB/gRWSv6D5K+CBwVEX8n6fiIeC6VuRlYHRE/lnQv8GhEfKaUEzjMuEViB7ImIvak5fcCNwNExONkY5a9NW27OyJeiIiXyWazfNO419TqzW8i4gFgLjAL+DdJD5FN1V35/n1A0kZJm4EPAqdWlb91XGt7GCtjql2bXP5QtawR9ttbtTyAv1tWvMp3U8CGiLikeqOko4HrgfbUOr4KOLpGecvJLRI7GPcBHwOQ9FbgZLLLWCN5RdKRRVfM6toDwJmS2gAkHZO+n5Wk8dvUZ3JhWRU83DmR2MG4HmhIlwluBT4ZEXsPUGYl8LA7260oEdELfBL4gaSHyRLL2yLid8C3gc3AvwK/KK2Shzl3tpuZWS5ukZiZWS5OJGZmlosTiZmZ5eJEYmZmuTiRmJlZLk4kZmMk6Y2SbjtEx5oh6ZFDcayqY35S0hur1r8jadah/Awz8NPHZmMWETuY2A+5fRJ4BNgBEBH/q9Ta2GHLLRKrS5I+LunBNDLxtyQ1SHpR0tWSfi3pAUnT0r5vSeu/kPR3kl5M8VdbEcONgJy2nVNrZNoR6jbcKMsNkv4hxR+WdFmK7zfCraQLyQbe/F46x8Y04m17KnNJOs4jkq6p+uyafwOzkTiRWN2R9HbgYuDMiJhNNjbYx4DXAQ9ExDvIhoP5VCpyHXBdRLyb9Ot+GLPTcU8HLpZ0kqQTgL8B5kXEu4Bu4C8PUMUlABFxOnAJ0JXGjVoMnAK8MyL+FKiMFvCNiHh3RJwGNAIfjojb0md9LCJmVw28SbrcdQ3ZIIazgXdLuiBtHu5vYDYsJxKrR2cBc4BfpNFizyKbg+WPwB1pn03AjLT8n4AfpuXvj3DcWiMgjzQy7XCGG2V5HvDNyiRMleHRGXmE21reDdwbEb3pWN8D/kvaNtzfwGxY7iOxeiSgKyKWDQpKfxWvjRk0lhGMa42APNzItO8BvpVW/xZ4eEj9hqv3oDGNRjHC7XDHGc4rOf8GVofcIrF6dDdwoaQTASQdL2mkVsIDwH9LywsO8rNqjkwbERvTJafZEbFmSJnhRlm+E/jfkqZU6s3II9zuBt5Qo04bgT+TdIKkBrLLZz89yPMye5UTidWdiHiUrN/izjRa7AZg+ghFPgf8paQH034vHMRn1RyZ9gDFhhtl+TvA02SjKf8a+B8HGOH2JuCblc72qjrtBJYBPwF+DfwyIm4f7TmZDeXRf80OQNIxwJ6ICEkLgEsiYn7Z9TKbKHz90+zA5gDfkCTgd8BflFwfswnFLRIzM8vFfSRmZpaLE4mZmeXiRGJmZrk4kZiZWS5OJGZmlsv/B/I9ZroA5YoAAAABSURBVLGUXv7yAAAAAElFTkSuQmCC\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": 27, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x7fee189189b0>" | |
| ] | |
| }, | |
| "execution_count": 27, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# drive-wheels\n", | |
| "sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Let's first take a look at the variables by utilizing a description method.</p>\n", | |
| "\n", | |
| "<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n", | |
| "\n", | |
| "This will show:\n", | |
| "<ul>\n", | |
| " <li>the count of that variable</li>\n", | |
| " <li>the mean</li>\n", | |
| " <li>the standard deviation (std)</li> \n", | |
| " <li>the minimum value</li>\n", | |
| " <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n", | |
| " <li>the maximum value</li>\n", | |
| "<ul>\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " We can apply the method \"describe\" as follows:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 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>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": 28, | |
| "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": 29, | |
| "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": 29, | |
| "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": 33, | |
| "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": 33, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "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": 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 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": 34, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "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": 36, | |
| "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": 36, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "\n", | |
| "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": 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>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": 38, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "\n", | |
| "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": 39, | |
| "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": 39, | |
| "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" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "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": 43, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array(['rwd', 'fwd', '4wd'], dtype=object)" | |
| ] | |
| }, | |
| "execution_count": 43, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "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": 47, | |
| "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", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " drive-wheels body-style price\n", | |
| "0 rwd convertible 13495.0\n", | |
| "1 rwd convertible 16500.0" | |
| ] | |
| }, | |
| "execution_count": 47, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "\n", | |
| "df_group_one = df[['drive-wheels','body-style','price']]\n", | |
| "df_group_one.head(2)" | |
| ] | |
| }, | |
| { | |
| "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": 53, | |
| "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": 53, | |
| "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\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "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": 55, | |
| "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": 55, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# grouping results\n", | |
| "\n", | |
| "\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": 56, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "\n", | |
| "grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns = 'body-style')" | |
| ] | |
| }, | |
| { | |
| "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": 57, | |
| "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": 57, | |
| "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": 61, | |
| "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": 61, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Write your code below and press Shift+Enter to execute \n", | |
| "df_gptest = df[['body-style','price']]\n", | |
| "grouped_test3 = df_gptest.groupby(['body-style'],as_index = False).mean()\n", | |
| "grouped_test3\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Double-click <b>here</b> for the solution.\n", | |
| "\n", | |
| "<!-- The answer is below:\n", | |
| "\n", | |
| "# grouping results\n", | |
| "df_gptest2 = df[['body-style','price']]\n", | |
| "grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n", | |
| "grouped_test_bodystyle\n", | |
| "\n", | |
| "-->" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "If you did not import \"pyplot\" let's do it again. " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 62, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import matplotlib.pyplot as plt\n", | |
| "%matplotlib inline \n" | |
| ] | |
| }, | |
| { | |
| "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": 63, | |
| "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": 64, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEmCAYAAABoGYshAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAeYklEQVR4nO3deZRlVX328e9T3UwKjUwidoMQ7GgAB2QQBXw1aGyNEWPQtEsFI4oaVDSJcYhDhhejWXHOC4pxAByAkERxQCQYBIQAjRIQEGlBoQVFBrEdGLrref84u+R2U911q+6tOnX3eT5rnVX37lvn3N/t4Ve7fnufvWWbiIioz1jbAURExOxIgo+IqFQSfEREpZLgIyIqlQQfEVGphW0H0EsLN7c226rtMIar0llKv7d057ZDGLqVN/+i7RBmxY7bPajtEGbFTdd+9zbbOwxyjbFFS8yau/v6Xv/m9rNsLxvk/eba/Erwm23Fpnv8SdthDNX4mnvbDmFWnPbVD7YdwtA99+/ObjuEWfH6l+7ddgiz4g0H7f6jgS+y5m4WPuq5fX3rfZd/avuB32+OzasEHxExpyQ0tqDtKGZNEnxEdJgYW7hp20HMmiT4iOiu9OAjIuokQAuS4CMi6iMxlh58RESdUqKJiKhRavAREXUSYmzhJm2HMWuS4COiu9KDj4ioVxJ8RESNpEyTjIiokUgPPiKiThpjQZYqiIiokNKDj4ioksgsmoiIaiXBR0TUKPPgIyJqlQQfEVElSYxtklk0ERH1SYkmIqJeSfAREZUaG1PbIcyaJPiI6CxJKAk+IqJOCxaMtR3CrEmCj4juEunBR0TUqFlNMgk+IqJCYkxJ8BER9UmJJiKiXknwEREVkmDBwiT4iIgqqeIa/JxMAJX0VElfnov3iojolyTGxvo7RtGMevBqfuTJ9viQ44mImFM11+D77sFL2lXSNZKOA64HPlHaj5F0fXm8u6QLyuNlkr5Xnj9/FmKPiBiYxtTXsdFrSDtL+u+SI6+SdExp31bS2ZKuK1+36TnnrZJWSrpW0jN72veRdGV57cOlQ42kzSSdWtovlrTrVJ9tuiWaRwEnAU8C9iptBwO3S1oMHAScL2lz4OPAH5XXHzbN94mImH2CMamvYwprgL+0/XvAAcDRkvYA3gKcY3spcE55TnltObAnsAw4TtLEspbHA0cBS8uxrLQfCdxp+5HAB4D3ThXUdBP8j2z/j+2fAFtK2grYGfgc8BSaZH4+8GjgBtvX2TbwmQ1dUNJRklZIWuE1d08znIiImRNibOFYX8fG2L7F9rfL49XANcBi4FDgxPJtJwLPK48PBU6xfY/tG4CVwP6SdgIW2b6o5M6T1jtn4lqnA4dM9O43ZLoJ/lc9jy8C/gy4liapH0zTs//WxGfu54K2T7C9r+19tXDzaYYTETEAMZ1B1u0nOqPlOGrSSzalk72Bi4Edbd8CzQ8B4KHl2xYDN/Wctqq0LS6P129f5xzba4C7gO029vEGmSZ5HvD35fgO8DTgN7bvkvQ9YDdJu9v+AfCiAd4nImLWTGOa5G22953iWlsC/w68wfYvNnLtyV7wRto3ds4GDTJN8nya8sx5ttfS/GS5AMD23TQ1pK+UQdYfDfA+ERGzollsrL9jymtJm9Ak98/a/o/S/NNSdqF8vbW0r6LJnxOWADeX9iWTtK9zjqSFwNbAHRuLqe8evO0fcv/AKqVnrp7nf7De93+NphYfETE/aTg7OpVa+CeAa2y/v+elM4AjgPeUr1/saf+cpPcDD6cZTL3E9lpJqyUdQFPiORz4yHrXugg4DPhGqdNvUO5kjYgOE2PD2fDjQOClwJWSLi9tb6NJ7KdJOhK4EXgBgO2rJJ0GXE0zA+foUgkBeA3waWAL4MxyQPMD5GRJK2l67sunCioJPiI6S0Pqwdu+gMlr5ACHbOCcY4FjJ2lfQU+1pKf9bsoPiH4lwUdEp9V8J2sSfER0lgQLkuAjIuqUBB8RUSGhJPiIiBpJsOkUyxCMsiT4iOgsCRamBx8RUR+RGnxERJ2UGnxERJWaHnxq8BERVUoPPiKiQmNSZtFERNRqQf/rwY+cJPiI6KwsVRARUbEk+IiICuVGp4iISokMskZEVCk1+IiISmWpgoiIWqUHHxFRp6wHHxFRsST4iIgKjWXDj4iISqUGHxFRJ6GsRRMRUauxJPiIiPoIWFBvfk+Cj4gOE4ylBh8RUR8Bm2TLvoiI+qREM4f2/t3FXHjOu9sOY7gu+WLbEcyOa77QdgRDd92bHt12CLPCYz9vO4RZ8YZhXERKiSYiokYis2giIqqVEk1ERIUk2GRBBlkjIqqTEk1ERMVSoomIqJBQ1T34eotPERFTKatJ9nNMeSnpk5JulfTdnra/lfRjSZeX49k9r71V0kpJ10p6Zk/7PpKuLK99WGp+AknaTNKppf1iSbtOFVMSfER0VlOD7+/ow6eBZZO0f8D248vxVQBJewDLgT3LOcdJWlC+/3jgKGBpOSaueSRwp+1HAh8A3jtVQEnwEdFZE0sV9HNMxfZ5wB19vvWhwCm277F9A7AS2F/STsAi2xfZNnAS8Lyec04sj08HDpno3W9IEnxEdJdgwVh/B7C9pBU9x1F9vstrJV1RSjjblLbFwE0937OqtC0uj9dvX+cc22uAu4DtNvbGGWSNiM6a5jTJ22zvO823OB74B8Dl6/uAl5e3Xp830s4Ur00qCT4iOmx2d3Sy/dPfvpP0ceDL5ekqYOeeb10C3Fzal0zS3nvOKkkLga2ZoiSUEk1EdNZED76fY0bXb2rqE/4YmJhhcwawvMyM2Y1mMPUS27cAqyUdUOrrhwNf7DnniPL4MOAbpU6/QenBR0RnNUsVDKcHL+nzwFNpavWrgHcBT5X0eJpSyg+BVwHYvkrSacDVwBrgaNtry6VeQzMjZwvgzHIAfAI4WdJKmp778qliSoKPiE4bVoXG9osmaf7ERr7/WODYSdpXAHtN0n438ILpxJQEHxGdNjbp2GUdkuAjorPE8Hrw81ESfER0WsUbOiXBR0SHKT34iIgqaZbnwbctCT4iOi0lmoiISlWc35PgI6K7smVfRETFKs7vSfAR0W01L8iVBB8RnaWyZV+tkuAjotNSoomIqJBIiSYiolpTbGs60pLgI6K7lBudIiKqJGBI+33MS0nwEdFpNZdopjW+IOn1kq6R9NlpnneupOnuRh4RMauaO1n7O0bRdHvwfw48y/YNsxFMRMRcG9Hc3Ze+e/CSPgr8DnCGpNWSHqLG7ZIOL99zsqSnS9pC0imSrpB0Ks3msRER84wYU3/HKOo7wdt+NXAz8DTgs8CBwJ7A9cDB5dsOAP6HZlfwX9t+LM2msvts6LqSjpK0QtKKn91++4w+RETEjJQNP/o5RtFM5/ifDzylHMcDj5G0GLjD9i9L+2cAbF8BXLGhC9k+wfa+tvfdYbvtZhhORMT0yUbja/s6RtFME/x5NL32g4FzgZ8Bh9Ek/gkeKLKIiDkgj/d1jKIZJXjbNwHbA0ttXw9cAPwV9yf484AXA0jaC3js4KFGRAybweP9HSNokGUYLga+Xx6fDyymSfTQlG22lHQF8NfAJQO8T0TE7LH7O0bQtKZJ2t615/FLex5fSM8PC9u/AZYPIb6IiNljj2zvvB+5kzUiOm1U6+v9SIKPiA4zjK9pO4hZkwQfEd1lUqKJiKiTYTwJPiKiSqnBR0TUKgk+IqJCNozoMgT9SIKPiE5LiSYiokq50Skiol4VJ/hB1qKJiBhtHt5iY5I+KelWSd/tadtW0tmSritft+l57a2SVkq6VtIze9r3kXRlee3DKpvGStpM0qml/WJJu04VUxJ8RHSWGOpywZ8Glq3X9hbgHNtLgXPKcyTtQbNe157lnOMkLSjnHA8cBSwtx8Q1jwTutP1I4APAe6cKKAk+IjrMsHZtf8dUV7LPA+5Yr/lQ4MTy+ETgeT3tp9i+p+xxvRLYX9JOwCLbF9k2cNJ650xc63TgkIne/YakBh8R3TW9pQq2l7Si5/kJtk+Y4pwdbd8CYPsWSQ8t7YtptjedsKq03Vcer98+cc5N5VprJN0FbAfctqE3T4KPiE6bxjTJ22zvO6y3naTNG2nf2DkblBJNRHTYrO/o9NNSdqF8vbW0rwJ27vm+JcDNpX3JJO3rnCNpIbA1DywJrSMJPiK6bXYT/BnAEeXxEcAXe9qXl5kxu9EMpl5SyjmrJR1Q6uuHr3fOxLUOA75R6vQblBJNRHTXEJcqkPR54Kk0tfpVwLuA9wCnSToSuBF4QfO2vkrSacDVwBrgaNsTgbyGZkbOFsCZ5QD4BHCypJU0Pfcpd81Lgo+IDjNec99wrmS/aAMvHbKB7z8WOHaS9hXAXpO03035AdGvJPiI6C6TxcYiImpkjPuY4z6qkuAjortMdnSKiKhT1oOPiKiThzfIOh8lwUdEhxmnBx8RUaHMoomIqJUzyBoRUSWTaZIREXXKLJqIiDplFk1ERK3Sg58zN15+Dcds/YS2w4g+vP/017YdwtD9Zv/D2g5hVmx53XlthzB/ZRZNRESdjHFm0UREVCg9+IiIStn4vnvbjmLWJMFHRIflRqeIiHqlRBMRUSFnsbGIiGplFk1ERI1svDYJPiKiOrYZv29N22HMmiT4iOgukx58REStkuAjIipkm/GsBx8RUafMoomIqFFm0URE1CmzaCIiKjaeHnxERIUyTTIiolKpwUdE1MlkFk1ERJ1sxu/NIGtERH0M4+nBR0TUx6QGHxFRJ4MrXqpgrO0AIiLaYzw+3tcxFUk/lHSlpMslrSht20o6W9J15es2Pd//VkkrJV0r6Zk97fuU66yU9GFJmumnS4KPiO4q8+D7Ofr0NNuPt71vef4W4BzbS4FzynMk7QEsB/YElgHHSVpQzjkeOApYWo5lM/14SfAR0Vm2WXvvmr6OGToUOLE8PhF4Xk/7KbbvsX0DsBLYX9JOwCLbF9k2cFLPOdOWBB8RHTatEs32klb0HEc94GLwdUmX9by2o+1bAMrXh5b2xcBNPeeuKm2Ly+P122ckg6wR0V3TW6rgtp7Sy2QOtH2zpIcCZ0v63ka+d7K6ujfSPiNJ8BHRXQavnXH+XPdS9s3l662S/hPYH/ippJ1s31LKL7eWb18F7Nxz+hLg5tK+ZJL2GUmJJiI6y5jxteN9HRsj6cGStpp4DPwB8F3gDOCI8m1HAF8sj88AlkvaTNJuNIOpl5QyzmpJB5TZM4f3nDNt6cFHRHcZPD6UHvyOwH+WGY0Lgc/Z/pqkS4HTJB0J3Ai8AMD2VZJOA64G1gBH256YkP8a4NPAFsCZ5ZiRvhN8mcKzAvix7edM940k/dL2ltM9LyJittiw9t7Bb3SyfT3wuEnabwcO2cA5xwLHTtK+Athr4KCYXg/+GOAaYNEw3jgionX20Grw81FfNXhJS4A/BP61PH+opMvK48dJsqRdyvMfSHqQpN0kXSTpUkn/MFsfICJiEONr3dcxivodZP0g8NfAODSjxMDmkhYBB9OUbg6W9AjgVtu/Bj4EHG97P+AnQ488ImJQw7+TdV6ZMsFLeg5N0r5svZcuBA4EngK8u3w9GDi/vH4g8Pny+OSNXP+oiRsH7qbeRX8iYv4xMD7uvo5R1E8N/kDguZKeDWwOLJL0GeDrNAn9ETTTeN5M8+f15Z5zp/xTsX0CcALADtpsNP8UI2I02UMZZJ2vpuzB236r7SW2d6VZHOcbtl8CnAe8BLjO9jhwB/Bs4Fvl1G+V7wd48bADj4gYlMuNTv0co2jGNzrZ/mF5eF75egHwc9t3lufHAEeXeaBbzzjCiIjZUnmCn9aNTrbPBc7teb5Lz+N309TiJ57fADyp5/T3zDTIiIjZ4SnvUh1luZM1IrpreHeyzktJ8BHRWYaRnePejyT4iOgum/GKZ9EkwUdEZ9npwUdEVKufDbVHVRJ8RHSXR3edmX4kwUdEdw1xR6f5KAk+IjrLTGtP1pGTBB8R3WWz9t4k+IiI6tgw7pRoIiKqtDYJPiKiPgYqHmNNgo+IbksPPiKiQuOGe7PYWEREnVKiiYiokHFKNBERNcoga0RExZLgIyIqZGcWTURElUxm0UREVCk1+IiIiqVEExFRoaYG33YUsycJPiI6LT34iIgKGah3Nfgk+IjoMOPMoomIqFEziyYJPiKiPpUPso61HUBERFsmevD9HFORtEzStZJWSnrL7Ec/tfTgI6LThtGDl7QA+H/AM4BVwKWSzrB99eBXn7kk+IjorHGGtlTB/sBK29cDSDoFOBRoNcHL82iAQdLPgB/N0dttD9w2R+81V2r8TJDPNUrm8jM9wvYOg1xA0tdoYu7H5sDdPc9PsH1Cuc5hwDLbryjPXwo80fZrB4lvUPOqBz/oX9Z0SFphe9+5er+5UONngnyuUTJqn8n2siFdSpNdfkjXnrEMskZEDG4VsHPP8yXAzS3F8ltJ8BERg7sUWCppN0mbAsuBM1qOaX6VaObYCW0HMAtq/EyQzzVKavxMU7K9RtJrgbOABcAnbV/Vcljza5A1IiKGJyWaiIhKJcFHRFQqCT4iolJJ8BERlerULBpJBwFLbX9K0g7AlrZvaDuuQUl6PnAQzY0VF9j+z5ZDGpikZ9k+c722V9v+aFsxDYOkJwO70vN/z/ZJrQU0JGUtlh1Z93Pd2F5EAR2aRSPpXcC+wKNs/66khwP/ZvvAlkMbiKTjgEcCny9Nfwr8wPbR7UU1OEkXAm+3/Y3y/M3AU20/q93IZk7SycDuwOXA2tJs269vL6rBSXod8C7gp9y/QZJtP7a9qAK6leAvB/YGvm1779J2xaj/I5R0FbCXy1+kpDHgStt7thvZYCRtD3wZeBOwDHg0sNz2fa0GNgBJ1wB7uLL/dJJW0qy7cnvbscS6ulSDv7f8x5pIhA9uOZ5huRbYpef5zsAVLcUyNLZvA55LswTrw4HDRjm5F98FHtZ2ELPgJuCutoOIB+pSDf40SR8DHiLplcDLgY+3HNMwbAdcI+mS8nw/4CJJZwDYfm5rkc2ApNU0P4RVvm4K/A5wmCTbXtRmfAPaHri6/F3dM9E4an9Hk7geOFfSV1j3c72/vZACOpTgbf+zpGcAvwAeBbzT9tkthzUM72w7gGGyvVXbMcyiv207gFlyYzk2LUfME52pwddM0o40PXeAS2zf2mY8wyDpj4Fv2L6rPH8IzSDrF9qNLDZE0lY0g6u/bDuWaFRfg5e0WtIvJjlWS/pF2/ENStILgUuAFwAvBC4umw+MundNJHcA2z+nmakxsiQdIOlSSb+UdK+ktZX8G9xL0ndoxhiuknSZpJEe5K9F9SWayn/lB/gbYL+JXnuZ3/9fwOmtRjW4yTofo/7v9V9olpH9N5opu4cDS1uNaDhOAP7C9n8DSHoqzfjWk9sMKkb/P8y0SHoC694Q9J2WQxqGsfVKMrdTx29mKyS9n2YWjYHXAZe1G9LgbK+UtMD2WuBTZb7/qHvwRHIHsH1uRbPURloNiaAvkt4JnEgz62R74NOS3t5uVEPxNUlnSXqZpJcBXwHOnOKcUfA64F7gVJoe793ASN+8Bfy6bAZxuaR/kvRGoIZEeL2kd0jatRxvB0b+DvEadGaQtdxksrftu8vzLWhuevq9diMbXM9SBQLOq2GpghpJegRwK7AJ8EZga+A42ytbDWxAkrYB/o6ef4PA39q+s9XAolMJ/kzgRWWwbmJWxmdsP6fdyAYj6b223zxV26gpYwl/DexJs5s9ALZ/v7WgIkZM9TV4SR+hqeHeQzPCf3Z5/gzggjZjG5JnAOsn82dN0jZqPktTnnkO8GrgCOBnrUY0Q5KupNxBPZkKlsv4Eg/8fHcBK4CPTfzWHHOv+h68pCM29rrtE+cqlmGS9Brgz2nu8vxBz0tbAd+y/ZJWAhsSSZfZ3qd3vSBJ37T9f9qObbpKaQbuH0M4uXx9MfBr238/91ENj6QPATuw7oJ3PwG2ABbZfmlbsXVd9Qm+VpK2BrYB/hF4S89Lq23f0U5UwyPpf2wfIOks4MPAzcDptndvObQZk/St9Vcvnaxt1Eg6z/ZTJmuTdNWoL3w3yrpQojnN9gs39GvyCP96vIBm2YUHzCyRtG0FSf7/lh9ifwl8BFhEMzA5yh4s6SDbF8Bv14avYRbNDpJ2mVj/XdIuNDPVoJkJFS2pvgcvaSfbt/T8mrwO2z+a65iGQdIN3L8o1y7AneXxQ4Abbe/WYngxCUn7AJ+kmT1jmjr1y21/u9XABiTp2cBHaUqFAnajKR+eC7zS9gfbi67bqk/wEyqebfJR4AzbXy3PnwU83fZfthvZYCT9DvAh4Ek0m0hcBLzR9vWtBjYEkhbR/N+rZoldSZvRrNkv4HsZWJ0fOnOjE81sk/WN7O5APfabSO4AZZu7kRuInMTngNNo1k9/OM3NTp/f6BnznKQdJX0CONX2XZL2kHRk23ENyVKaVVofC7xQ0uEtxxN0IMFLek2pvz9a0hU9xw1UsDEGcJukt5c7CB8h6W9olisYdbJ9su015fgMG5lqOCI+DZxF8wML4PvAG1qLZkjUbIf5kXI8Dfgnms1aomXVl2g6MNtkW5pVFp9CkwDPA/5+VD9b+TzQ3OT0c+AUms/1p8Bmtv+hrdgGJelS2/tJ+k7PtpGX235827ENonSgHgd8x/bjyvLV/2r7j1oOrfOqn0VTfhVeDTxmVAdUN0TNTvZvtX1M27EM0WXcP3gM8Kqe1wyMbIIHfiVpO+7fNvIA6tjq7m7b45LWlPGFW2nuz4iWVZ/gAco/vv/tncpVA9try8yMalQ+++cvgDOA3SV9i+bmoBrW7r+0LP3xcZof0L+k2aMgWtaJBF/sRLNUwSXAryYaK9gP8ztq9l/9N9b9XP/RXkjDUeaJ70rPv1PbJ7UW0OB2pxnY3xn4E+CJ1PF/cCuaDWfOBb5Gc/dqDeNbI6/6GvwESZPOLLH9zbmOZZgkfWqSZtt++ZwHM0SSTqZJiJcDa0uzbb++vagGM7HsgqSDgHcD7wPeZvuJLYc2EEm/T7OS5ME0pZnLaVY1/VCrgUV3Ejz8dk2Qpbb/S9KDgAW2V7cdVzxQWd55D1f0D3RicFXSPwJX2v5c74DrKCvjQfvRzKJ5NfAb249uN6qo4dfDvkh6JXAUsC1Nz3Axzd13h7QZ16AkbQ4cyQOX1R3pHjzN/p4PA25pO5Ah+rGkjwFPB95bbg4a+anKks6hWXLhIuB8eraQjHaN/D+uaTgaOJBm/RZsXwc8tNWIhuNkmkT4TOCbwBJgZH8rkfSlMqawPXB12a3qjImj7fgG9EKaefDLyr4E2wJvajekobiCZs2ZvWhudNqrbKgTLetMiUbSxbaf2PNr8kKaHZ1GdbExYJ1f+yfqu5sAZ43qxhgbGiuZMOpjJjWTtCXwZ8BfAQ+zvVnLIXVeZ0o0wDclvQ3YQtIzaBZD+lLLMQ3DfeXrzyXtRbMO967thTOYiQQuaTfglvW2WNyxzdhicpJeSzPAug/wI5oF1c5vNagAutWDH6OpVf8BzU00Z9HcbTfSfwCSXgH8O/AYmlvhtwTeYftjbcY1KEkrgCfbvrc835RmI5P92o0s1ifpTTR3UF9me03b8cT9upTg/xj4qu172o5lmMpA3Z/Q9No3Kc2uYJegB9zCL+l/bT+urZgiRk2XBlmfC3xf0smS/rDU4GvwReBQYA3NHYS/pOeGpxH2M0m/vQlN0qHAbS3GEzFyOtODBygDkM+iWbjqIOBs269oN6rBSPqu7b3ajmPYJO1Os/H2xMqLq4CX2v7Bhs+KiF619GL7Yvs+SWfSLPa0BU3Pd6QTPHChpMfYvrLtQIZsvOzJuiVNR2R1GXiNiD51pgcvaRmwnOZOu3OBU4Gvj+qgUM8eswtpNlu4HriHZgDZFUz//LbtJ6zXdpntqhZXi5hNXerBv4xmbfFXVTLQ+py2A5gNkh5Nc1fu1pKe3/PSInru1I2IqXUmwdte3nYMw1Tb2vY9HkXzw+shQO+GEauBV7YSUcSI6lKJ5vnAe2mWJxD3lzIWtRpYTErSk2xf1HYcEaOsSwl+JfBHtq9pO5aYWsWLqEXMmS7Ng/9pkvtIqWoRtYg2dKkH/yGahPEFmtkmQB07H9WotkXUItrQmUFWmlkYv6ZZi2aCgST4+amqRdQi2tCZBG/7z9qOIablBEnbAG+n2ah6S+Ad7YYUMVq6VKJZAnyEZtMPAxcAx9he1WpgMalaF1GLmEtdGmT9FE1P8OE02/V9qbTF/FTrImoRc6ZLPfjJlp99QFvMD7UuohYxl7rUg79N0kskLSjHS4Db2w4qNuhCSY9pO4iIUdalHvwuwL8AT6KpwV8IvN72ja0GFuuofRG1iLnUpQR/IvAG23eW59sC/5w7I+cXSY/Y2OsVr8ETMXSdmSYJPHYiuQPYvkPS3m0GFA+UBB4xPF2qwY+VedXAb3vwXfoBFxEd06UE9z6agbvTaWq8LwSObTekiIjZ05kaPICkPYDfpxmwO8f21S2HFBExazqV4CMiuqRLNfiIiE5Jgo+IqFQSfEREpZLgIyIq9f8BIWcfq+n+b1cAAAAASUVORK5CYII=\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 2 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "fig, ax = plt.subplots()\n", | |
| "im = ax.pcolor(grouped_pivot, cmap='RdBu')\n", | |
| "\n", | |
| "#label names\n", | |
| "row_labels = grouped_pivot.columns.levels[1]\n", | |
| "col_labels = grouped_pivot.index\n", | |
| "\n", | |
| "#move ticks and labels to the center\n", | |
| "ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n", | |
| "ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n", | |
| "\n", | |
| "#insert labels\n", | |
| "ax.set_xticklabels(row_labels, minor=False)\n", | |
| "ax.set_yticklabels(col_labels, minor=False)\n", | |
| "\n", | |
| "#rotate label if too long\n", | |
| "plt.xticks(rotation=90)\n", | |
| "\n", | |
| "fig.colorbar(im)\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n", | |
| "\n", | |
| "<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n", | |
| "\n", | |
| "<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n", | |
| "\n", | |
| "<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n", | |
| "\n", | |
| "<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p3>Pearson Correlation</p>\n", | |
| "<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n", | |
| "<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n", | |
| "<ul>\n", | |
| " <li><b>1</b>: Total positive linear correlation.</li>\n", | |
| " <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n", | |
| " <li><b>-1</b>: Total negative linear correlation.</li>\n", | |
| "</ul>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 65, | |
| "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": 65, | |
| "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": 67, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "from scipy import stats\n" | |
| ] | |
| }, | |
| { | |
| "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": 69, | |
| "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) \n" | |
| ] | |
| }, | |
| { | |
| "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": 71, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.36905742825998e-48\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n", | |
| "print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h5>Conclusion:</h5>\n", | |
| "\n", | |
| "<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>Length vs Price</h3>\n", | |
| "\n", | |
| "Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 70, | |
| "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": [ | |
| "\n", | |
| "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": 72, | |
| "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": 73, | |
| "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": 74, | |
| "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": 75, | |
| "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": 76, | |
| "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": 77, | |
| "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": 80, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "ename": "KeyError", | |
| "evalue": "\"['drive-wheels'] not in index\"", | |
| "output_type": "error", | |
| "traceback": [ | |
| "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
| "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", | |
| "\u001b[0;32m<ipython-input-80-8c4dd8c8cf74>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mgrouped_test2\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdf_gptest\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'drive-wheels'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'price'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'drive-wheels'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mgrouped_test2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;32m~/conda/envs/python/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2999\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_iterator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3000\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3001\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert_to_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mraise_missing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3002\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3003\u001b[0m \u001b[0;31m# take() does not accept boolean indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;32m~/conda/envs/python/lib/python3.6/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_convert_to_indexer\u001b[0;34m(self, obj, axis, is_setter, raise_missing)\u001b[0m\n\u001b[1;32m 1283\u001b[0m \u001b[0;31m# When setting, missing keys are not allowed, even with .loc:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1284\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m\"raise_missing\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mTrue\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_setter\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mraise_missing\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1285\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_listlike_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1286\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1287\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;32m~/conda/envs/python/lib/python3.6/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_listlike_indexer\u001b[0;34m(self, key, axis, raise_missing)\u001b[0m\n\u001b[1;32m 1090\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1091\u001b[0m self._validate_read_indexer(\n\u001b[0;32m-> 1092\u001b[0;31m \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mo\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_axis_number\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mraise_missing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mraise_missing\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1093\u001b[0m )\n\u001b[1;32m 1094\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;32m~/conda/envs/python/lib/python3.6/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_validate_read_indexer\u001b[0;34m(self, key, indexer, axis, raise_missing)\u001b[0m\n\u001b[1;32m 1183\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"loc\"\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mraise_missing\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1184\u001b[0m \u001b[0mnot_found\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1185\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"{} not in index\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnot_found\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1186\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1187\u001b[0m \u001b[0;31m# we skip the warning on Categorical/Interval\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;31mKeyError\u001b[0m: \"['drive-wheels'] not in index\"" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n", | |
| "grouped_test2.head(2)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 79, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>body-style</th>\n", | |
| " <th>price</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>convertible</td>\n", | |
| " <td>13495.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>convertible</td>\n", | |
| " <td>16500.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>hatchback</td>\n", | |
| " <td>16500.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>sedan</td>\n", | |
| " <td>13950.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>sedan</td>\n", | |
| " <td>17450.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>...</th>\n", | |
| " <td>...</td>\n", | |
| " <td>...</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>196</th>\n", | |
| " <td>sedan</td>\n", | |
| " <td>16845.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>197</th>\n", | |
| " <td>sedan</td>\n", | |
| " <td>19045.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>198</th>\n", | |
| " <td>sedan</td>\n", | |
| " <td>21485.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>199</th>\n", | |
| " <td>sedan</td>\n", | |
| " <td>22470.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>200</th>\n", | |
| " <td>sedan</td>\n", | |
| " <td>22625.0</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>201 rows × 2 columns</p>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " body-style price\n", | |
| "0 convertible 13495.0\n", | |
| "1 convertible 16500.0\n", | |
| "2 hatchback 16500.0\n", | |
| "3 sedan 13950.0\n", | |
| "4 sedan 17450.0\n", | |
| ".. ... ...\n", | |
| "196 sedan 16845.0\n", | |
| "197 sedan 19045.0\n", | |
| "198 sedan 21485.0\n", | |
| "199 sedan 22470.0\n", | |
| "200 sedan 22625.0\n", | |
| "\n", | |
| "[201 rows x 2 columns]" | |
| ] | |
| }, | |
| "execution_count": 79, | |
| "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": null, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "grouped_test2.get_group('4wd')['price']" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# ANOVA\n", | |
| "f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n", | |
| " \n", | |
| "print( \"ANOVA results: F=\", f_val, \", P =\", p_val) " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "#### Separately: fwd and rwd" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n", | |
| " \n", | |
| "print( \"ANOVA results: F=\", f_val, \", P =\", p_val )" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " Let's examine the other groups " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "#### 4wd and rwd" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| }, | |
| "scrolled": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n", | |
| " \n", | |
| "print( \"ANOVA results: F=\", f_val, \", P =\", p_val) " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h4>4wd and fwd</h4>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": false, | |
| "jupyter": { | |
| "outputs_hidden": false | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n", | |
| " \n", | |
| "print(\"ANOVA results: F=\", f_val, \", P =\", p_val) " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>Conclusion: Important Variables</h3>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n", | |
| "\n", | |
| "Continuous numerical variables:\n", | |
| "<ul>\n", | |
| " <li>Length</li>\n", | |
| " <li>Width</li>\n", | |
| " <li>Curb-weight</li>\n", | |
| " <li>Engine-size</li>\n", | |
| " <li>Horsepower</li>\n", | |
| " <li>City-mpg</li>\n", | |
| " <li>Highway-mpg</li>\n", | |
| " <li>Wheel-base</li>\n", | |
| " <li>Bore</li>\n", | |
| "</ul>\n", | |
| " \n", | |
| "Categorical variables:\n", | |
| "<ul>\n", | |
| " <li>Drive-wheels</li>\n", | |
| "</ul>\n", | |
| "\n", | |
| "<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h1>Thank you for completing this notebook</h1>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
| "\n", | |
| " <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n", | |
| "</div>\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<h3>About the Authors:</h3>\n", | |
| "\n", | |
| "This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n", | |
| "\n", | |
| "<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "<hr>\n", | |
| "<p>Copyright © 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