Мультиколлинеарность в линейной смешанной модели

Я подгоняю следующие модели lmer в R:

lmer(rt~deadline*cond+age+(1+deadline|task/pp), REML=FALSE) ##Model 1
lmer(rt~deadline+cond+age+(1+deadline|task/pp), REML=FALSE) ##Model 2

Где rt - время реакции, deadline имеет 2 уровня, короткий или длинный, cond также имеет два уровня: легкий или сложный. В проведенном мной исследовании 30 испытуемых выполнили 4 задания. В каждом задании испытуемые выполняли по 50 попыток на каждом из четырех уровней (короткий/легкий, длинный/легкий, короткий/сложный, длинный/сложный). В моей модели выше у меня есть случайные пересечения для человека и задачи и случайные наклоны для человека и задачи в срок. Всего было проведено 800 испытаний. Регистрировались точность и время реакции. Меня интересует, влияют ли сложность (=cond) и срочность (=deadline) на время реакции (взаимодействие). Поскольку может иметь место эффект взаимодействия, я подобрала первую модель с взаимодействием и сравнила ее со второй моделью без взаимодействия.

Когда я запускаю первую модель, я получаю следующий вывод:

lm.rtfnew <- lmer(rt~deadline*cond+age+(1+deadline|task/pp), REML=FALSE)
fixed-effect model matrix is rank deficient so dropping 1 column / coefficient
summary(lm.rtfnew)
Linear mixed model fit by maximum likelihood  ['lmerMod']
Formula: rt ~ deadline * cond + age + (1 + deadline | task/pp)
 ...
                           Estimate Std. Error t value
   (Intercept)             5.874631   0.669971    8.77
 deadlineshort            -0.375643   0.171779   -2.19
      condhard            -4.685013   0.066538  -70.41
      condeasy            -4.658016   0.066538  -70.01
           age             0.006791   0.018018    0.38
   deadlineshort:condhard  0.007752   0.018960    0.41
 ...
 fit warnings:
     fixed-effect model matrix is rank deficient so dropping 1 column / coefficient 
Итак, у меня проблема, поскольку и для deadline, и для cond создаются два столбца, а затем эти два столбца показывают идеальную мультиколлинеарность? Затем R исправляет это, опуская один столбец для deadline, но не для cond (поскольку существует фиксированный эффект condhard и condeasy). Поэтому у меня два вопроса:

  1. Почему R не удаляет столбец cond?
  2. Мне нужно исправить это вручную?

person T Meurs    schedule 06.06.2016    source источник
comment
Поиск терапевтических контрастов. Один уровень deadline и один уровень cond представлены перехватом.   -  person Roland    schedule 06.06.2016
comment
Так на самом деле нет проблемы? Или мне нужно вручную создавать контрасты?   -  person T Meurs    schedule 06.06.2016
comment
Из того, что я вижу здесь, нет никакой очевидной проблемы. Однако у меня нет доступа к вашим данным, так что могут быть проблемы. (Мне кажется подозрительным, что эффекты сложного и легкого состояния так похожи и так сильно коррелированы. Я предполагаю, что третий уровень — средний.) Контрасты создаются автоматически. Если вам нужны не лечебные контрасты, а какие-то другие контрасты, вы можете настроить это. Вы также можете отрегулировать базовый уровень контрастов лечения.   -  person Roland    schedule 06.06.2016
comment
Но вот что странно: у состояния всего два уровня: легкий и сложный (значит, корреляция должна быть равна 1, верно?). И должен быть один фиксированный эффект, верно (либо condeasy, либо condhard)...?   -  person T Meurs    schedule 06.06.2016
comment
Пожалуйста, опубликуйте воспроизводимый пример (код + данные). Без него будет трудно диагностировать проблему.   -  person Thierry    schedule 06.06.2016
comment
Каков результат summary(cond)?   -  person Roland    schedule 06.06.2016
comment
› резюме(конд) трудно легко 116 10508 10508   -  person T Meurs    schedule 06.06.2016
comment
Трудно понять из вашего комментария, но, по-видимому, есть три уровня, то есть один уровень выглядит как "". Вероятно, это должны быть значения NA.   -  person Roland    schedule 07.06.2016
comment
Извините, я пытался найти макет для stackflow, но не смог его найти. Действительно, кажется, что есть 116 NA. Я пытаюсь удалить их с помощью lmer(rt~deadline+cond+deadline*cond+(1+deadline|task/pp), REML=F, na.action=na.omit), но все равно не работает. Как продолжить?   -  person T Meurs    schedule 07.06.2016
comment
Они должны быть NA значениями, но не похоже, что это так. По-видимому, они представляют собой факторный уровень, представляющий собой пустую строку символов. Либо исправьте это во время импорта данных, либо выполните cond[cond == ""] <- NA. (Кстати, ваши данные должны располагаться вместе в data.frame, и вы должны использовать параметр data в lmer.)   -  person Roland    schedule 07.06.2016


Ответы (1)


С дополнительной информацией, предоставленной OP в комментариях, стала очевидной одна проблема: в cond есть факторный уровень "". Этот уровень представлен перехватом, а «сложные» и «легкие» РТ сильно отличаются от «» РТ, но очень похожи друг на друга в сравнении. Эти значения "" на самом деле являются значениями NA и должны быть закодированы как таковые. Если это будет сделано, соответствующие наблюдения будут удалены na.action = na.omit. Это может уже решить проблему дефицита ранга. Если это не так, OP может рассмотреть возможность масштабирования переменных или исключения члена взаимодействия.

person Roland    schedule 08.06.2016
comment
Спасибо! Наконец-то я нашел проблему: я использовал неправильный data.frame. Я создал его, а затем использовал droplevels, чтобы действительно удалить пустую строку символов, но затем забыл использовать это в моей функции lmer (data=dat). Спасибо за вашу работу и энергию. - person T Meurs; 09.06.2016