Я хочу моделювати дві різні змінні часу, деякі з яких сильно колінеарні в моїх даних (вік + когорта = період). Роблячи це, у мене виникли проблеми з lmer
взаємодією та взаємодією poly()
, але, мабуть, це не обмежується lmer
, я отримав однакові результати з nlme
IIRC.
Очевидно, що мого розуміння того, що робить функція poly (), бракує. Я розумію, що poly(x,d,raw=T)
робить, і я подумав, що без raw=T
цього створюються ортогональні поліноми (не можу сказати, що я дійсно розумію, що це означає), що полегшує примірку, але не дозволяє вам інтерпретувати коефіцієнти безпосередньо.
Я читав, що оскільки я використовую функцію передбачення, прогнози повинні бути однаковими.
Але їх немає, навіть коли моделі сходяться нормально. Я використовую орієнтовані змінні, і я спершу подумав, що, можливо, ортогональний поліном призводить до більш високої корекції фіксованого ефекту із терміном колінеарної взаємодії, але це здається порівнянним. Тут я вставив два зразки моделей .
Ці сюжети, сподіваємось, ілюструють ступінь різниці. Я використовував функцію передбачення, яка доступна лише у розробці. версія lme4 (про це чути тут ), але фіксовані ефекти однакові у версії CRAN (і вони також здаються відключеними самі, наприклад, ~ 5 для взаємодії, коли мій DV має діапазон 0-4).
Lmer дзвінок був
cohort2_age =lmer(churchattendance ~
poly(cohort_c,2,raw=T) * age_c +
ctd_c + dropoutalive + obs_c + (1+ age_c |PERSNR), data=long.kg)
Прогнозування було фіксованим впливом лише на підроблені дані (всі інші прогнози = 0), де я позначив діапазон, присутній у вихідних даних, як екстраполяцію = F.
predict(cohort2_age,REform=NA,newdata=cohort.moderates.age)
Я можу надати більше контексту за потреби (мені не вдалося легко відтворити приклад, який можна відтворити, але, звичайно, можна постаратися більше), але я вважаю, що це більш основна проха: поясніть poly()
мені функцію, досить будь ласка.