Standardfehler von zufälligen Effekten in R (lme4) vs Stata (xtmixed)

19

Bitte beachten Sie diese Daten:

dt.m <- structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), occasion = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("g1", "g2"), class = "factor"),     g = c(12, 8, 22, 10, 10, 6, 8, 4, 14, 6, 2, 22, 12, 7, 24, 14, 8, 4, 5, 6, 14, 5, 5, 16)), .Names = c("id", "occasion", "g"), row.names = c(NA, -24L), class = "data.frame")

Wir passen ein einfaches Varianzkomponentenmodell an. In R haben wir:

require(lme4)
fit.vc <- lmer( g ~ (1|id), data=dt.m )

Dann produzieren wir eine Raupenparzelle:

rr1 <- ranef(fit.vc, postVar = TRUE)
dotplot(rr1, scales = list(x = list(relation = 'free')))[["id"]]

Caterpillar Grundstück von R

Jetzt passen wir das gleiche Modell in Stata. Schreiben Sie zuerst in das Stata-Format von R:

require(foreign)
write.dta(dt.m, "dt.m.dta")

In Stata

use "dt.m.dta"
xtmixed g || id:, reml variance

Die Ausgabe stimmt mit der R-Ausgabe überein (nicht gezeigt), und wir versuchen, die gleiche Raupenzeichnung zu erzeugen:

predict u_plus_e, residuals
predict u, reffects
gen e = u_plus_e – u
predict u_se, reses

egen tag = tag(id)
sort u
gen u_rank = sum(tag)

serrbar u u_se u_rank if tag==1, scale(1.96) yline(0)

Bildbeschreibung hier eingeben

Clearty Stata verwendet einen anderen Standardfehler als R. Tatsächlich verwendet Stata 2.13, während R 1.32 verwendet.

Soweit ich das beurteilen kann, kommt der 1.32 in R von

> sqrt(attr(ranef(fit.vc, postVar = TRUE)[[1]], "postVar")[1, , ])
 [1] 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977

obwohl ich nicht sagen kann, dass ich wirklich verstehe, was das tut. Kann das jemand erklären?

Und ich habe keine Ahnung, woher der 2.13 von Stata kommt, außer wenn ich die Schätzmethode auf maximale Wahrscheinlichkeit ändere:

xtmixed g || id:, ml variance

.... dann scheint es 1,32 als Standardfehler zu verwenden und die gleichen Ergebnisse wie R zu liefern ....

Bildbeschreibung hier eingeben

.... aber dann stimmt die Schätzung für die zufällige Effektvarianz nicht mehr mit R (35.04 vs 31.97) überein.

Es scheint also etwas mit ML vs REML zu tun zu haben: Wenn ich REML in beiden Systemen ausführe, stimmt die Modellausgabe überein, aber die in den Raupendiagrammen verwendeten Standardfehler stimmen nicht überein, wohingegen, wenn ich REML in R und ML in Stata ausführe stimmen die Raupenplots überein, die Modellschätzungen jedoch nicht.

Kann mir jemand erklären, was los ist?

Robert Long
quelle
Robert, hast du die Methoden und Formeln von Stata's [XT] xtmixedund / oder untersucht [XT] xtmixed postestimation? Sie beziehen sich auf Pinheiro und Bates (2000), so dass zumindest einige Teile der Mathematik identisch sein müssen.
StasK
@StasK Ich habe früher einen Verweis auf Pinheiro und Bates gesehen, aber aus irgendeinem Grund kann ich ihn jetzt nicht finden! Ich habe den Technischen Hinweis zur Vorhersage zufälliger Effekte gesehen. dass es die "Standardtheorie der maximalen Wahrscheinlichkeit" und das gegebene Ergebnis verwendet, dass die asymptotische Varianzmatrix für re die negative Inverse des Hessischen ist. aber um ehrlich zu sein hat mir das nicht wirklich geholfen! [Vielleicht aufgrund meines Unverständnisses]
Robert Long
Könnte dies irgendeine Art von Freiheitsgradkorrektur sein, die in Stata vs R anders durchgeführt wird? Ich denke nur laut nach.
StasK
@StasK Ich habe auch darüber nachgedacht, aber ich kam zu dem Schluss, dass der Unterschied - 1,32 vc 2,13 - zu groß war. Natürlich ist dies eine kleine Stichprobengröße - eine kleine Anzahl von Clustern und eine kleine Anzahl von Beobachtungen pro Cluster, daher wäre ich nicht überrascht zu erfahren, dass alles, was es verursacht, durch die Stichprobengröße verstärkt wird.
Robert Long

Antworten:

6

Nach dem [XT]Handbuch für Stata 11:

ββ

β

Aufgrund Ihrer Frage haben Sie REML in Stata und R und ML in Stata mit REML in R ausprobiert. Wenn Sie ML in beiden ausprobieren, sollten Sie in beiden die gleichen Ergebnisse erzielen.

Timbp
quelle