逻辑回归:为什么我们不根据拟合值绘制残差?

机器算法验证 r 自习 广义线性模型 物流 诊断
2022-04-01 18:30:39

我希望有人可以为我解释与glm(). 我不明白建议的诊断图。似乎更有信息量的情节是针对拟合值进行绘图,但也许我不明白一些事情。这是代码:

result <- glm(survive~age, data=donner, family=binomial)
# Why is this plotted against the respondent index?
plot(residuals(result,type="pearson"), main="pearson residual plot")

重现上述示例的数据:

> dput(donner)
structure(list(age = c(23L, 40L, 40L, 30L, 28L, 40L, 45L, 62L, 
65L, 45L, 25L, 28L, 28L, 23L, 22L, 23L, 28L, 15L, 47L, 57L, 20L, 
18L, 25L, 60L, 25L, 20L, 32L, 32L, 24L, 30L, 15L, 50L, 21L, 25L, 
46L, 32L, 30L, 25L, 25L, 25L, 30L, 35L, 23L, 24L, 25L), sex = c(1L, 
0L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 
0L, 0L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 
1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L), survive = c(0L, 
1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 1L, 
1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 
0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L)), .Names = c("age", 
"sex", "survive"), class = "data.frame", row.names = c(NA, -45L
))
1个回答

使用这个诊断图,我们只是查看残差,看看是否有什么东西突然出现在我们面前——一群异常值,或者,就像这些数据一样,将残差清晰地分成几组。这只是您可以而且应该做的几个诊断图之一。我们可能会怀疑这两组对应于性别,然后绘制残差与性别:

plot(residuals(result,type="pearson") ~ donner$sex,
     main="pearson residual vs sex plot")

这会告诉我们我们想知道的一切;绘制残差与解释变量(好吧,在这种情况下是一个被遗漏的变量)可以告诉我们模型可能存在的非线性和其他问题。

我怀疑你是作为使用诊断图作为工具来帮助指示潜在模型改进的练习的一部分,而不是作为诊断图的一种必要条件——尽管它本身绝对是一个有用的图。