Нередко случается, когда имеет дело со сложными максимальными смешанными моделями (оценка всех возможных случайных эффектов для данных и модели), это идеальная (+1 или -1) или почти идеальная корреляция между некоторыми случайными эффектами. В целях обсуждения давайте рассмотрим следующую модель и краткое изложение модели
Model: Y ~ X*Cond + (X*Cond|subj)
# Y = logit variable
# X = continuous variable
# Condition = values A and B, dummy coded; the design is repeated
# so all participants go through both Conditions
# subject = random effects for different subjects
Random effects:
Groups Name Variance Std.Dev. Corr
subject (Intercept) 0.85052 0.9222
X 0.08427 0.2903 -1.00
CondB 0.54367 0.7373 -0.37 0.37
X:CondB 0.14812 0.3849 0.26 -0.26 -0.56
Number of obs: 39401, groups: subject, 219
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.49686 0.06909 36.14 < 2e-16 ***
X -1.03854 0.03812 -27.24 < 2e-16 ***
CondB -0.19707 0.06382 -3.09 0.00202 **
X:CondB 0.22809 0.05356 4.26 2.06e-05 ***
Предполагаемая причина этих идеальных корреляций заключается в том, что мы создали модель, которая слишком сложна для данных, которые мы имеем. Общий совет, который дается в этих ситуациях, - это (например, Matuschek et al., 2017; paper ) зафиксировать сверхпараметрические коэффициенты в 0, потому что такие вырожденные модели имеют тенденцию понижать мощность. Если мы наблюдаем заметное изменение фиксированных эффектов в сокращенной модели, мы должны принять это; если нет изменений, то нет проблем с принятием оригинала.
Однако предположим, что нас интересуют не только фиксированные эффекты, контролируемые RE (случайные эффекты), но и структура RE. В данном случае было бы теоретически правильно предположить, что Intercept
и наклон X
имеет ненулевую отрицательную корреляцию. Далее следуют несколько вопросов:
Что делать в таких ситуациях? Должны ли мы сообщать об идеальной корреляции и говорить, что наши данные не являются «достаточно хорошими» для оценки «реальной» корреляции? Или мы должны сообщить модель корреляции 0? Или мы можем попытаться установить какую-то другую корреляцию равной 0 в надежде, что «важная» больше не будет идеальной? Я не думаю, что здесь есть какие-то 100% правильные ответы, я бы хотел услышать ваше мнение.
Как написать код, который фиксирует корреляцию 2 конкретных случайных эффектов с 0, не влияя на корреляции между другими параметрами?
источник
blme
,MCMCglmm
,rstanarm
,brms
...)Ответы:
Сингулярные ковариационные матрицы со случайным эффектом
Получение оценки корреляции случайного эффекта +1 или -1 означает, что алгоритм оптимизации достиг «границы»: корреляции не могут быть выше +1 или ниже -1. Даже если нет явных ошибок сходимости или предупреждений, это потенциально указывает на некоторые проблемы сходимости, потому что мы не ожидаем, что истинные корреляции будут лежать на границе. Как вы сказали, это обычно означает, что данных недостаточно для надежной оценки всех параметров. Matuschek et al. 2017 говорят, что в этой ситуации власть может быть скомпрометирована.
Еще один способ достичь границы - получить оценку дисперсии 0: почему я получаю нулевую дисперсию случайного эффекта в моей смешанной модели, несмотря на некоторые различия в данных?
Обе ситуации можно рассматривать как получение вырожденной ковариационной матрицы случайных эффектов (в вашем примере выходная ковариационная матрица равна ); нулевая дисперсия или идеальная корреляция означает, что ковариационная матрица не является полным рангом, и [по крайней мере] одно из ее собственных значений равно нулю. Это наблюдение сразу говорит о том, что существуют и другие , более сложные способы получения вырожденной ковариационной матрицы: можно иметь ковариационную матрицу × без каких-либо нулей или совершенных корреляций, но, тем не менее, с рангом-недостатком (в единственном числе). Бейтс и соавт. Смешанные модели 2015 года4 × 44 × 4 4 × 4 (неопубликованный препринт) рекомендуют использовать анализ основных компонентов (PCA), чтобы проверить, является ли полученная ковариационная матрица единственной. Если это так, они предлагают рассматривать эту ситуацию так же, как вышеупомянутые исключительные ситуации.
Так что делать?
Если данных недостаточно для надежной оценки всех параметров модели, следует рассмотреть возможность ее упрощения. Если
X*Cond + (X*Cond|subj)
взять пример модели, есть несколько возможных способов упростить ее:Удалите один из случайных эффектов, обычно корреляцию высшего порядка:
Избавьтесь от всех параметров корреляции:
Обновление: как отмечает @Henrik,
||
синтаксис удалит корреляции только в том случае, если все переменные слева от него являются числовыми. ЕслиCond
задействованы категориальные переменные (такие как ), лучше использовать его удобныйafex
пакет (или громоздкие обходные пути вручную). Смотрите его ответ для более подробной информации.Избавьтесь от некоторых параметров корреляции, разбив термин на несколько, например:
lme4
. Посмотрите ответ @ BenBolker на SO, чтобы продемонстрировать, как этого добиться с помощью умного взлома.Вопреки тому, что вы сказали, я не думаю, что Matuschek et al. 2017 специально рекомендую # 4. Суть Matuschek et al. 2017 и Бейтс и др. Кажется, 2015 год начинается с максимальной модели, созданной а-ля Barr et al. 2013, а затем уменьшает сложность, пока ковариационная матрица не получит полный ранг. (Более того, они часто рекомендуют еще больше уменьшить сложность, чтобы увеличить мощность.) Обновление: Напротив, Barr et al. рекомендуем уменьшать сложность ТОЛЬКО если модель не сходится; они готовы терпеть единичные ковариационные матрицы. Смотрите @ ответ Хенрика.
Если кто-то согласен с Бейтсом / Матушеком, то я думаю, что можно попробовать разные способы уменьшить сложность, чтобы найти тот, который выполняет работу, нанося «наименьший ущерб». Глядя на мой список выше, исходная ковариационная матрица имеет 10 параметров; # 1 имеет 6 параметров, # 2 имеет 4 параметра, # 3 имеет 7 параметров. Какая модель избавится от идеальных корреляций, невозможно сказать без их подгонки.
Но что, если вы заинтересованы в этом параметре?
Вышеприведенное обсуждение рассматривает ковариационную матрицу случайных эффектов как параметр помех. Вы поднимаете интересный вопрос о том, что делать, если вас особенно интересует параметр корреляции, от которого нужно «отказаться», чтобы получить осмысленное полное решение.
Обратите внимание, что установка параметра корреляции в ноль не обязательно приведет к BLUP (
ranef
), которые не коррелированы; на самом деле они могут даже не сильно пострадать (см . ответ @ Placidia для демонстрации ). Таким образом, одним из вариантов будет посмотреть на корреляции BLUP и сообщить об этом.Другим, возможно, менее привлекательным вариантом будет использование режима «
subject
фиксированный эффект»Y~X*cond*subj
, получение оценок для каждого субъекта и вычисление корреляции между ними. Это эквивалентно выполнению отдельныхY~X*cond
регрессий для каждого субъекта в отдельности и получению оценок корреляции от них.См. Также раздел о единичных моделях в FAQ по смешанной модели Бена Болкера:
источник
(Machine||Worker)
lmer
оценок на одну дисперсию больше, чем для(Machine|Worker)
. Так что то, чтоlmer
происходит||
с факторами, не может быть описано как «это только удаляет корреляции между факторами, но не между уровнями категориального фактора». Это приводит к изменению структуры случайных эффектов в несколько странным образом (она расширяется ,(Machine||Worker)
чтобы(1|Worker) + (0+Machine|Worker)
, следовательно, дополнительная дисперсия). Не стесняйтесь изменить мой редактировать. Мой главный вопрос заключается в том, что в этих утверждениях необходимо четко различать числовые и категориальные ковариаты.machines2 <- subset(Machines, Machine %in% c("A", "B")); summary(lmer(score ~ Machine + (Machine || Worker), data=machines2))
. Как правило, он не работает с факторами, связанными с этим расширением, и с тем, как онR
работает с факторами вmodel.matrix
.ranef
значениям для изучения корреляции между случайными эффектами. Я не слишком глубоко в этой теме, но я знаю, что обычно не рекомендуется работать с извлеченными значениямиranef
, а скорее с оценочными корреляциями и отклонениями. Что вы думаете об этом? Кроме того, я не знаю, как можно было бы объяснить рецензенту, что корреляция в модели не постулирована, но мы все еще рассчитываем корреляцию извлеченных значений. Это не имеет смыслаЯ согласен со всем, что сказано в ответе амебы, в котором содержится большое резюме текущей дискуссии по этому вопросу. Я постараюсь добавить несколько дополнительных пунктов и в противном случае обратиться к раздаточному материалу моего недавнего курса по смешанной модели, в котором также обобщены эти пункты.
Подавление параметров корреляции (варианты 2 и 3 в ответе амебы) с помощью
||
работ работает только для числовых ковариат,lmer
а не для факторов. Это обсуждается более подробно с кодом Рейнхольда Клегля .Тем не менее, мой
afex
пакет предоставляет функции для подавления корреляции также среди факторов, если аргументexpand_re = TRUE
в вызовеmixed()
(см. Также функциюlmer_alt()
). По сути, это достигается путем реализации подхода, обсуждаемого Райнхольдом Клиглом (т.е. преобразование факторов в числовые ковариаты и определение структуры случайных эффектов для них).Простой пример:
Для тех, кто не знает
afex
, основной функциональностью для смешанных моделей является предоставление значений p для фиксированных эффектов, например:Дейл Барр из Барр и соавт. (2013) в статье более осторожно рекомендуют уменьшить структуру случайных эффектов, чем в ответе амебы. В недавнем твиттере он написал:
Поэтому рекомендуется соблюдать осторожность.
Как один из рецензентов, я также могу дать некоторое представление о том, почему мы, Бейтс и др. (2015) статья осталась неопубликованной. Я и два других рецензента (которые подписали, но останутся здесь без названия) подверглись некоторой критике в связи с подходом PCA (кажется беспринципным, и нет никаких доказательств того, что он превосходит власти). Кроме того, я полагаю, что все три критиковали, что документ не фокусировался на вопросе о том, как определить структуру случайных эффектов, но также попытался ввести GAMM. Таким образом, статья Bates et al (2015) переросла в Matuschek et al. (2017), в которой рассматривается проблема структуры случайных эффектов с помощью моделирования, и Baayen et al. (2017) статья о внедрении GAMM.
Мой полный обзор Бейтса и соавт. черновик можно найти здесь . IIRC, другие обзоры имели вид схожих основных моментов.
источник
lmer_alt
основном работает точно так жеlmer
(или дажеglmer
) с той лишь разницей, что допускает||
синтаксис. Поэтому я не уверен, почему вы хотели бы избежатьafex
любой ценой. Он должен даже работать без прикрепления (т. Е.afex::lmer_alt(...)
).cbind
к данным. Затем член случайных эффектов в формуле заменяется новым, в котором каждый из вновь созданных столбцов объединяется с +. См. Строки с 690 по 730 на github.com/singmann/afex/blob/master/R/mixed.R||
, это действительно важный момент, спасибо, что подняли его и объяснили мне (я отредактировал свой ответ, чтобы отразить это). Мне нравится эта функциональностьlmer_alt
вafex
. Я просто упомяну здесь для полноты, что для получения того же результата приlmer
вызове vanilla без какой-либо дополнительной предварительной обработки, например, можно указать(1+dummy(Machine,'B')+dummy(Machine,'C') || Worker)
. Это явно становится очень громоздким, когда категориальная переменная имеет много уровней.dummy()
работает только с контрастами лечения по умолчанию, а не тогда, когда случайные эффекты используют контрасты от суммы к нулю (который следует использовать, если модель имеет взаимодействия). Например, вы можете увидеть это, если сравнить компоненты дисперсии в приведенном выше примере дляlmer_alt
вызова сmixed
вызовом.У меня тоже была эта проблема при использовании оценки максимального правдоподобия - я использую только алгоритм Goldstein IGLS, реализованный с помощью программного обеспечения MLwiN, а не LME4 в R. Однако в каждом конкретном случае проблема решилась, когда я переключился на оценку MCMC с использованием того же самого програмное обеспечение. У меня даже была корреляция, превышающая 3, которая разрешилась, когда я изменил оценку. Используя IGLS, корреляция рассчитывается после оценки как ковариация, деленная на произведение квадратного корня на произведение связанных дисперсий, и это не учитывает неопределенность в каждой из составляющих оценок.
Программное обеспечение IGLS не «знает», что ковариация подразумевает корреляцию, а просто вычисляет оценки постоянной, линейной, квадратичной и т. Д. Дисперсионной функции. В отличие от этого подход MCMC построен на предположении выборок из многомерного нормального распределения, которое соответствует дисперсиям и ковариациям с хорошими свойствами и полным распространением ошибок, так что неопределенность в оценке ковариаций учитывается при оценке дисперсий и наоборот.
MLwin является цепочкой оценок MCMC с оценками IGLS и неотрицательной ковариационной матрицей с определенной отрицательной дисперсией, возможно, придется изменить ее, изменив ковариацию до нуля в самом начале, прежде чем начинать выборку.
Для работающего примера см.
Разработка многоуровневых моделей для анализа контекстуальности, неоднородности и изменений с использованием MLwiN 3, том 1 (обновлено в сентябре 2017 года); Том 2 также на RGate
https://www.researchgate.net/publication/320197425_Vol1Training_manualRevisedSept2017
Приложение к главе 10
источник