{ "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_width
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal_lengthsepal_widthpetal_lengthpetal_width
sepal_length1.000000-0.1175700.8717540.817941
sepal_width-0.1175701.000000-0.428440-0.366126
petal_length0.871754-0.4284401.0000000.962865
petal_width0.817941-0.3661260.9628651.000000
\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", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
OLS Regression Results
Dep. Variable: sepal_width R-squared: 0.524
Model: OLS Adj. R-squared: 0.514
Method: Least Squares F-statistic: 53.58
Date: Fri, 29 Jul 2022 Prob (F-statistic): 2.06e-23
Time: 22:52:36 Log-Likelihood: -32.100
No. Observations: 150 AIC: 72.20
Df Residuals: 146 BIC: 84.24
Df Model: 3
Covariance Type: nonrobust
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [0.025 0.975]
Intercept 1.0431 0.271 3.855 0.000 0.508 1.578
sepal_length 0.6071 0.062 9.765 0.000 0.484 0.730
petal_width 0.5580 0.123 4.553 0.000 0.316 0.800
petal_length -0.5860 0.062 -9.431 0.000 -0.709 -0.463
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 0.738 Durbin-Watson: 1.889
Prob(Omnibus): 0.691 Jarque-Bera (JB): 0.426
Skew: -0.102 Prob(JB): 0.808
Kurtosis: 3.163 Cond. No. 82.1


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 }