Как рассчитать скорректированный r-квадрат в python
R-квадрат , часто обозначаемый R2 , представляет собой долю дисперсии переменной отклика , которую можно объяснить переменными-предикторами в модели линейной регрессии .
Значение R в квадрате может варьироваться от 0 до 1. Значение 0 указывает, что переменная ответа вообще не может быть объяснена переменной-предиктором, а значение 1 указывает, что переменная ответа может быть объяснена переменной-предиктором. прекрасно объяснено без ошибок предсказателем. переменные.
Скорректированный R-квадрат — это модифицированная версия R-квадрата, которая корректирует количество предикторов в регрессионной модели. Он рассчитывается следующим образом:
Скорректированный R 2 = 1 – [(1-R 2 )*(n-1)/(nk-1)]
Золото:
- R 2 : R 2 модели.
- n : Количество наблюдений
- k : Количество переменных-предсказателей
Поскольку R2 всегда увеличивается по мере добавления предикторов в модель, скорректированный R2 может служить метрикой, показывающей, насколько полезна модель, скорректированной на основе количества предикторов в модели .
В этом руководстве показаны два примера расчета скорректированного R2 для регрессионной модели на Python.
Связанный: Что такое хорошее значение R-квадрата?
Пример 1: вычисление скорректированного R-квадрата с помощью sklearn
Следующий код показывает, как подогнать модель множественной линейной регрессии и вычислить подобранный R-квадрат модели с помощью sklearn:
from sklearn. linear_model import LinearRegression import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv" #read in data data = pd. read_csv (url) #fit regression model model = LinearRegression () x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp model. fit (x,y) #display adjusted R-squared 1 - (1-model. score (X, y))*( len (y)-1)/( len (y)-X. shape [1]-1) 0.7787005290062521
Скорректированный R-квадрат модели оказывается равным 0,7787 .
Пример 2. Расчет скорректированного R-квадрата с помощью статистических моделей
Следующий код показывает, как подогнать модель множественной линейной регрессии и вычислить подобранный R-квадрат модели с помощью статистических моделей:
import statsmodels. api as sm import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv" #read in data data = pd. read_csv (url) #fit regression model x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp X = sm. add_constant (X) model = sm. OLS (y,x). fit () #display adjusted R-squared print ( model.rsquared_adj ) 0.7787005290062521
Скорректированный R-квадрат модели оказывается равным 0,7787 , что соответствует результату предыдущего примера.
Дополнительные ресурсы
Как выполнить простую линейную регрессию в Python
Как выполнить множественную линейную регрессию в Python
Как рассчитать AIC регрессионных моделей в Python