Comparação formal por AIC e a verificação correta de normalidade dos resíduos
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/
fitdistrplusContexto: a biomassa radicular de mudas de eucalipto, em gramas, precisa ter sua distribuição identificada antes de compor um modelo estatístico mais amplo.
Olhar um histograma e decidir visualmente “parece uma gamma” é um ponto de partida razoável, mas não substitui a comparação formal entre candidatos, que quantifica qual distribuição se ajusta melhor aos dados observados.
O pacote fitdistrplus ajusta um ou mais candidatos de distribuição por máxima verossimilhança, e fornece medidas objetivas de comparação.
\[AIC = 2k - 2\ln(\hat{L})\]
\(k\) é o número de parâmetros da distribuição, \(\hat{L}\) a verossimilhança maximizada do ajuste.
O AIC penaliza distribuições com mais parâmetros, favorecendo o modelo mais simples entre os que explicam os dados igualmente bem.
Entre candidatos ajustados ao mesmo conjunto de dados, o menor valor de AIC indica o melhor ajuste relativo, não um ajuste absoluto perfeito.
# A tibble: 3 × 2
distribuicao aic
<chr> <dbl>
1 Gamma 472.
2 Log-normal 473.
3 Normal 499.
A comparação por AIC deve sempre ser acompanhada de inspeção visual, o gráfico de densidade sobreposto ao histograma mostra se o ajuste com menor AIC também captura razoavelmente a forma geral dos dados.
Quando dois candidatos têm AIC muito próximos, a escolha pode considerar também a facilidade de interpretação dos parâmetros e o uso pretendido para o modelo ajustado.
Important
Atenção: testar a normalidade da variável resposta bruta, antes de ajustar o modelo, é um erro conceitual frequente. Uma variável resposta pode não ser normal, e ainda assim os resíduos do modelo que a explica podem ser normais, e vice-versa.
O teste de Shapiro-Wilk compara a distribuição empírica dos resíduos a uma distribuição normal teórica, sendo um dos testes mais utilizados para amostras pequenas e moderadas.
É sensível a desvios em qualquer parte da distribuição, mas seu poder cresce com o tamanho da amostra, a ponto de detectar desvios de normalidade tão pequenos que são irrelevantes na prática, quando \(n\) é muito grande.
O teste de Anderson-Darling também compara a distribuição empírica a uma normal teórica, mas atribui peso maior aos desvios nas caudas da distribuição, em vez de peso uniforme ao longo de todo o domínio.
É particularmente útil quando a preocupação principal é a presença de valores extremos que se desviam da normalidade, mesmo que o corpo central da distribuição pareça razoavelmente normal.
modelo_diametro <- lm(diametro_mm ~ idade_meses, data = mudas_eucalipto)
residuos <- residuals(modelo_diametro)
tibble(
shapiro_estatistica = shapiro.test(residuos)$statistic,
shapiro_p = shapiro.test(residuos)$p.value,
anderson_estatistica = ad.test(residuos)$statistic,
anderson_p = ad.test(residuos)$p.value)# A tibble: 1 × 4
shapiro_estatistica shapiro_p anderson_estatistica anderson_p
<dbl> <dbl> <dbl> <dbl>
1 0.985 0.327 0.280 0.639
| Situação | Ferramenta indicada |
|---|---|
| Identificar qual distribuição descreve uma variável, sem suposição prévia | fitdistrplus, comparação por AIC |
| Verificar se um modelo já ajustado atende à suposição de normalidade dos resíduos | Shapiro-Wilk, Anderson-Darling, QQ-plot |
| Variável claramente restrita, positiva, ou limitada entre 0 e 1 | fitdistrplus, testando candidatos compatíveis com o domínio |
Com milhares de observações, o teste de Shapiro-Wilk tende a rejeitar a normalidade mesmo diante de desvios pequenos e irrelevantes na prática, um reflexo do alto poder do teste, não necessariamente de um problema real no modelo.
Nessas situações, o exame visual do QQ-plot é tão ou mais informativo que o valor de p isolado.
| Ferramenta | Função no R | Compara |
|---|---|---|
| fitdistrplus | fitdist(), denscomp() |
Candidatos de distribuição, por AIC |
| Shapiro-Wilk | shapiro.test() |
Resíduos x normal, sensível ao corpo |
| Anderson-Darling | ad.test() |
Resíduos x normal, sensível às caudas |
| QQ-plot | stat_qq() |
Quantis observados x quantis teóricos |
Continue praticando e explorando.
Esta aula é parte do projeto Café com R. É open source. Use, compartilhe e adapte.
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/

Jennifer Lopes | Café com R