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):
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 :
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 ?
quelle