Проверка предположений смешанных моделей 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)
crazjo
источник
Одна вещь, которую я заметил, это то, что версия 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: Может быть проверен с помощью теста Левена, например.

user12719
источник