Wenn Sie sich den Code ansehen (einfacher Typ plot.lm, ohne Klammern oder edit(plot.lm)an der Eingabeaufforderung R), sehen Sie, dass Cooks Abstände in Zeile 44 mit der cooks.distance()Funktion definiert sind. Geben Sie stats:::cooks.distance.glman der Eingabeaufforderung R ein, um zu sehen, was es tut . Dort sehen Sie, dass es definiert ist als
(res/(1 - hat))^2 * hat/(dispersion * p)
Wo ressind Pearson-Residuen (wie von der influence()Funktion zurückgegeben), hatist die Hutmatrix , pist die Anzahl der Parameter im Modell und dispersionist die Dispersion, die für das aktuelle Modell berücksichtigt wird (für logistische und Poisson-Regression auf eins festgelegt, siehe help(glm)). Zusammenfassend wird es als Funktion der Hebelwirkung der Beobachtungen und ihrer standardisierten Residuen berechnet. (Vergleiche mit stats:::cooks.distance.lm.)
Für eine formellere Referenz können Sie Referenzen in der plot.lm()Funktion folgen , nämlich
Belsley, DA, Kuh, E. und Welsch, RE (1980). Regressionsdiagnose . New York: Wiley.
Darüber hinaus können wir über die zusätzlichen Informationen, die in den Grafiken angezeigt werden, weiter schauen und sehen, dass R verwendet
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) #
wo rspist als Std bezeichnet. Pearson resid. im Falle eines GLM, Std. ansonsten Residuen (Zeile 172); In beiden Fällen lautet die von R verwendete Formel jedoch (Zeilen 175 und 178).
residuals(x, "pearson") / s * sqrt(1 - hii)
wo hiiist der Hut Matrix durch die generische Funktion zurückgegeben lm.influence(). Dies ist die übliche Formel für std. Residuen:
r sj= rj1 - h^j- -- -- -- -- -√
jj
Die nächsten Zeilen von R - Code eine glattere für Cook-Distanz (ziehen add.smooth=TRUEin plot.lm()der Standardeinstellung sehen getOption("add.smooth")) und Konturlinien (nicht sichtbar in Ihrem Plot) für kritisches standardisiertes Residuen (siehe cook.levels=Option).