Як розрахувати скоригований 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-квадрат моделі за допомогою statsmodels:

 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *