So berechnen Sie dfbetas manuell

8

Ich versuche zu replizieren, was die Funktion dfbetas()in R tut .

dfbeta() ist kein Problem ... Hier ist eine Reihe von Vektoren:

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

Wenn ich zwei Regressionsmodelle wie folgt anpasse:

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

Ich sehe, dass das Eliminieren des letzten Punktes zu einer ganz anderen Steigung führt (blaue Linie - steiler):

Geben Sie hier die Bildbeschreibung ein

Dies spiegelt sich in der Änderung der Steigungen wider:

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

was mit dem dfbeta(fit1)für den fünften Wert übereinstimmt:

   (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

Wenn ich nun diese Änderung der Steigung standardisieren möchte ( dfbetas erhalten ) und auf Folgendes zurückgreifen möchte :

Williams, DA (1987) Verallgemeinerte lineare Modelldiagnose unter Verwendung der Abweichung und Einzelfalllöschungen. Applied Statistics 36, 181–191

was meiner Meinung nach eine der Referenzen in der R-Dokumentation unter dem Paket {stats} sein kann . Dort lautet die Formel für dfbetas :

dfbetas(i,fit)=(b^b^i)SEb^i

Dies könnte leicht in R berechnet werden:

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

Nachgeben: -6.79799

Die Frage ist, warum ich nicht den fünften Wert für die Steigung in bekomme:

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!

Was ist die richtige Gleichung, um von dfbeta zu dfbetas zu gelangen ?

Antoni Parellada
quelle

Antworten:

10

DFBETASk(i)

bkbk(i)MSE(i)ckkkp

bkkbk(i)iMSE(i)ickkk(XX)1

DFBETASk(i)

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 
StatsStudent
quelle
Wenn es nicht offensichtlich ist, ist p die Anzahl der Regressionsparameter oder -koeffizienten. Entschuldigung für die schlampige Notation. ;-)
StatsStudent