Как рассчитать скорректированный 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 : Количество переменных-предикторов

Поскольку R 2 всегда увеличивается по мере добавления в модель дополнительных предикторов, скорректированный R 2 может служить метрикой, которая говорит вам, насколько полезна модель, с поправкой на количество предикторов в модели .

В этом руководстве показаны два примера расчета скорректированного R 2 для регрессионной модели в 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/Statology/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/Statology/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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.