Aula 58. Análise de Pressupostos

Os quatro pressupostos clássicos da ANOVA, como testar e o que fazer quando falham

Acompanhe o Café com R

  • Que cada gole desperte uma nova ideia.

  • Que cada script abra uma nova conversa.

  • Que o Café com R se torne um ponto de encontro nosso.

SITE OFICIAL > https://jenniferlopes.github.io/meu_site/

Objetivos da aula

  • Reconhecer os quatro pressupostos clássicos da ANOVA
  • Testar normalidade dos resíduos, com Shapiro-Wilk e diagnóstico visual do DHARMa
  • Testar homogeneidade de variância, com Bartlett e Levene
  • Verificar independência das observações e aditividade do modelo
  • Saber o que fazer, na prática, quando cada pressuposto falha

Bloco 1

Por que Pressupostos Importam

Os quatro pressupostos clássicos da ANOVA

Pressuposto O que exige
Normalidade Os resíduos do modelo seguem distribuição aproximadamente normal
Homogeneidade de variância A variância dos resíduos é semelhante entre os grupos comparados
Independência As observações não têm relação de dependência entre si
Aditividade Os efeitos do modelo se combinam de forma aditiva, sem interação não modelada
  • Contexto: um experimento compara 4 adubações foliares em videira, quanto à produtividade em quilos por planta, 10 plantas por adubação.

Consequência de ignorar um pressuposto violado

  • Um pressuposto violado não torna a ANOVA “um pouco menos confiável”, ele compromete a validade do valor de p reportado, na direção que depende de qual pressuposto falhou e de quão grave é o desvio.

  • Heterogeneidade de variância entre grupos, por exemplo, pode inflar ou deflacionar o erro tipo I, dependendo de qual grupo tem mais observações e maior variância.

  • Verificar os quatro pressupostos deve ser uma etapa padrão, feita antes de interpretar qualquer resultado de ANOVA, não uma checagem opcional posterior.

Bloco 2

Normalidade dos Resíduos

Conceito, por que resíduos e não a variável bruta

  • A suposição de normalidade da ANOVA recai sobre os resíduos do modelo ajustado, a diferença entre valor observado e a média do grupo correspondente, não sobre a variável resposta bruta.

  • Uma variável resposta pode não ser normal globalmente, e ainda assim os resíduos, calculados dentro de cada grupo, podem ser normais.

Código: ajuste do modelo e Shapiro-Wilk

modelo_videira <- aov(produtividade ~ adubacao, data = dados_videira)

shapiro.test(residuals(modelo_videira))

Output e interpretação

# A tibble: 1 × 2
  estatistica valor_p
        <dbl>   <dbl>
1       0.924  0.0106
  • O teste de Shapiro-Wilk não indica evidência contra a normalidade dos resíduos deste modelo.

Código: QQ-plot com DHARMa

residuos_simulados <- simulateResiduals(fittedModel = modelo_videira, n = 1000)

plot(residuos_simulados)

Gráfico e interpretação

  • O painel esquerdo do DHARMa mostra o QQ-plot dos resíduos simulados, com testes de uniformidade, dispersão e outliers já embutidos. O painel direito mostra resíduos contra valores previstos, útil também para a verificação de variância, tema do próximo bloco.

Bloco 3

Homogeneidade de Variância

Conceito, por que a ANOVA assume variâncias iguais

  • A ANOVA calcula um único quadrado médio do resíduo, combinando a variabilidade de todos os grupos. Essa combinação só é válida quando os grupos têm variância semelhante.

  • Quando um grupo tem variância muito maior que os demais, ele domina o quadrado médio do resíduo combinado, distorcendo a comparação de médias entre todos os grupos, inclusive os que têm variância pequena.

Bartlett x Levene, diferença

Teste Característica
Bartlett Mais sensível à variância, mas também mais sensível a desvios de normalidade
Levene Baseado nos desvios absolutos em relação à mediana, mais robusto a desvios de normalidade
  • Quando há dúvida sobre a normalidade dos dados, o teste de Levene é geralmente a escolha mais segura, por depender menos dessa suposição adicional.

Código: os dois testes

bartlett.test(produtividade ~ adubacao, data = dados_videira)

leveneTest(produtividade ~ adubacao, data = dados_videira)

Output e interpretação

# A tibble: 2 × 3
  teste    estatistica valor_p
  <chr>          <dbl>   <dbl>
