Jeśli spojrzysz na kod (typ prosty plot.lm, bez nawiasów lub edit(plot.lm)na monit R), zobaczysz, że odległości Cooka są zdefiniowane w linii 44, z cooks.distance()funkcją. Aby zobaczyć, co robi, wpisz stats:::cooks.distance.glmw wierszu R. Tam widzisz, że jest to zdefiniowane jako
(res/(1 - hat))^2 * hat/(dispersion * p)
gdzie ressą reszty Pearsona (zwracane przez influence()funkcję), hatto macierz kapelusza , pliczba parametrów w modelu i dispersionrozproszenie brane pod uwagę dla bieżącego modelu (ustalone na jeden dla regresji logistycznej i regresji Poissona, patrz help(glm)). Podsumowując, oblicza się go jako funkcję dźwigni obserwacji i ich standaryzowanych reszt. (Porównaj z stats:::cooks.distance.lm.)
Aby uzyskać bardziej formalne odwołanie, możesz śledzić odniesienia w plot.lm()funkcji, a mianowicie
Belsley, DA, Kuh, E. and Welsch, RE (1980). Diagnostyka regresji . Nowy Jork: Wiley.
Co więcej, o dodatkowych informacjach wyświetlanych w grafice, możemy spojrzeć dalej i zobaczyć, że R. używa
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) #
gdzie rspjest oznaczone jako Std. Resztka Pearson. w przypadku GLM, Std. w pozostałych przypadkach (linia 172); jednak w obu przypadkach wzór stosowany przez R jest następujący (wiersze 175 i 178)
residuals(x, "pearson") / s * sqrt(1 - hii)
gdzie hiijest macierz kapelusza zwrócona przez funkcję ogólną lm.influence(). Jest to zwykła formuła dla standardu. pozostałości:
r sjot= rjot1 - godz^jot-----√
jotjot
Kolejne linie kodu R narysować gładsza dla odległości Cooka ( add.smooth=TRUEw plot.lm()domyślnie zobaczyć getOption("add.smooth")) i linie konturowe (niewidoczny na swojej działce) dla krytycznych standaryzowanych reszt (patrz cook.levels=opcja).