{
"cells": [
{
"cell_type": "markdown",
"id": "48053402",
"metadata": {},
"source": [
"(ridge)=\n",
"\n",
"## Ridge Regression\n",
"\n",
"Ridge regression is a method of linear regression that helps prevent overfitting a \n",
"model in the case of high correlation between variables. It is a regularization \n",
"method - a method specifically designed to reduce overfitting a model.\n",
"\n",
"While OLS regression minimizes the Residual Sum of Squares, Ridge regression is the \n",
"Residual Sum Squares + Shrinkage Penalty: $λΣβj^2$\n",
"\n",
"A larger λ means a harsher penalty and smaller coefficients, but at a certain point, \n",
"the coefficients will become underestimated, greatly increasing bias in the model.\n",
"Following the variance-bias tradeoff, the λ chosen must be one that introduces some \n",
"bias while minimizing the variance and MSE.\n",
"\n",
"Basic Steps (for models with known multicollinearity):\n",
"1. Standardize each predictor variable\n",
"2. Fit model and choose λ (either through ridge trace plot or MSE of each λ)\n",
"3. Test model accuracy\n",
"\n",
"Biggest Drawback: no variable selection = final model includes all predictors\n",
"- makes coefficients very close to 0 if not significant\n",
"\n",
"Better predictions, but harder to interpret\n",
"- good for models where most/all variables significant\n",
"\n",
"### In Python\n",
"\n",
"The `Ridge` and `RidgeCV` () are availble through `sklearn.linear_model`\n",
"\n",
"* `RidgeCV`:\n",
"- Ridge with a cross-validation option"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "dfbeebaf",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" sepal_length \n",
" sepal_width \n",
" petal_length \n",
" petal_width \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 5.1 \n",
" 3.5 \n",
" 1.4 \n",
" 0.2 \n",
" \n",
" \n",
" 1 \n",
" 4.9 \n",
" 3.0 \n",
" 1.4 \n",
" 0.2 \n",
" \n",
" \n",
" 2 \n",
" 4.7 \n",
" 3.2 \n",
" 1.3 \n",
" 0.2 \n",
" \n",
" \n",
" 3 \n",
" 4.6 \n",
" 3.1 \n",
" 1.5 \n",
" 0.2 \n",
" \n",
" \n",
" 4 \n",
" 5.0 \n",
" 3.6 \n",
" 1.4 \n",
" 0.2 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" sepal_length sepal_width petal_length petal_width\n",
"0 5.1 3.5 1.4 0.2\n",
"1 4.9 3.0 1.4 0.2\n",
"2 4.7 3.2 1.3 0.2\n",
"3 4.6 3.1 1.5 0.2\n",
"4 5.0 3.6 1.4 0.2"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import seaborn as sns\n",
"\n",
"flowers = sns.load_dataset('iris')\n",
"flowers = flowers.drop(['species'], axis = 1)\n",
"flowers.head()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a19d906a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" sepal_length \n",
" sepal_width \n",
" petal_length \n",
" petal_width \n",
" \n",
" \n",
" \n",
" \n",
" sepal_length \n",
" 1.000000 \n",
" -0.117570 \n",
" 0.871754 \n",
" 0.817941 \n",
" \n",
" \n",
" sepal_width \n",
" -0.117570 \n",
" 1.000000 \n",
" -0.428440 \n",
" -0.366126 \n",
" \n",
" \n",
" petal_length \n",
" 0.871754 \n",
" -0.428440 \n",
" 1.000000 \n",
" 0.962865 \n",
" \n",
" \n",
" petal_width \n",
" 0.817941 \n",
" -0.366126 \n",
" 0.962865 \n",
" 1.000000 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" sepal_length sepal_width petal_length petal_width\n",
"sepal_length 1.000000 -0.117570 0.871754 0.817941\n",
"sepal_width -0.117570 1.000000 -0.428440 -0.366126\n",
"petal_length 0.871754 -0.428440 1.000000 0.962865\n",
"petal_width 0.817941 -0.366126 0.962865 1.000000"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"filenames": {
"image/png": "/home/runner/work/ids-s22/ids-s22/notes/_build/jupyter_execute/docs/ridge_2_1.png"
},
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"flowers_corr = flowers.corr()\n",
"sns.heatmap(flowers_corr, annot = True)\n",
"plt.show\n",
"\n",
"flowers_corr"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "0f986b61",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.linear_model import Ridge\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a8f67dc3",
"metadata": {},
"outputs": [],
"source": [
"X = flowers[['sepal_length', 'petal_width', 'petal_length']]\n",
"y = flowers['sepal_width']\n",
"\n",
"scaler = StandardScaler()\n",
"Xs = scaler.fit_transform(X)\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)\n",
"\n",
"model = Ridge()\n",
"\n",
"model.fit(X_train, y_train)\n",
"\n",
"y_pred = model.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "4caf26d7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.5310770203976505\n"
]
}
],
"source": [
"from sklearn.metrics import r2_score\n",
"\n",
"print(r2_score(y_test, y_pred))"
]
},
{
"cell_type": "markdown",
"id": "bcc1d664",
"metadata": {},
"source": [
"Then we run the model again using regular OLS regression."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "06e8fbcb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"OLS Regression Results \n",
"\n",
" Dep. Variable: sepal_width R-squared: 0.524 \n",
" \n",
"\n",
" Model: OLS Adj. R-squared: 0.514 \n",
" \n",
"\n",
" Method: Least Squares F-statistic: 53.58 \n",
" \n",
"\n",
" Date: Fri, 29 Jul 2022 Prob (F-statistic): 2.06e-23 \n",
" \n",
"\n",
" Time: 22:52:36 Log-Likelihood: -32.100 \n",
" \n",
"\n",
" No. Observations: 150 AIC: 72.20 \n",
" \n",
"\n",
" Df Residuals: 146 BIC: 84.24 \n",
" \n",
"\n",
" Df Model: 3 \n",
" \n",
"\n",
" Covariance Type: nonrobust \n",
" \n",
"
\n",
"\n",
"\n",
" coef std err t P>|t| [0.025 0.975] \n",
" \n",
"\n",
" Intercept 1.0431 0.271 3.855 0.000 0.508 1.578 \n",
" \n",
"\n",
" sepal_length 0.6071 0.062 9.765 0.000 0.484 0.730 \n",
" \n",
"\n",
" petal_width 0.5580 0.123 4.553 0.000 0.316 0.800 \n",
" \n",
"\n",
" petal_length -0.5860 0.062 -9.431 0.000 -0.709 -0.463 \n",
" \n",
"
\n",
"\n",
"\n",
" Omnibus: 0.738 Durbin-Watson: 1.889 \n",
" \n",
"\n",
" Prob(Omnibus): 0.691 Jarque-Bera (JB): 0.426 \n",
" \n",
"\n",
" Skew: -0.102 Prob(JB): 0.808 \n",
" \n",
"\n",
" Kurtosis: 3.163 Cond. No. 82.1 \n",
" \n",
"
Notes: [1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
],
"text/plain": [
"\n",
"\"\"\"\n",
" OLS Regression Results \n",
"==============================================================================\n",
"Dep. Variable: sepal_width R-squared: 0.524\n",
"Model: OLS Adj. R-squared: 0.514\n",
"Method: Least Squares F-statistic: 53.58\n",
"Date: Fri, 29 Jul 2022 Prob (F-statistic): 2.06e-23\n",
"Time: 22:52:36 Log-Likelihood: -32.100\n",
"No. Observations: 150 AIC: 72.20\n",
"Df Residuals: 146 BIC: 84.24\n",
"Df Model: 3 \n",
"Covariance Type: nonrobust \n",
"================================================================================\n",
" coef std err t P>|t| [0.025 0.975]\n",
"--------------------------------------------------------------------------------\n",
"Intercept 1.0431 0.271 3.855 0.000 0.508 1.578\n",
"sepal_length 0.6071 0.062 9.765 0.000 0.484 0.730\n",
"petal_width 0.5580 0.123 4.553 0.000 0.316 0.800\n",
"petal_length -0.5860 0.062 -9.431 0.000 -0.709 -0.463\n",
"==============================================================================\n",
"Omnibus: 0.738 Durbin-Watson: 1.889\n",
"Prob(Omnibus): 0.691 Jarque-Bera (JB): 0.426\n",
"Skew: -0.102 Prob(JB): 0.808\n",
"Kurtosis: 3.163 Cond. No. 82.1\n",
"==============================================================================\n",
"\n",
"Notes:\n",
"[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
"\"\"\""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from statsmodels.formula.api import ols\n",
"model2 = ols('sepal_width ~ sepal_length + petal_width + petal_length', data = flowers)\n",
"\n",
"fit2 = model2.fit()\n",
"fit2.summary()"
]
},
{
"cell_type": "markdown",
"id": "e0fd48cd",
"metadata": {},
"source": [
"The R-squared value is 0.524, so for this particular model, multicollinearity does not appear to have a significant effect."
]
},
{
"cell_type": "markdown",
"id": "705c1c24",
"metadata": {},
"source": [
"More on [Ridge](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html?highlight=ridge#sklearn.linear_model.Ridge) and [RidgeCV](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.RidgeCV.html?highlight=ridgecv#sklearn.linear_model.RidgeCV)"
]
}
],
"metadata": {
"jupytext": {
"text_representation": {
"extension": ".md",
"format_name": "myst",
"format_version": 0.13,
"jupytext_version": "1.11.5"
}
},
"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.9.13"
},
"source_map": [
12,
48,
57,
67,
73,
89,
93,
97,
103,
107
]
},
"nbformat": 4,
"nbformat_minor": 5
}