7  Testes não paramétricos

7.1 O que são testes não paramétricos

Testes não paramétricos são métodos de inferência que não assumem uma forma específica para a distribuição dos dados. Em vez de trabalhar diretamente com os valores observados, a maioria opera sobre as ordens (ranks) das observações.

São a alternativa natural quando:

  • Os dados violam o pressuposto de normalidade de forma severa
  • O tamanho amostral é pequeno (n < 30 por grupo), tornando o TCL menos eficaz
  • A variável resposta é ordinal
  • Os dados contêm muitos outliers que não podem ser removidos
Conceito

Testes não paramétricos não são “sem suposições” - eles têm suas próprias premissas, como independência das observações e, em alguns casos, simetria da distribuição. O termo correto seria “livre de distribuição”.

7.2 Diagrama de decisão

Comparar dois grupos independentes
├── Normalidade atendida? → Teste t independente
└── Normalidade violada? → Mann-Whitney U (Wilcoxon rank-sum)

Comparar dois grupos pareados
├── Normalidade atendida? → Teste t pareado
└── Normalidade violada? → Wilcoxon signed-rank

Comparar três ou mais grupos
├── Normalidade atendida? → ANOVA one-way
└── Normalidade violada? → Kruskal-Wallis
    └── Significativo? → Dunn post-hoc com correção de Bonferroni

7.3 Paramétrico - não paramétrico: quando usar cada um

Critério Paramétrico Não paramétrico
Pressuposto central Normalidade dos dados/resíduos Nenhum sobre distribuição
Tipo de dados Contínuos/intervalar Contínuos, ordinais ou contagens
Tamanho amostral n ≥ 30 por grupo (mais robusto) Qualquer tamanho
Poder estatístico Maior quando pressupostos atendidos Ligeiramente menor
Sensível a outliers Sim Não (usa ranks)
Atenção

Testes não paramétricos têm menor poder estatístico do que os paramétricos equivalentes quando os pressupostos da versão paramétrica são atendidos. Usá-los por precaução quando a normalidade está presente é desperdiçar informação dos dados.

7.4 Mann-Whitney U (Wilcoxon rank-sum)

Alternativa ao teste t independente. Testa se as distribuições de dois grupos independentes são iguais (mais precisamente, se os ranks tendem a ser similares).

Hipóteses:

  • H₀: as distribuições dos dois grupos são iguais
  • H₁: as distribuições diferem
mw_resultado <- wilcox.test(
  uptake ~ Type,
  data     = CO2,
  exact    = FALSE,
  conf.int = TRUE)

data.frame(
  Comparacao    = "Quebec vs Mississippi",
  Estatistica_W = mw_resultado$statistic,
  P_valor       = round(mw_resultado$p.value, 4),
  Conclusao     = ifelse(mw_resultado$p.value < 0.05,
                         "Rejeita H0 - diferenca significativa",
                         "Nao rejeita H0")) |>
  kable(caption = "Teste de Mann-Whitney U - comparacao entre origens")
Teste de Mann-Whitney U - comparacao entre origens
Comparacao Estatistica_W P_valor Conclusao
W Quebec vs Mississippi 1489 0 Rejeita H0 - diferenca significativa

7.5 Wilcoxon signed-rank (amostras pareadas)

Alternativa ao teste t pareado. Compara duas amostras relacionadas - mesmos sujeitos em duas condições, ou pares naturalmente relacionados.

Contexto no dataset CO2

No dataset CO2, cada planta recebeu apenas um tratamento (nonchilled ou chilled), sem medidas repetidas entre tratamentos. Para demonstrar o teste pareado, comparamos a absorção das mesmas plantas em duas concentrações consecutivas, que constituem pares naturais de medidas repetidas.

pares <- CO2 |>
  filter(conc %in% c(175, 350)) |>
  select(Plant, conc, uptake) |>
  pivot_wider(
    names_from   = conc,
    values_from  = uptake,
    names_prefix = "conc_") |>
  drop_na()

ws_resultado <- wilcox.test(
  pares$conc_175,
  pares$conc_350,
  paired = TRUE,
  exact  = FALSE)

