Eu estive examinando essa visão geral das fórmulas lm / lmer R por @conjugateprior e fiquei confuso com a seguinte entrada:
Agora assuma que A é aleatório, mas B é fixo e B está aninhado em A.
aov(Y ~ B + Error(A/B), data=d)
Abaixo, a fórmula do modelo misto análogo lmer(Y ~ B + (1 | A:B), data=d)
é fornecida para o mesmo caso.
Não entendo bem o que isso significa. Em um experimento em que os sujeitos são divididos em vários grupos, teríamos um fator aleatório (sujeitos) aninhado em um fator fixo (grupos). Mas como um fator fixo pode ser aninhado dentro de um fator aleatório? Algo corrigido aninhado em assuntos aleatórios? Isso é possível? Se não for possível, essas fórmulas R fazem sentido?
Esta visão geral é mencionado para ser parcialmente baseado na páginas de-projeto personalidade sobre como fazer análise de variância em R si com base neste tutorial sobre medidas repetidas em R . A seguir, é apresentado o exemplo a seguir para as medidas repetidas ANOVA:
aov(Recall ~ Valence + Error(Subject/Valence), data.ex3)
Aqui, os sujeitos são apresentados com palavras de valência variável (fator com três níveis) e o tempo de recuperação é medido. Cada sujeito é apresentado com palavras dos três níveis de valência. Não vejo nada aninhado neste design (ele parece cruzado, conforme a grande resposta aqui ), e, por isso, pensaria ingenuamente que Error(Subject)
ou (1 | Subject)
deveria ser um termo aleatório apropriado nesse caso. O Subject/Valence
"aninhamento" (?) É confuso.
Note que eu entendo que esse Valence
é um fator dentro do assunto . Mas acho que não é um fator "aninhado" dentro dos sujeitos (porque todos os sujeitos experimentam os três níveis de Valence
).
Atualizar. Estou explorando perguntas no CV sobre codificação de medidas repetidas ANOVA em R.
Aqui, o seguinte é usado para medidas fixas dentro do sujeito / medidas repetidas A e aleatórias
subject
:summary(aov(Y ~ A + Error(subject/A), data = d)) anova(lme(Y ~ A, random = ~1|subject, data = d))
Aqui, para dois efeitos fixos de medidas repetidas / dentro do sujeito / A e B:
summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d)) lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d)
Aqui para três efeitos dentro do sujeito A, B e C:
summary(aov(Y ~ A*B*C + Error(subject/(A*B*C)), data=d)) lmer(Y ~ A*B*C + (1|subject) + (0+A|subject) + (0+B|subject) + (0+C|subject) + (0+A:B|subject) + (0+A:C|subject) + (0+B:C|subject), data = d)
Minhas perguntas:
- Por que
Error(subject/A)
e nãoError(subject)
? - É
(1|subject)
ou(1|subject)+(1|A:subject)
ou simplesmente(1|A:subject)
? - É
(1|subject) + (1|A:subject)
ou(1|subject) + (0+A|subject)
, e por que não simplesmente(A|subject)
?
Até agora, vi alguns tópicos que afirmam que algumas dessas coisas são equivalentes (por exemplo, a primeira: uma afirmação de que são iguais, mas uma afirmação oposta à SO ; a terceira: tipo de afirmação de que são iguais ). São eles?
fonte
subject/condition
, isso é conceitualmente duvidoso, porque parece sugerir que as condições estão aninhadas nos sujeitos, quando claramente é o contrário, mas o modelo realmente adequado ésubject + subject:condition
, que é um modelo perfeitamente válido com efeitos aleatórios e assuntos aleatórios X declives.lm
eaov
fórmulas? Se eu quiser ter uma fonte autorizada sobre o que exatamenteaov
faz (é um invólucrolm
?) E como osError()
termos funcionam, onde devo procurar?aov
é um invólucro usadolm
no sentidolm
dos mínimos quadrados, masaov
faz algum trabalho adicional (principalmente a tradução doError
termo paralm
). A fonte autorizada é o código fonte ou, possivelmente, a referência dada emhelp("aov")
: Chambers et al (1992). Mas como não tenho acesso a essa referência, procurei o código-fonte.Respostas:
Em modelos mistos, o tratamento de fatores fixos ou aleatórios, especialmente em conjunto com o fato de serem cruzados, parcialmente cruzados ou aninhados, pode levar a muita confusão. Além disso, parece haver diferenças na terminologia entre o que se entende por aninhamento no mundo dos experimentos anova / projetado e no mundo dos modelos mistos / multiníveis.
Não professo saber todas as respostas, e minha resposta não será completa (e poderá gerar mais perguntas), mas tentarei abordar alguns dos problemas aqui:
(o título da pergunta)
Não, não acredito que isso faça sentido. Quando estamos lidando com medidas repetidas, geralmente o que quer que seja que as medidas sejam repetidas será aleatório, vamos chamá-lo
Subject
elme4
queremos incluirSubject
o lado direito de um ou mais|
na parte aleatória do Fórmula. Se tivermos outros efeitos aleatórios, eles serão cruzados, parcialmente cruzados ou aninhados - e minha resposta a essa pergunta aborda isso.O problema com esses experimentos projetados do tipo anova parece ser como lidar com fatores que normalmente seriam considerados fixos, em uma situação de medidas repetidas, e as perguntas no corpo do OP falam disso:
Normalmente, eu não uso,
aov()
para que possa estar faltando alguma coisa, mas, para mim, issoError(subject/A)
é muito enganador no caso da pergunta vinculada .Error(subject)
de fato, leva exatamente aos mesmos resultados.Isso está relacionado a esta questão. Nesse caso, todas as seguintes formulações de efeitos aleatórios levam exatamente ao mesmo resultado:
No entanto, isso ocorre porque o conjunto de dados simulado na pergunta não tem variação dentro de nada, apenas foi criado com
Y = rnorm(48)
. Se pegarmos um conjunto de dados real, como ocake
conjunto de dados emlme4
, descobrimos que esse geralmente não será o caso. A partir da documentação, aqui está a configuração experimental:Portanto, repetimos medidas internas
replicate
e também estamos interessados nos fatores fixosrecipe
etemperature
(podemos ignorar,temp
pois essa é apenas uma codificação diferente detemperature
), e podemos visualizar a situação usandoxtabs
:Se
recipe
houvesse um efeito aleatório, diríamos que esses são efeitos aleatórios cruzados. De nenhuma maneirarecipe A
pertence areplicate 1
ou qualquer outra réplica.Da mesma forma para
temp
.Portanto, o primeiro modelo que podemos ajustar é:
Isso tratará cada uma delas
replicate
como a única fonte de variação aleatória (exceto a residual, é claro). Mas pode haver diferenças aleatórias entre as receitas. Portanto, podemos ficar tentados a incluirrecipe
como outro efeito aleatório (cruzado), mas isso seria desaconselhável, porque temos apenas três níveis, porrecipe
isso não podemos esperar que o modelo estime bem os componentes de variação. Então, em vez disso, podemos usarreplicate:recipe
como a variável de agrupamento que nos permitirá tratar cada combinação de replicação e receita como um fator de agrupamento separado. Portanto, enquanto que no modelo acima teríamos 15 interceptações aleatórias para os níveisreplicate
, agora teremos 45 interceptações aleatórias para cada uma das combinações separadas:Observe que agora temos (muito pouco) resultados diferentes, indicando que há alguma variabilidade aleatória devido à receita, mas não muito.
Da mesma forma, poderíamos fazer a mesma coisa
temperature
.Agora, voltando à sua pergunta, você também pergunta
Não sei bem de onde vem (usando inclinações aleatórias) - não parece surgir nas duas perguntas vinculadas -, mas o meu problema
(1|subject) + (1|A:subject)
é que isso é exatamente o mesmo(1|subject/A)
que significa queA
está aninhado dentrosubject
, que em turn significa (para mim) que cada nível deA
ocorre em 1 e apenas 1 nível dossubject
quais claramente não é o caso aqui.Provavelmente vou adicionar e / ou editar esta resposta depois de pensar um pouco mais, mas queria esclarecer meus pensamentos iniciais.
fonte
cake
conjunto de dados. Parece que a replicação está aninhada na receita; o motivoxtabs
não mostra que é exatamente o motivo que você descreve na sua resposta aninhada x cruzada: a replicação é confundidamente codificada como 1-15 e não como 1-45. Para cada receita, foram realizadas 15 "réplicas" com 6 bolos; cada bolo foi então cozido a uma temperatura diferente. Portanto, a receita é um fator entre os sujeitos e a temperatura é um fator dentro dos sujeitos. Então, de acordo com a sua resposta, deveria ser(1|recipe/replicate)
. Não?(1|replicate:recipe)
provavelmente é equivalente.cake
apenas uma receita. Em relação ao terceiro ponto em que você diz que não tem certeza de onde ele vem, consulte o último link no meu Q, com um exemplo de três fatores dentro do assunto. Veja também o comentário votado de Jake sob este Q, onde ele menciona encostas aleatórias.aov
você, está certo que parece queError(subject/A)
eError(subject)
produz os mesmos resultados se não houver outros fatores, mas tome um exemplo do encadeamento vinculado com dois fatores, e não existemError(subject/(A*B))
eError(subject)
não são equivalentes. Meu entendimento atual é que é porque o primeiro inclui inclinações aleatórias.cake
conjunto de dados não foi um bom exemplo de trabalho. Me desculpe. Examinarei um pouco mais a fundo e provavelmente tentarei encontrar uma melhor para ilustração.Ooooops. Os comentaristas de alertas descobriram que minha postagem estava cheia de bobagens. Eu estava confundindo designs aninhados e designs de medidas repetidas.
Este site fornece uma descrição útil da diferença entre os designs de medidas aninhadas e repetidas. Curiosamente, o autor mostra quadrados médios esperados para fixo dentro fixo, aleatório dentro fixo e aleatório dentro aleatório - mas não fixo dentro aleatório. É difícil imaginar o que isso significaria - se os fatores no nível A forem escolhidos aleatoriamente, a aleatoriedade agora governa a seleção dos fatores do nível B. Se 5 escolas são escolhidas aleatoriamente em um conselho escolar e 3 professores são escolhidos de cada escola (professores aninhados nas escolas), os níveis do fator "professor" agora são uma seleção aleatória de professores do conselho escolar em virtude da seleção aleatória de escolas. Não posso "consertar" os professores que terei no experimento.
fonte