如果看一下代码(简单类型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()函数返回),hat是hat矩阵,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的常用公式。残差:
[R 小号Ĵ= rĴ1 - ^ h^Ĵ-----√
ĴĴ
的R代码里面下一行绘制Cook距离更平滑(add.smooth=TRUE在plot.lm()默认情况下,见getOption("add.smooth"))和关键标准化残差轮廓线(在你的情节不可见)(见cook.levels=选项)。