Як обчислити r-квадрат у python (з прикладом)


R-квадрат , часто записуваний як R2 , — це частка дисперсії у змінній відповіді , яку можна пояснити змінними предикторами в моделі лінійної регресії .

Значення R у квадраті може варіюватися від 0 до 1, де:

  • 0 означає, що змінна відповіді взагалі не може бути пояснена змінною предиктора.
  • 1 вказує на те, що змінна відповіді може бути ідеально пояснена безпомилково змінними предикторами.

У наступному прикладі показано, як обчислити R 2 для моделі регресії в Python.

Приклад: розрахувати R-квадрат у Python

Припустімо, що у нас є наступні pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6],
                   ' prep_exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]})

#view DataFrame
print (df)

    hours prep_exams score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90
11 3 3 75
12 6 2 96

Ми можемо використати функцію LinearRegression() sklearn , щоб підібрати регресійну модель, і функцію score() , щоб обчислити значення R-квадрат моделі:

 from sklearn.linear_model import LinearRegression

#initiate linear regression model
model = LinearRegression()

#define predictor and response variables
x, y = df[[" hours ", " prep_exams "]], df. score

#fit regression model
model. fit (x,y)

#calculate R-squared of regression model
r_squared = model. score (x,y)

#view R-squared value
print (r_squared)

0.7175541714105901

R-квадрат моделі виявляється рівним 0,7176 .

Це означає, що 71,76% варіації оцінок за іспит можна пояснити кількістю вивчених годин і кількістю складених практичних іспитів.

Якби ми хотіли, ми могли б порівняти це значення R-квадрат з іншою моделлю регресії з іншим набором змінних предиктора.

Загалом перевагу надають моделям із вищими значеннями R-квадрат, оскільки це означає, що набір змінних предикторів у моделі здатний добре пояснити варіацію змінної відповіді.

За темою: що таке хороше значення R-квадрат?

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в Python:

Як виконати просту лінійну регресію в Python
Як виконати множинну лінійну регресію в Python
Як розрахувати AIC регресійних моделей у Python

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

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