Mô phỏng sau của phương sai với chức năng mcmcsamp


8

Tôi muốn có được các mô phỏng sau của các thành phần phương sai của mô hình lmer () với hàm mcmcsamp (). Làm thế nào để làm gì?

Chẳng hạn, bên dưới là kết quả của sự phù hợp lmer ():

> fit
Linear mixed model fit by REML
Formula: y ~ 1 + (1 | Part) + (1 | Operator) + (1 | Part:Operator)
   Data: dat
   AIC   BIC logLik deviance REMLdev
 97.55 103.6 -43.78    89.18   87.55
Random effects:
 Groups        Name        Variance Std.Dev.
 Part:Operator (Intercept) 2.25724  1.50241
 Part          (Intercept) 3.30398  1.81769
 Operator      (Intercept) 0.00000  0.00000
 Residual                  0.42305  0.65043
Number of obs: 25, groups: Part:Operator, 15; Part, 5; Operator, 3

Bây giờ tôi chạy mcmcsamp ():

> mm <- mcmcsamp(fit, n=15000) 

Tôi hy vọng rằng các mô phỏng của phương sai dư được lưu trữ trong nút "sigma" nhưng điều này dường như không phù hợp với kết quả của lmer ():

> sigmasims <- mm@sigma[1,-(1:5000)]  # discard first 5000 simulations (burn-in)
> summary(sigmasims)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
 0.8647  1.4960  1.7040  1.7460  1.9480  3.7920 

Tương tự, tôi dự đoán rằng các mô phỏng của các thành phần phương sai khác được lưu trữ trong nút "ST" nhưng tôi nhận được một quan sát tương tự.

Câu trả lời:


4

Câu trả lời ngắn gọn (ish) là

as.data.frame(mm,type="varcov")

nên trích xuất các chuỗi cho các hiệu ứng cố định và cho các hiệu ứng ngẫu nhiên và phương sai dư dưới dạng khung dữ liệu.

Ví dụ:

library(lme4.0) ## I am using the r-forge version
fm2 <- lmer(Reaction ~ Days + (1|Subject) + 
    (0+Days|Subject), sleepstudy)
mm <- mcmcsamp(fm2,1000)
dd <- as.data.frame(mm,type="varcov")
burnin <- 100  ## probably unnecessary
summary(dd[-(1:burnin),])

Thật không may, vectơ này không có được tên hữu ích cho các thành phần phương sai. Bạn có thể dùng

vnames <- c(names(getME(fm2,"theta")),"sigma^2")
names(dd)[3:5] <- vnames

để khắc phục điều này (thay vì mã hóa cứng các vị trí ở bước cuối cùng bạn có thể làm gì đó với -1:(length(fixef(fm2))))

Phần khác của câu trả lời này là tôi đang có một số nghi ngờ / câu hỏi nghiêm trọng về hành vi của các mcmcsampchuỗi, nhưng tôi sẽ tương ứng ngoài danh sách: một cuộc thảo luận một phần / sơ bộ (và có thể sai!) Về sự nhầm lẫn của tôi được đăng tại http: //www.math.mcmaster.ca/~bolker/R/misc/mcmcsampex.pdf .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.