Dự đoán về các mô hình hiệu ứng hỗn hợp: phải làm gì với các hiệu ứng ngẫu nhiên?


13

Hãy xem xét bộ dữ liệu giả thuyết này:

set.seed(12345)

num.subjects <- 10

dose <- rep(c(1,10,50,100), num.subjects)
subject <- rep(1:num.subjects, each=4)
group <- rep(1:2, each=num.subjects/2*4)

response <- dose*dose/10 * group + rnorm(length(dose), 50, 30)

df <- data.frame(dose=dose, response=response, 
                 subject=subject, group=group)

chúng ta có thể sử dụng lmeđể mô hình hóa phản ứng với mô hình hiệu ứng ngẫu nhiên:

require(nlme)
model <- lme(response ~ dose + group + dose*group, 
             random = ~1|subject, df)

Tôi muốn sử dụng predictkết quả của mô hình này để lấy, ví dụ, phản ứng của một chủ đề chung của nhóm 1 với liều 10:

pred <- predict(model, newdata=list(dose=10, group=1))

Tuy nhiên, với mã này tôi nhận được lỗi sau:

Error in predict.lme(model, newdata = list(dose = 10, group = 1)) : 
cannot evaluate groups for desired levels on 'newdata'

Để thoát khỏi nó, tôi cần phải làm, ví dụ

pred <- predict(model, newdata=list(dose=10, group=1, subject=5))

Tuy nhiên, điều này thực sự không có ý nghĩa nhiều đối với tôi ... chủ đề là yếu tố gây phiền toái trong mô hình của tôi, vậy nó có ý nghĩa gì khi đưa nó vào predict? Nếu tôi đặt một số chủ đề không có trong tập dữ liệu, predicttrả về NA.

Đây có phải là hành vi mong muốn predicttrong tình huống này? Tôi có thiếu một cái gì đó thực sự rõ ràng?


modelXβ+Zγy~N(Xβ+Zγ,σ2Tôi)Z
usεr11852 nói Phục hồi Monic

@ user11852: chỉ để làm rõ, tôi đang nghĩ về điều này như là một mô hình sẽ được sử dụng, ví dụ, trong trường hợp các biện pháp lặp đi lặp lại cho cùng một chủ đề.
nico

Z

2
@ user11852: Tôi không tìm kiếm ước tính cho cùng một chủ đề. Tôi thực hiện các biện pháp lặp đi lặp lại trên các đối tượng khác nhau để có được ước tính dân số. Tôi không quan tâm đến các đối tượng mà tôi đã kiểm tra vì tôi đã có câu trả lời thử nghiệm ... Tôi muốn có thể dự đoán một đối tượng mới của một nhóm cụ thể sẽ phản ứng thế nào với kích thích. Greg trả lời giải quyết vấn đề thực sự.
nico

Câu trả lời:


17

Nếu bạn nhìn vào trợ giúp cho predict.lmebạn sẽ thấy rằng nó có một levelđối số xác định mức độ nào để đưa ra dự đoán. Mặc định là cao nhất hoặc trong cùng, điều đó có nghĩa là nếu bạn không chỉ định cấp độ thì nó đang cố gắng dự đoán ở cấp độ chủ đề. Nếu bạn chỉ định level=0là một phần của predictcuộc gọi đầu tiên (không có subject) thì nó sẽ đưa ra dự đoán ở cấp độ dân số và không cần số chủ đề.

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.