Как вычислить 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *