Tôi đang cố gắng phù hợp với mô hình hiệu ứng hỗn hợp và sau đó sử dụng mô hình đó để tạo ước tính trên tập dữ liệu mới có thể có các cấp độ khác nhau. Tôi hy vọng rằng các ước tính trên tập dữ liệu mới sẽ sử dụng giá trị trung bình của các thông số ước tính, nhưng điều đó dường như không đúng. Dưới đây là một ví dụ làm việc tối thiểu:Dự đoán với lme4 ở cấp độ mới
library(lme4)
d = data.frame(x = rep(1:10, times = 3),
y = NA,
grp = rep(1:3, each = 10))
d$y[d$grp == 1] = 1:10 + rnorm(10)
d$y[d$grp == 2] = 1:10 * 1.5 + rnorm(10)
d$y[d$grp == 3] = 1:10 * 0.5 + rnorm(10)
fit = lmer(y ~ (1+x)|grp, data = d)
newdata = data.frame(x = 1:10, grp = 4)
predict(fit, newdata = newdata, allow.new.levels = TRUE)
Trong ví dụ này, tôi cần phải xác định ba nhóm với phương trình hồi quy khác nhau (sườn 1, 1.5 và 0.5). Tuy nhiên, khi tôi cố gắng dự đoán một tập dữ liệu mới với cấp độ không nhìn thấy, tôi nhận được ước tính không đổi. Tôi đã dự kiến giá trị dự kiến của độ dốc và chặn được sử dụng để tạo ra các dự đoán cho dữ liệu mới này. Tôi đang mong đợi điều sai? Hoặc, tôi đang làm gì sai với mã của mình?
Tôi tin rằng 'predict.merMod' chỉ sử dụng các hệ số từ các phần hiệu ứng cố định của mô hình cho các cấp mới. 'y ~ x + (x | grp)' là một đặc tả mô hình hợp lý hơn. – Roland
Ah, điều đó có ý nghĩa! Nếu bạn thêm nó như là một câu trả lời tôi sẽ chấp nhận nó. –