Всякий раз, когда вы подбираете общую линейную модель (например, логистическую регрессию, регрессию Пуассона и т. д.), большинство статистических программ будут давать значения для нулевого отклонения и остаточного отклонения модели.
Нулевое отклонение говорит нам, насколько хорошо переменная отклика может быть предсказана моделью только с членом пересечения.
Остаточное отклонение говорит нам, насколько хорошо переменная отклика может быть предсказана моделью с 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
---
Signif. 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