{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Regression diagnostics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This example file shows how to use a few of the ``statsmodels`` regression diagnostic tests in a real-life context. You can learn about more tests and find out more information about the tests here on the [Regression Diagnostics page.](https://www.statsmodels.org/stable/diagnostic.html)\n", "\n", "Note that most of the tests described here only return a tuple of numbers, without any annotation. A full description of outputs is always included in the docstring and in the online ``statsmodels`` documentation. For presentation purposes, we use the ``zip(name,test)`` construct to pretty-print short descriptions in the examples below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Estimate a regression model" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:40.455232Z", "iopub.status.busy": "2026-07-29T11:36:40.455006Z", "iopub.status.idle": "2026-07-29T11:36:41.726870Z", "shell.execute_reply": "2026-07-29T11:36:41.724747Z" } }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:41.729812Z", "iopub.status.busy": "2026-07-29T11:36:41.729366Z", "iopub.status.idle": "2026-07-29T11:36:44.355053Z", "shell.execute_reply": "2026-07-29T11:36:44.354261Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: Lottery R-squared: 0.348\n", "Model: OLS Adj. R-squared: 0.333\n", "Method: Least Squares F-statistic: 22.20\n", "Date: Wed, 29 Jul 2026 Prob (F-statistic): 1.90e-08\n", "Time: 11:36:44 Log-Likelihood: -379.82\n", "No. Observations: 86 AIC: 765.6\n", "Df Residuals: 83 BIC: 773.0\n", "Df Model: 2 \n", "Covariance Type: nonrobust \n", "===================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "-----------------------------------------------------------------------------------\n", "Intercept 246.4341 35.233 6.995 0.000 176.358 316.510\n", "Literacy -0.4889 0.128 -3.832 0.000 -0.743 -0.235\n", "np.log(Pop1831) -31.3114 5.977 -5.239 0.000 -43.199 -19.424\n", "==============================================================================\n", "Omnibus: 3.713 Durbin-Watson: 2.019\n", "Prob(Omnibus): 0.156 Jarque-Bera (JB): 3.394\n", "Skew: -0.487 Prob(JB): 0.183\n", "Kurtosis: 3.003 Cond. No. 702.\n", "==============================================================================\n", "\n", "Notes:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "\n", "import statsmodels.formula.api as smf\n", "import statsmodels.stats.api as sms\n", "\n", "\n", "# Helper function\n", "def display(name, test):\n", " for lbl, val in zip(name, test, strict=True):\n", " out = val if isinstance(val, str) else float(val)\n", " print(f\"{lbl}: {out}\")\n", "\n", "\n", "# Load data\n", "url = \"https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/HistData/Guerry.csv\"\n", "dat = pd.read_csv(url)\n", "\n", "# Fit regression model (using the natural log of one of the regressors)\n", "results = smf.ols(\"Lottery ~ Literacy + np.log(Pop1831)\", data=dat).fit()\n", "\n", "# Inspect the results\n", "print(results.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Normality of the residuals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Omni test:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:44.358019Z", "iopub.status.busy": "2026-07-29T11:36:44.357806Z", "iopub.status.idle": "2026-07-29T11:36:44.366003Z", "shell.execute_reply": "2026-07-29T11:36:44.365263Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Chi^2: 3.7134378115972093\n", "Two-tail probability: 0.15618424580304607\n" ] } ], "source": [ "name = [\"Chi^2\", \"Two-tail probability\"]\n", "test = sms.omni_normtest(results.resid)\n", "display(name, test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Jarque-Bera test:\n", "\n", "Kurtosis below is the sample kurtosis, not the excess kurtosis. A sample from the normal distribution has kurtosis equal to 3." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:44.372138Z", "iopub.status.busy": "2026-07-29T11:36:44.371941Z", "iopub.status.idle": "2026-07-29T11:36:44.381506Z", "shell.execute_reply": "2026-07-29T11:36:44.380749Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Jarque-Bera test: 3.3936080248431884\n", "Chi^2 two-tail prob.: 0.18326831231663174\n", "Skew: -0.4865803431122353\n", "Kurtosis: 3.0034177578816363\n" ] } ], "source": [ "name = [\"Jarque-Bera test\", \"Chi^2 two-tail prob.\", \"Skew\", \"Kurtosis\"]\n", "test = sms.jarque_bera(results.resid)\n", "display(name, test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Autorelation\n", "\n", "Durbin-Watson test:\n", "\n", "DW statistic always ranges from 0 to 4. The closer to 2, the less autocorrelation is in the sample." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:44.383302Z", "iopub.status.busy": "2026-07-29T11:36:44.383109Z", "iopub.status.idle": "2026-07-29T11:36:44.389357Z", "shell.execute_reply": "2026-07-29T11:36:44.388583Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Durbin-Watson statistic: 2.019216822454508\n" ] } ], "source": [ "name = [\"Durbin-Watson statistic\"]\n", "test = [sms.durbin_watson(results.resid)]\n", "display(name, test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breusch–Godfrey test for serial correlation:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:44.391329Z", "iopub.status.busy": "2026-07-29T11:36:44.391126Z", "iopub.status.idle": "2026-07-29T11:36:44.400785Z", "shell.execute_reply": "2026-07-29T11:36:44.399981Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Breusch-Pagan Lagrange multiplier test statistic: 2.9930462802518827\n", "p-value: 0.9815872336580141\n", "f-value: 0.26322177681170056\n", "f p-value: 0.9871702599878219\n" ] } ], "source": [ "name = [\n", " \"Breusch-Pagan Lagrange multiplier test statistic\",\n", " \"p-value\",\n", " \"f-value\",\n", " \"f p-value\",\n", "]\n", "test = sms.acorr_breusch_godfrey(results)\n", "display(name, test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multicollinearity\n", "\n", "Condition number" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:44.404215Z", "iopub.status.busy": "2026-07-29T11:36:44.404018Z", "iopub.status.idle": "2026-07-29T11:36:44.410100Z", "shell.execute_reply": "2026-07-29T11:36:44.409266Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Condition Number: 702.1792145490066\n" ] } ], "source": [ "name = [\"Condition Number\"]\n", "test = [np.linalg.cond(results.model.exog)]\n", "display(name, test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Influence tests\n", "\n", "Once created, an object of class ``OLSInfluence`` holds attributes and methods that allow users to assess the influence of each observation. For example, we can compute and extract the first few rows of DFbetas by:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:44.413261Z", "iopub.status.busy": "2026-07-29T11:36:44.413044Z", "iopub.status.idle": "2026-07-29T11:36:44.494435Z", "shell.execute_reply": "2026-07-29T11:36:44.492954Z" } }, "outputs": [ { "data": { "text/plain": [ "array([[-0.00301154, 0.00290872, 0.00118179],\n", " [-0.06425662, 0.04043093, 0.06281609],\n", " [ 0.01554894, -0.03556038, -0.00905336],\n", " [ 0.17899858, 0.04098207, -0.18062352],\n", " [ 0.29679073, 0.21249207, -0.3213655 ]])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from statsmodels.stats.outliers_influence import OLSInfluence\n", "\n", "test_class = OLSInfluence(results)\n", "test_class.dfbetas[:5, :]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Explore other options by typing ``dir(influence_test)``\n", "\n", "Useful information on leverage can also be plotted:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:44.496780Z", "iopub.status.busy": "2026-07-29T11:36:44.496483Z", "iopub.status.idle": "2026-07-29T11:36:45.110827Z", "shell.execute_reply": "2026-07-29T11:36:45.109998Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from statsmodels.graphics.regressionplots import plot_leverage_resid2\n", "\n", "fig, ax = plt.subplots(figsize=(8, 6))\n", "fig = plot_leverage_resid2(results, ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Other plotting options can be found on the [Graphics page.](https://www.statsmodels.org/stable/graphics.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Heteroskedasticity tests\n", "\n", "Breush-Pagan test:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:45.114245Z", "iopub.status.busy": "2026-07-29T11:36:45.113799Z", "iopub.status.idle": "2026-07-29T11:36:45.131064Z", "shell.execute_reply": "2026-07-29T11:36:45.128354Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lagrange multiplier statistic: 4.893213374094015\n", "p-value: 0.08658690502351964\n", "f-value: 2.5037159462564675\n", "f p-value: 0.08794028782672769\n" ] } ], "source": [ "name = [\"Lagrange multiplier statistic\", \"p-value\", \"f-value\", \"f p-value\"]\n", "test = sms.het_breuschpagan(results.resid, results.model.exog)\n", "display(name, test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Goldfeld-Quandt test" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:45.135677Z", "iopub.status.busy": "2026-07-29T11:36:45.135251Z", "iopub.status.idle": "2026-07-29T11:36:45.153972Z", "shell.execute_reply": "2026-07-29T11:36:45.145342Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "F statistic: 1.1002422436378148\n", "p-value: 0.3820295068692514\n", "ordering: increasing\n" ] } ], "source": [ "name = [\"F statistic\", \"p-value\", \"ordering\"]\n", "test = sms.het_goldfeldquandt(results.resid, results.model.exog)\n", "display(name, test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linearity\n", "\n", "Harvey-Collier multiplier test for Null hypothesis that the linear specification is correct:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2026-07-29T11:36:45.158392Z", "iopub.status.busy": "2026-07-29T11:36:45.158179Z", "iopub.status.idle": "2026-07-29T11:36:45.179074Z", "shell.execute_reply": "2026-07-29T11:36:45.173668Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "t value: -1.0796490077759802\n", "p value: 0.28346392475692195\n" ] } ], "source": [ "name = [\"t value\", \"p value\"]\n", "test = sms.linear_harvey_collier(results)\n", "display(name, test)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.14.6" } }, "nbformat": 4, "nbformat_minor": 4 }