R -квадрат , часто обозначаемый как R2, представляет собой долю дисперсии переменной отклика , которая может быть объяснена переменными-предикторами в модели линейной регрессии .
Значение R-квадрата может варьироваться от 0 до 1, где:
- 0 указывает, что переменная отклика вообще не может быть объяснена предикторной переменной.
- 1 указывает, что переменная отклика может быть полностью объяснена без ошибок предикторными переменными.
В следующем примере показано, как рассчитать R 2 для регрессионной модели в Python.
Пример: вычисление R-квадрата в Python
Предположим, у нас есть следующие Pandas DataFrame:
import pandas as pd
#create DataFrame
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