Testar Pressupostos Estatísticos

Os principais pressupostos estatísticos são:

  • Normalidade dos resíduos

  • Homocedasticidade (variância constante)

  • Independência das observações

Avaliar esses pressupostos é importante para escolher o teste estatístico mais adequado para descrever seus dados. Isso garante a validade dos resultados obtidos, através de uma maior precisão das conclusões obtidas e da robustez da análise.

Testar a normalidade dos resíduos

Para testar a normalidade dos resíduos, podemos fazer através de análise gráfica (forma visual), e através de testes próprios para isso. A união dos dois métodos é interessante para uma maior certeza do resultado.

Análise gráfica

Pacote datasets

Descrição: Pacote base do R contendo conjuntos de dados clássicos para demonstração e aprendizado. Uso: Fornece exemplos prontos para prática de análise estatística, visualização e modelagem.

if(!require(datasets)) install.packages("datasets")
library(datasets)

insect <- InsectSprays

m2 <- lm(count ~ spray, data = insect)

hist(residuals(m2))

qqnorm(residuals(m2))

# Quanto mais próximos da distribuição diagonal, maior é a chance da normalidade ser presente

Análise com testes

Existem vários testes para analisar a normalidade dos resíduos de um modelo, um exemplo deles é o teste de Shapiro-Wilk O teste de Shapiro-Wilk assume como hipóteses estatísticas: - H0 = Dados seguem a distribuição normal - H1 = Dados não seguem a distribuição normal Ou seja, para valores p menores ou iguais ao alfa estipulado, os dados não seguem a normalidade. E, para valores p maiores que o alfa estipulado, os dados seguem a normalidade.

shapiro.test(residuals(m2))

    Shapiro-Wilk normality test

data:  residuals(m2)
W = 0.96006, p-value = 0.02226

Teste para normaldiade de resíduos com o pacote DHARMa

Pacote DHARMa

Descrição: Ferramentas para diagnóstico de modelos estatísticos, especialmente GLMMs.
Uso: Gera resíduos simulados para verificar a adequação de modelos.

if(!require(DHARMa)) install.packages("DHARMa")
Carregando pacotes exigidos: DHARMa
Warning: pacote 'DHARMa' foi compilado no R versão 4.4.3
This is DHARMa 0.4.7. For overview type '?DHARMa'. For recent changes, type news(package = 'DHARMa')
library(DHARMa)

m2

Call:
lm(formula = count ~ spray, data = insect)

Coefficients:
(Intercept)       sprayB       sprayC       sprayD       sprayE       sprayF  
    14.5000       0.8333     -12.4167      -9.5833     -11.0000       2.1667  
plot(simulateResiduals(m2))

# Com esse comando, você pode avaliar normalidade e homocedasticidade de forma conjunta e prática

Testar a homocedasticidade

Para testar a homogeneidade das variâncias, podemos fazer através de análise gráfica (forma visual), e através de testes próprios para isso. A união dos dois métodos é interessante para uma maior certeza do resultado.

Análise gráfica

Gráfico de Resíduos vs. Valores Ajustados

Melhor para modelos lineares

m2 <- lm(count ~ spray, data = insect)
plot(m2, which = 1) 

Boxplot por Grupo

Melhor para comparação entre grupos

if(!require(ggplot2)) install.packages("ggplot2")
Carregando pacotes exigidos: ggplot2
Warning: pacote 'ggplot2' foi compilado no R versão 4.4.3
library(ggplot2)

ggplot(insect, aes(x = spray, y = count)) +
  geom_boxplot() +
  labs(title = "Variabilidade entre Grupos")

Análise com testes

Geralmente, os testes de homocedasticidade tem as hipóteses estatísticas seguindo o mesmo padrão dos testes de normalidade citados As hipóteses estatísticas normalmente são: - H0 = Dados apresentam variâncias homogêneas - H1 = Dados não apresentam variâncias homogêneas

Existem vários testes para avaliar a homogeneidade de variâncias de modelos, aqui exemplificamos dois bastante utilizados.

Teste F para comparar duas variâncias

if(!require(readxl)) install.packages("readxl")
Carregando pacotes exigidos: readxl
Warning: pacote 'readxl' foi compilado no R versão 4.4.2
library(readxl)
if(!require(tidyr)) install.packages("tidyr")
Carregando pacotes exigidos: tidyr
Warning: pacote 'tidyr' foi compilado no R versão 4.4.3
library(tidyr)
if(!require(dplyr)) install.packages("dplyr")
Carregando pacotes exigidos: dplyr
Warning: pacote 'dplyr' foi compilado no R versão 4.4.3

Anexando pacote: 'dplyr'
Os seguintes objetos são mascarados por 'package:stats':

    filter, lag
Os seguintes objetos são mascarados por 'package:base':

    intersect, setdiff, setequal, union
library(dplyr)

mg<- read_excel("dados-diversos.xlsx",
                       sheet = "magnesio")

mg2 <- mg |>  
  pivot_wider(names_from = trat, values_from = comp) |> 
    select(-rep)

var.test(mg2$Mg2, mg2$control)

    F test to compare two variances

data:  mg2$Mg2 and mg2$control
F = 1.4781, num df = 9, denom df = 9, p-value = 0.5698
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.3671417 5.9508644
sample estimates:
ratio of variances 
          1.478111 

Teste de Bartlett

if(!require(datasets)) install.packages("datasets")
library(datasets)

insect <- InsectSprays

bartlett.test(count ~ spray, data = insect)

    Bartlett test of homogeneity of variances

data:  count by spray
Bartlett's K-squared = 25.96, df = 5, p-value = 9.085e-05