Vui lòng xem xét dữ liệu này:
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")
Chúng tôi phù hợp với một mô hình thành phần phương sai đơn giản. Trong R chúng ta có:
require(lme4)
fit.vc <- lmer( g ~ (1|id), data=dt.m )
Sau đó, chúng tôi sản xuất một âm mưu sâu bướm:
rr1 <- ranef(fit.vc, postVar = TRUE)
dotplot(rr1, scales = list(x = list(relation = 'free')))[["id"]]
Bây giờ chúng tôi phù hợp với mô hình tương tự trong Stata. Đầu tiên ghi vào định dạng Stata từ R:
require(foreign)
write.dta(dt.m, "dt.m.dta")
Ở Stata
use "dt.m.dta"
xtmixed g || id:, reml variance
Đầu ra đồng ý với đầu ra R (không hiển thị) và chúng tôi cố gắng tạo ra cùng một lô sâu bướm:
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 đang sử dụng một lỗi tiêu chuẩn khác với R. Trên thực tế, Stata đang sử dụng 2.13 trong khi R đang sử dụng 1.32.
Từ những gì tôi có thể nói, 1.32 trong R đến từ
> 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
mặc dù tôi không thể nói rằng tôi thực sự hiểu những gì nó đang làm. Ai đó có thể giải thích?
Và tôi không biết 2,13 từ Stata đến từ đâu, ngoại trừ điều đó, nếu tôi thay đổi phương pháp ước tính thành khả năng tối đa:
xtmixed g || id:, ml variance
.... sau đó nó dường như sử dụng 1.32 làm lỗi tiêu chuẩn và tạo ra kết quả tương tự như R ....
.... nhưng sau đó ước tính cho phương sai hiệu ứng ngẫu nhiên không còn đồng ý với R (35.04 so với 31.97).
Vì vậy, nó dường như có liên quan đến ML vs REML: Nếu tôi chạy REML trong cả hai hệ thống, đầu ra mô hình đồng ý nhưng các lỗi tiêu chuẩn được sử dụng trong các lô của sâu bướm không đồng ý, trong khi đó nếu tôi chạy REML ở R và ML ở Stata , các lô sâu bướm đồng ý, nhưng các ước tính mô hình thì không.
Bất cứ ai có thể giải thích những gì đang xảy ra?
[XT] xtmixed
và / hoặc[XT] xtmixed postestimation
chưa? Họ đề cập đến Pinheiro và Bates (2000), vì vậy ít nhất một số phần của toán học phải giống nhau.