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.glm
an 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 res
sind Pearson-Residuen (wie von der influence()
Funktion zurückgegeben), hat
ist die Hutmatrix , p
ist die Anzahl der Parameter im Modell und dispersion
ist 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 rsp
ist 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 hii
ist 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=TRUE
in plot.lm()
der Standardeinstellung sehen getOption("add.smooth")
) und Konturlinien (nicht sichtbar in Ihrem Plot) für kritisches standardisiertes Residuen (siehe cook.levels=
Option).