Я концептуально понимаю разницу между взаимодействиями, вложенными эффектами и т. Д. c. Но я не совсем понимаю, как правильно их указать в ANOVA
моделях. Я в основном работаю со lme4::lmer
смешанными моделями. Многие посты на этом форуме используют несколько терминов для взаимодействия и вложенных эффектов, а некоторые, как говорят, взаимозаменяемы. Отличное объяснение было дано Робертом Лонгом в https://stats.stackexchange.com/questions/228800/crossed-vs-nested-random-effects-how-do-they-differ-and-how-are-they-specified
*
, :
, |
и /
. Но по моему опыту, пытаясь использовать их, они не ведут себя взаимозаменяемо. Может ли кто-то, кто действительно понимает синтаксис R
, уточнить значение этих символов в контексте смешанных моделей?
Вот более сложный пример модели с взаимодействиями и вложенностью, с которой у меня возникают проблемы.
Учитывая четыре фактора с фиксированным эффектом c(A,B,C,D)
, где A*B*C
пересечены факториально. D
вложен во взаимодействие B*C
, потому что D
имеет недостаток ранга, в противном случае он также будет факториальным. Обратите внимание, что в моем случае вложенное взаимодействие не кодируется однозначно. Данные были настроены, чтобы быть факториалом с 4 путями. Существует также случайный эффект R
, который основан на временной репликации.
fit0 = lmer(y = (A) * (B) * (C) ? (D?B?C) + (1|R) + (1|R:A:B:C:D)
anova(fit0, ddf="Kenward-Roger")
#Design structure expects 9 fixed terms
A
B
C
A:B
A:C
B:C
A:B:C
D nested in (B*C) (this is the problem term) --> x
A:x
Я пробовал разные символы для создания вложенного взаимодействия x
, но ни один из них не соответствует структуре данных или модель не сходится. Например:
fit1 = lmer(y = (A) * (B) * (C) + (D:B:C) ...) #Same as ...+ (B:C/D)
#All variation from main effects of B and C are partitioned into x
#anova has 8 levels, is missing level A:x
fit2 = lmer(y = (A) * (B) * (C) + (B/C/D) ...)
#Variation partitions mostly correct, but ddf for F-tests are not correct
#anova has 10 levels, gives D, D:B, D:B:C, missing A:x
fit3 = lmer(y = (A) * (B) * (C) + (D|B|C) ...)
#Error in model.matrix.default(eval(substitute(~foo, list(foo = x[[2]]))), :
model frame and formula mismatch in model.matrix()
fit4 = lmer(y = (A) * (B) * (C) * (D:B:C) ...)
#All variation from main effects of B and C are partitioned into x
#anova has 9 "correct" terms
fit5 = lmer(y = (A) * (B) * (C) + (D:B*C) ...)
#Variation mostly partitions correctly, but ddf for F-tests are not correct
#anova has 8 terms, D:B, D:B:C, missing A:x
fit6 = lmer(y = (A) * (B) * (C) + (D:(B*C)) ...)
#Variation mostly partitions correctly, but ddf for F-tests are not correct
#anova has 10 levels, D:B, D:C, D:B:C, missing A:x
fit6 = lmer(y = (A) * (B) * (C) * (D:(B:C)) ...)
#All variation from all effects of B and C are partitioned into x, ddf for F-tests are not correct
#anova has 10 levels, D:B, D:C, D:B:C, missing A:x
fit7 = lmer(y = (A) * (B) * (C) + (D|B*C) ...)
#Model fails to converge.
Второй вопрос: что если я захочу проанализировать ту же модель, но D
был случайным эффектом. Например, (1|D:B*C)
больше не выполняется из-за *
.
. Буду признателен за помощь в разборе синтаксиса. Спасибо!