Якщо ви подивитеся на код (простий тип plot.lm, без дужок або edit(plot.lm)в запит R), ви побачите, що відстані Кука визначаються рядком 44, з cooks.distance()функцією. Щоб побачити, що це робить, введіть stats:::cooks.distance.glmу рядку R. Там ви бачите, що це визначено як
(res/(1 - hat))^2 * hat/(dispersion * p)
де resзнаходяться залишки Пірсона (повернуті influence()функцією), hatє матриця капелюхів , pчисельність параметрів у моделі та dispersionчи розглядається дисперсія для поточної моделі (фіксованої одиниці для логістичної та пуассонової регресії, див. help(glm)). Підсумовуючи, вона обчислюється як функція важелів спостережень та їх стандартизованих залишків. (Порівняйте з stats:::cooks.distance.lm.)
Для отримання більш офіційної довідки ви можете слідувати посиланнями у plot.lm()функції, а саме
Belsley, DA, Kuh, E. and 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позначено як Std. Залишок Пірсона. у випадку ГЛМ, Std. залишки в іншому випадку (рядок 172); в обох випадках, однак, формула, яка використовується R, є (рядки 175 та 178)
residuals(x, "pearson") / s * sqrt(1 - hii)
де hiiматриця капелюхів, повернена загальною функцією lm.influence(). Це звичайна формула для std. залишки:
rsj=rj1−h^j−−−−−√
де тут позначає ю коваріант інтересу. Див., Наприклад , категоричний аналіз даних Agresti, §4.5.5.jj
Наступні рядки коди R малювати гладкі , відстані Кука ( add.smooth=TRUEв plot.lm()за замовчуванням, см getOption("add.smooth")) і контурні лінії (невидимі в Вашій ділянці) для критичних стандартизованих залишків (див cook.levels=варіант).