Как рассчитать R-квадрат в Python (с примером)


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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.