Skip to content

Instantly share code, notes, and snippets.

@Alexon-Abreu
Created April 13, 2021 15:38
Show Gist options
  • Save Alexon-Abreu/23d69fba8e26decdd0360db917ae4460 to your computer and use it in GitHub Desktop.
Save Alexon-Abreu/23d69fba8e26decdd0360db917ae4460 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Module%203/images/IDSNlogo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Data Analysis with Python\n",
"\n",
"Estimated time needed: **30** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"- Explore features or charecteristics to predict price of car\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
"\n",
"</div>\n",
" \n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries \n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook.\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"tags": []
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'float64' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-8-b140d4a06fa5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Write your code below and press Shift+Enter to execute\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mfloat64\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'float64' is not defined"
]
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"float64"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"float64\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke','compression-ratio','horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>engine-size</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>1.000000</td>\n",
" <td>0.872335</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.872335</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" engine-size price\n",
"engine-size 1.000000 0.872335\n",
"price 0.872335 1.000000"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price \n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='highway-mpg', ylabel='price'>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='peak-rpm', ylabel='price'>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 \n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>peak-rpm</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>1.000000</td>\n",
" <td>-0.101616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.101616</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" peak-rpm price\n",
"peak-rpm 1.000000 -0.101616\n",
"price -0.101616 1.000000"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[['stroke','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"\n",
"df[[\"stroke\",\"price\"]].corr()\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='stroke', ylabel='price'>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"sns.regplot(x=\"stroke\", y=\"price\",data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We can see this using \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='body-style', ylabel='price'>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='engine-location', ylabel='price'>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\".\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='drive-wheels', ylabel='price'>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201.000000</td>\n",
" <td>201.00000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.840796</td>\n",
" <td>122.00000</td>\n",
" <td>98.797015</td>\n",
" <td>0.837102</td>\n",
" <td>0.915126</td>\n",
" <td>53.766667</td>\n",
" <td>2555.666667</td>\n",
" <td>126.875622</td>\n",
" <td>3.330692</td>\n",
" <td>3.256904</td>\n",
" <td>10.164279</td>\n",
" <td>103.405534</td>\n",
" <td>5117.665368</td>\n",
" <td>25.179104</td>\n",
" <td>30.686567</td>\n",
" <td>13207.129353</td>\n",
" <td>9.944145</td>\n",
" <td>0.099502</td>\n",
" <td>0.900498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.254802</td>\n",
" <td>31.99625</td>\n",
" <td>6.066366</td>\n",
" <td>0.059213</td>\n",
" <td>0.029187</td>\n",
" <td>2.447822</td>\n",
" <td>517.296727</td>\n",
" <td>41.546834</td>\n",
" <td>0.268072</td>\n",
" <td>0.319256</td>\n",
" <td>4.004965</td>\n",
" <td>37.365700</td>\n",
" <td>478.113805</td>\n",
" <td>6.423220</td>\n",
" <td>6.815150</td>\n",
" <td>7947.066342</td>\n",
" <td>2.534599</td>\n",
" <td>0.300083</td>\n",
" <td>0.300083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-2.000000</td>\n",
" <td>65.00000</td>\n",
" <td>86.600000</td>\n",
" <td>0.678039</td>\n",
" <td>0.837500</td>\n",
" <td>47.800000</td>\n",
" <td>1488.000000</td>\n",
" <td>61.000000</td>\n",
" <td>2.540000</td>\n",
" <td>2.070000</td>\n",
" <td>7.000000</td>\n",
" <td>48.000000</td>\n",
" <td>4150.000000</td>\n",
" <td>13.000000</td>\n",
" <td>16.000000</td>\n",
" <td>5118.000000</td>\n",
" <td>4.795918</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>101.00000</td>\n",
" <td>94.500000</td>\n",
" <td>0.801538</td>\n",
" <td>0.890278</td>\n",
" <td>52.000000</td>\n",
" <td>2169.000000</td>\n",
" <td>98.000000</td>\n",
" <td>3.150000</td>\n",
" <td>3.110000</td>\n",
" <td>8.600000</td>\n",
" <td>70.000000</td>\n",
" <td>4800.000000</td>\n",
" <td>19.000000</td>\n",
" <td>25.000000</td>\n",
" <td>7775.000000</td>\n",
" <td>7.833333</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>122.00000</td>\n",
" <td>97.000000</td>\n",
" <td>0.832292</td>\n",
" <td>0.909722</td>\n",
" <td>54.100000</td>\n",
" <td>2414.000000</td>\n",
" <td>120.000000</td>\n",
" <td>3.310000</td>\n",
" <td>3.290000</td>\n",
" <td>9.000000</td>\n",
" <td>95.000000</td>\n",
" <td>5125.369458</td>\n",
" <td>24.000000</td>\n",
" <td>30.000000</td>\n",
" <td>10295.000000</td>\n",
" <td>9.791667</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.000000</td>\n",
" <td>137.00000</td>\n",
" <td>102.400000</td>\n",
" <td>0.881788</td>\n",
" <td>0.925000</td>\n",
" <td>55.500000</td>\n",
" <td>2926.000000</td>\n",
" <td>141.000000</td>\n",
" <td>3.580000</td>\n",
" <td>3.410000</td>\n",
" <td>9.400000</td>\n",
" <td>116.000000</td>\n",
" <td>5500.000000</td>\n",
" <td>30.000000</td>\n",
" <td>34.000000</td>\n",
" <td>16500.000000</td>\n",
" <td>12.368421</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>256.00000</td>\n",
" <td>120.900000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>59.800000</td>\n",
" <td>4066.000000</td>\n",
" <td>326.000000</td>\n",
" <td>3.940000</td>\n",
" <td>4.170000</td>\n",
" <td>23.000000</td>\n",
" <td>262.000000</td>\n",
" <td>6600.000000</td>\n",
" <td>49.000000</td>\n",
" <td>54.000000</td>\n",
" <td>45400.000000</td>\n",
" <td>18.076923</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length width \\\n",
"count 201.000000 201.00000 201.000000 201.000000 201.000000 \n",
"mean 0.840796 122.00000 98.797015 0.837102 0.915126 \n",
"std 1.254802 31.99625 6.066366 0.059213 0.029187 \n",
"min -2.000000 65.00000 86.600000 0.678039 0.837500 \n",
"25% 0.000000 101.00000 94.500000 0.801538 0.890278 \n",
"50% 1.000000 122.00000 97.000000 0.832292 0.909722 \n",
"75% 2.000000 137.00000 102.400000 0.881788 0.925000 \n",
"max 3.000000 256.00000 120.900000 1.000000 1.000000 \n",
"\n",
" height curb-weight engine-size bore stroke \\\n",
"count 201.000000 201.000000 201.000000 201.000000 197.000000 \n",
"mean 53.766667 2555.666667 126.875622 3.330692 3.256904 \n",
"std 2.447822 517.296727 41.546834 0.268072 0.319256 \n",
"min 47.800000 1488.000000 61.000000 2.540000 2.070000 \n",
"25% 52.000000 2169.000000 98.000000 3.150000 3.110000 \n",
"50% 54.100000 2414.000000 120.000000 3.310000 3.290000 \n",
"75% 55.500000 2926.000000 141.000000 3.580000 3.410000 \n",
"max 59.800000 4066.000000 326.000000 3.940000 4.170000 \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg \\\n",
"count 201.000000 201.000000 201.000000 201.000000 201.000000 \n",
"mean 10.164279 103.405534 5117.665368 25.179104 30.686567 \n",
"std 4.004965 37.365700 478.113805 6.423220 6.815150 \n",
"min 7.000000 48.000000 4150.000000 13.000000 16.000000 \n",
"25% 8.600000 70.000000 4800.000000 19.000000 25.000000 \n",
"50% 9.000000 95.000000 5125.369458 24.000000 30.000000 \n",
"75% 9.400000 116.000000 5500.000000 30.000000 34.000000 \n",
"max 23.000000 262.000000 6600.000000 49.000000 54.000000 \n",
"\n",
" price city-L/100km diesel gas \n",
"count 201.000000 201.000000 201.000000 201.000000 \n",
"mean 13207.129353 9.944145 0.099502 0.900498 \n",
"std 7947.066342 2.534599 0.300083 0.300083 \n",
"min 5118.000000 4.795918 0.000000 0.000000 \n",
"25% 7775.000000 7.833333 0.000000 1.000000 \n",
"50% 10295.000000 9.791667 0.000000 1.000000 \n",
"75% 16500.000000 12.368421 0.000000 1.000000 \n",
"max 45400.000000 18.076923 1.000000 1.000000 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'.\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <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": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'.\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>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": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data.\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>hatchback</td>\n",
" <td>7603.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>12647.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4wd</td>\n",
" <td>wagon</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>convertible</td>\n",
" <td>11595.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>fwd</td>\n",
" <td>hardtop</td>\n",
" <td>8249.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>hatchback</td>\n",
" <td>8396.387755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>9811.800000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>fwd</td>\n",
" <td>wagon</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>23949.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>rwd</td>\n",
" <td>hardtop</td>\n",
" <td>24202.714286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>14337.777778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21711.833333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>rwd</td>\n",
" <td>wagon</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 4wd hatchback 7603.000000\n",
"1 4wd sedan 12647.333333\n",
"2 4wd wagon 9095.750000\n",
"3 fwd convertible 11595.000000\n",
"4 fwd hardtop 8249.000000\n",
"5 fwd hatchback 8396.387755\n",
"6 fwd sedan 9811.800000\n",
"7 fwd wagon 9997.333333\n",
"8 rwd convertible 23949.600000\n",
"9 rwd hardtop 24202.714286\n",
"10 rwd hatchback 14337.777778\n",
"11 rwd sedan 21711.833333\n",
"12 rwd wagon 16994.222222"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd NaN NaN 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>convertible</td>\n",
" <td>21890.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>hardtop</td>\n",
" <td>22208.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>hatchback</td>\n",
" <td>9957.441176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sedan</td>\n",
" <td>14459.755319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wagon</td>\n",
" <td>12371.960000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" body-style price\n",
"0 convertible 21890.500000\n",
"1 hardtop 22208.500000\n",
"2 hatchback 9957.441176\n",
"3 sedan 14459.755319\n",
"4 wagon 12371.960000"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df_group_two = df[['price', 'body-style']]\n",
"grouped_bodystyle = df_group_two.groupby(['body-style'],as_index= False).mean()\n",
"grouped_bodystyle"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details><summary>Click here for the solution</summary>\n",
"\n",
"```python\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"```\n",
"\n",
"</details>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. \n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Variables: Drive Wheels and Body Style vs Price</h4>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price.\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" sometimes we would like to know the significant of the correlation estimate. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"\n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library.\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. \n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.584641822265508 with a P-value of P = 8.076488270733218e-20\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.369057428260101e-48\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'.\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.6906283804483638 with a P-value of P = 8.016477466159556e-30\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.7512653440522673 with a P-value of P = 9.200335510481646e-38\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8344145257702843 with a P-value of P = 2.189577238894065e-53\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':\n"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.049189483935489e-17\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.6865710067844678 with a P-value of P = 2.321132065567641e-29\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>\n"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.704692265058953 with a P-value of P = 1.7495471144476358e-31\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
"print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Conclusion:\n",
"\n",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
"grouped_test2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>body-style</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>convertible</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>hatchback</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>sedan</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>sedan</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>16845.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>19045.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>21485.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22470.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>rwd</td>\n",
" <td>sedan</td>\n",
" <td>22625.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" drive-wheels body-style price\n",
"0 rwd convertible 13495.0\n",
"1 rwd convertible 16500.0\n",
"2 rwd hatchback 16500.0\n",
"3 fwd sedan 13950.0\n",
"4 4wd sedan 17450.0\n",
".. ... ... ...\n",
"196 rwd sedan 16845.0\n",
"197 rwd sedan 19045.0\n",
"198 rwd sedan 21485.0\n",
"199 rwd sedan 22470.0\n",
"200 rwd sedan 22625.0\n",
"\n",
"[201 rows x 3 columns]"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". \n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>.\n"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd\n"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>\n"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"### Other Contributors\n",
"\n",
"<a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>\n",
"\n",
"Bahare Talayian\n",
"\n",
"Eric Xiao\n",
"\n",
"Steven Dong\n",
"\n",
"Parizad\n",
"\n",
"Hima Vasudevan\n",
"\n",
"<a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a>\n",
"\n",
"<a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ---------------------------------- |\n",
"| 2020-10-30 | 2.1 | Lakshmi | changed URL of csv |\n",
"| 2020-08-27 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"\n",
"<hr>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment