Как интерпретировать нулевое и остаточное отклонение (с примерами)


Всякий раз, когда вы подбираете общую линейную модель (например, логистическую регрессию, регрессию Пуассона и т. д.), большинство статистических программ выдают значения нулевого отклонения и остаточного отклонения модели.

Нулевое отклонение говорит нам, насколько хорошо переменная отклика может быть предсказана моделью, содержащей только исходный термин.

Остаточное отклонение говорит нам, насколько хорошо переменная ответа может быть предсказана моделью с p переменными-предикторами. Чем ниже значение, тем лучше модель способна предсказать значение переменной отклика.

Чтобы определить, является ли модель «полезной», мы можем рассчитать статистику Хи-квадрат следующим образом:

X 2 = нулевое отклонение – остаточное отклонение

с p степенями свободы.

Затем мы можем найти значение p, связанное с этой статистикой хи-квадрат. Чем ниже значение p, тем лучше модель соответствует набору данных по сравнению с моделью, содержащей только исходный термин.

В следующем примере показано, как интерпретировать нулевое и остаточное отклонение для модели логистической регрессии в R.

Пример: Интерпретация нулевого и остаточного отклонения

В этом примере мы будем использовать набор данных по умолчанию из пакета ISLR. Мы можем использовать следующий код для загрузки и отображения сводки набора данных:

 #load dataset
data <- ISLR::Default

#view summary of dataset
summary(data)

 default student balance income     
 No:9667 No:7056 Min. : 0.0 Min. : 772  
 Yes: 333 Yes:2944 1st Qu.: 481.7 1st Qu.:21340  
                       Median: 823.6 Median: 34553  
                       Mean: 835.4 Mean: 33517  
                       3rd Qu.:1166.3 3rd Qu.:43808  
                       Max. :2654.3 Max. :73554 

Этот набор данных содержит следующую информацию о 10 000 человек:

  • по умолчанию: указывает, совершил ли человек дефолт или нет.
  • студент: указывает, является ли человек студентом или нет.
  • баланс: средний баланс, который несет физическое лицо.
  • доход: Доход физического лица.

Мы будем использовать статус студента, банковский баланс и доход, чтобы построить модель логистической регрессии , которая предсказывает вероятность того, что данный человек объявит дефолт:

 #fit logistic regression model
model <- glm(default~balance+student+income, family=" binomial ", data=data)

#view model summary
summary(model)

Call:
glm(formula = default ~ balance + student + income, family = "binomial", 
    data = data)

Deviance Residuals: 
    Min 1Q Median 3Q Max  
-2.4691 -0.1418 -0.0557 -0.0203 3.7383  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -1.087e+01 4.923e-01 -22.080 < 2e-16 ***
balance 5.737e-03 2.319e-04 24.738 < 2e-16 ***
studentYes -6.468e-01 2.363e-01 -2.738 0.00619 ** 
income 3.033e-06 8.203e-06 0.370 0.71152    
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2920.6 on 9999 degrees of freedom
Residual deviance: 1571.5 on 9996 degrees of freedom
AIC: 1579.5

Number of Fisher Scoring iterations: 8

На выходе мы можем наблюдать следующие значения для нулевого и остаточного отклонения:

  • Нулевое отклонение : 2920,6 с df = 9999.
  • Остаточное отклонение : 1571,5 при df = 9996.

Мы можем использовать эти значения для расчета статистики X 2 модели:

  • X 2 = нулевое отклонение – остаточное отклонение
  • Х2 = 2910,6 – 1579,0
  • Х2 = 1331,6

Существует p = 3 степени свободы переменных-предикторов.

Мы можем использовать калькулятор преобразования хи-квадрат в значение P, чтобы определить, что значение X 2 , равное 1331,6 с 3 степенями свободы, имеет значение p, равное 0,000000.

Поскольку это значение p намного меньше 0,05, мы можем сделать вывод, что модель очень полезна для прогнозирования вероятности того, что данный человек объявит дефолт.

Дополнительные ресурсы

В следующих руководствах объясняется, как на практике выполнить логистическую регрессию в R и Python:

Как выполнить логистическую регрессию в R
Как выполнить логистическую регрессию в Python

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

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