Какая разница между синтаксисом: | / для моделей Лмера с взаимодействиями и вложенностью из-за недостатка ранга? - PullRequest
0 голосов
/ 25 апреля 2020

Я концептуально понимаю разницу между взаимодействиями, вложенными эффектами и т. Д. 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) больше не выполняется из-за *.

. Буду признателен за помощь в разборе синтаксиса. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...