library(ggplot2)
ggplot(ds, aes(x = momento, y = resposta, group = unidade)) +
geom_line(alpha = 0.25) +
geom_point(alpha = 0.5) +
theme_classic() +
labs(x = "Momento", y = "Resposta")Medidas Repetidas e Modelos Mistos
0 A Pergunta Antes do Modelo
Suponham que medimos o nível de stress das mesmas pessoas de manhã, à tarde e à noite. A pergunta de investigação é simples:
O nível médio de stress muda ao longo do dia?
Se tivermos 35 pessoas e três medições por pessoa, a base de dados tem 105 linhas. Mas não temos 105 pessoas independentes. Temos 35 unidades, cada uma observada três vezes.
Esta é a primeira ideia a fixar:
o número de linhas não nos diz, por si só, quantas unidades independentes temos.
O mesmo problema aparece quando seguimos o mesmo peixe ao longo do tempo, medimos várias vezes a mesma colónia, colocamos vários organismos no mesmo tanque ou observamos vários quadrados dentro do mesmo recife.
Antes de pensar em ANOVA, modelos mistos ou sintaxe de R, perguntem:
- o que representa uma linha?
- que linhas pertencem à mesma unidade?
- em que nível varia o preditor que nos interessa?
Essas três perguntas resolvem uma parte surpreendentemente grande daquilo que costuma parecer assustador neste capítulo.
Para a implementação prática, usamos afex::aov_4(). Aqui vamos primeiro perceber o que o modelo precisa de fazer.
Ver as Ligações Entre as Linhas
O gráfico seguinte liga as três observações da mesma pessoa. Não olhem primeiro para a média geral. Olhem para as linhas individuais.
Algumas pessoas podem ter valores sempre mais altos; outras, sempre mais baixos. Isso é variação entre pessoas. A pergunta sobre a hora do dia, porém, é uma pergunta sobre mudança dentro da mesma pessoa.
Se misturarmos essas duas fontes de variação, estamos a usar o erro errado para a pergunta que queremos fazer.
1 ANOVA de Medidas Repetidas
Dados = Modelo + Erro, Outra Vez
No capítulo anterior usámos
\[ \text{Dados}=\text{Modelo}+\text{Erro}. \]
A ideia não muda. O que muda é que agora sabemos uma coisa sobre o erro: observações da mesma unidade partilham história e características. Portanto, a parte que fica por explicar tem estrutura.
O Modelo Ingénuo
Podíamos ajustar:
m_ingenuo <- lm(resposta ~ momento, data = ds)Este modelo sabe que existem manhã, tarde e noite. Não sabe que três linhas podem pertencer à mesma pessoa.
Assim, diferenças estáveis entre pessoas ficam misturadas com a variação que queremos usar para avaliar a mudança ao longo do dia.
A palavra «ingénuo» não quer dizer que os dados estejam mal recolhidos. Quer dizer apenas que o modelo esqueceu parte do delineamento.
Pôr a Unidade no Modelo
Uma forma muito concreta de ver a solução clássica é dar a cada pessoa o seu próprio nível basal.
Primeiro ajustamos um modelo que conhece apenas as pessoas:
m_unidade <- lm(resposta ~ unidade, data = ds)Depois libertamos a possibilidade de existir uma diferença média entre momentos:
m_unidade_momento <- lm(resposta ~ unidade + momento, data = ds)Agora comparem as duas perguntas:
- modelo compacto: as pessoas podem ter médias diferentes, mas não existe uma mudança média entre momentos;
- modelo aumentado: as pessoas podem ter médias diferentes e permitimos também uma mudança média entre momentos.
A comparação
anova(m_unidade, m_unidade_momento)| Res.Df | RSS | Df | Sum of Sq | F | Pr(>F) |
|---|---|---|---|---|---|
| 70 | 20286.35 | NA | NA | NA | NA |
| 68 | 13711.37 | 2 | 6574.98 | 16.30393 | 1.6e-06 |
pergunta exactamente aquilo que queríamos:
Depois de retirarmos as diferenças médias entre pessoas, ainda ganhamos explicação ao permitir diferenças entre manhã, tarde e noite?
Esta é a ponte mais importante do capítulo. A ANOVA de medidas repetidas não é uma espécie diferente de estatística. Continua a ser uma forma de decidir qual é o modelo compacto, qual é o aumentado e qual é o erro relevante para essa comparação.
O F de Medidas Repetidas
Num delineamento unifactorial, completo e equilibrado, com uma observação por pessoa e momento, podemos escrever:
\[ SS_{total} = SS_{unidade} + SS_{momento} + SS_{unidade\times momento}. \]
A parte unidade × momento diz-nos quanto os perfis individuais se afastam do perfil médio. Com uma única observação por célula, ela também contém variação residual que não conseguimos separar.
Para testar momento, usamos:
\[ F= \frac{MS_{momento}} {MS_{unidade\times momento}}. \]
Não é uma fórmula nova. É o mesmo raciocínio do F do capítulo anterior: melhoria atribuível à parte do modelo que libertámos, dividida pelo erro que ainda ficou e que é apropriado para essa pergunta.
Nos nossos dados,
\[ MS_{momento} = \frac{SS_{momento}}{df_{momento}} = \frac{6574.98}{2} = 3287.49, \]
e
\[ MS_{erro} = \frac{SS_{unidade\times momento}}{df_{erro}} = \frac{1.371137\times 10^{4}}{68} = 201.64. \]
Logo,
\[ F = \frac{3287.49} {201.64} = 16.3. \]
O software transforma depois este F num valor-p. Não precisamos de redefinir aqui o valor-p: usamos exactamente a interpretação introduzida em Do t ao Valor-p.
O que mudou neste capítulo foi qual é o erro adequado ao delineamento e, portanto, como construímos a estatística F; a lógica da inferência é a mesma.
Ao pôr unidade no modelo, não «apagámos pessoas» nem corrigimos os dados.
Separámos duas perguntas:
- quanto variam as pessoas entre si?
- quanto varia a resposta dentro da mesma pessoa entre momentos?
Para testar momento, a segunda é a fonte de variação relevante.
Com Dois Momentos: O Teste-t Emparelhado
Se cada unidade tiver apenas dois momentos, podemos calcular uma diferença para cada pessoa:
\[ D_i=Y_{i,2}-Y_{i,1}. \]
A pergunta «há uma mudança média?» passa a ser «a média das diferenças é zero?». Portanto, o teste-t emparelhado é simplesmente um teste-t de uma amostra aplicado aos valores (D_i).
Voltamos assim ao que já conhecemos:
\[ t=\frac{\bar D}{SE_{\bar D}}. \]
Com dois níveis, a ANOVA de medidas repetidas e o teste-t emparelhado testam a mesma hipótese e, outra vez,
\[ F=t^2. \]
Esta ligação é útil porque mostra que «teste-t emparelhado» e «ANOVA de medidas repetidas» não são dois truques sem relação. Um é o caso mais pequeno do outro.
A Forma Clássica no R
Em R base podemos declarar explicitamente o estrato de erro:
Error: unidade
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 34 142630 4195
Error: unidade:momento
Df Sum Sq Mean Sq F value Pr(>F)
momento 2 6575 3287 16.3 1.64e-06 ***
Residuals 68 13711 202
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
No trabalho corrente do site preferimos a interface do afex:
| Effect | df | MSE | F | ges | p.value |
|---|---|---|---|---|---|
| momento | 1.99, 67.58 | 202.90 | 16.30 *** | .040 | <.001 |
A parte (momento | unidade) diz ao aov_4() quais são as medidas repetidas dentro da unidade. A função trata depois da contabilidade da ANOVA.
O objectivo desta página não é decorar as duas sintaxes. É poder olhar para uma delas e reconhecer a pergunta estatística que está a ser feita.
Porque o Truque do lm() Tem Limites
O modelo
y ~ unidade + momentoé uma excelente ponte pedagógica para um único factor within. Mas não é uma solução geral para todos os delineamentos repetidos.
Com dois factores repetidos, por exemplo, A e B, os testes clássicos usam fontes de erro diferentes para A, B e A × B. Aparecem componentes como
\[ SS_{unidade\times A},\qquad SS_{unidade\times B},\qquad SS_{unidade\times A\times B}. \]
Um único resíduo do modelo y ~ unidade + A * B não reproduz automaticamente todos esses denominadores.
Também há outro problema. Suponham que cada colónia pertence a uma espécie e é medida várias vezes. species não varia dentro da colónia. Se dermos um coeficiente fixo separado a cada colónia, podemos absorver precisamente as diferenças entre colónias que seriam necessárias para estudar species.
Portanto, a construção com lm() serve para ver a lógica, não para substituir todas as ANOVAs repetidas ou todos os modelos mistos.
Esfericidade
Com dois momentos há apenas uma diferença possível. Com três momentos já temos, por exemplo:
- manhã − tarde;
- manhã − noite;
- tarde − noite.
A ANOVA univariada clássica com três ou mais níveis precisa de uma condição sobre a forma como estas diferenças variam. Essa condição chama-se esfericidade.
Uma forma intuitiva de a ler é esta: o teste clássico não quer que uma diferença entre dois níveis seja tremendamente mais variável do que outra de uma forma que o seu denominador não representa.
Quando a esfericidade não é plausível, correcções como Greenhouse–Geisser e Huynh–Feldt ajustam os graus de liberdade do teste (Greenhouse & Geisser, 1959; Huynh & Feldt, 1976). Não alteram os dados e não tornam as observações independentes.
Para um factor within com vários níveis, a esfericidade pode ser expressa em termos da matriz de covariância das medidas repetidas. Uma formulação equivalente exige que todos os contrastes normalizados do efeito tenham a mesma variância.
No caso simples de um único factor repetido, isto corresponde à conhecida condição de igualdade das variâncias das diferenças entre pares de níveis.
As correcções Greenhouse–Geisser e Huynh–Feldt estimam quanto a estrutura se afasta da condição ideal e reduzem os graus de liberdade usados no teste F.
Quando a ANOVA Começa a Ficar Apertada
A ANOVA de medidas repetidas é especialmente cómoda quando temos poucas condições bem definidas, um delineamento quase completo e uma observação ou um resumo por unidade × condição.
Começa a ficar menos natural quando aparecem:
- observações em falta;
- números diferentes de medições por unidade;
- tempos irregulares;
- várias unidades de agrupamento;
- ensaios individuais dentro de condições;
- efeitos que podem variar de unidade para unidade.
É aqui que os modelos mistos deixam de parecer uma técnica nova e passam a parecer a continuação natural da mesma pergunta: como representamos a estrutura que sabemos que existe nos dados?
2 Modelos Mistos
Um modelo misto mantém os efeitos que representam a nossa pergunta científica, mas acrescenta componentes que representam variação entre unidades.
Interceptos Aleatórios
Suponham várias medições de cada colónia. Algumas colónias podem ter valores sistematicamente altos e outras sistematicamente baixos.
Um intercepto aleatório permite essa variação de nível basal:
lme4::lmer(y ~ x + (1 | colonia), data = dados)A parte (1 | colonia) diz, em linguagem informal:
«As colónias podem começar em níveis diferentes; quero estimar quanto esses níveis variam.»
As observações da mesma colónia passam a partilhar essa componente. É assim que o modelo representa parte da correlação entre linhas da mesma unidade.
Um modelo simples pode ser escrito como
\[ Y_{ij} = \beta_0+\beta_1X_{ij}+u_{0j}+\epsilon_{ij}, \]
com
\[ u_{0j}\sim N(0,\tau_0^2). \]
O índice (j) identifica a unidade. Duas observações da mesma unidade partilham (u_{0j}), e é essa componente partilhada que produz covariância entre elas no modelo marginal.
Partial Pooling
Há três ideias úteis para comparar.
Se ignorarmos completamente a colónia, tratamos todas as observações como se a unidade não importasse.
Se dermos a cada colónia um coeficiente fixo completamente separado, cada uma é estimada quase como um pequeno mundo próprio.
O modelo misto fica entre esses extremos. Estima a variação entre colónias e usa essa informação para estimar os desvios de cada uma. A isto chama-se agrupamento parcial (partial pooling).
Unidades com pouca informação tendem a ser mais puxadas para o padrão geral; unidades com muita informação conseguem afastar-se mais quando os dados o justificam.
Um modelo linear misto pode ser escrito como
\[ \mathbf y = \mathbf X\boldsymbol\beta + \mathbf Z\mathbf u + \boldsymbol\epsilon. \]
(X) contém os efeitos fixos; (Zu) distribui os efeitos aleatórios pelas observações. A inferência exige estimar também as variâncias e covariâncias associadas a (u), normalmente por máxima verosimilhança ou REML.
Os algoritmos usados para o fazer são importantes para quem estuda computação estatística, mas não são necessários para interpretar (1 | colonia).
Declives Aleatórios
Uma unidade pode diferir não só no ponto de partida, mas também na resposta ao preditor.
Talvez todas as colónias tenham, em média, maior metabolismo a temperaturas mais altas, mas algumas reajam muito e outras pouco. Nesse caso faz sentido perguntar se o declive varia entre colónias:
lme4::lmer(y ~ temperatura + (temperatura | colonia), data = dados)O efeito fixo de temperatura descreve a tendência média. O declive aleatório permite que cada colónia se afaste dessa tendência.
Há uma regra conceptual muito simples:
só pode variar entre unidades um efeito que tenha sido observado dentro dessas unidades.
Se cada colónia só aparece a uma única temperatura, os dados não nos mostram um declive de temperatura para cada colónia. Um modelo não consegue inventar essa informação.
Podemos escrever
\[ Y_{ij} = (\beta_0+u_{0j}) + (\beta_1+u_{1j})X_{ij} + \epsilon_{ij}. \]
O modelo pode ainda estimar a covariância entre (u_{0j}) e (u_{1j}): unidades com níveis basais mais altos podem ter, por exemplo, declives sistematicamente maiores ou menores. Essa estrutura adicional precisa de dados suficientes para ser estimada.
Efeitos Fixos e Aleatórios
Não usem a regra «poucos níveis = fixo; muitos níveis = aleatório». O número de níveis afecta aquilo que conseguimos estimar, mas não define sozinho a pergunta.
Perguntem antes:
Quero estimar diferenças específicas entre estes níveis, ou quero representar a variação entre unidades de uma população mais ampla?
Se queremos comparar especificamente duas espécies, a diferença entre essas espécies costuma ser um efeito fixo.
Se amostrámos vários recifes para representar variação espacial e não queremos uma conclusão separada para cada recife, recife pode funcionar como efeito aleatório.
A mesma variável pode desempenhar papéis diferentes em estudos diferentes.
3 Estrutura e Replicação
Within e Between Dependem da Unidade
Uma variável é within ou between relativamente a uma unidade.
Num estudo com peixes dentro de tanques:
- o tempo pode variar dentro de cada peixe;
- o tratamento pode variar entre tanques;
- vários peixes podem partilhar o mesmo tanque.
Portanto, dizer apenas «tratamento é between» é incompleto. Between o quê?
Esta pergunta é especialmente importante em dados biológicos, onde podemos ter organismos, tanques, parcelas, locais e campanhas todos na mesma base de dados.
Tanques, Peixes e Pseudorreplicação
Imaginem um tratamento térmico atribuído a tanques. Cada tanque contém vários peixes.
A estrutura é:
peixe → tanque → tratamento
Uma linha pode representar um peixe, mas o tratamento varia ao nível do tanque.
Se tivermos vários tanques por tratamento, um modelo possível é:
lme4::lmer(crescimento ~ tratamento + (1 | tanque), data = dados)Os peixes do mesmo tanque partilham ambiente e tratamento, e o efeito aleatório representa essa semelhança.
Mas suponham agora que existe apenas um tanque de controlo e um tanque aquecido. Medir 30 peixes em cada tanque não cria 30 réplicas independentes do tratamento. Tratamento e tanque estão perfeitamente confundidos.
Este é o problema clássico da pseudorreplicação (Hurlbert, 1984).
Um modelo misto pode representar dependência entre unidades que existem.
Não pode criar tanques que nunca foram replicados.
Antes de escolher a fórmula, identifiquem sempre a que nível o preditor foi atribuído ou varia independentemente.
Estruturas Aninhadas e Cruzadas
Nem todo o agrupamento tem a mesma geometria.
Se vários quadrados pertencem a cada recife, podemos ter uma estrutura aninhada:
lme4::lmer(cobertura ~ impacto + (1 | recife/quadrado), data = dados)Se várias fotografias são classificadas por vários observadores, fotografias e observadores podem estar cruzados:
lme4::lmer(
cobertura ~ tratamento + (1 | fotografia) + (1 | observador),
data = dados
)A sintaxe vem depois da pergunta:
que observações partilham a mesma fonte de variação?
Quanto Deve Variar?
A escolha da estrutura aleatória é uma área em que é fácil transformar princípios úteis em slogans.
Uma estrutura demasiado pobre pode ignorar variação importante. Uma estrutura demasiado rica pode pedir aos dados variâncias e covariâncias que eles não conseguem estimar.
Convergência e singularidade são sinais a investigar, não oráculos que decidem sozinhos o modelo científico.
Uma linha de trabalho, associada sobretudo a Barr e colaboradores, enfatizou estruturas aleatórias tão ricas quanto o delineamento justifica para proteger a inferência sobre efeitos fixos. Outra linha, associada ao trabalho de Bates e colaboradores, mostrou os problemas de sobreparametrização e defendeu simplificação informada pelos dados e pela identificabilidade.
Na prática, uma boa análise começa pelo delineamento: que interceptos e declives podem realmente variar entre as unidades amostradas? Depois verifica se há informação suficiente para estimar essa estrutura e documenta quaisquer simplificações. Harrison et al. (2018) discutem estes compromissos no contexto ecológico.
4 Um Roteiro Para Ler Estes Modelos
Quando virem uma análise de medidas repetidas ou um modelo misto, não comecem pela fórmula. Façam estas perguntas:
- O que representa uma linha?
- Qual é a unidade que aparece repetidamente?
- Qual é a pergunta científica?
- O preditor varia dentro ou entre que unidades?
- Que diferenças estáveis entre unidades precisam de ser separadas do erro?
- O efeito do preditor pode plausivelmente variar entre unidades?
- Há outros agrupamentos, aninhados ou cruzados?
- O delineamento contém réplicas independentes no nível em que queremos fazer inferência?
Depois disso, a fórmula deixa de parecer uma língua secreta. Passa a ser uma descrição abreviada das respostas.
5 Síntese
A passagem de modelos lineares para medidas repetidas não exige abandonar a ideia central do capítulo anterior.
Continuamos a perguntar:
Dados = Modelo + Erro. Que parte do modelo representa a pergunta e que variabilidade é o erro certo para a avaliar?
Quando uma unidade aparece várias vezes, o erro deixa de poder ser tratado como se todas as linhas fossem independentes.
A ANOVA de medidas repetidas separa diferenças entre unidades da variabilidade dentro das unidades. Num caso simples, conseguimos ver isso directamente pondo a unidade no modelo e comparando um modelo compacto com um aumentado.
Os modelos mistos levam a mesma ideia mais longe. Permitem representar interceptos, declives e várias fontes de agrupamento sem transformar cada unidade num coeficiente fixo separado.
E há um limite que nenhum método ultrapassa: um modelo pode reconhecer a estrutura do delineamento; não pode criar replicação que o delineamento não teve.
No tutorial prático usamos estas ideias para ajustar ANOVAs com aov_4() e primeiros modelos mistos.
6 Exercícios
- Trinta pessoas são medidas antes e depois de uma intervenção. Explique por que há 60 linhas mas apenas 30 pares independentes. Mostre como o problema pode ser reduzido a uma média de diferenças.
- No exemplo manhã/tarde/noite, explique por palavras o que fica no modelo compacto
resposta ~ unidadee o que é libertado quando acrescentamosmomento. - Explique por que o denominador do F para
momentodeve reflectir variabilidade dentro das unidades e não diferenças estáveis entre unidades. - Um tratamento é atribuído a quatro tanques e há vinte peixes em cada tanque. Qual é a unidade de replicação do tratamento? O que representam os peixes?
- Explique a diferença substantiva entre
(1 | colonia)e(temperatura | colonia). - Dê um exemplo de agrupamento aninhado e outro de agrupamento cruzado.
- Um modelo misto é singular. Diga três perguntas que faria antes de remover termos automaticamente.
7 Leituras
Greenhouse, S. W., & Geisser, S. (1959). On methods in the analysis of profile data. Psychometrika, 24(2), 95–112. https://doi.org/10.1007/BF02289823
Harrison, X. A., Donaldson, L., Correa-Cano, M. E., Evans, J., Fisher, D. N., Goodwin, C. E. D., Robinson, B. S., Hodgson, D. J., & Inger, R. (2018). A brief introduction to mixed effects modelling and multi-model inference in ecology. PeerJ, 6, e4794. https://doi.org/10.7717/peerj.4794
Bolker, B. M., Brooks, M. E., Clark, C. J., Geange, S. W., Poulsen, J. R., Stevens, M. H. H., & White, J.-S. S. (2009). Generalized linear mixed models: A practical guide for ecology and evolution. Trends in Ecology & Evolution, 24(3), 127–135. https://doi.org/10.1016/j.tree.2008.10.008
Hurlbert, S. H. (1984). Pseudoreplication and the design of ecological field experiments. Ecological Monographs, 54(2), 187–211. https://doi.org/10.2307/1942661
Huynh, H., & Feldt, L. S. (1976). Estimation of the Box correction for degrees of freedom from sample data in randomized block and split-plot designs. Journal of Educational Statistics, 1(1), 69–82. https://doi.org/10.3102/10769986001001069