-
-
Save SAbhaya/6e6c26d99417f28f4497aedeb988bfc0 to your computer and use it in GitHub Desktop.
Visualization of R-Squared Metric
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"import seaborn as sns\n", | |
"from sklearn import linear_model\n", | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"iris = sns.load_dataset('iris')\n", | |
"X = iris[['petal_length']]\n", | |
"y = iris['petal_width']\n", | |
"x_ar = np.array(X).ravel()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## R Squared - A Visual Example\n", | |
"#### Proportion of Variance Explained by a Model\n", | |
"\n", | |
"$ R^2 = 1 - \\frac{\\text{Sum of Square Residuals (Errors)}}{\\text{Total Sum of Squares}} $" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"First lets examine the denominator, \"total sum of squares\", a measure of variability of the \"dependent\", \"y\" or \"target\" variable, in this case 'petal width'. \n", | |
"\n", | |
"We will start by simply plotting the data with the dependent variable on the Y axis. The variability in petal width measures its deviation from the mean. So we will include a line at the mean petal width in purple." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'Petal Width')" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(8,8))\n", | |
"plt.scatter(X,y)\n", | |
"line_x = np.array([0.0, float(X.max())])\n", | |
"line_y_mean = np.array([y.mean(), y.mean()])\n", | |
"plt.plot(line_x,line_y_mean, c='purple')\n", | |
"plt.xlabel(\"Petal Length\")\n", | |
"plt.ylabel(\"Petal Width\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Total Sum of Squares\n", | |
"\n", | |
"To get the total sum of squares we will need to calculate the distances between each point and the mean value of petal width. These distances are marked in orange below. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'Petal Width')" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(8,8))\n", | |
"plt.scatter(X,y)\n", | |
"plt.xlim(0)\n", | |
"plt.ylim(0)\n", | |
"plt.plot(line_x,line_y_mean, c='purple')\n", | |
"\n", | |
"for i in range(len(X)):\n", | |
" plt.plot([x_ar[i], x_ar[i]], [y[i], y.mean()], c='orange', marker='_', ms=10)\n", | |
" \n", | |
"plt.xlabel(\"Petal Length\")\n", | |
"plt.ylabel(\"Petal Width\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'Deviation')" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"deviations = y - y.mean()\n", | |
"plt.figure(figsize=(8,8))\n", | |
"for i in range(len(X)):\n", | |
" plt.plot([x_ar[i], x_ar[i]], [0, deviations[i]], c='orange', marker='_', ms=10)\n", | |
"plt.ylim(-1.5, 1.5)\n", | |
"plt.title(\"Deviation from the Mean\")\n", | |
"plt.ylabel(\"Deviation\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We will square all of these deviations so that they all contribute positively instead of cancelling eachother out." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'Squared Deviations')" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"square_deviations = deviations**2\n", | |
"plt.figure(figsize=(8,8))\n", | |
"for i in range(len(X)):\n", | |
" plt.plot([x_ar[i], x_ar[i]], [0, square_deviations[i]], c='orange', marker='_', ms=10)\n", | |
"plt.ylim(-1.5, 1.5)\n", | |
"plt.title(\"Squared Deviations\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we can calculate the Total Sum of Squares by adding up all of the squared deviations. This is a measure of the total variance in the dependent variable, petal width." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Total Sum of Squares: 86.56993333333335\n" | |
] | |
} | |
], | |
"source": [ | |
"total_SS = square_deviations.sum()\n", | |
"print(f\"Total Sum of Squares: {total_SS}\")\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Fitting a Model\n", | |
"\n", | |
"Now we will go about fitting a basic linear regression model that predicts the petal width based on one independent variable 'petal length'." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"reg = linear_model.LinearRegression()\n", | |
"reg.fit(X, y)\n", | |
"c1 = reg.coef_[0]\n", | |
"c2 = reg.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can visualize the model as a simple straight blue line through the data representing the model prediction for petal width corresponding to each value of petal length, using the coefficients of the fitted model." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'Petal Width')" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(8,8))\n", | |
"plt.scatter(X,y)\n", | |
"plt.xlim(0)\n", | |
"plt.ylim(0)\n", | |
"line_x = np.array([0.0, float(X.max())])\n", | |
"line_y = line_x * c1 + c2\n", | |
"plt.plot(line_x,line_y)\n", | |
"plt.xlabel(\"Petal Length\")\n", | |
"plt.ylabel(\"Petal Width\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now to evaluate the model we will use the residuals or \"errors\", the distances between the real values of petal width and the model's predicted values of petal width. These distances are variability in petal width that is not explained by our model. We will display these errors in red." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'Petal Width')" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"preds = reg.predict(X)\n", | |
"plt.figure(figsize=(8,8))\n", | |
"plt.scatter(X,y)\n", | |
"plt.xlim(0)\n", | |
"plt.ylim(0)\n", | |
"line_x = np.array([0.0, float(X.max())])\n", | |
"line_y = line_x * c1 + c2\n", | |
"plt.plot(line_x,line_y)\n", | |
"\n", | |
"for i in range(len(X)):\n", | |
" plt.plot([x_ar[i], x_ar[i]], [y[i], preds[i]], c='r', marker='_', ms=10)\n", | |
" \n", | |
"plt.xlabel(\"Petal Length\")\n", | |
"plt.ylabel(\"Petal Width\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"These errors are significantly smaller than the deviance bars above since the model predictions (line) are much closer to the data than the simple mean petal width." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'Error')" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"errors = y - preds\n", | |
"plt.figure(figsize=(8,8))\n", | |
"for i in range(len(X)):\n", | |
" plt.plot([x_ar[i], x_ar[i]], [0, errors[i]], c='r', marker='_', ms=10)\n", | |
"plt.ylim(-1.5, 1.5)\n", | |
"plt.title(\"Model Errors\")\n", | |
"plt.ylabel(\"Error\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We need to square the errors so that they all contribute positively." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'Model Squared Errors')" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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8vTu/vfLbgtw7PSwAWAACwnsqnpxVd1UVe9bZ/25VfVPNbmt49VV9dxF1AsAO8VChsSr6uszOf/zku5+6Brrz03y4939xLkrA4AdaCE97O5+S5KbF7EtAOBQm3kO+5FV9e6q+vOqOqrvmgLATrdZdzp7Vya3/bu1qp6Q5E8y+SrFIarqwkzu75sTTzzxEV/+5V++SU0EgOW66qqrPt7dp661bmFf66rJ/wf+s7XOYa9R9toke7r744crt2fPnt67d72vvwLA9lJVV3X3nrXWbcqQeFXdb3oXoUzvynSXTG7aAABswEKGxKvq5UnOTXJKVe3P5F/q3TVJuvu3Mvm3gv+lqm5P8pkk5/tvOACwcQsJ7O6+4AjrfyPJbyyiLgDYidzpDAAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAACGwAGILABYAALCeyqenFV3VRV71tnfVXVr1fVvqp6T1U9fBH1AsBOsage9u8medxh1j8+yYOn04VJfnNB9QLAjrCQwO7utyS5+TBFzkvykp54e5KTq+q0RdQNADvBZp3DPj3JdTPz+6fLDlFVF1bV3qrae+DAgU1pHABsdZsV2LXGsl6rYHdf2t17unvPqaeeepybBQBj2KzA3p/kATPzZyS5YZPqBoDhbVZgX57ke6dXi39dkn/q7hs3qW4AGN4Ji9hIVb08yblJTqmq/UkuSnLXJOnu30pyRZInJNmX5P8l+b5F1AsAO8VCAru7LzjC+k7yQ4uoCwB2Inc6A4ABCGwAGIDABoABCGwAGIDABoABCGwAGIDABoABCGwAGIDABoABCGwAGIDABoABCGwAGIDABoABCGwAGIDABoABCGwAGIDABoABCGwA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vYc7YJ19Tx6u53rllYu/UGqeA4SVD/6jCfmNfr1p9d/2iiO1caMHAddee+Q2HG0b1/v8OVIPezZAV+/LRYwebNWvum0Di+hhn51kX3df092fS/KKJOetKnNeksumj1+V5NFVs++qQaw33DY71HY4s+VWnr/iYx+78/HqN/YJ/kfLtrfoXu+i7g610d7rRg8czzln4wefG/3g/+xn13/OyrY30v5j6WFvpsMN9x+uh736v2cd7wA9HgcBTKx3NdpGpyTfleSFM/NPSfIbq8q8L8kZM/MfSXLKOtu7MMneJHvPPPPMY77SbsNX840+7dp18OvevXtjz9u9+9j37XZxPK74POmkjW1z9RWp55yz/PeSybSZ0+xn0CI+r1f/nS5im6uvKl/yVeI1WX/squrJSR7b3U+fzj8lydnd/cyZMu+fltk/nf/ItMwnDrftPXv29N55r9QEgEFU1VXdvWetdYsYEt+f5AEz82ckuWG9MlV1QpKTkty8gLoBYEdYRGC/M8mDq+qBVXW3JOcnuXxVmcuTPHX6+LuSvKnn7doDwA4y99VM3X17VT0jyeuS7Ery4u5+f1U9L5Ox+MuTvCjJ71XVvkx61ufPWy8A7CQLufy4u69IcsWqZc+defzZJE9eRF0AsBPtnDudAcDABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AABDYADEBgA8AA5grsqvqiqnpDVf399Od91in3+aq6ejpdPk+dALATzdvDfnaSv+juByf5i+n8Wj7T3V87nZ40Z50AsOPMG9jnJbls+viyJN825/YAgDXMG9j37e4bk2T684vXKfcFVbW3qt5eVUIdAI7SCUcqUFVvTHK/NVY95yjqObO7b6iqByV5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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"errors_sq = errors**2\n", | |
"plt.figure(figsize=(8,8))\n", | |
"for i in range(len(X)):\n", | |
" plt.plot([x_ar[i], x_ar[i]], [0, errors_sq[i]], c='r', marker='_', ms=10)\n", | |
"plt.ylim(-1.5, 1.5)\n", | |
"plt.title(\"Model Squared Errors\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we can calculate the residual unexplained variance after fitting the model by taking the sum of the squared error/residual terms:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Sum of Squared errors (unexaplained variance): 6.310096379248977\n" | |
] | |
} | |
], | |
"source": [ | |
"residual_SS = errors_sq.sum()\n", | |
"print(f\"Sum of Squared errors (unexaplained variance): {residual_SS}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we can calculate the \"Explained Variance\" as: \n", | |
"\n", | |
"$\\text{Explained Variance} = \\text{Total Variance } - \\text{Unexplained Variance} $" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Explained Variance = 86.56993333333335 - 6.310096379248977 \n", | |
" = 80.25983695408438\n" | |
] | |
} | |
], | |
"source": [ | |
"print(f\"Explained Variance = {total_SS} - {residual_SS} \")\n", | |
"explained_SS = total_SS - residual_SS\n", | |
"print(f\" = {explained_SS}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we have everything we need to calculate the R Squared for the simple model. Coming back to the formula:\n", | |
"\n", | |
"$ R^2 = 1 - \\frac{\\text{Sum of Square Residuals (Errors)}}{\\text{Total Sum of Squares}} $\n", | |
"\n", | |
"Or alternatively:\n", | |
"\n", | |
"$ R^2 = \\frac{\\text{Total Sum of Squares } - \\text{ Sum of Square Residuals (Errors)}}{\\text{Total Sum of Squares}} $\n", | |
"\n", | |
"We can see that this is:\n", | |
"\n", | |
"$ R^2 = \\frac{\\text{Explained Variance}}{\\text{Total Sum of Squares}} $\n", | |
"\n", | |
"Which we can easily calculate.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"R Squared : 0.9271098389904928\n" | |
] | |
} | |
], | |
"source": [ | |
"print(\"R Squared :\", explained_SS/total_SS)\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"ie. The linear model using a single predictor (petal length) explains 92.7% of the variance in petal width. \n", | |
"\n", | |
"We can visualize this by presenting the total variance and the residual variance side by side, and consider the difference \"Explained by the model\".\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'Sum of Squares')" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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AAAiymmnnbZ38+bNB4PW7373u/Z9+/btk5iYmHzzzTd3kqSioqKoIUOG9Ozdu3dyr169Up5++unWkjRo0KDey5YtayJJ//3f/902ISGh78CBA3t/9NFHBx8nOHLkyIRnnnmmdcV0RW9iYWFh1Omnn56YnJzcJzExMfm5555rVVOdmzdvbtSmTZtAXFyck6SOHTsGEhISSnft2hUVCASsffv2AUmKi4tzaWlpNT7R5seC4AgAACJGIBDQkiVLml944YW7JOmVV15p8eWXX8auXr163bp163JXrVrVZOHChc1eeeWVFh06dCj94osvcjds2LB2xIgRRZXb+frrrxtNnz6900cffbR++fLleXl5eXG1bbtJkyblb7311pe5ubnr3n///by77rqrS3l5ebXLX3jhhUVbtmw5ISEhoe/ll1/e7a233momSe3bty8777zzdnXr1i11+PDhJz355JNtysrKfuBvJjIQHAEAQIMrKSmJSkpKSm7duvUpu3btirnwwguLJGnRokUtli1b1iI5OTk5JSUl+Z///Gfs+vXrYwcMGFC8fPnyFhMmTOi8aNGiZm3btj0kmS1btqzpaaedtrtTp06B2NhYN2LEiILaaigvL7fJkyd3SUxMTD777LMTt2/ffsK3335b7Wl9LVu2LM/Jycl97LHHvo6Pjw+MHTu2x6xZs9pKwSHzRYsW5WVkZOydNWtWh0suuSThB/6KIgLBEQAANLiKcxw3bdq05sCBAzZ9+vQTJck5p8mTJ29dv3597vr163O/+eabnJtvvnlHampqycqVK3P79etXPHXq1M5TpkzpeHibZlXftzkmJsZV9ACWl5ertLTUJOlPf/pTm++//z5mzZo169avX5/btm3b0uLi4hqzUkxMjC644ILdM2fO3PLQQw998+qrrx4cAh80aFDxPffcs/29997LW7RoUeua2vmxIDgCAICI0bZt27JZs2Z98/jjj7cvKSmxYcOGFT377LPtCgsLoyRp48aNjTZv3hyzadOmRs2bNy+//vrrCyZPnvzdqlWrmlRuZ/DgwXs/+eST5tu2bYsuKSmxv//97weDW/fu3Q9kZWU1kaR58+a1CgQCJkmFhYXR7dq1K23cuLF74403mm/ZsqXGC1qys7Mbr1mzpnHF9Oeffx7XpUuXA4WFhVFvvvlm84r5n376aVynTp0O1M1vqGFxVTUAAIgoZ555ZnGfPn2K58yZ03rixIkFa9eujR04cGCSFDwPcd68eRvXr1/f+M477+wSFRWlmJgY98QTTxxyNXX37t1Lb7/99i2nnXZan/j4+NLU1NR9ZWVlJkk33nhj/gUXXNCzX79+fQYPHlwUFxdXLknjx48vGDZsWM++ffv2SUlJ2XfSSSftr6nOoqKi6EmTJnUrKiqKjo6OdgkJCSVz5879ury8XA899FD7G264oXtsbGx5kyZNyv/85z9vDNfvqz6Zc5H/uLKMjAyXmZlZdw3yyEH8lPxIHzmYl5fHk2Pwk1HX32czy3LOZdRZg7XIzs7elJaWtqO+tofIlp2d3S4tLS2hqs8YqgYAAIAXgiMAAAC8EBwBAADgheAIAAAALwRHAAAAeCE4AgAAwAvBEQAANLjo6Oj0pKSk5IrXXXfd1eFY2hk5cmTCM888U+NTWiZPntzp1VdfbV7TMr4GDRrUe9myZYfcfPyWW27pNHHixM6V53300UdxJ598csrRtF2XddYVbgAOAAAOsX79+hMOHDhQZzc9PuGEE1xSUlKNT06peORgXW2zJn/84x+3hLP9sWPHfv+rX/0q8fHHH99cMe+5555rM3LkyFqfl10hEAiEvc5jQXAEAACHOHDggKWmppbUVXurV69uXPtSR/r++++j09PT+7z22msb0tLSSoYPH37SkCFDdt966607mjRp0n/MmDH5H374YfOWLVuWvfzyy1916tQpUHn9KVOmdFy0aFGrkpKSqIyMjD3z5s37OioqSiNHjky44IILCq+66qqdnTt37nfJJZd8v3jx4paBQMBeeOGFr/r377+/qKgo6uqrr+62bt26uLKyMps6deqWyy+/fNeePXts1KhRJ+Xl5cX26tVr//79+48I2GlpaSUtWrQIvPfee02HDh26V5Jef/31NgsXLsyTpDFjxnTLzs5uun///qjhw4fvnDlz5hZJ6ty5c7/Ro0fvWLJkSYvf/OY32xcvXtyyos7q9mXQoEG909PT93zwwQctdu/eHf3UU09tOv/88/cEAgFdf/31XZYuXdpCksaOHbtj6tSp25cvX97klltu6bpv376o1q1bB+bNm7epe/fupb7/JgxVAwCABldSUhJVeaj66aefbt22bduymTNnfjN27NiTZs+e3XrXrl0xt9566w5JKi4ujhowYMC+3NzcdWeeeebuO+64o9Phbd52223bc3Jy1m3YsGFtcXFx1Pz581tWte127doFcnNz140bNy5/+vTp7SXprrvu6nj22WcX5eTkrFu+fPkXd999d5eioqKohx9++MS4uLjyvLy83N///vdbc3Nzm1bV5siRIwvmzZvXRpLefffdpq1atQr069evRJJmzJixOScnZ9369evXfvjhh80//fTTuIr1YmNjy7Oysr649tprd/ruSyAQsDVr1qx74IEH/jVt2rROkvTII4/Ef/31143Xrl2bm5eXlzt+/PjvS0pKbNKkSd1ee+21f65du3bd2LFjd0yZMuWQIfXa0OMIAAAaXHVD1f/xH/9R9OKLL7b+7W9/2z0rK2ttxfyoqCiNHz++QJLGjRv3/YgRI3oevu7ChQubz5gxo8P+/fujdu3aFZOcnFwsqfDw5S677LKdkjRo0KB9r7/+emtJWrp0aYvFixe3mjVrVgdJKikpsS+//PKEDz74oNmkSZO2S9Kpp55anJiYuK+q/Rk7dmzBWWed1aesrOxf8+bNa3PRRRcdHKaeO3dum7/+9a/tAoGA5efnN8rOzo499dRTiyXpiiuu2FlVezXty8UXX7xTks4444y9t9122wmS9N5777W47rrr8hs1aiRJat++fdmKFStiN2zYEDd06NBESSovL1d8fLx3b6NEcAQAABGsrKxMeXl5sY0bNy7fsWNHTI8ePaoMOmaHjhjv27fPbr311u6ffvppbs+ePUtvueWWTvv3769ypDU2NtZJUkxMjAsEAiZJzjktWLDgy7S0tCOG7A/fVlV69uxZ2rlz55K33367+dtvv936ww8/XCcFzx997LHH2mdlZa2Lj48vGzlyZELlupo3b15+eFu17Uul+lVWVnawfjNzldtxzlnPnj2LV61atb7WHagGQ9UAACBiTZs2rX1iYuL+uXPnfnX11VcnlJSUmBTsLau4evqvf/1r20GDBu2uvN6+ffuiJKlDhw6BwsLCqDfeeKPGK60Pd/bZZxc98sgj7cvLgznuww8/jJOks846a89zzz3XRpJWrFgRm5eX16S6Ni6++OKC2267rWu3bt1KKgLvzp07o+Pi4srbtGlT9q9//Stm6dKlVQ6f/9B9Offcc4ueeuqp+NLSYM7+7rvvolNTU/cXFBTEvPPOO02lYC9qZmZmbG1tVUaPIwAAaHAV5zhWTA8d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PipJysrK0s9//nOlp6frl7/8pbZu3XpM/zYAwsdnqHqNma2u4rXGzLifI4CfvOLi4kOGql944QW1bNlSjz32mK688krNnz9fO3fu1DXXXCMpGOwGDBiglStX6uc//7nuvffeI9q84YYbtGLFCuXk5Ki4uFhvvvlmldtu166dVq5cqQkTJujhhx+WJN13330aOnSoVqxYoSVLlui2227T3r179eSTT6pJkyZavXq1pk6dqqysrCrbHD16tObPny9J+uSTT9S2bVv16tXrYNuZmZlavXq13n//fa1e/X//mY+NjdUHH3xwMGT67EsgENBnn32mP/7xjwd/D7Nnz9bGjRv1+eefa/Xq1RozZoxKS0t14403asGCBcrKytK4ceM0depUr38fAPXHZ6h6Yejns6GfYyTtkzQ3LBUBQISpbqj6vPPO00svvaSJEycqO/v/Tv2OiorSpZdeKkm6/PLLNWLEiCPWXbJkiR588EHt27dPBQUFSklJ0fDhw49YrmLd9PR0vfLKK5Kkf/zjH3r99dcPBsn9+/frm2++0bJlyzRp0iRJUmpqqlJTU6vcn1GjRumMM87QI488ovnz52v06NEHP3vxxRc1e/ZsBQIBbd26Vbm5uQfbqdino9mXyvVv2rRJkvTOO+/ouuuuU0xM8H9Bbdq0UU5OjnJycnTeeedJCvZKduzYscrtAWg4PsHxTOfcmZWm7zCzD51znOAC4LhWXl6udevWKS4uTgUFBerSpUuVy5nZIdP79+/X9ddfr8zMTHXt2lV/+MMftH///irXbdy4saTgBTqBQECS5JzTyy+/rN69e9e6rap07dpVCQkJev/99/Xyyy/r448/liRt3LhRDz/8sFasWKHWrVvryiuvPKSupk2bHtFWbftSXf2H1+mcU0pKysFaAEQmn9vxNDWzsyomzOwMSUf+1wMAjjMzZ85Unz599Pzzz2vcuHEqLS2VFAyUFef//e1vf9NZZ511yHoVwapdu3bas2dPrVdaH+6Xv/ylHn300YPnEn7++eeSpMGDB2vevHmSpJycnEOGmQ83evRo3XzzzerRo8fBwFtUVKSmTZuqZcuW+u6777Rw4cJq1/8h+/KLX/xCTz311MEgWVBQoN69eys/P/9gcCwtLdXatWtrbQtA/fLpcbxa0l/MrGVoepekceErCQAiS8U5jhXOP/98jRs3TnPm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\n", | |
"text/plain": [ | |
"<Figure size 576x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(8,8))\n", | |
"p1 = plt.bar([0,1],[total_SS, residual_SS], color = ['orange', 'r'])\n", | |
"p2 = plt.bar([1], [total_SS], alpha = 0.15, fill=False)\n", | |
"plt.xticks([0,1], labels=['Total Variance', 'Residual Variance'])\n", | |
"plt.legend(handles=[p1[0], p1[1], p2[0]], labels=['Total SS', 'Residual SS', 'Explained Variance'], bbox_to_anchor=(1.05, 1), loc='upper left')\n", | |
"plt.text(1, (total_SS + residual_SS)/2, \"Explained Variance\", ha='center')\n", | |
"plt.ylabel(\"Sum of Squares\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"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.7.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment