Як обчислити 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