Testes post-hoc

Testes post hoc (“após o fato”) são análises estatísticas realizadas após um teste estatístico significativo (como ANOVA ou Kruskal-Wallis) para identificar quais grupos específicos diferem entre si. Eles controlam o erro tipo I (falsos positivos) quando múltiplas comparações são feitas.

Para Dados Paramétricos

Tukey HSD (Honest Significant Difference)

Ajusta o valor-p para comparações múltiplas.

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

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


anova <- aov(tcm ~ especie, data = micelial)

TukeyHSD(anova)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = tcm ~ especie, data = micelial)

$especie
            diff         lwr         upr     p adj
Faus-Fasi -0.335 -0.56697358 -0.10302642 0.0022625
Fcor-Fasi -0.250 -0.48197358 -0.01802642 0.0301583
Fgra-Fasi -0.660 -0.89197358 -0.42802642 0.0000001
Fmer-Fasi -0.145 -0.37697358  0.08697358 0.3765047
Fcor-Faus  0.085 -0.14697358  0.31697358 0.8168752
Fgra-Faus -0.325 -0.55697358 -0.09302642 0.0031039
Fmer-Faus  0.190 -0.04197358  0.42197358 0.1468574
Fgra-Fcor -0.410 -0.64197358 -0.17802642 0.0002045
Fmer-Fcor  0.105 -0.12697358  0.33697358 0.6761224
Fmer-Fgra  0.515  0.28302642  0.74697358 0.0000074

Para Dados Não Paramétricos

Dunn Test

Versão não paramétrica do Tukey. O mais indicado para testes Kruskal-Wallis

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

Anexando pacote: 'rstatix'
O seguinte objeto é mascarado por 'package:stats':

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

insect <- InsectSprays

kuskal <- kruskal.test(count ~ spray, data = insect)

dunn_e <- dunn_test(count ~ spray, data = insect, p.adjust.method = "bonferroni")

dunn_e
# A tibble: 15 × 9
   .y.   group1 group2    n1    n2 statistic           p      p.adj p.adj.signif
 * <chr> <chr>  <chr>  <int> <int>     <dbl>       <dbl>      <dbl> <chr>       
 1 count A      B         12    12    0.313  0.754       1          ns          
 2 count A      C         12    12   -4.77   0.00000181  0.0000271  ****        
 3 count A      D         12    12   -3.12   0.00182     0.0274     *           
 4 count A      E         12    12   -3.85   0.000118    0.00177    **          
 5 count A      F         12    12    0.406  0.685       1          ns          
 6 count B      C         12    12   -5.09   0.000000364 0.00000546 ****        
 7 count B      D         12    12   -3.43   0.000603    0.00904    **          
 8 count B      E         12    12   -4.16   0.0000314   0.000471   ***         
 9 count B      F         12    12    0.0928 0.926       1          ns          
10 count C      D         12    12    1.66   0.0976      1          ns          
11 count C      E         12    12    0.924  0.356       1          ns          
12 count C      F         12    12    5.18   0.000000222 0.00000333 ****        
13 count D      E         12    12   -0.733  0.464       1          ns          
14 count D      F         12    12    3.52   0.000426    0.00640    **          
15 count E      F         12    12    4.26   0.0000208   0.000312   ***         

Wilcoxon com Correção de Holm

Comparações pareadas com ajuste de valor-p.

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)


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

unaided <- escala |> 
  filter(assessment == "Unaided") |> 
  select(acuracia) |> 
  pull()

aided <- escala |> 
  filter(assessment == "Aided1") |> 
  select(acuracia) |> 
  pull()

pairwise.wilcox.test(unaided, aided, p.adjust.method = "holm")  

    Pairwise comparisons using Wilcoxon rank sum exact test 

data:  unaided and aided 

          0.8511072 0.8796972 0.9027708 0.9067211 0.912698 0.9148087 0.9444713
0.8796972 1         -         -         -         -        -         -        
0.9027708 1         1         -         -         -        -         -        
0.9067211 1         1         1         -         -        -         -        
0.912698  1         1         1         1         -        -         -        
0.9148087 1         1         1         1         1        -         -        
0.9444713 1         1         1         1         1        1         -        
0.9504629 1         1         1         1         1        1         1        
0.9593181 1         1         1         1         1        1         1        
0.9598576 1         1         1         1         1        1         1        
          0.9504629 0.9593181
0.8796972 -         -        
0.9027708 -         -        
0.9067211 -         -        
0.912698  -         -        
0.9148087 -         -        
0.9444713 -         -        
0.9504629 -         -        
0.9593181 1         -        
0.9598576 1         1        

P value adjustment method: holm