Прогнозування на моделях зі змішаним ефектом: що робити з випадковими ефектами?


13

Розглянемо цей гіпотетичний набір даних:

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 () в першу чергу дає результати "з неприємністю". думаю, що це неприємно, але більше додаткової інформації, але гаразд ...)Xβ+ZγyN(Xβ+Zγ,σ2I)Z
usεr11852

@ user11852: просто для уточнення, я думаю про це як про модель, яку слід використовувати, наприклад, у разі повторних заходів з тієї ж теми.
nico

З огляду на те, що ви шукаєте оцінки одного і того ж предмета, навіщо тоді його виключати? Якщо ви хочете оцінити рівень населення (немає інформації ), це питання різниці. Як каже Грег у своїй відповіді, ви можете отримати оцінки для населення, якщо хочете, але це не буде конкретним предметом. Z
usεr11852

2
@ user11852: Я не шукаю оцінки з тієї ж теми. Я роблю неодноразові заходи з різних предметів, щоб отримати оцінку кількості населення. Мені не цікаво тих предметів, які я вже перевірив, оскільки я вже маю експериментальну відповідь ... Я хочу вміти передбачити, як новий суб'єкт певної групи відгукнеться на стимул. Відповідь Грега вирішує проблему справді.
nico

Відповіді:


17

Якщо ви подивитесь на допомогу, predict.lmeто побачите, що в ній є levelаргумент, який визначає, на якому рівні робити прогнози. За замовчуванням це найвищий або найпотужніший, що означає, що якщо ви не вказуєте рівень, то він намагається передбачити на предметному рівні. Якщо ви вказали level=0як частину свого першого predictдзвінка (без subject), він дасть прогноз на рівні населення та не потребуватиме тематичного номера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.