Если вы посмотрите на код (простой тип 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()функции, а именно
Белсли Д.А., Кух Э. и Уэлш Р.Э. (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. Остаток Пирсона. в случае GLM, Std. остатки в противном случае (строка 172); в обоих случаях, однако, формула, используемая R (строки 175 и 178)
residuals(x, "pearson") / s * sqrt(1 - hii)
где hii- шляпная матрица, возвращаемая обобщенной функцией lm.influence(). Это обычная формула для стандартного остатки:
r sJ= гJ1 - ч^J-----√
где J здесь обозначает Jковариата интересов. См., Например, Agresti Категориальный анализ данных , §4.5.5.
Следующие строки коды R рисовать гладкие , расстояния Кука ( add.smooth=TRUEв plot.lm()по умолчанию, см getOption("add.smooth")) и контурные линии (не видимые в Вашем участке) для критических стандартизованных остатков (см cook.levels=вариант).