Мой вопрос основан на этом ответе, который показал, какая lme4::lmer
модель соответствует двусторонним повторным измерениям ANOVA:
require(lme4)
set.seed(1234)
d <- data.frame(
y = rnorm(96),
subject = factor(rep(1:12, 4)),
a = factor(rep(1:2, each=24)),
b = factor(rep(rep(1:2, each=12))),
c = factor(rep(rep(1:2, each=48))))
# standard two-way repeated measures ANOVA:
summary(aov(y~a*b+Error(subject/(a*b)), d[d$c == "1",]))
# corresponding lmer call:
anova(lmer(y ~ a*b+(1|subject) + (1|a:subject) + (1|b:subject), d[d$c == "1",]))
Теперь мой вопрос о том, как распространить это на случай трехстороннего ANOVA:
summary(aov(y~a*b*c+Error(subject/(a*b*c)), d))
## [...]
## Error: subject:a:b:c
## Df Sum Sq Mean Sq F value Pr(>F)
## a:b:c 1 0.101 0.1014 0.115 0.741
## Residuals 11 9.705 0.8822
Естественное расширение, а также его версии не соответствуют результатам ANOVA:
anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject), d))
## [...]
## a:b:c 1 0.1014 0.1014 0.1500
anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject) +
(1|a:b:subject) + (1|a:c:subject) + (1|b:c:subject), d))
## [...]
## a:b:c 1 0.1014 0.1014 0.1539
Обратите внимание, что очень похожий вопрос был задан ранее . Тем не менее, отсутствовал пример данных (которые приведены здесь).
y ~ a*b + (1 + a*b|subject), d[d$c == "1",]
? Или, может быть, я что-то упустил?lmer
будете жаловаться, так как случайные эффекты больше не выявляются. Изначально я тоже думал, что это именно та модель, которую я хочу, но это не так. Если вы сравните модель lmer, которую я предлагаю для двустороннего случая, со стандартным ANOVA, вы увидите, что значения F в точности совпадают. Как сказано в ответе я связан.lmer
написанная вами модель (исключающая случайные двусторонние взаимодействия), как ожидается, не будет эквивалентна трехсторонней RM-ANOVA, а вторая написанная вами (которая включает случайную двусторонние взаимодействия) должно быть. Что касается того, почему существует несоответствие даже с этой моделью, у меня есть догадка о том, в чем проблема, собираюсь поужинать, а затем еще раз взгляну на набор игрушечных данных.Ответы:
Прямой ответ на ваш вопрос заключается в том, что последняя модель, которую вы написали,
Я считаю, что это «в принципе» правильно, хотя это странная параметризация, которая не всегда хорошо работает в реальной практике.
Что касается того, почему вывод, который вы получаете из этой модели, не совпадает с
aov()
выводом, я думаю, что есть две причины.lmer()
не позволят использовать смешанные модели (и большинство других программ смешанных моделей).Позвольте мне сначала продемонстрировать параметризацию, которую я предпочитаю на вашем первоначальном двухстороннем примере ANOVA. Предположим, что ваш набор данных
d
загружен. Ваша модель (обратите внимание, что я изменил с фиктивных на контрастные коды):который работал хорошо здесь в том, что он соответствовал
aov()
выводу. Модель, которую я предпочитаю, включает в себя два изменения: ручное контрастное кодирование факторов, чтобы мы не работали с объектами R-факторов (что я рекомендую делать в 100% случаев), и определение случайных эффектов по-другому:Два подхода полностью эквивалентны в простой двусторонней задаче. Теперь перейдем к трехсторонней проблеме. Ранее я упоминал, что приведенный вами пример данных является патологическим. Итак, что я хочу сделать перед рассмотрением вашего примера набора данных, это сначала сгенерировать набор данных из фактической модели компонентов дисперсии (т. Е. Где ненулевые компоненты дисперсии встроены в истинную модель). Сначала я покажу, как моя предпочтительная параметризация работает лучше, чем предложенная вами. Тогда я покажу еще один способ оценки компонентов дисперсии , которые никак не налагать , что они должны быть неотрицательными. Тогда мы сможем увидеть проблему с исходным примером набора данных.
Новый набор данных будет идентичным по структуре, за исключением того, что у нас будет 50 предметов:
Соотношения F, которые мы хотим соответствовать:
Вот наши две модели:
Как мы видим, только второй метод совпадает с выходом из
aov()
, хотя первый метод, по крайней мере, в приблизительном. Второй метод также обеспечивает более высокую логарифмическую вероятность. Я не уверен, почему эти два метода дают разные результаты, так как я снова думаю, что они «в принципе» эквивалентны, но, возможно, это по каким-то численным / вычислительным причинам. Или, может быть, я ошибаюсь, и они не эквивалентны даже в принципе.Теперь я покажу другой способ оценки компонентов дисперсии на основе традиционных идей ANOVA. В основном мы возьмем ожидаемые среднеквадратичные уравнения для вашего проекта, подставим наблюдаемые значения средних квадратов и найдем компоненты дисперсии. Чтобы получить ожидаемые средние квадраты, мы будем использовать функцию R, которую я написал несколько лет назад
EMS()
и которая называется ЗДЕСЬ . Ниже я предполагаю, что функция уже загружена.Хорошо, теперь мы вернемся к исходному примеру. Соотношения F, к которым мы стремимся соответствовать:
Вот наши две модели:
В этом случае две модели дают в основном одинаковые результаты, хотя второй метод имеет чуть более высокую логарифмическую вероятность. Ни один из методов не соответствует
aov()
. Но давайте посмотрим на то, что мы получаем, когда решаем для компонентов дисперсии, как мы делали выше, используя процедуру ANOVA, которая не ограничивает компоненты дисперсии неотрицательными (но которые могут использоваться только в сбалансированных схемах без непрерывных предикторов и без недостающие данные; классические предположения ANOVA).Теперь мы можем увидеть, что патологического в оригинальном примере. Наиболее подходящей является модель, которая подразумевает, что некоторые из компонентов случайной дисперсии являются отрицательными. Но
lmer()
(и большинство других программ смешанной модели) ограничивает оценки компонентов дисперсии неотрицательными. Это обычно считается разумным ограничением, так как отклонения, конечно, никогда не могут быть действительно отрицательными. Однако следствием этого ограничения является то, что смешанные модели не могут точно представлять наборы данных, которые имеют отрицательные внутриклассовые корреляции, то есть наборы данных, где наблюдения из одного кластера меньше(а не больше) в среднем похожи, чем наблюдения, сделанные случайным образом из набора данных, и, следовательно, когда внутрикластерная дисперсия существенно превышает дисперсию между кластерами. Такие наборы данных являются вполне разумными наборами данных, которые иногда можно встретить в реальном мире (или случайно имитировать!), Но они не могут быть разумно описаны моделью компонентов дисперсии, потому что они подразумевают отрицательные компоненты дисперсии. Однако они могут быть «бессмысленно» описаны такими моделями, если программное обеспечение позволит это.aov()
позволяет это.lmer()
не.источник
I am not sure why these two methods give different results, as again I think they are "in principle" equivalent, but maybe it is for some numerical/computational reasons
- вы , возможно , лучше это понять сейчас (через два года)? Я пытался выяснить, в чем разница, но тоже не понимаю ...A
(1|A:sub)
(0+A|sub)
lmer
вызова производят идентичныйanova()
вывод, случайные отклонения эффекта, тем не менее, совершенно различны: смотритеVarCorr(mod1)
иVarCorr(mod2)
. Я не совсем понимаю, почему это происходит; вы? Дляmod3
иmod4
можно увидеть, что четыре из семи отклонений дляmod3
фактически равны нулю (дляmod4
всех семи ненулевые); эта «особенность»,mod3
вероятно, объясняет, почему таблицы анова отличаются. Кроме того, как бы вы использовали свой «предпочтительный путь», если быa
иb
имели более двух уровней?Есть
a
,b
,c
фиксированные или случайные эффекты? Если они исправлены, ваш синтаксис будет простоисточник
subject
всех эффектов (т. Е.Within
). См. «Дизайн эксперимента: процедуры для поведенческих наук» (2013) Кирка, глава 10 (с.458) или мой пост здесьlmer
? Тем не менее я получу свою копию Кирка (только 2-е издание) и посмотрю, что там написано.lmer
модели. Лучший способ проверить соответствие модели - это проверить их значения dfs,lmerTest
так как аппроксимация KR должна дать вам значенияexact
dfs и, следовательно, p-значения.