data.frame(
  Comparacao    = "Concentracao 175 vs 350 mL/L (pares por planta)",
  N_pares       = nrow(pares),
  Estatistica_V = ws_resultado$statistic,
  P_valor       = round(ws_resultado$p.value, 4),
  Conclusao     = ifelse(ws_resultado$p.value < 0.05,
                         "Rejeita H0 - diferenca significativa",
                         "Nao rejeita H0")) |>
  kable(caption = "Teste de Wilcoxon signed-rank - concentracoes pareadas")
Teste de Wilcoxon signed-rank - concentracoes pareadas
Comparacao N_pares Estatistica_V P_valor Conclusao
V Concentracao 175 vs 350 mL/L (pares por planta) 12 1 0.0033 Rejeita H0 - diferenca significativa

7.6 Kruskal-Wallis

Alternativa à ANOVA one-way. Testa se três ou mais grupos independentes têm a mesma distribuição.

Hipóteses:

  • H₀: todas as distribuições dos grupos são iguais
  • H₁: pelo menos um grupo difere dos demais
CO2 <- CO2 |>
  mutate(grupo = interaction(Type, Treatment))

kw_resultado <- kruskal.test(uptake ~ grupo, data = CO2)

data.frame(
  Qui_quadrado    = round(kw_resultado$statistic, 3),
  Graus_liberdade = kw_resultado$parameter,
  P_valor         = round(kw_resultado$p.value, 4),
  Conclusao       = ifelse(kw_resultado$p.value < 0.05,
                           "Rejeita H0 - pelo menos um grupo difere",
                           "Nao rejeita H0")) |>
  kable(caption = "Teste de Kruskal-Wallis - comparacao entre grupos")
Teste de Kruskal-Wallis - comparacao entre grupos
Qui_quadrado Graus_liberdade P_valor Conclusao
Kruskal-Wallis chi-squared 38.143 3 0 Rejeita H0 - pelo menos um grupo difere

7.6.1 Post-hoc de Dunn

Quando o Kruskal-Wallis é significativo, o teste de Dunn identifica quais pares diferem entre si, com correção para múltiplas comparações.

CO2 |>
  rstatix::dunn_test(uptake ~ grupo, p.adjust.method = "bonferroni") |>
  select(group1, group2, statistic, p, p.adj, p.adj.signif) |>
  kable(
    digits  = 4,
    caption = "Teste de Dunn com correcao de Bonferroni")
Teste de Dunn com correcao de Bonferroni
group1 group2 statistic p p.adj p.adj.signif
Quebec.nonchilled Mississippi.nonchilled -3.0714 0.0021 0.0128 *
Quebec.nonchilled Quebec.chilled -1.1640 0.2444 1.0000 ns
Quebec.nonchilled Mississippi.chilled -5.7727 0.0000 0.0000 ****
Mississippi.nonchilled Quebec.chilled 1.9074 0.0565 0.3389 ns
Mississippi.nonchilled Mississippi.chilled -2.7013 0.0069 0.0414 *
Quebec.chilled Mississippi.chilled -4.6086 0.0000 0.0000 ****

7.7 Visualização dos resultados

ggplot(CO2, aes(x = grupo, y = uptake, fill = grupo)) +
  geom_boxplot(alpha = 0.7, outlier.color = "#6B4F4F") +
  geom_jitter(width = 0.15, alpha = 0.4, size = 1.5, color = "#224573") +
  scale_fill_manual(values = c("#224573", "#4A6FA5", "#6B4F4F", "#E5D3B3")) +
  labs(
    title    = "Absorção de CO₂ por grupo experimental",
    subtitle = "Pontos individuais sobrepostos ao boxplot",
    x = "Grupo",
    y = "Absorção de CO₂ (μmol/m²s)",
  caption = "Jennifer Luz Lopes | Café com R") +
  theme_classic(base_size = 13) +
  theme(
    plot.title      = element_text(color = "#224573", face = "bold"),
    legend.position = "none",
    axis.text.x     = element_text(angle = 15, hjust = 1))

Boas práticas

Ao reportar resultados de testes não paramétricos, indique qual teste foi usado, a estatística de teste (W, V ou H), o p-valor e, quando possível, uma medida de tamanho de efeito. Para Mann-Whitney, a correlação de classificação de Wilcoxon (r = Z/√n) é uma opção prática.

Mercado e pesquisa

Testes não paramétricos são amplamente usados em pesquisas clínicas (escalas de dor, satisfação), ciências sociais (variáveis ordinais) e biologia experimental com amostras pequenas. Dominá-los é essencial para uma análise estatística completa.