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 predict
kế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, predict
trả về NA
.
Đây có phải là hành vi mong muốn predict
trong tình huống này? Tôi có thiếu một cái gì đó thực sự rõ ràng?
model