Se dai un'occhiata al codice (tipo semplice plot.lm, senza parentesi o edit(plot.lm)al prompt R), vedrai che le distanze di Cook sono definite nella riga 44, con la cooks.distance()funzione. Per vedere cosa fa, digitare stats:::cooks.distance.glmal prompt R. Lì vedi che è definito come
(res/(1 - hat))^2 * hat/(dispersion * p)
dove ressono i residui di Pearson (come restituito dalla influence()funzione), hatè la matrice del cappello , pè il numero di parametri nel modello ed dispersionè la dispersione considerata per il modello corrente (fissata su uno per la regressione logistica e di Poisson, vedi help(glm)). In breve, viene calcolato in funzione della leva finanziaria delle osservazioni e dei loro residui standardizzati. (Confronta con stats:::cooks.distance.lm.)
Per un riferimento più formale è possibile seguire i riferimenti nella plot.lm()funzione, vale a dire
Belsley, DA, Kuh, E. e Welsch, RE (1980). Diagnostica di regressione . New York: Wiley.
Inoltre, riguardo alle informazioni aggiuntive visualizzate nella grafica, possiamo guardare oltre e vedere che 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) #
dove rspè etichettato come Std. Pearson resid. in caso di GLM, Std. residui altrimenti (linea 172); in entrambi i casi, tuttavia, la formula utilizzata da R è (righe 175 e 178)
residuals(x, "pearson") / s * sqrt(1 - hii)
dove si hiitrova la matrice cappello restituita dalla funzione generica lm.influence(). Questa è la solita formula per std. residui:
r sj= rj1 - h^j-----√
jj
Le righe successive del codice R disegnano più uniformemente la distanza di Cook ( add.smooth=TRUEin plot.lm()per impostazione predefinita, vedi getOption("add.smooth")) e le curve di livello (non visibili nel diagramma) per i residui standardizzati critici (vedi l' cook.levels=opzione).