Tutoriel : le test de Friedman

Tutoriel test de Friedman

Pour faire suite au tutoriel dédié à l’ANOVA sur mesures répétées, je vous propose un tutoriel sur son alternative non paramétrique : le test de Friedman !

Etant une alternative non paramétrique à l’ANOVA sur mesures répétées, le test de Friedman doit être employé lorsque l’hypothèse de normalité des résidus n’est pas satisfaite. Cette situation se rencontre classiquement lorsque la variable réponse est un score, ou encore une variable ordinale comme un classement.

Data

Pour illustrer cet article nous allons justement envisager, non plus des données longitudinales (comme dans l’article sur l’ANOVA pour mesures répétées – nous aurions également pu employer le test de Friedman), mais des données ordinales. Nous allons considérer que nous avons demandé à 12 personnes de classer quatre gâteaux (citron, vanille, chocolat et pomme) selon leur préférences (le rang 1 correspondant au gâteau préféré), et que nous avons obtenus ces résultats:

 

 

 

Visualisation

La visualisation de ce type de données n’est pas aisée. Même si je ne suis pas très satisfaite, j’ai choisi de faire apparaître toutes les données, ainsi que la moyenne des rangs pour chaque gâteau (losange rouge) :

 

 

 

données ordinales

Remarque : Si vous avez d’autres suggestions, n’hésitez pas à les partager en écrivant un  commentaire à la fin de cet article.

D’après ce graphique, le gâteau préféré est celui à la vanille, suivi de très près par le gâteau au chocolat. Viennent ensuite le gâteau au pommes puis le gâteau au citron.

Les moyennes des rangs peuvent être obtenues comme ceci :

 

Question

On se demande alors si un (ou plusieurs gâteaux) est systématiquement mieux classé (c’est-à-dire préféré aux autres gâteaux). Autrement dit, est-ce que cette préférence que l’on devine à la visualisation est significative ou non ? Et si c’est le cas, on aimerait ensuite comparer les gâteaux deux à deux pour savoir si l’un d’entre eux est toujours préféré, ou bien si certains gâteaux sont comparables en termes de préférence.

Test de Friedman

Statistique du test

La statistique du test de Friedman est définie par :


$$\chi^{2}_{R} =  \frac{12}{n \times  k(k+1)} \sum_{j=1}^{k}R_j^2  – 3n\times (k+1)$$

Avec

  • n: la taille des k échantillons appariés.
  • R\_j : la somme des rangs pour l’échantillon j (Temps j).

Cette statistique est distribuée selon une loi du Chi2 à k-1 degrés de liberté.

Hypothèses

  • H0 : les 4 gâteaux ont des scores identiques ; autrement dit aucun gâteaux n’est préféré.
  • H1 : au moins un des gâteaux tend à obtenir des scores plus faibles que les autres; autrement dit au moins un des gâteaux est préféré aux autres.

Réalisation du test avec R

Pour réaliser le test de Friedman, nous pouvons utiliser la fonction friedman.test() du package stats (chargé par défaut à chaque ouverture de session).

Le terme | sujet permet d’indiquer que les 4 gâteaux ont été classés par les mêmes sujets.  Autrement dit, de lier les scores attribués pour chaque gâteau à une personne donnée.

Ici, la p-value est 0.05, l’hypothèse nulle est donc rejetée. Le corollaire est que l’hypothèse alternative est acceptée. De ce fait, nous pouvons conclure qu’au moins un des gâteaux est préféré.

Comparaisons multiples

Toutes les comparaisons deux à deux

Pour réaliser toutes les comparaisons deux à deux après un test de Friedman, nous pouvons utiliser un test post hoc de Conover, avec ajustement des p-values selon la méthode de Holm.
Ce test est disponible en utilisant la fonction frdAllPairsConoverTes() du package PMCMRplus.

Remarque : Il est nécessaire d’installer ce package avant de le charger. Pour cela, vous pouvez aller dans l’onglet “Packages” de la fenêtre en bas à droite de R Studio. Puis cliquer sur Install, et indiquez le nom du package désiré. Vous trouverez un exemple d’installation de package dans le deuxième paragraphe de cet article.

