Como calcular manualmente o dfbetas

8

Estou tentando replicar o que a função dfbetas()faz R .

dfbeta() não é um problema ... Aqui está um conjunto de vetores:

x <- c(0.512, 0.166, -0.142, -0.614, 12.72)
y <- c(0.545, -0.02, -0.137, -0.751, 1.344)

Se eu encaixar dois modelos de regressão da seguinte maneira:

fit1 <- lm(y ~ x)
fit2 <- lm(y[-5] ~ x[-5])

Vejo que a eliminação do último ponto resulta em uma inclinação muito diferente (linha azul - mais íngreme):

insira a descrição da imagem aqui

Isso se reflete na mudança de inclinação:

fit1$coeff[2] - fit2$coeff[2]
-0.9754245

que coincide com o dfbeta(fit1) do quinto valor:

   (Intercept)            x
1  0.182291949 -0.011780253
2  0.020129324 -0.001482465
3 -0.006317008  0.000513419
4 -0.207849024  0.019182219
5 -0.032139356 -0.975424544

Agora, se eu quiser padronizar essa alteração na inclinação (obtenha dfbetas ) e recorrer a:

Williams, DA (1987) Diagnóstico de modelo linear generalizado usando o desvio e exclusões de caso único. Estatísticas Aplicadas 36, 181–191

que eu acho que pode ser uma das referências na documentação do R no pacote {stats} . A fórmula para dfbetas é:

dfbetumas(Eu,fEut)=(b^-b^-Eu)SEb^-Eu

Isso pode ser facilmente calculado em R:

(fit1$coef[2] - fit2$coef[2])/summary(fit2)$coef[4]

produzindo: -6.79799

A questão é por que não estou obtendo o quinto valor da inclinação em:

dfbetas(fit1)

  (Intercept)            x
1  1.06199661  -0.39123009
2  0.06925319  -0.02907481
3 -0.02165967   0.01003539
4 -1.24491242   0.65495527
5 -0.54223793 -93.81415653!

Qual é a equação correta para ir de dfbeta para dfbetas ?

Antoni Parellada
fonte

Respostas:

10

DFBETUMASk(Eu)

bk-bk(Eu)MSE(Eu)ckkkp .

bkkbk(Eu)EuMSE(Eu)Euckkk(XX)-1

DFBETUMASk(Eu)

numerator<-(fit1$coef[2] - fit2$coef[2])
denominator<-sqrt((summary(fit2)$sigma^2)*diag(summary(fit1)$cov.unscaled)[2])
DFBETAS<-numerator/denominator
DFBETAS
        x 
-93.81416 
Estatísticas
fonte
se não for óbvio, p é o número de parâmetros ou coeficientes de regressão. Desculpe pela notação desleixada. ;-)
StatsStudent