Comment effectuer le test de Friedman dans R



Le test de Friedman est une alternative non paramétrique à l’ANOVA à mesures répétées. Il est utilisé pour déterminer s’il existe ou non une différence statistiquement significative entre les moyennes de trois groupes ou plus dans lesquels les mêmes sujets apparaissent dans chaque groupe.

Ce tutoriel explique comment effectuer le test de Friedman dans R.

Exemple : le test de Friedman dans R

Pour effectuer le test de Friedman dans R, nous pouvons utiliser la fonction friedman.test() , qui utilise la syntaxe suivante :

friedman.test (y, groupes, blocs)

où:

  • y : un vecteur de valeurs de réponse.
  • groupes : un vecteur de valeurs indiquant le « groupe » auquel appartient une observation.
  • blocs : un vecteur de valeurs indiquant la variable « bloquante ».

Cette fonction produit une statistique de test du Chi carré et une valeur p correspondante. Si la valeur p est inférieure à un certain niveau de signification (les choix courants sont 0,10, 0,05 et 0,01), alors il existe suffisamment de preuves que les moyennes entre chacun des groupes ne sont pas égales.

Pour illustrer comment utiliser cette fonction, nous allons créer un ensemble de données qui montre le temps de réaction de cinq patients sur quatre médicaments différents. Puisque chaque patient est mesuré sur chacun des quatre médicaments, nous utiliserons le test de Friedman pour déterminer si le temps de réaction moyen diffère entre les médicaments.

Tout d’abord, nous allons créer l’ensemble de données :

#create data
data <- data.frame(person = rep(1:5, each=4),
                   drug = rep(c(1, 2, 3, 4), times=5),
                   score = c(30, 28, 16, 34, 14, 18, 10, 22, 24, 20,
                             18, 30, 38, 34, 20, 44, 26, 28, 14, 30))

#view data
data

   person drug score
1       1    1    30
2       1    2    28
3       1    3    16
4       1    4    34
5       2    1    14
6       2    2    18
7       2    3    10
8       2    4    22
9       3    1    24
10      3    2    20
11      3    3    18
12      3    4    30
13      4    1    38
14      4    2    34
15      4    3    20
16      4    4    44
17      5    1    26
18      5    2    28
19      5    3    14
20      5    4    30

Ensuite, nous effectuerons le test de Friedman en utilisant le score comme variable de réponse, le médicament comme variable de regroupement et la personne comme variable de blocage :

#perform Friedman Test
friedman.test(y=data$score, groups=data$drug, blocks=data$person)

	Friedman rank sum test

data:  data$score, data$drug and data$person
Friedman chi-squared = 13.56, df = 3, p-value = 0.00357

La statistique du test du Chi carré est de 13,56 et la valeur p correspondante est de 0,00357 . Cette valeur p étant inférieure à 0,05, nous pouvons rejeter l’hypothèse nulle selon laquelle le temps de réponse moyen est le même pour les quatre médicaments. Nous disposons de suffisamment de preuves pour conclure que le type de médicament utilisé entraîne des différences statistiquement significatives dans le temps de réponse.

Bien qu’un test de Friedman nous indique s’il existe des différences dans les temps de réponse moyens entre les médicaments, il ne nous indique pas spécifiquement quels médicaments ont des temps de réponse moyens différents. Pour le comprendre, nous devons effectuer des tests post-hoc.

Pour un test de Friedman, le test post-hoc approprié est le test de somme des rangs de Wilcoxon par paire avec une correction de Bonferroni, qui peut être implémenté en utilisant la syntaxe suivante :

pairwise.wilcox.test(data$score, data$drug, p.adj = « bonf »)

où:

  • x : vecteur de réponse
  • g : vecteur de regroupement
  • p.adj : méthode d’ajustement des valeurs p ; les options incluent holm, hochberg, hommel, bonferroni, BH, BY, fdr et aucun

Voici la syntaxe que nous utiliserons pour notre exemple :

#perform post-hoc tests
pairwise.wilcox.test(data$score, data$drug, p.adj = "bonf")
	Pairwise comparisons using Wilcoxon rank sum test 

data:  data$score and data$drug 

  1     2     3    
2 1.000 -     -    
3 0.449 0.210 -    
4 1.000 1.000 0.072

P value adjustment method: bonferroni 

Cela produit une matrice qui montre la valeur p pour chaque test de somme des rangs de Wilcoxon par paire. Nous pouvons voir que les seuls groupes de médicaments qui présentent une différence statistiquement significative à 0,10 sont les groupes 3 et 4 ( p = 0,072 ).

Ajouter un commentaire

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