Как вычислить r-квадрат в python (с примером)
R-квадрат , часто обозначаемый R2 , представляет собой долю дисперсии переменной отклика , которую можно объяснить переменными-предикторами в модели линейной регрессии .
Значение R в квадрате может варьироваться от 0 до 1, где:
- 0 означает, что переменная ответа вообще не может быть объяснена переменной-предиктором.
- 1 указывает на то, что переменная отклика может быть прекрасно и без ошибок объяснена переменными-предикторами.
В следующем примере показано, как вычислить R 2 для регрессионной модели в Python.
Пример: вычислить R-квадрат в Python
Предположим, у нас есть следующий DataFrame pandas:
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
Мы можем использовать функцию LinearReгрессия() sklearn , чтобы подогнать модель регрессии, и функцию Оценка() , чтобы вычислить значение 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