GLM使用哪种残差和库克距离?


11

有人知道库克距离的公式是什么吗?最初的库克距离公式使用学生化残差,但是为什么R使用std。计算GLM的库克距离图时的皮尔逊残差。我知道没有为GLM定义学生化残差,但是用于计算Cook距离的公式如何?

假设以下示例:

numberofdrugs <- rcauchy(84, 10)
healthvalue <- rpois(84,75)
test <- glm(healthvalue ~ numberofdrugs, family=poisson)
plot(test, which=5) 

库克距离的公式是什么?换句话说,计算红色虚线的公式是什么?标准化皮尔逊残差的公式从何而来?

厨师的距离

Answers:


15

如果看一下代码(简单类型plot.lm,不带括号,或edit(plot.lm)在R提示符下),您会发现Cook的距离是通过cooks.distance()函数定义在第44行。要查看其功能,请stats:::cooks.distance.glm在R提示符下键入。在那里您看到它被定义为

(res/(1 - hat))^2 * hat/(dispersion * p)

其中res是Pearson残差(由influence()函数返回),hathat矩阵p是模型中的参数数量,dispersion是当前模型考虑的离散度(对于logistic和Poisson回归固定为1,请参见参考资料help(glm))。总之,它是根据观测结果及其标准化残差的函数来计算的。(与相比stats:::cooks.distance.lm。)

要获得更正式的参考,您可以遵循plot.lm()函数中的参考,即

Belsley,DA,Kuh,E.和Welsch,RE(1980)。回归诊断。纽约:威利。

此外,关于图形中显示的其他信息,我们可以进一步查看并看到R使用

plot(xx, rsp, ...                    # line 230
panel(xx, rsp, ...)                  # line 233
cl.h <- sqrt(crit * p * (1 - hh)/hh) # line 243
lines(hh, cl.h, lty = 2, col = 2)    #
lines(hh, -cl.h, lty = 2, col = 2)   #  

其中rsp被标记为标准。培生残渣。如果是GLM,则为标准。否则为残差(第172行);但是,在两种情况下,R使用的公式都是(第175和178行)

residuals(x, "pearson") / s * sqrt(1 - hii)

hii泛型函数返回的帽子矩阵在哪里lm.influence()?这是std的常用公式。残差:

[RsĴ=[RĴ1个-H^Ĵ

ĴĴ

的R代码里面下一行绘制Cook距离更平滑(add.smooth=TRUEplot.lm()默认情况下,见getOption("add.smooth"))和关键标准化残差轮廓线(在你的情节不可见)(见cook.levels=选项)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.