Que tipo de resíduos e a distância de Cook são usados ​​para GLM?

11

Alguém sabe qual é a fórmula para a distância de Cook? A fórmula de distância original de Cook usa resíduos estudados, mas por que R está usando std. Os resíduos de Pearson ao calcular o gráfico de distância de Cook para um GLM. Sei que resíduos estudantis não são definidos para GLMs, mas como é a fórmula para calcular a distância de Cook?

Suponha o seguinte exemplo:

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

Qual é a fórmula para a distância de Cook? Em outras palavras, qual é a fórmula para calcular a linha tracejada vermelha? E de onde vem essa fórmula para resíduos padronizados de Pearson?

distância do cozinheiro

MarkDollar
fonte

Respostas:

15

Se você der uma olhada no código (tipo simples plot.lm, sem parênteses ou edit(plot.lm)no prompt R), verá que as distâncias de Cook são definidas na linha 44, com a cooks.distance()função Para ver o que faz, digite stats:::cooks.distance.glmno prompt R. Lá você vê que é definido como

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

onde resestão os resíduos de Pearson (retornados pela influence()função), haté a matriz de chapéu , pé o número de parâmetros no modelo e dispersioné a dispersão considerada para o modelo atual (fixado em um para logística e regressão de Poisson, consulte help(glm)). Em suma, é calculado em função da alavancagem das observações e de seus resíduos padronizados. (Compare com stats:::cooks.distance.lm.)

Para uma referência mais formal, você pode seguir as referências na plot.lm()função, a saber

Belsley, DA, Kuh, E. e Welsch, RE (1980). Diagnóstico de regressão . Nova York: Wiley.

Além disso, sobre as informações adicionais exibidas nos gráficos, podemos olhar mais longe e 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)   #  

onde rspé rotulado como Padrão. Pearson res. no caso de um GLM, Std. resíduos caso contrário (linha 172); em ambos os casos, no entanto, a fórmula usada por R é (linhas 175 e 178)

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

onde hiié a matriz do chapéu retornada pela função genérica lm.influence(). Esta é a fórmula usual para std. resíduos:

rsj=rj1 1-h^j

jj

As próximas linhas de código R desenhar uma suave para a distância de Cook ( add.smooth=TRUEem plot.lm()por padrão, consulte getOption("add.smooth")) e linhas de contorno (não visível em seu lote) para resíduos padronizados críticos (veja a cook.levels=opção).

chl
fonte