Проверка предположений смешанных моделей lmer / lme в R


25

Я выполнил повторный проект, в ходе которого я протестировал 30 мужчин и 30 женщин в трех разных заданиях. Я хочу понять, как поведение мужчин и женщин отличается и как это зависит от задачи. Я использовал оба пакета lmer и lme4, чтобы исследовать это, однако я застрял при попытке проверить предположения для любого из этих методов. Код, который я запускаю

lm.full <- lmer(behaviour ~ task*sex + (1|ID/task), REML=FALSE, data=dat)
lm.full2 <-lme(behaviour ~ task*sex, random = ~ 1|ID/task, method="ML", data=dat)

Я проверил, было ли взаимодействие лучшей моделью, сравнив его с более простой моделью без взаимодействия и выполнив анову:

lm.base1 <- lmer(behaviour ~ task+sex+(1|ID/task), REML=FALSE, data=dat)
lm.base2 <- lme(behaviour ~ task+sex, random= ~1|ID/task), method="ML", data=dat)
anova(lm.base1, lm.full)
anova(lm.base2, lm.full2)

В1: Можно ли использовать эти категориальные предикторы в линейной смешанной модели?
В2: Правильно ли я понимаю, что нормально, переменная результата («поведение») не должна распределяться сама по себе (по полу / задачам)?
Q3: Как я могу проверить однородность дисперсии? Для простой линейной модели я использую plot(LM$fitted.values,rstandard(LM)). plot(reside(lm.base1))Достаточно ли использования ?
Q4: для проверки нормальности используется следующий код, хорошо?

hist((resid(lm.base1) - mean(resid(lm.base1))) / sd(resid(lm.base1)), freq = FALSE); curve(dnorm, add = TRUE)

Одна вещь, которую я заметил, это то, что версия lme4, которую я использовал, была не самой последней, и поэтому простой сюжет (myModel.lm) не работал, возможно, это полезно для других читателей, чтобы знать ..
— crazjo

Ответы:


26

Q1: Да, как и любая регрессионная модель.

Q2: Как и обычные линейные модели, ваша исходная переменная не должна нормально распределяться как одномерная переменная. Тем не менее, модели LME предполагают, что остатки модели обычно распределены. Таким образом, преобразование или добавление весов к модели будет способом позаботиться об этом (и, конечно, проверить с помощью диагностических графиков).

Q3: plot(myModel.lme)

Q4: qqnorm(myModel.lme, ~ranef(., level=2)). Этот код позволит вам создавать QQ графики для каждого уровня случайных эффектов. Модели LME предполагают, что обычно распределяются не только остатки внутри кластера, но и каждый уровень случайных эффектов. Измените значения levelот 0, 1 до 2, чтобы вы могли проверить остатки крысы, задачи и внутри объекта.

РЕДАКТИРОВАТЬ: Я должен также добавить, что, хотя нормальность предполагается и что преобразование, вероятно, помогает уменьшить проблемы с ненормальными ошибками / случайными эффектами, не ясно, что все проблемы на самом деле решены или что смещение не введено. Если ваши данные требуют преобразования, будьте осторожны с оценкой случайных эффектов. Вот документ, посвященный этому .


Спасибо за Ваш ответ. Я хотел бы поделиться своим набором данных и сценарием для анализа, включая вывод, чтобы убедиться, что то, что я сделал, действительно правильно. Возможно ли это в обмене стека? Кроме того, я думаю, что я выбрал неправильный случайный коэффициент (1 | крыса / задание), разве это не должно быть (1 | крыса)? Я проверил 60 rats (30 каждого пола) на трех задачах.
— Crazjo

9
Я недавно попробовал код для Q4, и я получил ошибку об объекте типа 'S4', который не может быть подмножеством. Был ли этот код предназначен для моделей, подходящих для пакета lme? Что насчет lme4?
— Emudrak

Что касается Q4, люди, создающие эти графики, должны помнить, что N для каждого из созданных графиков будет существенно меньше, чем общее, и, следовательно, графики будут гораздо более изменчивыми. Не ожидайте, что они будут выглядеть так же нормально распределенными, как и все.
— Джон

14

Вы, кажется, вводите в заблуждение относительно предположений, касающихся многоуровневых моделей. В данных нет предположения об однородности дисперсии, просто остатки должны быть приблизительно нормально распределены. И категориальные предикторы все время используются в регрессии (основная функция в R, которая выполняет ANOVA, является командой линейной регрессии).

Подробнее о проверке предположений см. В книге Пиньейру и Бейтса (стр. 174, раздел 4.3.1). Кроме того, если вы планируете использовать lme4 (о чем книга не написана), вы можете копировать их графики, используя plot с lmerмоделью ( ?plot.merMod).

Быстро проверить нормальность это было бы просто так qqnorm(resid(myModel)).


Спасибо за ваш комментарий. Вы предлагаете использовать lmer вместо lme4? И правильно ли я понимаю, что переменная ответа не должна нормально распределяться? Я прочту книгу Пиньейру и Бейтса.
— Crazjo

Кроме того, вы уверены, что работает qqnorm (остаток (myModel)) на смешанной модели с несколькими факторами работает?
— Crazjo

Более новая функция lmer имеет больше возможностей и более высокую производительность. Вы пробовали qqnorm? Следуйте совету в начале книги о том, как его прочитать.
— Джон

Сюжет, который я изначально выглядел странно, возможно потому, что у меня действительно не было новейшей версии lmer. Спасибо, что заметили это, теперь оно работает как нужно.
— crazjo

12

Что касается Q2:

Согласно книге Пиньейру и Бейтса, вы можете использовать следующий подход:

« lmeФункция позволяет моделировать гетероскессадастичность группы внутри ошибки с помощью weightsаргумента. Эта тема будет подробно рассмотрена в п. 5.2, но на данный момент достаточно знать, что varIdentструктура функции дисперсии допускает различные дисперсии для каждого уровня фактор и может быть использован для соответствия гетероскедастической модели [...] "

Пинейро и Бейтс, с. 177

Если вы хотите проверить наличие одинаковых отклонений между собой, sexвы можете использовать этот подход:

plot( lm.base2, resid(., type = "p") ~ fitted(.) | sex,
  id = 0.05, adj = -0.3 )

Если отклонения отличаются, вы можете обновить свою модель следующим образом:

lm.base2u <- update( lm.base2, weights = varIdent(form = ~ 1 | sex) )
summary(lm.base2u)

Более того, вы можете взглянуть на robustlmmупаковку, в которой также используется взвешивание. Докторская диссертация Коллера об этой концепции доступна в открытом доступе («Робастная оценка линейных смешанных моделей»). Аннотация гласит:

«Новая оценка шкалы, оценка адаптивной шкалы проектирования, разработана с целью обеспечить надежную основу для последующих надежных тестов. Она делает это путем выравнивания естественной гетероскедастичности остатков и корректировки уравнения устойчивой оценки для самой шкалы. . Эти адаптивные поправки к проектированию имеют решающее значение в условиях малых выборок, где число наблюдений может быть просто в пять раз больше числа параметров, которые должны быть оценены, или меньше ".



Мне не хватает очков за комментарии. Однако я вижу необходимость прояснить некоторые аспекты ответа @John выше. Пиньейру и Бейтс заявляют на с. 174:

Предположение 1 - внутригрупповые ошибки являются независимыми и одинаково нормально распределенными, со средним нулем и дисперсией σ2, и они не зависят от случайных эффектов.

В этом утверждении действительно не ясно об однородных отклонениях, и я недостаточно глубоко разбираюсь в статистике, чтобы знать все математические основы концепции LME. Однако на с. 175, §4.3.1, раздел, касающийся предположения 1, они пишут:

В этом разделе мы сконцентрируемся на методах оценки предположения о том, что внутригрупповые ошибки обычно распределены, центрированы на нуле и имеют постоянную дисперсию .

Кроме того, в следующих примерах « постоянные отклонения » действительно важны. Таким образом, можно предположить, подразумевают ли они однородные отклонения, когда пишут « одинаково нормально распределенные» на p. 174, не обращаясь к нему более прямо.


-6

Q1: да, почему нет?

Q2: я думаю, что требование состоит в том, чтобы ошибки были нормально распределены.

Q3: Может быть проверен с помощью теста Левена, например.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.