Quels types de résidus et de distance de Cook sont utilisés pour GLM?

11

Est-ce que quelqu'un sait quelle est la formule pour la distance de Cook? La formule de distance de Cook d'origine utilise des résidus étudiés, mais pourquoi R utilise std. Pearson résiduels lors du calcul du tracé de distance de Cook pour un GLM. Je sais que les résidus studentisés ne sont pas définis pour les GLM, mais à quoi ressemble la formule pour calculer la distance de Cook?

Supposons l'exemple suivant:

numberofdrugs <- rcauchy(84, 10)
healthvalue <- rpois(84,75)
test <- glm(healthvalue ~ numberofdrugs, family=poisson)
plot(test, which=5) 

Quelle est la formule pour la distance de Cook? En d'autres termes, quelle est la formule pour calculer la ligne pointillée rouge? Et d'où vient cette formule pour les résidus normalisés de Pearson?

distance du cuisinier

MarkDollar
la source

Réponses:

15

Si vous jetez un œil au code (type simple plot.lm, sans parenthèses, ou edit(plot.lm)à l'invite R), vous verrez que les distances de Cook sont définies ligne 44, avec la cooks.distance()fonction. Pour voir ce qu'il fait, tapez stats:::cooks.distance.glmà l'invite R. Là, vous voyez qu'il est défini comme

(res/(1 - hat))^2 * hat/(dispersion * p)

ressont les résidus de Pearson (tels que renvoyés par la influence()fonction), hatest la matrice chapeau , pest le nombre de paramètres dans le modèle, et dispersionest la dispersion considérée pour le modèle actuel (fixée à un pour la régression logistique et de Poisson, voir help(glm)). En somme, il est calculé en fonction de l'effet de levier des observations et de leurs résidus standardisés. (Comparez avec stats:::cooks.distance.lm.)

Pour une référence plus formelle, vous pouvez suivre les références dans la plot.lm()fonction, à savoir

Belsley, DA, Kuh, E. et Welsch, RE (1980). Diagnostics de régression . New York: Wiley.

De plus, concernant les informations supplémentaires affichées dans les graphiques, nous pouvons regarder plus loin et voir que R utilise

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)   #  

rspest étiqueté comme Std. Résident Pearson. en cas de GLM, Std. sinon, résidus (ligne 172); dans les deux cas, cependant, la formule utilisée par R est (lignes 175 et 178)

residuals(x, "pearson") / s * sqrt(1 - hii)

hiiest la matrice de chapeau renvoyée par la fonction générique lm.influence(). Il s'agit de la formule habituelle pour std. résidus:

rsj=rj1h^j

où désigne ici la ème covariable d'intérêt. Voir par exemple, Agresti Categorical Data Analysis , §4.5.5.jj

Les lignes suivantes du code R dessinent une plus lisse pour la distance de Cook ( add.smooth=TRUEà plot.lm()par défaut, voir getOption("add.smooth")) et les lignes de contour (non visibles sur votre parcelle) pour les résidus standardisés critiques (voir l' cook.levels=option).

chl
la source