1 Bartlett        29.2       0
2 Levene          11.8       0
  • Os dois testes indicam evidência de heterogeneidade de variância entre as adubações, consistente com a Adubação 3 apresentando dispersão bem maior que as demais na simulação.

Gráfico de resíduos x valores ajustados

Bloco 4

Independência das Observações

Conceito, o que quebra independência

  • A independência exige que o valor de uma observação não influencie, nem seja influenciado por, o valor de outra observação no mesmo conjunto de dados.

  • Pseudo-repetição ocorre quando múltiplas medições da mesma unidade experimental são tratadas como se fossem repetições independentes, como medir a mesma planta três vezes e contar como três observações.

  • Dependência espacial ocorre quando parcelas fisicamente próximas compartilham condições ambientais não capturadas pelo modelo, comum quando a aleatorização não é feita corretamente.

Código: resíduos x ordem de coleta

tibble(ordem = dados_videira$ordem_coleta, residuo = residuals(modelo_videira)) |>
  ggplot(aes(x = ordem, y = residuo)) +
  geom_point(color = cores_cafe["azul_claro"]) +
  geom_hline(yintercept = 0, linetype = "dashed")

Gráfico e leitura

  • Não há padrão sistemático dos resíduos ao longo da ordem de coleta, sem evidência visual de dependência temporal nestes dados.

Bloco 5

Aditividade e Diagnóstico com DHARMa

Conceito de aditividade do modelo

  • A aditividade exige que os efeitos incluídos no modelo se combinem por soma, sem que a magnitude de um efeito dependa do nível de outro fator não incluído como interação.

  • Quando existe uma interação relevante não modelada, o modelo aditivo simples atribui a variação real da interação ao resíduo, inflando o quadrado médio do erro e reduzindo o poder do teste.

Código: simulateResiduals() e plot()

residuos_simulados <- simulateResiduals(fittedModel = modelo_videira, n = 1000)

testUniformity(residuos_simulados)
testQuantiles(residuos_simulados)

Gráfico e leitura integrada

  • O DHARMa combina, em um único fluxo, a checagem de uniformidade dos resíduos e a checagem de padrões residuais em função dos valores previstos, cobrindo normalidade, variância e aditividade em uma abordagem unificada e simulada.

Tabela de decisão, quando um pressuposto falha

Pressuposto violado Ação recomendada
Normalidade Transformação de dados, ou GLM com distribuição apropriada
Homogeneidade de variância Teste t de Welch, ANOVA com correção de variância heterogênea, ou GLM
Independência Redesenhar a estrutura do modelo, incluir efeito de bloco ou efeito aleatório
Aditividade Incluir termo de interação, ou reconsiderar a estrutura do modelo

Bloco 6

Erros Comuns

Erro comum 1, testar normalidade da variável bruta

  • Aplicar Shapiro-Wilk diretamente à variável resposta, antes de ajustar o modelo, testa uma suposição diferente da que a ANOVA realmente exige, a normalidade dos resíduos dentro de cada grupo.

Erro comum 2, usar só Shapiro-Wilk sem olhar o gráfico

  • Um valor de p não significativo no Shapiro-Wilk não substitui a inspeção visual do QQ-plot, especialmente em amostras pequenas, onde o teste tem pouco poder para detectar desvios reais.

Erro comum 3, ignorar heterocedasticidade detectada

  • Prosseguir com a ANOVA clássica após detectar heterogeneidade de variância relevante, sem ajustar a análise, mantém um resultado cuja validade já foi comprometida pelo próprio diagnóstico realizado.

Resumo: pressupostos da ANOVA

Pressuposto Teste formal Função no R
Normalidade Shapiro-Wilk shapiro.test()
Homogeneidade de variância Bartlett, Levene bartlett.test(), leveneTest()
Independência Inspeção de resíduos x ordem/estrutura Gráfico dirigido
Diagnóstico integrado Resíduos simulados DHARMa::simulateResiduals()

Obrigada!

Continue praticando e explorando.

Esta aula é parte do projeto Café com R. É open source. Use, compartilhe e adapte.

Siga o Café com R

  • Que cada gole desperte uma nova ideia.

  • Que cada script abra uma nova conversa.

  • Que o Café com R se torne um ponto de encontro nosso.

SITE OFICIAL > https://jenniferlopes.github.io/meu_site/