Skip to content

Instantly share code, notes, and snippets.

@Hamid264
Created July 9, 2020 08:44
Show Gist options
  • Save Hamid264/3e0487bd8f4c866322bea93b5485eae1 to your computer and use it in GitHub Desktop.
Save Hamid264/3e0487bd8f4c866322bea93b5485eae1 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": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
" </a>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploratory Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Welcome!</h3>\n",
"In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of content</h2>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<ol>\n",
" <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
" <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
" <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
" <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
" <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
" <li><a href=\"#anova\">ANOVA</a></li>\n",
"</ol>\n",
" \n",
"Estimated Time Needed: <strong>30 min</strong>\n",
"</div>\n",
" \n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>What are the main characteristics which have the most impact on the car price?</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Setup</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import libraries "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" load data and store in dataframe df:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>...</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>horsepower-binned</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>13495.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>convertible</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>88.6</td>\n",
" <td>0.811148</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>111.0</td>\n",
" <td>5000.0</td>\n",
" <td>21</td>\n",
" <td>27</td>\n",
" <td>16500.0</td>\n",
" <td>11.190476</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>122</td>\n",
" <td>alfa-romero</td>\n",
" <td>std</td>\n",
" <td>two</td>\n",
" <td>hatchback</td>\n",
" <td>rwd</td>\n",
" <td>front</td>\n",
" <td>94.5</td>\n",
" <td>0.822681</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>154.0</td>\n",
" <td>5000.0</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>16500.0</td>\n",
" <td>12.368421</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>99.8</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>102.0</td>\n",
" <td>5500.0</td>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>13950.0</td>\n",
" <td>9.791667</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>164</td>\n",
" <td>audi</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>4wd</td>\n",
" <td>front</td>\n",
" <td>99.4</td>\n",
" <td>0.848630</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>115.0</td>\n",
" <td>5500.0</td>\n",
" <td>18</td>\n",
" <td>22</td>\n",
" <td>17450.0</td>\n",
" <td>13.055556</td>\n",
" <td>Medium</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses make aspiration num-of-doors \\\n",
"0 3 122 alfa-romero std two \n",
"1 3 122 alfa-romero std two \n",
"2 1 122 alfa-romero std two \n",
"3 2 164 audi std four \n",
"4 2 164 audi std four \n",
"\n",
" body-style drive-wheels engine-location wheel-base length ... \\\n",
"0 convertible rwd front 88.6 0.811148 ... \n",
"1 convertible rwd front 88.6 0.811148 ... \n",
"2 hatchback rwd front 94.5 0.822681 ... \n",
"3 sedan fwd front 99.8 0.848630 ... \n",
"4 sedan 4wd front 99.4 0.848630 ... \n",
"\n",
" compression-ratio horsepower peak-rpm city-mpg highway-mpg price \\\n",
"0 9.0 111.0 5000.0 21 27 13495.0 \n",
"1 9.0 111.0 5000.0 21 27 16500.0 \n",
"2 9.0 154.0 5000.0 19 26 16500.0 \n",
"3 10.0 102.0 5500.0 24 30 13950.0 \n",
"4 8.0 115.0 5500.0 18 22 17450.0 \n",
"\n",
" city-L/100km horsepower-binned diesel gas \n",
"0 11.190476 Medium 0 1 \n",
"1 11.190476 Medium 0 1 \n",
"2 12.368421 Medium 0 1 \n",
"3 9.791667 Medium 0 1 \n",
"4 13.055556 Medium 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
"df = pd.read_csv(path)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To install seaborn we use the pip which is the python package manager."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"! pip install seaborn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>How to choose the right visualization method?</h4>\n",
"<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"symboling int64\n",
"normalized-losses int64\n",
"make object\n",
"aspiration object\n",
"num-of-doors object\n",
"body-style object\n",
"drive-wheels object\n",
"engine-location object\n",
"wheel-base float64\n",
"length float64\n",
"width float64\n",
"height float64\n",
"curb-weight int64\n",
"engine-type object\n",
"num-of-cylinders object\n",
"engine-size int64\n",
"fuel-system object\n",
"bore float64\n",
"stroke float64\n",
"compression-ratio float64\n",
"horsepower float64\n",
"peak-rpm float64\n",
"city-mpg int64\n",
"highway-mpg int64\n",
"price float64\n",
"city-L/100km float64\n",
"horsepower-binned object\n",
"diesel int64\n",
"gas int64\n",
"dtype: object\n"
]
}
],
"source": [
"# list the data types for each column\n",
"print(df.dtypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h3>Question #1:</h3>\n",
"\n",
"<b>What is the data type of the column \"peak-rpm\"? </b>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"float64\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for example, we can calculate the correlation between variables of type \"int64\" or \"float64\" using the method \"corr\":"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"peak-rpm float64\n",
"dtype: object"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()\n",
"df[['peak-rpm']].dtypes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question #2: </h1>\n",
"\n",
"<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 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>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" bore stroke compression-ratio horsepower\n",
"bore 1.000000 -0.055390 0.001263 0.566936\n",
"stroke -0.055390 1.000000 0.187923 0.098462\n",
"compression-ratio 0.001263 0.187923 1.000000 -0.214514\n",
"horsepower 0.566936 0.098462 -0.214514 1.000000"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute \n",
"df[['bore','stroke' ,'compression-ratio','horsepower']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Continuous numerical variables:</h2> \n",
"\n",
"<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
"\n",
"<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see several examples of different linear relationships:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>Positive linear relationship</h4>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's find the scatterplot of \"engine-size\" and \"price\" "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(0, 56505.58544723628)"
]
},
"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": [
"# Engine size as potential predictor variable of price\n",
"sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
"plt.ylim(0,)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can examine the correlation between 'engine-size' and 'price' and see it's approximately 0.87"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"engine-size\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Highway mpg is a potential predictor variable of price "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc8ac436e80>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately -0.704"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" highway-mpg price\n",
"highway-mpg 1.000000 -0.704692\n",
"price -0.704692 1.000000"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['highway-mpg', 'price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Weak Linear Relationship</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc8ac39e9e8>"
]
},
"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.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[['peak-rpm','price']].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1> Question 3 a): </h1>\n",
"\n",
"<p>Find the correlation between x=\"stroke\", y=\"price\".</p>\n",
"<p>Hint: if you would like to select those columns use the following syntax: df[[\"stroke\",\"price\"]] </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>stroke</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>1.00000</td>\n",
" <td>0.08231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>0.08231</td>\n",
" <td>1.00000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" stroke price\n",
"stroke 1.00000 0.08231\n",
"price 0.08231 1.00000"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Write your code below and press Shift+Enter to execute\n",
"df[[\"stroke\", \"price\"]].corr()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#The correlation is 0.0823, the non-diagonal elements of the table.\n",
"#code:\n",
"df[[\"stroke\",\"price\"]].corr() \n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 3 b):</h1>\n",
"\n",
"<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
"<p>Verify your results using the function \"regplot()\".</p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc8afdbea20>"
]
},
"execution_count": 22,
"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": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well. We #can see this use \"regplot\" to demonstrate this.\n",
"\n",
"#Code: \n",
"sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Categorical variables</h3>\n",
"\n",
"<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at the relationship between \"body-style\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc8ac24e978>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc8ac1e6cf8>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine \"drive-wheels\" and \"price\"."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc8ac1ed748>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# drive-wheels\n",
"sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
"\n",
"<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
"\n",
"This will show:\n",
"<ul>\n",
" <li>the count of that variable</li>\n",
" <li>the mean</li>\n",
" <li>the standard deviation (std)</li> \n",
" <li>the minimum value</li>\n",
" <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
" <li>the maximum value</li>\n",
"<ul>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can apply the method \"describe\" as follows:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>make</th>\n",
" <th>aspiration</th>\n",
" <th>num-of-doors</th>\n",
" <th>body-style</th>\n",
" <th>drive-wheels</th>\n",
" <th>engine-location</th>\n",
" <th>engine-type</th>\n",
" <th>num-of-cylinders</th>\n",
" <th>fuel-system</th>\n",
" <th>horsepower-binned</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>201</td>\n",
" <td>200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>toyota</td>\n",
" <td>std</td>\n",
" <td>four</td>\n",
" <td>sedan</td>\n",
" <td>fwd</td>\n",
" <td>front</td>\n",
" <td>ohc</td>\n",
" <td>four</td>\n",
" <td>mpfi</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>32</td>\n",
" <td>165</td>\n",
" <td>115</td>\n",
" <td>94</td>\n",
" <td>118</td>\n",
" <td>198</td>\n",
" <td>145</td>\n",
" <td>157</td>\n",
" <td>92</td>\n",
" <td>115</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" make aspiration num-of-doors body-style drive-wheels \\\n",
"count 201 201 201 201 201 \n",
"unique 22 2 2 5 3 \n",
"top toyota std four sedan fwd \n",
"freq 32 165 115 94 118 \n",
"\n",
" engine-location engine-type num-of-cylinders fuel-system \\\n",
"count 201 201 201 201 \n",
"unique 2 6 7 8 \n",
"top front ohc four mpfi \n",
"freq 198 145 157 92 \n",
"\n",
" horsepower-binned \n",
"count 200 \n",
"unique 3 \n",
"top Low \n",
"freq 115 "
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe(include=['object'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Value Counts</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"fwd 118\n",
"rwd 75\n",
"4wd 8\n",
"Name: drive-wheels, dtype: int64"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can convert the series to a Dataframe as follows :"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].value_counts().to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column 'drive-wheels' to 'value_counts'."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"fwd 118\n",
"rwd 75\n",
"4wd 8"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
"drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Now let's rename the index to 'drive-wheels':"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drive_wheels_counts.index.name = 'drive-wheels'\n",
"drive_wheels_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can repeat the above process for the variable 'engine-location'."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>value_counts</th>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-location</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>front</th>\n",
" <td>198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rear</th>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" value_counts\n",
"engine-location \n",
"front 198\n",
"rear 3"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# engine-location as variable\n",
"engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
"engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
"engine_loc_counts.index.name = 'engine-location'\n",
"engine_loc_counts.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
"\n",
"<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['rwd', 'fwd', '4wd'], dtype=object)"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['drive-wheels'].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
"\n",
"<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
]
},
{
"cell_type": "code",
"execution_count": 37,
"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": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_group_one = df[['drive-wheels','body-style','price']]\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then calculate the average price for each of the different categories of data."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4wd</td>\n",
" <td>10241.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>fwd</td>\n",
" <td>9244.779661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>rwd</td>\n",
" <td>19757.613333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 4wd 10241.000000\n",
"1 fwd 9244.779661\n",
"2 rwd 19757.613333"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
"df_group_one"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
"\n",
"<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# grouping results\n",
"df_gptest = df[['drive-wheels','body-style','price']]\n",
"grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
"grouped_test1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
"\n",
"<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead 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": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"5\" halign=\"left\">price</th>\n",
" </tr>\n",
" <tr>\n",
" <th>body-style</th>\n",
" <th>convertible</th>\n",
" <th>hardtop</th>\n",
" <th>hatchback</th>\n",
" <th>sedan</th>\n",
" <th>wagon</th>\n",
" </tr>\n",
" <tr>\n",
" <th>drive-wheels</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4wd</th>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>7603.000000</td>\n",
" <td>12647.333333</td>\n",
" <td>9095.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fwd</th>\n",
" <td>11595.0</td>\n",
" <td>8249.000000</td>\n",
" <td>8396.387755</td>\n",
" <td>9811.800000</td>\n",
" <td>9997.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>rwd</th>\n",
" <td>23949.6</td>\n",
" <td>24202.714286</td>\n",
" <td>14337.777778</td>\n",
" <td>21711.833333</td>\n",
" <td>16994.222222</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" price \\\n",
"body-style convertible hardtop hatchback sedan \n",
"drive-wheels \n",
"4wd 0.0 0.000000 7603.000000 12647.333333 \n",
"fwd 11595.0 8249.000000 8396.387755 9811.800000 \n",
"rwd 23949.6 24202.714286 14337.777778 21711.833333 \n",
"\n",
" \n",
"body-style wagon \n",
"drive-wheels \n",
"4wd 9095.750000 \n",
"fwd 9997.333333 \n",
"rwd 16994.222222 "
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
"grouped_pivot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
"<h1>Question 4:</h1>\n",
"\n",
"<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>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_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <b>here</b> for the solution.\n",
"\n",
"<!-- The answer is below:\n",
"\n",
"# grouping results\n",
"df_gptest2 = df[['body-style','price']]\n",
"grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
"grouped_test_bodystyle\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you did not import \"pyplot\" let's do it again. "
]
},
{
"cell_type": "code",
"execution_count": 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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a heat map to visualize the relationship between Body Style vs Price."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the grouped results\n",
"plt.pcolor(grouped_pivot, cmap='RdBu')\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
"\n",
"<p>The default labels convey no useful information to us. Let's change that:</p>"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEmCAYAAABoGYshAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAeYklEQVR4nO3deZRlVX328e9T3UwKjUwidoMQ7GgAB2QQBXw1aGyNEWPQtEsFI4oaVDSJcYhDhhejWXHOC4pxAByAkERxQCQYBIQAjRIQEGlBoQVFBrEdGLrref84u+R2U911q+6tOnX3eT5rnVX37lvn3N/t4Ve7fnufvWWbiIioz1jbAURExOxIgo+IqFQSfEREpZLgIyIqlQQfEVGphW0H0EsLN7c226rtMIar0llKv7d057ZDGLqVN/+i7RBmxY7bPajtEGbFTdd+9zbbOwxyjbFFS8yau/v6Xv/m9rNsLxvk/eba/Erwm23Fpnv8SdthDNX4mnvbDmFWnPbVD7YdwtA99+/ObjuEWfH6l+7ddgiz4g0H7f6jgS+y5m4WPuq5fX3rfZd/avuB32+OzasEHxExpyQ0tqDtKGZNEnxEdJgYW7hp20HMmiT4iOiu9OAjIuokQAuS4CMi6iMxlh58RESdUqKJiKhRavAREXUSYmzhJm2HMWuS4COiu9KDj4ioVxJ8RESNpEyTjIiokUgPPiKiThpjQZYqiIiokNKDj4ioksgsmoiIaiXBR0TUKPPgIyJqlQQfEVElSYxtklk0ERH1SYkmIqJeSfAREZUaG1PbIcyaJPiI6CxJKAk+IqJOCxaMtR3CrEmCj4juEunBR0TUqFlNMgk+IqJCYkxJ8BER9UmJJiKiXknwEREVkmDBwiT4iIgqqeIa/JxMAJX0VElfnov3iojolyTGxvo7RtGMevBqfuTJ9viQ44mImFM11+D77sFL2lXSNZKOA64HPlHaj5F0fXm8u6QLyuNlkr5Xnj9/FmKPiBiYxtTXsdFrSDtL+u+SI6+SdExp31bS2ZKuK1+36TnnrZJWSrpW0jN72veRdGV57cOlQ42kzSSdWtovlrTrVJ9tuiWaRwEnAU8C9iptBwO3S1oMHAScL2lz4OPAH5XXHzbN94mImH2CMamvYwprgL+0/XvAAcDRkvYA3gKcY3spcE55TnltObAnsAw4TtLEspbHA0cBS8uxrLQfCdxp+5HAB4D3ThXUdBP8j2z/j+2fAFtK2grYGfgc8BSaZH4+8GjgBtvX2TbwmQ1dUNJRklZIWuE1d08znIiImRNibOFYX8fG2L7F9rfL49XANcBi4FDgxPJtJwLPK48PBU6xfY/tG4CVwP6SdgIW2b6o5M6T1jtn4lqnA4dM9O43ZLoJ/lc9jy8C/gy4liapH0zTs//WxGfu54K2T7C9r+19tXDzaYYTETEAMZ1B1u0nOqPlOGrSSzalk72Bi4Edbd8CzQ8B4KHl2xYDN/Wctqq0LS6P129f5xzba4C7gO029vEGmSZ5HvD35fgO8DTgN7bvkvQ9YDdJu9v+AfCiAd4nImLWTGOa5G22953iWlsC/w68wfYvNnLtyV7wRto3ds4GDTJN8nya8sx5ttfS/GS5AMD23TQ1pK+UQdYfDfA+ERGzollsrL9jymtJm9Ak98/a/o/S/NNSdqF8vbW0r6LJnxOWADeX9iWTtK9zjqSFwNbAHRuLqe8evO0fcv/AKqVnrp7nf7De93+NphYfETE/aTg7OpVa+CeAa2y/v+elM4AjgPeUr1/saf+cpPcDD6cZTL3E9lpJqyUdQFPiORz4yHrXugg4DPhGqdNvUO5kjYgOE2PD2fDjQOClwJWSLi9tb6NJ7KdJOhK4EXgBgO2rJJ0GXE0zA+foUgkBeA3waWAL4MxyQPMD5GRJK2l67sunCioJPiI6S0Pqwdu+gMlr5ACHbOCcY4FjJ2lfQU+1pKf9bsoPiH4lwUdEp9V8J2sSfER0lgQLkuAjIuqUBB8RUSGhJPiIiBpJsOkUyxCMsiT4iOgsCRamBx8RUR+RGnxERJ2UGnxERJWaHnxq8BERVUoPPiKiQmNSZtFERNRqQf/rwY+cJPiI6KwsVRARUbEk+IiICuVGp4iISokMskZEVCk1+IiISmWpgoiIWqUHHxFRp6wHHxFRsST4iIgKjWXDj4iISqUGHxFRJ6GsRRMRUauxJPiIiPoIWFBvfk+Cj4gOE4ylBh8RUR8Bm2TLvoiI+qREM4f2/t3FXHjOu9sOY7gu+WLbEcyOa77QdgRDd92bHt12CLPCYz9vO4RZ8YZhXERKiSYiokYis2giIqqVEk1ERIUk2GRBBlkjIqqTEk1ERMVSoomIqJBQ1T34eotPERFTKatJ9nNMeSnpk5JulfTdnra/lfRjSZeX49k9r71V0kpJ10p6Zk/7PpKuLK99WGp+AknaTNKppf1iSbtOFVMSfER0VlOD7+/ow6eBZZO0f8D248vxVQBJewDLgT3LOcdJWlC+/3jgKGBpOSaueSRwp+1HAh8A3jtVQEnwEdFZE0sV9HNMxfZ5wB19vvWhwCm277F9A7AS2F/STsAi2xfZNnAS8Lyec04sj08HDpno3W9IEnxEdJdgwVh/B7C9pBU9x1F9vstrJV1RSjjblLbFwE0937OqtC0uj9dvX+cc22uAu4DtNvbGGWSNiM6a5jTJ22zvO823OB74B8Dl6/uAl5e3Xp830s4Ur00qCT4iOmx2d3Sy/dPfvpP0ceDL5ekqYOeeb10C3Fzal0zS3nvOKkkLga2ZoiSUEk1EdNZED76fY0bXb2rqE/4YmJhhcwawvMyM2Y1mMPUS27cAqyUdUOrrhwNf7DnniPL4MOAbpU6/QenBR0RnNUsVDKcHL+nzwFNpavWrgHcBT5X0eJpSyg+BVwHYvkrSacDVwBrgaNtry6VeQzMjZwvgzHIAfAI4WdJKmp778qliSoKPiE4bVoXG9osmaf7ERr7/WODYSdpXAHtN0n438ILpxJQEHxGdNjbp2GUdkuAjorPE8Hrw81ESfER0WsUbOiXBR0SHKT34iIgqaZbnwbctCT4iOi0lmoiISlWc35PgI6K7smVfRETFKs7vSfAR0W01L8iVBB8RnaWyZV+tkuAjotNSoomIqJBIiSYiolpTbGs60pLgI6K7lBudIiKqJGBI+33MS0nwEdFpNZdopjW+IOn1kq6R9NlpnneupOnuRh4RMauaO1n7O0bRdHvwfw48y/YNsxFMRMRcG9Hc3Ze+e/CSPgr8DnCGpNWSHqLG7ZIOL99zsqSnS9pC0imSrpB0Ks3msRER84wYU3/HKOo7wdt+NXAz8DTgs8CBwJ7A9cDB5dsOAP6HZlfwX9t+LM2msvts6LqSjpK0QtKKn91++4w+RETEjJQNP/o5RtFM5/ifDzylHMcDj5G0GLjD9i9L+2cAbF8BXLGhC9k+wfa+tvfdYbvtZhhORMT0yUbja/s6RtFME/x5NL32g4FzgZ8Bh9Ek/gkeKLKIiDkgj/d1jKIZJXjbNwHbA0ttXw9cAPwV9yf484AXA0jaC3js4KFGRAybweP9HSNokGUYLga+Xx6fDyymSfTQlG22lHQF8NfAJQO8T0TE7LH7O0bQtKZJ2t615/FLex5fSM8PC9u/AZYPIb6IiNljj2zvvB+5kzUiOm1U6+v9SIKPiA4zjK9pO4hZkwQfEd1lUqKJiKiTYTwJPiKiSqnBR0TUKgk+IqJCNozoMgT9SIKPiE5LiSYiokq50Skiol4VJ/hB1qKJiBhtHt5iY5I+KelWSd/tadtW0tmSritft+l57a2SVkq6VtIze9r3kXRlee3DKpvGStpM0qml/WJJu04VUxJ8RHSWGOpywZ8Glq3X9hbgHNtLgXPKcyTtQbNe157lnOMkLSjnHA8cBSwtx8Q1jwTutP1I4APAe6cKKAk+IjrMsHZtf8dUV7LPA+5Yr/lQ4MTy+ETgeT3tp9i+p+xxvRLYX9JOwCLbF9k2cNJ650xc63TgkIne/YakBh8R3TW9pQq2l7Si5/kJtk+Y4pwdbd8CYPsWSQ8t7YtptjedsKq03Vcer98+cc5N5VprJN0FbAfctqE3T4KPiE6bxjTJ22zvO6y3naTNG2nf2DkblBJNRHTYrO/o9NNSdqF8vbW0rwJ27vm+JcDNpX3JJO3rnCNpIbA1DywJrSMJPiK6bXYT/BnAEeXxEcAXe9qXl5kxu9EMpl5SyjmrJR1Q6uuHr3fOxLUOA75R6vQblBJNRHTXEJcqkPR54Kk0tfpVwLuA9wCnSToSuBF4QfO2vkrSacDVwBrgaNsTgbyGZkbOFsCZ5QD4BHCypJU0Pfcpd81Lgo+IDjNec99wrmS/aAMvHbKB7z8WOHaS9hXAXpO03035AdGvJPiI6C6TxcYiImpkjPuY4z6qkuAjortMdnSKiKhT1oOPiKiThzfIOh8lwUdEhxmnBx8RUaHMoomIqJUzyBoRUSWTaZIREXXKLJqIiDplFk1ERK3Sg58zN15+Dcds/YS2w4g+vP/017YdwtD9Zv/D2g5hVmx53XlthzB/ZRZNRESdjHFm0UREVCg9+IiIStn4vnvbjmLWJMFHRIflRqeIiHqlRBMRUSFnsbGIiGplFk1ERI1svDYJPiKiOrYZv29N22HMmiT4iOgukx58REStkuAjIipkm/GsBx8RUafMoomIqFFm0URE1CmzaCIiKjaeHnxERIUyTTIiolKpwUdE1MlkFk1ERJ1sxu/NIGtERH0M4+nBR0TUx6QGHxFRJ4MrXqpgrO0AIiLaYzw+3tcxFUk/lHSlpMslrSht20o6W9J15es2Pd//VkkrJV0r6Zk97fuU66yU9GFJmumnS4KPiO4q8+D7Ofr0NNuPt71vef4W4BzbS4FzynMk7QEsB/YElgHHSVpQzjkeOApYWo5lM/14SfAR0Vm2WXvvmr6OGToUOLE8PhF4Xk/7KbbvsX0DsBLYX9JOwCLbF9k2cFLPOdOWBB8RHTatEs32klb0HEc94GLwdUmX9by2o+1bAMrXh5b2xcBNPeeuKm2Ly+P122ckg6wR0V3TW6rgtp7Sy2QOtH2zpIcCZ0v63ka+d7K6ujfSPiNJ8BHRXQavnXH+XPdS9s3l662S/hPYH/ippJ1s31LKL7eWb18F7Nxz+hLg5tK+ZJL2GUmJJiI6y5jxteN9HRsj6cGStpp4DPwB8F3gDOCI8m1HAF8sj88AlkvaTNJuNIOpl5QyzmpJB5TZM4f3nDNt6cFHRHcZPD6UHvyOwH+WGY0Lgc/Z/pqkS4HTJB0J3Ai8AMD2VZJOA64G1gBH256YkP8a4NPAFsCZ5ZiRvhN8mcKzAvix7edM940k/dL2ltM9LyJittiw9t7Bb3SyfT3wuEnabwcO2cA5xwLHTtK+Athr4KCYXg/+GOAaYNEw3jgionX20Grw81FfNXhJS4A/BP61PH+opMvK48dJsqRdyvMfSHqQpN0kXSTpUkn/MFsfICJiEONr3dcxivodZP0g8NfAODSjxMDmkhYBB9OUbg6W9AjgVtu/Bj4EHG97P+AnQ488ImJQw7+TdV6ZMsFLeg5N0r5svZcuBA4EngK8u3w9GDi/vH4g8Pny+OSNXP+oiRsH7qbeRX8iYv4xMD7uvo5R1E8N/kDguZKeDWwOLJL0GeDrNAn9ETTTeN5M8+f15Z5zp/xTsX0CcALADtpsNP8UI2I02UMZZJ2vpuzB236r7SW2d6VZHOcbtl8CnAe8BLjO9jhwB/Bs4Fvl1G+V7wd48bADj4gYlMuNTv0co2jGNzrZ/mF5eF75egHwc9t3lufHAEeXeaBbzzjCiIjZUnmCn9aNTrbPBc7teb5Lz+N309TiJ57fADyp5/T3zDTIiIjZ4SnvUh1luZM1IrpreHeyzktJ8BHRWYaRnePejyT4iOgum/GKZ9EkwUdEZ9npwUdEVKufDbVHVRJ8RHSXR3edmX4kwUdEdw1xR6f5KAk+IjrLTGtP1pGTBB8R3WWz9t4k+IiI6tgw7pRoIiKqtDYJPiKiPgYqHmNNgo+IbksPPiKiQuOGe7PYWEREnVKiiYiokHFKNBERNcoga0RExZLgIyIqZGcWTURElUxm0UREVCk1+IiIiqVEExFRoaYG33YUsycJPiI6LT34iIgKGah3Nfgk+IjoMOPMoomIqFEziyYJPiKiPpUPso61HUBERFsmevD9HFORtEzStZJWSnrL7Ec/tfTgI6LThtGDl7QA+H/AM4BVwKWSzrB99eBXn7kk+IjorHGGtlTB/sBK29cDSDoFOBRoNcHL82iAQdLPgB/N0dttD9w2R+81V2r8TJDPNUrm8jM9wvYOg1xA0tdoYu7H5sDdPc9PsH1Cuc5hwDLbryjPXwo80fZrB4lvUPOqBz/oX9Z0SFphe9+5er+5UONngnyuUTJqn8n2siFdSpNdfkjXnrEMskZEDG4VsHPP8yXAzS3F8ltJ8BERg7sUWCppN0mbAsuBM1qOaX6VaObYCW0HMAtq/EyQzzVKavxMU7K9RtJrgbOABcAnbV/Vcljza5A1IiKGJyWaiIhKJcFHRFQqCT4iolJJ8BERlerULBpJBwFLbX9K0g7AlrZvaDuuQUl6PnAQzY0VF9j+z5ZDGpikZ9k+c722V9v+aFsxDYOkJwO70vN/z/ZJrQU0JGUtlh1Z93Pd2F5EAR2aRSPpXcC+wKNs/66khwP/ZvvAlkMbiKTjgEcCny9Nfwr8wPbR7UU1OEkXAm+3/Y3y/M3AU20/q93IZk7SycDuwOXA2tJs269vL6rBSXod8C7gp9y/QZJtP7a9qAK6leAvB/YGvm1779J2xaj/I5R0FbCXy1+kpDHgStt7thvZYCRtD3wZeBOwDHg0sNz2fa0GNgBJ1wB7uLL/dJJW0qy7cnvbscS6ulSDv7f8x5pIhA9uOZ5huRbYpef5zsAVLcUyNLZvA55LswTrw4HDRjm5F98FHtZ2ELPgJuCutoOIB+pSDf40SR8DHiLplcDLgY+3HNMwbAdcI+mS8nw/4CJJZwDYfm5rkc2ApNU0P4RVvm4K/A5wmCTbXtRmfAPaHri6/F3dM9E4an9Hk7geOFfSV1j3c72/vZACOpTgbf+zpGcAvwAeBbzT9tkthzUM72w7gGGyvVXbMcyiv207gFlyYzk2LUfME52pwddM0o40PXeAS2zf2mY8wyDpj4Fv2L6rPH8IzSDrF9qNLDZE0lY0g6u/bDuWaFRfg5e0WtIvJjlWS/pF2/ENStILgUuAFwAvBC4umw+MundNJHcA2z+nmakxsiQdIOlSSb+UdK+ktZX8G9xL0ndoxhiuknSZpJEe5K9F9SWayn/lB/gbYL+JXnuZ3/9fwOmtRjW4yTofo/7v9V9olpH9N5opu4cDS1uNaDhOAP7C9n8DSHoqzfjWk9sMKkb/P8y0SHoC694Q9J2WQxqGsfVKMrdTx29mKyS9n2YWjYHXAZe1G9LgbK+UtMD2WuBTZb7/qHvwRHIHsH1uRbPURloNiaAvkt4JnEgz62R74NOS3t5uVEPxNUlnSXqZpJcBXwHOnOKcUfA64F7gVJoe793ASN+8Bfy6bAZxuaR/kvRGoIZEeL2kd0jatRxvB0b+DvEadGaQtdxksrftu8vzLWhuevq9diMbXM9SBQLOq2GpghpJegRwK7AJ8EZga+A42ytbDWxAkrYB/o6ef4PA39q+s9XAolMJ/kzgRWWwbmJWxmdsP6fdyAYj6b223zxV26gpYwl/DexJs5s9ALZ/v7WgIkZM9TV4SR+hqeHeQzPCf3Z5/gzggjZjG5JnAOsn82dN0jZqPktTnnkO8GrgCOBnrUY0Q5KupNxBPZkKlsv4Eg/8fHcBK4CPTfzWHHOv+h68pCM29rrtE+cqlmGS9Brgz2nu8vxBz0tbAd+y/ZJWAhsSSZfZ3qd3vSBJ37T9f9qObbpKaQbuH0M4uXx9MfBr238/91ENj6QPATuw7oJ3PwG2ABbZfmlbsXVd9Qm+VpK2BrYB/hF4S89Lq23f0U5UwyPpf2wfIOks4MPAzcDptndvObQZk/St9Vcvnaxt1Eg6z/ZTJmuTdNWoL3w3yrpQojnN9gs39GvyCP96vIBm2YUHzCyRtG0FSf7/lh9ifwl8BFhEMzA5yh4s6SDbF8Bv14avYRbNDpJ2mVj/XdIuNDPVoJkJFS2pvgcvaSfbt/T8mrwO2z+a65iGQdIN3L8o1y7AneXxQ4Abbe/WYngxCUn7AJ+kmT1jmjr1y21/u9XABiTp2cBHaUqFAnajKR+eC7zS9gfbi67bqk/wEyqebfJR4AzbXy3PnwU83fZfthvZYCT9DvAh4Ek0m0hcBLzR9vWtBjYEkhbR/N+rZoldSZvRrNkv4HsZWJ0fOnOjE81sk/WN7O5APfabSO4AZZu7kRuInMTngNNo1k9/OM3NTp/f6BnznKQdJX0CONX2XZL2kHRk23ENyVKaVVofC7xQ0uEtxxN0IMFLek2pvz9a0hU9xw1UsDEGcJukt5c7CB8h6W9olisYdbJ9su015fgMG5lqOCI+DZxF8wML4PvAG1qLZkjUbIf5kXI8Dfgnms1aomXVl2g6MNtkW5pVFp9CkwDPA/5+VD9b+TzQ3OT0c+AUms/1p8Bmtv+hrdgGJelS2/tJ+k7PtpGX235827ENonSgHgd8x/bjyvLV/2r7j1oOrfOqn0VTfhVeDTxmVAdUN0TNTvZvtX1M27EM0WXcP3gM8Kqe1wyMbIIHfiVpO+7fNvIA6tjq7m7b45LWlPGFW2nuz4iWVZ/gAco/vv/tncpVA9try8yMalQ+++cvgDOA3SV9i+bmoBrW7r+0LP3xcZof0L+k2aMgWtaJBF/sRLNUwSXAryYaK9gP8ztq9l/9N9b9XP/RXkjDUeaJ70rPv1PbJ7UW0OB2pxnY3xn4E+CJ1PF/cCuaDWfOBb5Gc/dqDeNbI6/6GvwESZPOLLH9zbmOZZgkfWqSZtt++ZwHM0SSTqZJiJcDa0uzbb++vagGM7HsgqSDgHcD7wPeZvuJLYc2EEm/T7OS5ME0pZnLaVY1/VCrgUV3Ejz8dk2Qpbb/S9KDgAW2V7cdVzxQWd55D1f0D3RicFXSPwJX2v5c74DrKCvjQfvRzKJ5NfAb249uN6qo4dfDvkh6JXAUsC1Nz3Axzd13h7QZ16AkbQ4cyQOX1R3pHjzN/p4PA25pO5Ah+rGkjwFPB95bbg4a+anKks6hWXLhIuB8eraQjHaN/D+uaTgaOJBm/RZsXwc8tNWIhuNkmkT4TOCbwBJgZH8rkfSlMqawPXB12a3qjImj7fgG9EKaefDLyr4E2wJvajekobiCZs2ZvWhudNqrbKgTLetMiUbSxbaf2PNr8kKaHZ1GdbExYJ1f+yfqu5sAZ43qxhgbGiuZMOpjJjWTtCXwZ8BfAQ+zvVnLIXVeZ0o0wDclvQ3YQtIzaBZD+lLLMQ3DfeXrzyXtRbMO967thTOYiQQuaTfglvW2WNyxzdhicpJeSzPAug/wI5oF1c5vNagAutWDH6OpVf8BzU00Z9HcbTfSfwCSXgH8O/AYmlvhtwTeYftjbcY1KEkrgCfbvrc835RmI5P92o0s1ifpTTR3UF9me03b8cT9upTg/xj4qu172o5lmMpA3Z/Q9No3Kc2uYJegB9zCL+l/bT+urZgiRk2XBlmfC3xf0smS/rDU4GvwReBQYA3NHYS/pOeGpxH2M0m/vQlN0qHAbS3GEzFyOtODBygDkM+iWbjqIOBs269oN6rBSPqu7b3ajmPYJO1Os/H2xMqLq4CX2v7Bhs+KiF619GL7Yvs+SWfSLPa0BU3Pd6QTPHChpMfYvrLtQIZsvOzJuiVNR2R1GXiNiD51pgcvaRmwnOZOu3OBU4Gvj+qgUM8eswtpNlu4HriHZgDZFUz//LbtJ6zXdpntqhZXi5hNXerBv4xmbfFXVTLQ+py2A5gNkh5Nc1fu1pKe3/PSInru1I2IqXUmwdte3nYMw1Tb2vY9HkXzw+shQO+GEauBV7YSUcSI6lKJ5vnAe2mWJxD3lzIWtRpYTErSk2xf1HYcEaOsSwl+JfBHtq9pO5aYWsWLqEXMmS7Ng/9pkvtIqWoRtYg2dKkH/yGahPEFmtkmQB07H9WotkXUItrQmUFWmlkYv6ZZi2aCgST4+amqRdQi2tCZBG/7z9qOIablBEnbAG+n2ah6S+Ad7YYUMVq6VKJZAnyEZtMPAxcAx9he1WpgMalaF1GLmEtdGmT9FE1P8OE02/V9qbTF/FTrImoRc6ZLPfjJlp99QFvMD7UuohYxl7rUg79N0kskLSjHS4Db2w4qNuhCSY9pO4iIUdalHvwuwL8AT6KpwV8IvN72ja0GFuuofRG1iLnUpQR/IvAG23eW59sC/5w7I+cXSY/Y2OsVr8ETMXSdmSYJPHYiuQPYvkPS3m0GFA+UBB4xPF2qwY+VedXAb3vwXfoBFxEd06UE9z6agbvTaWq8LwSObTekiIjZ05kaPICkPYDfpxmwO8f21S2HFBExazqV4CMiuqRLNfiIiE5Jgo+IqFQSfEREpZLgIyIq9f8BIWcfq+n+b1cAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
"\n",
"#label names\n",
"row_labels = grouped_pivot.columns.levels[1]\n",
"col_labels = grouped_pivot.index\n",
"\n",
"#move ticks and labels to the center\n",
"ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
"ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
"\n",
"#insert labels\n",
"ax.set_xticklabels(row_labels, minor=False)\n",
"ax.set_yticklabels(col_labels, minor=False)\n",
"\n",
"#rotate label if too long\n",
"plt.xticks(rotation=90)\n",
"\n",
"fig.colorbar(im)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
"\n",
"<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
"\n",
"<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
"\n",
"<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
"\n",
"<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler the determining causation as causation may require independent experimentation.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p3>Pearson Correlation</p>\n",
"<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
"<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
"<ul>\n",
" <li><b>1</b>: Total positive linear correlation.</li>\n",
" <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
" <li><b>-1</b>: Total negative linear correlation.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Pearson Correlation is the default method of the function \"corr\". Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64' variables.</p>"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>symboling</th>\n",
" <th>normalized-losses</th>\n",
" <th>wheel-base</th>\n",
" <th>length</th>\n",
" <th>width</th>\n",
" <th>height</th>\n",
" <th>curb-weight</th>\n",
" <th>engine-size</th>\n",
" <th>bore</th>\n",
" <th>stroke</th>\n",
" <th>compression-ratio</th>\n",
" <th>horsepower</th>\n",
" <th>peak-rpm</th>\n",
" <th>city-mpg</th>\n",
" <th>highway-mpg</th>\n",
" <th>price</th>\n",
" <th>city-L/100km</th>\n",
" <th>diesel</th>\n",
" <th>gas</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>symboling</th>\n",
" <td>1.000000</td>\n",
" <td>0.466264</td>\n",
" <td>-0.535987</td>\n",
" <td>-0.365404</td>\n",
" <td>-0.242423</td>\n",
" <td>-0.550160</td>\n",
" <td>-0.233118</td>\n",
" <td>-0.110581</td>\n",
" <td>-0.140019</td>\n",
" <td>-0.008245</td>\n",
" <td>-0.182196</td>\n",
" <td>0.075819</td>\n",
" <td>0.279740</td>\n",
" <td>-0.035527</td>\n",
" <td>0.036233</td>\n",
" <td>-0.082391</td>\n",
" <td>0.066171</td>\n",
" <td>-0.196735</td>\n",
" <td>0.196735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>normalized-losses</th>\n",
" <td>0.466264</td>\n",
" <td>1.000000</td>\n",
" <td>-0.056661</td>\n",
" <td>0.019424</td>\n",
" <td>0.086802</td>\n",
" <td>-0.373737</td>\n",
" <td>0.099404</td>\n",
" <td>0.112360</td>\n",
" <td>-0.029862</td>\n",
" <td>0.055563</td>\n",
" <td>-0.114713</td>\n",
" <td>0.217299</td>\n",
" <td>0.239543</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.181877</td>\n",
" <td>0.133999</td>\n",
" <td>0.238567</td>\n",
" <td>-0.101546</td>\n",
" <td>0.101546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>wheel-base</th>\n",
" <td>-0.535987</td>\n",
" <td>-0.056661</td>\n",
" <td>1.000000</td>\n",
" <td>0.876024</td>\n",
" <td>0.814507</td>\n",
" <td>0.590742</td>\n",
" <td>0.782097</td>\n",
" <td>0.572027</td>\n",
" <td>0.493244</td>\n",
" <td>0.158502</td>\n",
" <td>0.250313</td>\n",
" <td>0.371147</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.543304</td>\n",
" <td>0.584642</td>\n",
" <td>0.476153</td>\n",
" <td>0.307237</td>\n",
" <td>-0.307237</td>\n",
" </tr>\n",
" <tr>\n",
" <th>length</th>\n",
" <td>-0.365404</td>\n",
" <td>0.019424</td>\n",
" <td>0.876024</td>\n",
" <td>1.000000</td>\n",
" <td>0.857170</td>\n",
" <td>0.492063</td>\n",
" <td>0.880665</td>\n",
" <td>0.685025</td>\n",
" <td>0.608971</td>\n",
" <td>0.124139</td>\n",
" <td>0.159733</td>\n",
" <td>0.579821</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.698142</td>\n",
" <td>0.690628</td>\n",
" <td>0.657373</td>\n",
" <td>0.211187</td>\n",
" <td>-0.211187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>width</th>\n",
" <td>-0.242423</td>\n",
" <td>0.086802</td>\n",
" <td>0.814507</td>\n",
" <td>0.857170</td>\n",
" <td>1.000000</td>\n",
" <td>0.306002</td>\n",
" <td>0.866201</td>\n",
" <td>0.729436</td>\n",
" <td>0.544885</td>\n",
" <td>0.188829</td>\n",
" <td>0.189867</td>\n",
" <td>0.615077</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.680635</td>\n",
" <td>0.751265</td>\n",
" <td>0.673363</td>\n",
" <td>0.244356</td>\n",
" <td>-0.244356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>height</th>\n",
" <td>-0.550160</td>\n",
" <td>-0.373737</td>\n",
" <td>0.590742</td>\n",
" <td>0.492063</td>\n",
" <td>0.306002</td>\n",
" <td>1.000000</td>\n",
" <td>0.307581</td>\n",
" <td>0.074694</td>\n",
" <td>0.180449</td>\n",
" <td>-0.062704</td>\n",
" <td>0.259737</td>\n",
" <td>-0.087027</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.104812</td>\n",
" <td>0.135486</td>\n",
" <td>0.003811</td>\n",
" <td>0.281578</td>\n",
" <td>-0.281578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>curb-weight</th>\n",
" <td>-0.233118</td>\n",
" <td>0.099404</td>\n",
" <td>0.782097</td>\n",
" <td>0.880665</td>\n",
" <td>0.866201</td>\n",
" <td>0.307581</td>\n",
" <td>1.000000</td>\n",
" <td>0.849072</td>\n",
" <td>0.644060</td>\n",
" <td>0.167562</td>\n",
" <td>0.156433</td>\n",
" <td>0.757976</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.794889</td>\n",
" <td>0.834415</td>\n",
" <td>0.785353</td>\n",
" <td>0.221046</td>\n",
" <td>-0.221046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>engine-size</th>\n",
" <td>-0.110581</td>\n",
" <td>0.112360</td>\n",
" <td>0.572027</td>\n",
" <td>0.685025</td>\n",
" <td>0.729436</td>\n",
" <td>0.074694</td>\n",
" <td>0.849072</td>\n",
" <td>1.000000</td>\n",
" <td>0.572609</td>\n",
" <td>0.209523</td>\n",
" <td>0.028889</td>\n",
" <td>0.822676</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.679571</td>\n",
" <td>0.872335</td>\n",
" <td>0.745059</td>\n",
" <td>0.070779</td>\n",
" <td>-0.070779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bore</th>\n",
" <td>-0.140019</td>\n",
" <td>-0.029862</td>\n",
" <td>0.493244</td>\n",
" <td>0.608971</td>\n",
" <td>0.544885</td>\n",
" <td>0.180449</td>\n",
" <td>0.644060</td>\n",
" <td>0.572609</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055390</td>\n",
" <td>0.001263</td>\n",
" <td>0.566936</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.591309</td>\n",
" <td>0.543155</td>\n",
" <td>0.554610</td>\n",
" <td>0.054458</td>\n",
" <td>-0.054458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>stroke</th>\n",
" <td>-0.008245</td>\n",
" <td>0.055563</td>\n",
" <td>0.158502</td>\n",
" <td>0.124139</td>\n",
" <td>0.188829</td>\n",
" <td>-0.062704</td>\n",
" <td>0.167562</td>\n",
" <td>0.209523</td>\n",
" <td>-0.055390</td>\n",
" <td>1.000000</td>\n",
" <td>0.187923</td>\n",
" <td>0.098462</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.034696</td>\n",
" <td>-0.035201</td>\n",
" <td>0.082310</td>\n",
" <td>0.037300</td>\n",
" <td>0.241303</td>\n",
" <td>-0.241303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>compression-ratio</th>\n",
" <td>-0.182196</td>\n",
" <td>-0.114713</td>\n",
" <td>0.250313</td>\n",
" <td>0.159733</td>\n",
" <td>0.189867</td>\n",
" <td>0.259737</td>\n",
" <td>0.156433</td>\n",
" <td>0.028889</td>\n",
" <td>0.001263</td>\n",
" <td>0.187923</td>\n",
" <td>1.000000</td>\n",
" <td>-0.214514</td>\n",
" <td>-0.435780</td>\n",
" <td>0.331425</td>\n",
" <td>0.268465</td>\n",
" <td>0.071107</td>\n",
" <td>-0.299372</td>\n",
" <td>0.985231</td>\n",
" <td>-0.985231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>horsepower</th>\n",
" <td>0.075819</td>\n",
" <td>0.217299</td>\n",
" <td>0.371147</td>\n",
" <td>0.579821</td>\n",
" <td>0.615077</td>\n",
" <td>-0.087027</td>\n",
" <td>0.757976</td>\n",
" <td>0.822676</td>\n",
" <td>0.566936</td>\n",
" <td>0.098462</td>\n",
" <td>-0.214514</td>\n",
" <td>1.000000</td>\n",
" <td>0.107885</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.804575</td>\n",
" <td>0.809575</td>\n",
" <td>0.889488</td>\n",
" <td>-0.169053</td>\n",
" <td>0.169053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>peak-rpm</th>\n",
" <td>0.279740</td>\n",
" <td>0.239543</td>\n",
" <td>-0.360305</td>\n",
" <td>-0.285970</td>\n",
" <td>-0.245800</td>\n",
" <td>-0.309974</td>\n",
" <td>-0.279361</td>\n",
" <td>-0.256733</td>\n",
" <td>-0.267392</td>\n",
" <td>-0.065713</td>\n",
" <td>-0.435780</td>\n",
" <td>0.107885</td>\n",
" <td>1.000000</td>\n",
" <td>-0.115413</td>\n",
" <td>-0.058598</td>\n",
" <td>-0.101616</td>\n",
" <td>0.115830</td>\n",
" <td>-0.475812</td>\n",
" <td>0.475812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-mpg</th>\n",
" <td>-0.035527</td>\n",
" <td>-0.225016</td>\n",
" <td>-0.470606</td>\n",
" <td>-0.665192</td>\n",
" <td>-0.633531</td>\n",
" <td>-0.049800</td>\n",
" <td>-0.749543</td>\n",
" <td>-0.650546</td>\n",
" <td>-0.582027</td>\n",
" <td>-0.034696</td>\n",
" <td>0.331425</td>\n",
" <td>-0.822214</td>\n",
" <td>-0.115413</td>\n",
" <td>1.000000</td>\n",
" <td>0.972044</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.949713</td>\n",
" <td>0.265676</td>\n",
" <td>-0.265676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>highway-mpg</th>\n",
" <td>0.036233</td>\n",
" <td>-0.181877</td>\n",
" <td>-0.543304</td>\n",
" <td>-0.698142</td>\n",
" <td>-0.680635</td>\n",
" <td>-0.104812</td>\n",
" <td>-0.794889</td>\n",
" <td>-0.679571</td>\n",
" <td>-0.591309</td>\n",
" <td>-0.035201</td>\n",
" <td>0.268465</td>\n",
" <td>-0.804575</td>\n",
" <td>-0.058598</td>\n",
" <td>0.972044</td>\n",
" <td>1.000000</td>\n",
" <td>-0.704692</td>\n",
" <td>-0.930028</td>\n",
" <td>0.198690</td>\n",
" <td>-0.198690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>price</th>\n",
" <td>-0.082391</td>\n",
" <td>0.133999</td>\n",
" <td>0.584642</td>\n",
" <td>0.690628</td>\n",
" <td>0.751265</td>\n",
" <td>0.135486</td>\n",
" <td>0.834415</td>\n",
" <td>0.872335</td>\n",
" <td>0.543155</td>\n",
" <td>0.082310</td>\n",
" <td>0.071107</td>\n",
" <td>0.809575</td>\n",
" <td>-0.101616</td>\n",
" <td>-0.686571</td>\n",
" <td>-0.704692</td>\n",
" <td>1.000000</td>\n",
" <td>0.789898</td>\n",
" <td>0.110326</td>\n",
" <td>-0.110326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>city-L/100km</th>\n",
" <td>0.066171</td>\n",
" <td>0.238567</td>\n",
" <td>0.476153</td>\n",
" <td>0.657373</td>\n",
" <td>0.673363</td>\n",
" <td>0.003811</td>\n",
" <td>0.785353</td>\n",
" <td>0.745059</td>\n",
" <td>0.554610</td>\n",
" <td>0.037300</td>\n",
" <td>-0.299372</td>\n",
" <td>0.889488</td>\n",
" <td>0.115830</td>\n",
" <td>-0.949713</td>\n",
" <td>-0.930028</td>\n",
" <td>0.789898</td>\n",
" <td>1.000000</td>\n",
" <td>-0.241282</td>\n",
" <td>0.241282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>diesel</th>\n",
" <td>-0.196735</td>\n",
" <td>-0.101546</td>\n",
" <td>0.307237</td>\n",
" <td>0.211187</td>\n",
" <td>0.244356</td>\n",
" <td>0.281578</td>\n",
" <td>0.221046</td>\n",
" <td>0.070779</td>\n",
" <td>0.054458</td>\n",
" <td>0.241303</td>\n",
" <td>0.985231</td>\n",
" <td>-0.169053</td>\n",
" <td>-0.475812</td>\n",
" <td>0.265676</td>\n",
" <td>0.198690</td>\n",
" <td>0.110326</td>\n",
" <td>-0.241282</td>\n",
" <td>1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gas</th>\n",
" <td>0.196735</td>\n",
" <td>0.101546</td>\n",
" <td>-0.307237</td>\n",
" <td>-0.211187</td>\n",
" <td>-0.244356</td>\n",
" <td>-0.281578</td>\n",
" <td>-0.221046</td>\n",
" <td>-0.070779</td>\n",
" <td>-0.054458</td>\n",
" <td>-0.241303</td>\n",
" <td>-0.985231</td>\n",
" <td>0.169053</td>\n",
" <td>0.475812</td>\n",
" <td>-0.265676</td>\n",
" <td>-0.198690</td>\n",
" <td>-0.110326</td>\n",
" <td>0.241282</td>\n",
" <td>-1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" symboling normalized-losses wheel-base length \\\n",
"symboling 1.000000 0.466264 -0.535987 -0.365404 \n",
"normalized-losses 0.466264 1.000000 -0.056661 0.019424 \n",
"wheel-base -0.535987 -0.056661 1.000000 0.876024 \n",
"length -0.365404 0.019424 0.876024 1.000000 \n",
"width -0.242423 0.086802 0.814507 0.857170 \n",
"height -0.550160 -0.373737 0.590742 0.492063 \n",
"curb-weight -0.233118 0.099404 0.782097 0.880665 \n",
"engine-size -0.110581 0.112360 0.572027 0.685025 \n",
"bore -0.140019 -0.029862 0.493244 0.608971 \n",
"stroke -0.008245 0.055563 0.158502 0.124139 \n",
"compression-ratio -0.182196 -0.114713 0.250313 0.159733 \n",
"horsepower 0.075819 0.217299 0.371147 0.579821 \n",
"peak-rpm 0.279740 0.239543 -0.360305 -0.285970 \n",
"city-mpg -0.035527 -0.225016 -0.470606 -0.665192 \n",
"highway-mpg 0.036233 -0.181877 -0.543304 -0.698142 \n",
"price -0.082391 0.133999 0.584642 0.690628 \n",
"city-L/100km 0.066171 0.238567 0.476153 0.657373 \n",
"diesel -0.196735 -0.101546 0.307237 0.211187 \n",
"gas 0.196735 0.101546 -0.307237 -0.211187 \n",
"\n",
" width height curb-weight engine-size bore \\\n",
"symboling -0.242423 -0.550160 -0.233118 -0.110581 -0.140019 \n",
"normalized-losses 0.086802 -0.373737 0.099404 0.112360 -0.029862 \n",
"wheel-base 0.814507 0.590742 0.782097 0.572027 0.493244 \n",
"length 0.857170 0.492063 0.880665 0.685025 0.608971 \n",
"width 1.000000 0.306002 0.866201 0.729436 0.544885 \n",
"height 0.306002 1.000000 0.307581 0.074694 0.180449 \n",
"curb-weight 0.866201 0.307581 1.000000 0.849072 0.644060 \n",
"engine-size 0.729436 0.074694 0.849072 1.000000 0.572609 \n",
"bore 0.544885 0.180449 0.644060 0.572609 1.000000 \n",
"stroke 0.188829 -0.062704 0.167562 0.209523 -0.055390 \n",
"compression-ratio 0.189867 0.259737 0.156433 0.028889 0.001263 \n",
"horsepower 0.615077 -0.087027 0.757976 0.822676 0.566936 \n",
"peak-rpm -0.245800 -0.309974 -0.279361 -0.256733 -0.267392 \n",
"city-mpg -0.633531 -0.049800 -0.749543 -0.650546 -0.582027 \n",
"highway-mpg -0.680635 -0.104812 -0.794889 -0.679571 -0.591309 \n",
"price 0.751265 0.135486 0.834415 0.872335 0.543155 \n",
"city-L/100km 0.673363 0.003811 0.785353 0.745059 0.554610 \n",
"diesel 0.244356 0.281578 0.221046 0.070779 0.054458 \n",
"gas -0.244356 -0.281578 -0.221046 -0.070779 -0.054458 \n",
"\n",
" stroke compression-ratio horsepower peak-rpm \\\n",
"symboling -0.008245 -0.182196 0.075819 0.279740 \n",
"normalized-losses 0.055563 -0.114713 0.217299 0.239543 \n",
"wheel-base 0.158502 0.250313 0.371147 -0.360305 \n",
"length 0.124139 0.159733 0.579821 -0.285970 \n",
"width 0.188829 0.189867 0.615077 -0.245800 \n",
"height -0.062704 0.259737 -0.087027 -0.309974 \n",
"curb-weight 0.167562 0.156433 0.757976 -0.279361 \n",
"engine-size 0.209523 0.028889 0.822676 -0.256733 \n",
"bore -0.055390 0.001263 0.566936 -0.267392 \n",
"stroke 1.000000 0.187923 0.098462 -0.065713 \n",
"compression-ratio 0.187923 1.000000 -0.214514 -0.435780 \n",
"horsepower 0.098462 -0.214514 1.000000 0.107885 \n",
"peak-rpm -0.065713 -0.435780 0.107885 1.000000 \n",
"city-mpg -0.034696 0.331425 -0.822214 -0.115413 \n",
"highway-mpg -0.035201 0.268465 -0.804575 -0.058598 \n",
"price 0.082310 0.071107 0.809575 -0.101616 \n",
"city-L/100km 0.037300 -0.299372 0.889488 0.115830 \n",
"diesel 0.241303 0.985231 -0.169053 -0.475812 \n",
"gas -0.241303 -0.985231 0.169053 0.475812 \n",
"\n",
" city-mpg highway-mpg price city-L/100km diesel \\\n",
"symboling -0.035527 0.036233 -0.082391 0.066171 -0.196735 \n",
"normalized-losses -0.225016 -0.181877 0.133999 0.238567 -0.101546 \n",
"wheel-base -0.470606 -0.543304 0.584642 0.476153 0.307237 \n",
"length -0.665192 -0.698142 0.690628 0.657373 0.211187 \n",
"width -0.633531 -0.680635 0.751265 0.673363 0.244356 \n",
"height -0.049800 -0.104812 0.135486 0.003811 0.281578 \n",
"curb-weight -0.749543 -0.794889 0.834415 0.785353 0.221046 \n",
"engine-size -0.650546 -0.679571 0.872335 0.745059 0.070779 \n",
"bore -0.582027 -0.591309 0.543155 0.554610 0.054458 \n",
"stroke -0.034696 -0.035201 0.082310 0.037300 0.241303 \n",
"compression-ratio 0.331425 0.268465 0.071107 -0.299372 0.985231 \n",
"horsepower -0.822214 -0.804575 0.809575 0.889488 -0.169053 \n",
"peak-rpm -0.115413 -0.058598 -0.101616 0.115830 -0.475812 \n",
"city-mpg 1.000000 0.972044 -0.686571 -0.949713 0.265676 \n",
"highway-mpg 0.972044 1.000000 -0.704692 -0.930028 0.198690 \n",
"price -0.686571 -0.704692 1.000000 0.789898 0.110326 \n",
"city-L/100km -0.949713 -0.930028 0.789898 1.000000 -0.241282 \n",
"diesel 0.265676 0.198690 0.110326 -0.241282 1.000000 \n",
"gas -0.265676 -0.198690 -0.110326 0.241282 -1.000000 \n",
"\n",
" gas \n",
"symboling 0.196735 \n",
"normalized-losses 0.101546 \n",
"wheel-base -0.307237 \n",
"length -0.211187 \n",
"width -0.244356 \n",
"height -0.281578 \n",
"curb-weight -0.221046 \n",
"engine-size -0.070779 \n",
"bore -0.054458 \n",
"stroke -0.241303 \n",
"compression-ratio -0.985231 \n",
"horsepower 0.169053 \n",
"peak-rpm 0.475812 \n",
"city-mpg -0.265676 \n",
"highway-mpg -0.198690 \n",
"price -0.110326 \n",
"city-L/100km 0.241282 \n",
"diesel -1.000000 \n",
"gas 1.000000 "
]
},
"execution_count": 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. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<b>P-value</b>: \n",
"<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
"\n",
"By convention, when the\n",
"<ul>\n",
" <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
" <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
" <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain this information using \"stats\" module in the \"scipy\" library."
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Wheel-base vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's calculate the Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Horsepower vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8095745670036559 with a P-value of P = 6.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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Length vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'length' and 'price'."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Width vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Curb-weight vs Price"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Engine-size vs Price</h3>\n",
"\n",
"Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.8723351674455185 with a P-value of P = 9.265491622198389e-64\n"
]
}
],
"source": [
"pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
"print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h5>Conclusion:</h5>\n",
"\n",
"<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Bore vs Price</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's calculate the Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is 0.5431553832626602 with a P-value of P = 8.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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can relate the process for each 'City-mpg' and 'Highway-mpg':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>City-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"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>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Highway-mpg vs Price</h3>"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Pearson Correlation Coefficient is -0.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",
"Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"anova\">6. ANOVA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>ANOVA: Analysis of Variance</h3>\n",
"<p>The Analysis of Variance (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
"\n",
"<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
"\n",
"<p><b>P-value</b>: P-value tells how statistically significant is our calculated score value.</p>\n",
"\n",
"<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Drive Wheels</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
"\n",
"<p>Let's see if different types 'drive-wheels' impact 'price', we group the data.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's see if different types 'drive-wheels' impact 'price', we group the data."
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>drive-wheels</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>rwd</td>\n",
" <td>13495.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>rwd</td>\n",
" <td>16500.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>fwd</td>\n",
" <td>13950.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4wd</td>\n",
" <td>17450.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>fwd</td>\n",
" <td>15250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>4wd</td>\n",
" <td>7603.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" drive-wheels price\n",
"0 rwd 13495.0\n",
"1 rwd 16500.0\n",
"3 fwd 13950.0\n",
"4 4wd 17450.0\n",
"5 fwd 15250.0\n",
"136 4wd 7603.0"
]
},
"execution_count": 57,
"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": 58,
"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": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_gptest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can obtain the values of the method group using the method \"get_group\". "
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"4 17450.0\n",
"136 7603.0\n",
"140 9233.0\n",
"141 11259.0\n",
"144 8013.0\n",
"145 11694.0\n",
"150 7898.0\n",
"151 8778.0\n",
"Name: price, dtype: float64"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_test2.get_group('4wd')['price']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can use the function 'f_oneway' in the module 'stats' to obtain the <b>F-test score</b> and <b>P-value</b>."
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 67.95406500780399 , P = 3.3945443577151245e-23\n"
]
}
],
"source": [
"# ANOVA\n",
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Separately: fwd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 130.5533160959111 , P = 2.2355306355677845e-23\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Let's examine the other groups "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4wd and rwd"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 8.580681368924756 , P = 0.004411492211225333\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price']) \n",
" \n",
"print( \"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4>4wd and fwd</h4>"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ANOVA results: F= 0.665465750252303 , P = 0.41620116697845666\n"
]
}
],
"source": [
"f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price']) \n",
" \n",
"print(\"ANOVA results: F=\", f_val, \", P =\", p_val) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Conclusion: Important Variables</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
"\n",
"Continuous numerical variables:\n",
"<ul>\n",
" <li>Length</li>\n",
" <li>Width</li>\n",
" <li>Curb-weight</li>\n",
" <li>Engine-size</li>\n",
" <li>Horsepower</li>\n",
" <li>City-mpg</li>\n",
" <li>Highway-mpg</li>\n",
" <li>Wheel-base</li>\n",
" <li>Bore</li>\n",
"</ul>\n",
" \n",
"Categorical variables:\n",
"<ul>\n",
" <li>Drive-wheels</li>\n",
"</ul>\n",
"\n",
"<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this notebook</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
" <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Authors:</h3>\n",
"\n",
"This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
"\n",
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment