Розглянемо цей гіпотетичний набір даних:
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)
ми можемо використовувати lme
для моделювання відповіді за допомогою моделі випадкових ефектів:
require(nlme)
model <- lme(response ~ dose + group + dose*group,
random = ~1|subject, df)
Я хотів би скористатися predict
результатом цієї моделі, щоб, наприклад, отримати відповідь загального суб'єкта групи 1 на дозу 10:
pred <- predict(model, newdata=list(dose=10, group=1))
Однак із цим кодом я отримую таку помилку:
Error in predict.lme(model, newdata = list(dose = 10, group = 1)) :
cannot evaluate groups for desired levels on 'newdata'
Щоб позбутися цього, потрібно, наприклад, зробити
pred <- predict(model, newdata=list(dose=10, group=1, subject=5))
Це, однак, не має для мене особливого сенсу ... тема є фактором неприємності в моїй моделі, тож який сенс він повинен включати predict
? Якщо я покладу номер теми, якого немає в наборі даних, predict
повертається NA
.
Це розшукова поведінка predict
в цій ситуації? Я пропускаю щось дійсно очевидне?
model
передбачає, що середнє значення задається (зокрема, тому очікується, що параметри неприємності також будуть деякими значеннями . Бувають ситуації, що, можливо, навіть не має сенсу вважати, що ваша точка оцінки не є ієрархічною (тому немає ). Ось чому fitted () в першу чергу дає результати "з неприємністю". думаю, що це неприємно, але більше додаткової інформації, але гаразд ...)