Якщо ви подивитеся на код (простий тип 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=
варіант).