Comment effectuer le test de Dunn dans R



Un test de Kruskal-Wallis est utilisé pour déterminer s’il existe ou non une différence statistiquement significative entre les médianes de trois groupes indépendants ou plus. Elle est considérée comme l’équivalent non paramétrique de l’ ANOVA unidirectionnelle .

Si les résultats d’un test de Kruskal-Wallis sont statistiquement significatifs, il est alors approprié d’effectuer le test de Dunn pour déterminer exactement quels groupes sont différents.

Ce didacticiel explique comment effectuer le test de Dunn dans R.

Exemple : test de Dunn dans R

Un chercheur veut savoir si trois médicaments ont des effets différents sur les maux de dos. Il recrute donc 30 personnes qui souffrent toutes de maux de dos similaires et les divise au hasard en trois groupes pour recevoir soit le médicament A, soit le médicament B, soit le médicament C. Un mois après avoir pris le médicament, le chercheur demande à chaque individu d’évaluer son mal de dos sur une échelle de 1 à 100, 100 indiquant la douleur la plus intense.

Le chercheur effectue un test de Kruskal-Wallis en utilisant un niveau de signification de 0,05 pour déterminer s’il existe une différence statistiquement significative entre les évaluations médianes des maux de dos dans ces trois groupes.

Le code suivant montre comment créer le bloc de données dans R et effectuer un test de Kruskal-Wallis :

#make this example reproducible
set.seed(0)

#create data frame
data <- data.frame(drug = rep(c("A", "B", "C"), each = 10),
                   pain = c(runif(10, 40, 60),
                            runif(10, 45, 65),
                            runif(10, 55, 70)))

#view first six rows of data frame
head(data)

#  drug     pain
#1    A 57.93394
#2    A 45.31017
#3    A 47.44248
#4    A 51.45707
#5    A 58.16416
#6    A 44.03364

#perform Kruskal-Wallis Test
kruskal.test(pain ~ drug, data = data)

	Kruskal-Wallis rank sum test

data:  pain by drug
Kruskal-Wallis chi-squared = 11.105, df = 2, p-value = 0.003879

Étant donné que la valeur p globale ( 0,003879 ) est inférieure à 0,05, cela signifie qu’il existe une différence statistiquement significative entre les niveaux de douleur rapportés entre les trois médicaments. Ainsi, nous pouvons effectuer le test de Dunn pour déterminer exactement quels médicaments sont différents.

Le code suivant montre comment effectuer le test de Dunn dans R en utilisant la fonction dunnTest() de la bibliothèque FSA() :

#load library
library(FSA)

#perform Dunn's Test with Bonferroni correction for p-values
dunnTest(pain ~ drug,
         data=data,
         method="bonferroni")

Dunn (1964) Kruskal-Wallis multiple comparison
  p-values adjusted with the Bonferroni method.

  Comparison          Z     P.unadj       P.adj
1      A - B -0.8890009 0.374002602 1.000000000
2      A - C -3.2258032 0.001256197 0.003768591
3      B - C -2.3368023 0.019449464 0.058348393

Notez que nous avons choisi d’utiliser une correction de Bonferroni pour les valeurs p des comparaisons multiples, mais d’autres options possibles incluent :

  • « sidak » (ajustement Sidak)
  • « holm » (Ajustement Holm)
  • « hs » (ajustement Holm-Sidak)
  • «bs» (Ajustement Bonferroni-Sidak)
  • « par » (Ajustement Benjamin-Yekuteili)
  • «bh» ( procédure Benjamini-Hochberg )

À α = 0,05, les médicaments A et C sont les deux seuls médicaments qui sont statistiquement significativement différents l’un de l’autre (valeur p ajustée = 0,003768 ).

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *