Skip to content

Instantly share code, notes, and snippets.

@aegorenkov
Created August 12, 2016 03:01
Show Gist options
  • Save aegorenkov/db74222feea8770169b6b5b1126f35ed to your computer and use it in GitHub Desktop.
Save aegorenkov/db74222feea8770169b6b5b1126f35ed to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# How can we get a negative R-squared?\n",
"\n",
"When we meet the underlying assumptions of Linear Regression the R-squared measure should be between 0 and 1. For the R-squared to be negative the variance of our residuals has to be greater than the variance of our outcome, y. This means we built a model that is worse than predicting the mean.\n",
"\n",
"Wikipedia gives an acknowledgement that this is possible. https://en.wikipedia.org/wiki/Coefficient_of_determination"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In Sci-kit Learn we calculate $R^2$ as \n",
"$$1 - \\frac{SS_{res}}{SS_{tot}}$$\n",
"\n",
"If $SS_{res}$, which corresponds to the variance of our predictions, is larger than $SS_{tot}$, which corresponds to the variance of our outcome, we can easily see that the $R^2$ will be negative.\n",
"\n",
"**When might this happen?**\n",
"- When we run a model without a intercept/constant we are not guaranteed to do better than the mean\n",
"- When we test the model on out of sample data\n",
" - If the variance of the data is larger than our initial sample, than something is wrong with out testing procedure\n",
" - If the variance of the residuals is higher, then our model does not generalize well.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Import libraries\n",
"import numpy as np\n",
"import pandas as pd\n",
"from matplotlib import pyplot as plt\n",
"import matplotlib\n",
"import seaborn as sns\n",
"\n",
"%matplotlib inline \n",
"# Larger plots by default\n",
"matplotlib.rcParams['figure.figsize'] = (8.0, 6.0)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Read in the mammal dataset, and drop missing data.\n",
"mammals = pd.read_csv('assets/dataset/msleep/msleep.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#Subset mammals to exclude missing rows and make a new copy of the DataFrame\n",
"mammals = mammals.dropna()\n",
"# Look at the counterpart of isnull() we can just get .notnull() "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"X = mammals[['bodywt']].apply(np.log10)\n",
"y = mammals['brainwt'].apply(np.log10)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from sklearn import linear_model\n",
"lmc = linear_model.LinearRegression(fit_intercept=True) # With constant\n",
"lm = linear_model.LinearRegression(fit_intercept=False) # Without constant\n",
"# Fit models\n",
"lmc.fit(X, y)\n",
"lm.fit(X, y)\n",
"# Extract predictions\n",
"lmc_pred = lmc.predict(X)\n",
"lm_pred = lm.predict(X)\n",
"# Extract residuals\n",
"lmc_residuals = y-lmc.predict(X)\n",
"lm_residuals = y-lm.predict(X)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fbc12a77150>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbc1786f550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Visualize predictions (in blue) from linear model with constant\n",
"plt.figure()\n",
"plt.scatter(X.bodywt, y, c='red')\n",
"plt.scatter(X.bodywt, lmc_pred)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-3.885780586188048e-16"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# The constant ensures that our residuals center around zero\n",
"lmc_residuals.mean() # -0.0000000000000003 close enough"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 7., 2., 3., 2., 2., 0., 3., 0., 0., 1.]),\n",
" array([-0.21075684, -0.13944945, -0.06814206, 0.00316533, 0.07447272,\n",
" 0.14578011, 0.2170875 , 0.28839489, 0.35970228, 0.43100967,\n",
" 0.50231706]),\n",
" <a list of 10 Patch objects>)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbc12ae1fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Here is the distribution of the residuals\n",
"plt.figure()\n",
"plt.hist(lmc_residuals)\n",
"# A little skewed, but correctly centered"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fbc1288d910>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbc128026d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Visualize predictions from linear model without constant\n",
"plt.figure()\n",
"plt.scatter(X.bodywt, y, c='red')\n",
"plt.scatter(X.bodywt, lm_pred)\n",
"# You can clearly see this model has issues since we forced it to go through the point (0, 0)\n",
"\n",
"# This is a pretty rare case where the best line of fit is parallel to the data ... \n",
"# If our data clustered around the zero mark our line of best fit would be more vertical"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-2.1941996282635188"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# We constantly overshoot our estimation of the brainwt so, our residuals tend to be negative\n",
"lm_residuals.mean()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 4., 5., 1., 3., 1., 0., 1., 4., 0., 1.]),\n",
" array([-2.45737517, -2.38667446, -2.31597374, -2.24527303, -2.17457232,\n",
" -2.1038716 , -2.03317089, -1.96247018, -1.89176946, -1.82106875,\n",
" -1.75036804]),\n",
" <a list of 10 Patch objects>)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbc12853650>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Here is the distribution of the residuals\n",
"plt.figure()\n",
"plt.hist(lm_residuals)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's plot our residuals against our outcome values. This is a common way of diagnosing issues in models and looking for patterns that we may have missed.\n",
"\n",
"On the y-axis we show our residuals, note that they SHOULD center around 0.\n",
"On the x-axis we have our outcome values."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fbc1265e050>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbc12729510>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"plt.scatter(y, lmc_residuals)\n",
"# This plot looks relatively good, we don't see any clear association left and our residuals seem to scatter around 0"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fbc1258bb90>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbc12675650>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"plt.scatter(y, lm_residuals)\n",
"# The version without a constant has a clear problem, we consistently underestimate the brainwt! \n",
"# No wonder we do worse than the mean\n",
"# There a bit of an upward linear trend left as well if you look closely"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [Root]",
"language": "python",
"name": "Python [Root]"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment