Faz sentido que um efeito fixo seja aninhado em um aleatório, ou como codificar medidas repetidas em R (aov e lmer)?

23

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:

  1. Por que Error(subject/A)e não Error(subject)?
  2. É (1|subject)ou (1|subject)+(1|A:subject)ou simplesmente (1|A:subject)?
  3. É (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?

ameba diz Restabelecer Monica
fonte
2
Apenas um comentário rápido para dizer que, falando estritamente conceitualmente , na minha opinião, praticamente nunca faz sentido ter um fator fixo aninhado em um fator aleatório. Eu li pelo menos um autor de livro didático dizer o mesmo (não lembro de referência no momento). Dito isso, é possível que algumas das especificações do modelo que você escreveu acima funcionem estatisticamente equivalentes aos modelos que fazem mais sentido ... Eu teria que pensar mais sobre isso e brincar um pouco.
Jake Westfall
4
Na verdade, acho que faz sentido se você pensar na maneira como R interpreta a sintaxe A / B: ela simplesmente expande isso para A + A: B. Portanto, se considerarmos um termo aleatório como 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.
Jake Westfall 28/08
@JakeWestfall Obrigado, este é o caminho que eu penso sobre isso agora, mas gostaria muito que alguém o explicasse adequadamente. Na verdade, estou surpreso que essa seja uma pergunta não trivial; Eu esperava que você fosse uma das pessoas que responderia imediatamente. Mas isso é um alívio, pois originalmente eu pensei que minha confusão deveria ser tola. A propósito, existe alguma referência padrãolm e aovfórmulas? Se eu quiser ter uma fonte autorizada sobre o que exatamente aovfaz (é um invólucro lm?) E como os Error()termos funcionam, onde devo procurar?
Ameba diz Reinstate Monica
1
@amoeba Sim, aové um invólucro usado lmno sentido lmdos mínimos quadrados, mas aovfaz algum trabalho adicional (principalmente a tradução do Errortermo para lm). A fonte autorizada é o código fonte ou, possivelmente, a referência dada em help("aov"): Chambers et al (1992). Mas como não tenho acesso a essa referência, procurei o código-fonte.
Roland

Respostas:

12

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:

Faz sentido que um efeito fixo seja aninhado em um aleatório, ou como codificar medidas repetidas em R (aov e lmer)?

(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 Subjecte lme4queremos incluir Subjecto 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:

Por que erro (assunto / A) e não erro (assunto)?

Normalmente, eu não uso, aov()para que possa estar faltando alguma coisa, mas, para mim, isso Error(subject/A)é muito enganador no caso da pergunta vinculada . Error(subject)de fato, leva exatamente aos mesmos resultados.

É (1 | assunto) ou (1 | assunto) + (1 | A: assunto) ou simplesmente (1 | A: assunto)?

Isso está relacionado a esta questão. Nesse caso, todas as seguintes formulações de efeitos aleatórios levam exatamente ao mesmo resultado:

(1|subject)
(1|A:subject)
(1|subject) + (1|A:subject)
(1|subject) + (1|A:subject) + (1|B:subject)

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 o cakeconjunto de dados em lme4, descobrimos que esse geralmente não será o caso. A partir da documentação, aqui está a configuração experimental:

Dados sobre o ângulo de ruptura de bolos de chocolate feitos com três receitas diferentes e assados ​​em seis temperaturas diferentes. Esse é um design de plotagem dividida, com as receitas sendo unidades inteiras e as diferentes temperaturas sendo aplicadas às subunidades (dentro de réplicas). As notas experimentais sugerem que a numeração replicada representa a ordem temporal.

Um quadro de dados com 270 observações nas 5 variáveis ​​a seguir.

replicate um fator com níveis 1 a 15

recipe um fator com os níveis A, B e C

temperature um fator ordenado com níveis 175 <185 <195 <205 <215 <225

temp valor numérico da temperatura de cozimento (graus F).

angle um vetor numérico que indica o ângulo em que o bolo se partiu.

Portanto, repetimos medidas internas replicatee também estamos interessados ​​nos fatores fixos recipee temperature(podemos ignorar, temppois essa é apenas uma codificação diferente de temperature), e podemos visualizar a situação usando xtabs:

> xtabs(~recipe+replicate,data=cake)

     replicate
recipe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
     A 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6
     B 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6
     C 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6

Se recipehouvesse um efeito aleatório, diríamos que esses são efeitos aleatórios cruzados. De nenhuma maneira recipe Apertence a replicate 1ou qualquer outra réplica.

> xtabs(~temp+replicate,data=cake)

     replicate
temp  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  175 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  185 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  195 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  205 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  215 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  225 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3

Da mesma forma para temp.

Portanto, o primeiro modelo que podemos ajustar é:

> lmm1 <-  lmer(angle ~ recipe * temperature + (1|replicate), cake, REML= FALSE)

Isso tratará cada uma delas replicatecomo 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 incluir recipecomo outro efeito aleatório (cruzado), mas isso seria desaconselhável, porque temos apenas três níveis, por recipeisso não podemos esperar que o modelo estime bem os componentes de variação. Então, em vez disso, podemos usar replicate:recipecomo 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íveis replicate, agora teremos 45 interceptações aleatórias para cada uma das combinações separadas:

lmm3 <-  lmer(angle ~ recipe * temperature + (1|replicate:recipe) , cake, REML= FALSE)

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

Por que (1|subject) + (1|A:subject)e não (1|subject) + (0+A|subject)ou simplesmente (A|subject)?

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 que Aestá aninhado dentro subject, que em turn significa (para mim) que cada nível de Aocorre em 1 e apenas 1 nível dos subjectquais 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.

Robert Long
fonte
Muito obrigado (+1). Não sei se entendi o cakeconjunto de dados. Parece que a replicação está aninhada na receita; o motivo xtabsnã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.
Ameba diz Reinstate Monica
Concentrei minha pergunta apenas em fatores internos, por isso seria como restringir cakeapenas 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.
Ameba diz Reinstate Monica
E, com relação a aovvocê, está certo que parece que Error(subject/A)e Error(subject)produz os mesmos resultados se não houver outros fatores, mas tome um exemplo do encadeamento vinculado com dois fatores, e não existem Error(subject/(A*B))e Error(subject)não são equivalentes. Meu entendimento atual é que é porque o primeiro inclui inclinações aleatórias.
ameba diz Restabelecer Monica
@amoeba, o cakeconjunto 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.
Robert Long
Obrigado. Ansioso por quaisquer atualizações, bem como pela atualização que o Placidia está preparando. Enquanto isso, acho que vou dar uma recompensa aqui.
Ameba diz Reinstate Monica
3

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.

Placidia
fonte
2
+1, muito obrigado. Tudo na sua resposta faz sentido para mim. No entanto, acho que devemos concordar que a palavra "aninhado" está sendo usada em dois sentidos distintos e isso causa confusão. O @RobertLong diz que A está aninhado em B quando cada nível de B ocorre junto com diferentes níveis de classes de AEg, em escolas que estão aninhadas nas cidades etc. No seu exemplo, os assuntos estão aninhados no fator de tratamento / controle. Você diz que o tempo está aninhado dentro dos assuntos, mas todos os níveis de tempo ocorrem com todos os assuntos, então Robert diria que eles estão cruzados! Este é um "aninhado" diferente. Direita?
ameba diz Restabelecer Monica
1
No seu exemplo, está claro que o tempo e o tratamento são efeitos fixos, mas está longe de ficar claro que o tempo está aninhado nos pacientes. Por favor, você pode fornecer uma definição de "aninhado"?
Joe King
Meu erro. Eu estava confundindo aninhamento e medidas repetidas. Eu mudei minha resposta - de novo!
Placidia
Na verdade, gostei da sua resposta original com correções / adições de hoje mais cedo. Havia muitas informações úteis para minha pergunta porque, como você vê, estou realmente interessado em "medidas repetidas" aqui (e a pergunta sobre "aninhamento" era apenas um ponto terminológico). Eu sugiro que você mantenha a revisão anterior!
Ameba diz Reinstate Monica
2
Enquanto escrevia, percebi que efeitos aleatórios em medidas repetidas estão aninhados e quero testar como a matemática funciona e os graus de liberdade. Amplificarei minha resposta quando tiver certeza de que tenho isso acertado!
Placidia