Errore standard di effetti casuali in R (lme4) vs Stata (xtmixed)


19

Si prega di considerare questi dati:

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")

Adattiamo un semplice modello di componenti di varianza. In R abbiamo:

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

Quindi produciamo una trama di bruco:

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

Trama Caterpillar da R

Ora inseriamo lo stesso modello in Stata. Prima scrivi in ​​formato Stata da R:

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

In Stata

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

L'output concorda con l'output R (nessuno dei due mostrato), e proviamo a produrre lo stesso diagramma bruco:

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)

inserisci qui la descrizione dell'immagine

Clearty Stata sta usando un errore standard diverso da R. In realtà Stata sta usando 2.13 mentre R sta usando 1.32.

Da quello che posso dire, l'1.32 in R viene da

> 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

anche se non posso dire di aver veramente capito cosa sta facendo. Qualcuno può spiegare?

E non ho idea da dove provenga il 2.13 di Stata, tranne quello, se cambio il metodo di stima con la massima probabilità:

xtmixed g || id:, ml variance

.... quindi sembra utilizzare 1,32 come errore standard e produrre gli stessi risultati di R ....

inserisci qui la descrizione dell'immagine

.... ma poi la stima della varianza dell'effetto casuale non concorda più con R (35,04 vs 31,97).

Quindi sembra avere qualcosa a che fare con ML vs REML: se eseguo REML in entrambi i sistemi, l'output del modello è d'accordo, ma gli errori standard utilizzati nei grafici bruco non sono d'accordo, mentre se eseguo REML in R e ML in Stata , i grafici del bruco concordano, ma le stime del modello no.

Qualcuno può spiegare cosa sta succedendo?


Robert, hai esaminato i metodi e le formule di Stata [XT] xtmixede / o [XT] xtmixed postestimation? Si riferiscono a Pinheiro e Bates (2000), quindi almeno alcune parti della matematica devono essere le stesse.
StasK

@StasK Ho visto prima un riferimento a Pinheiro e Bates, ma per qualche motivo non riesco a trovarlo ora! Ho visto la nota tecnica relativa alla previsione di effetti casuali; che utilizza la "teoria standard della massima verosimiglianza" e il dato risultato che la matrice di varianza asintotica per re è l'inverso negativo dell'Assia. ma ad essere sincero, questo non mi ha davvero aiutato! [forse a causa della mia mancanza di comprensione]
Robert Long,

Questo potrebbe essere un qualche tipo di correzione della libertà in modo diverso in Stata vs R? Sto solo pensando ad alta voce.
StasK

@StasK Ci ho pensato anche io, ma ho concluso che la differenza - 1,32 v 2,13 - era troppo grande. Naturalmente, si tratta di una piccola dimensione del campione: un piccolo numero di cluster e un piccolo numero di osservazioni per cluster, quindi non sarei sorpreso di apprendere che qualunque cosa lo stia causando, viene amplificato dalla dimensione del campione.
Robert Long,

Risposte:


6

Secondo il [XT]manuale di Stata 11:

ββ

β

Dalla tua domanda, hai provato REML sia in Stata che in R, e ML in Stata con REML in R. Se provi ML in entrambi, dovresti ottenere gli stessi risultati in entrambi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.