Lütfen bu verileri göz önünde bulundurun:
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")
Basit bir varyans bileşenleri modeline uyuyoruz. R'de:
require(lme4)
fit.vc <- lmer( g ~ (1|id), data=dt.m )
Sonra bir tırtıl grafiği üretiyoruz:
rr1 <- ranef(fit.vc, postVar = TRUE)
dotplot(rr1, scales = list(x = list(relation = 'free')))[["id"]]
Şimdi aynı modeli Stata'ya sığdırıyoruz. Önce R'den Stata formatına yaz:
require(foreign)
write.dta(dt.m, "dt.m.dta")
Stata bölgesinde
use "dt.m.dta"
xtmixed g || id:, reml variance
Çıktı, R çıktısıyla (hiçbiri gösterilmiyor) hemfikir ve aynı tırtıl grafiğini üretmeye çalışıyoruz:
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)
Clearty Stata, R için farklı bir standart hata kullanıyor. Aslında Stata 2.13 kullanırken R, 1.32 kullanıyor.
Söyleyebileceğim kadarıyla, R'deki 1.32 geliyor
> 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
bunun ne yaptığını gerçekten anladığımı söyleyemem. Birisi açıklayabilir mi?
Ve tahmin yöntemini maksimum olasılığa değiştirirsem, Stata'dan 2.13'ün nereden geldiğine dair hiçbir fikrim yok:
xtmixed g || id:, ml variance
.... sonra standart hata olarak 1.32 kullanmak ve R ile aynı sonuçları üretmek gibi görünüyor ....
.... ancak daha sonra rastgele etki varyansı için tahmin artık R ile uyumlu değildir (35.04'e karşı 31.97).
Bu yüzden ML vs REML ile ilgili bir şey var: Her iki sistemde REML çalıştırırsam, model çıktısı kabul eder, ancak tırtıl parsellerinde kullanılan standart hatalar kabul etmez, oysa REML'yi R ve ML'de Stata'da çalıştırırsam , tırtıl arazileri kabul eder, ancak model tahminleri kabul etmez.
Neler olup bittiğini açıklayan var mı?
[XT] xtmixed
[XT] xtmixed postestimation