Si observa el código (tipo simple plot.lm
, sin paréntesis, o edit(plot.lm)
en el indicador R), verá que las distancias de Cook se definen en la línea 44, con la cooks.distance()
función. Para ver lo que hace, escriba stats:::cooks.distance.glm
en el indicador R. Ahí ves que se define como
(res/(1 - hat))^2 * hat/(dispersion * p)
donde res
están los residuales de Pearson (como los devuelve la influence()
función), hat
es la matriz del sombrero , p
es el número de parámetros en el modelo y dispersion
es la dispersión considerada para el modelo actual (fijada en uno para la regresión logística y de Poisson, ver help(glm)
). En suma, se calcula en función del apalancamiento de las observaciones y sus residuos estandarizados. (Comparar con stats:::cooks.distance.lm
)
Para una referencia más formal, puede seguir las referencias en la plot.lm()
función, a saber
Belsley, DA, Kuh, E. y Welsch, RE (1980). Diagnóstico de regresión . Nueva York: Wiley.
Además, sobre la información adicional que se muestra en los gráficos, podemos mirar más allá y ver que R usa
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) #
donde rsp
está etiquetado como Std. Pearson resid. en caso de un GLM, Std. residuos de lo contrario (línea 172); en ambos casos, sin embargo, la fórmula utilizada por R es (líneas 175 y 178)
residuals(x, "pearson") / s * sqrt(1 - hii)
donde hii
es la matriz del sombrero devuelta por la función genérica lm.influence()
. Esta es la fórmula habitual para el estándar. derechos residuales de autor:
r sj= rj1 - h^j-----√
jj
Las siguientes líneas de código R dibujan una distancia más suave para la distancia de Cook ( add.smooth=TRUE
en plot.lm()
forma predeterminada, vea getOption("add.smooth")
) y las líneas de contorno (no visibles en su diagrama) para los residuos críticos estandarizados (vea la cook.levels=
opción).