Les données doivent être présentées sous la forme d’une matrice, sans la variable Sujet, mais avec un nom de ligne :

 

Lorsque toutes les comparaisons sont réalisées deux à deux, et que les p-values sont ajustées en conséquences aucune différence n’apparaît significative

Toutes les comparaisons à un groupe

Dans certaines situations, on peut être intéressé uniquement par les comparaisons deux à deux avec un groupe de référence (le gâteau au citron par exemple). Dans ce cas là, une astuce peut consister à :

  • réaliser toutes les comparaisons deux à deux sans ajuster les p-values,
  • ne garder que les p-values correspondant aux comparaisons souhaitées (tous les gâteaux vs le gâteau citron)
  • ajuster ces p-values, par la méthode de Holm par exemple.

Lorsque seules les comparaisons par rapport au gâteau au citron sont réalisées, les p-values obtenues demeurent au-dessus du seuil de signification de 0.05, mais ont largement diminuées.

Cela est dû au fait que la correction de ces p-values, pour contre-carrer l’augmentation du risque alpha global, est moins importante puisqu’il y a moins de comparaisons à corriger (par rapport à la situation dans laquelle toutes les comparaisons deux à deux sont réalisées). Ici, on peut envisager qu’avec plus de sujet interrogés, il serait sans doute possible de mettre en évidence des différences significatives entre les gâteaux.

Et pour ajouter les p-values sur votre représentation graphique, vous pouvez vous inspirer de cet article.

Conclusion

J’espère qu’avec ce tutoriel, en complément de celui dédié à l’ANOVA sur mesures répétées, vous  n’aurez plus de difficultés à analyser vos données répétées selon une variable catégorielle, et que vous saurez choisir entre les deux méthodes.

Et si cet article vous a plu, n’hésitez pas à le partager !

 

Image par Larry White de Pixabay

 

Poursuivez votre lecture

Partager l'article
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

10 commentaires

  1. lorene Répondre

    Bonjour,
    un grand bravo pour votre travail, j’adore votre site, cela m’aide énormément.

    Une question : lorsque les hypothèses ne sont pas respectées pour faire une anova, comment choisir entre un test de friedman et une transformation box cox ?
    Merci,
    Lorène

    • Claire Della Vedova Auteur de l’articleRépondre

      Bonjour Lorene,

      ma façon de voir les choses et d’utiliser une méthode non paramétrique lorsqu’elle existe, plutôt que la transformation. C’est le cas ici, donc j’utiliserai Friedman en cas de non normalité des données.
      Bonne continuation.

  2. Diam Medekon Répondre

    Morning dear. My comment is not straightly related to this article. I like what you are doing so that we learn many things about data analysis. I was wondering if it possible to download your articles, maybe in pdf format, in order to review it when it will be necessary, without having to seek for your blog necessary.

    • Claire Della Vedova Auteur de l’articleRépondre

      Hi,
      no it’s not possible. A simple solution is to print them in pdf format.
      All the best.

  3. BASSE MOISE Répondre

    S’il vous plait Madame, quelle version de R utilisez-vous, quelles sont les packages à installer et les retrouvent-ont? J’ai compilé le premier code sous Rstudio mais bon nombre de fonctions me sont inconnues.

    Merci.

    Cordialement,

    • Claire Della Vedova Auteur de l’articleRépondre

      Voici les infos. Bonne continuation

      sessionInfo()
      R version 3.6.1 (2019-07-05)
      Platform: x86_64-w64-mingw32/x64 (64-bit)
      Running under: Windows 10 x64 (build 18362)

      Matrix products: default

      locale:
      [1] LC_COLLATE=French_France.1252 LC_CTYPE=French_France.1252
      [3] LC_MONETARY=French_France.1252 LC_NUMERIC=C
      [5] LC_TIME=French_France.1252

      attached base packages:
      [1] stats graphics grDevices utils datasets methods base

      loaded via a namespace (and not attached):
      [1] compiler_3.6.1 tools_3.6.1 packrat_0.5.0

Laisser un commentaire

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