Ich würde gerne wissen, wie sich die Behandlung von Gewichten zwischen svyglm
und unterscheidetglm
Ich benutze das twang
Paket in R, um Neigungsbewertungen zu erstellen, die dann wie folgt als Gewichte verwendet werden (dieser Code stammt aus der twang
Dokumentation):
library(twang)
library(survey)
set.seed(1)
data(lalonde)
ps.lalonde <- ps(treat ~ age + educ + black + hispan + nodegree + married + re74 + re75,
data = lalonde)
lalonde$w <- get.weights(ps.lalonde, stop.method="es.mean")
design.ps <- svydesign(ids=~1, weights=~w, data=lalonde)
glm1 <- svyglm(re78 ~ treat, design=design.ps)
summary(glm1)
...
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6685.2 374.4 17.853 <2e-16 ***
treat -432.4 753.0 -0.574 0.566
Vergleichen Sie dies mit:
glm11 <- glm(re78 ~ treat, weights=w , data=lalonde)
summary(glm11)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6685.2 362.5 18.441 <2e-16 ***
treat -432.4 586.1 -0.738 0.461
Die Parameterschätzungen sind also gleich, aber die Standardfehler für die Behandlung sind sehr unterschiedlich.
Wie unterscheidet sich die Behandlung von Gewichten zwischen svyglm
und glm
?
surveyglm
)?survey
Berechnet die Standardfehler unter Berücksichtigung des Genauigkeitsverlusts, der durch Stichprobengewichte verursacht wird. Die Gewichteglm
passen einfach die Gewichtung der Fehler in der Schätzung der kleinsten Quadrate an, sodass die Standardfehler nicht korrekt sind. Hier ist eine Auswahl von Lumley (2010):Wenn Sie also keine Schichten in Ihrem Design haben, werden Sie wahrscheinlich feststellen, dass
sandwich
Sie mit identischen oder nahezu identischen SE-Schätzungen erhalten.In meinem Test berechneten sie nicht genau, wenn sie "HC0" oder "HC1" verwendeten, waren aber sehr nahe beieinander.
svyglm
meldet nun auch einen Z-Wert anstelle von T-Wert.quelle
coeftest
stammt aus dem R-Paketlmtest
.