Ajouter les pvalues sur un ggplot, manuellement

ajouter les pvalues sur un ggplot

A la fin d’une analyse de données, on réalise généralement un graph pour synthétiser les résultats obtenus. Par exemple, dans le cadre d’une ANOVA à un facteur (qui sert à comparer plusieurs moyennes), on pourrait vouloir réaliser ce genre de graph :

 

ajouter les pvalues sur ggplot

J’ai déjà évoqué, ici et , plusieurs solutions pour ajouter les pvalues sur un ggplot, ou plus généralement pour ajouter les significativités des comparaisons (en utilisant les p-values, des lettres ou des étoiles), dans un ggplot.

Dans chacune de ces solutions, l’ajout était réalisé de façon plus ou moins automatisée, par l’utilisation d’une fonction.

Mais il existe des situations dans lesquelles ces fonctions ne peuvent pas être employées. C’est le cas, par exemple, lorsqu’on réalise une analyse de type Anova à deux facteurs en employant un GLM (parce que la réponse est de type comptage).

Je vais donc vous montrer comment ajouter les pvalues sur un ggplot, ou plus généralement comment ajouter du texte.

 

Pré requis : Pour tirer profit de cet article, je vous recommande de lire l’article: Introduction à la visualisation sous R avec le package ggplot2.

 

1. Principe de l’ajout manuel de texte

La méthode pour ajouter les pvalues sur un ggplot, ou n’importe quel texte, consiste à utiliser :

  • la fonction geom_segment() pour créer des traits horizontaux et verticaux (comme dans le plot juste au dessus),
  • la fonction annotate() (de ggplot2) pour ajouter le texte,
  • tâtonner pour définir les positions (les coordonnées x, y) des traits et du texte !

 

 

2. Tutoriel pour ajouter du texte de façon manuelle sur un ggplot

2.1 Les data utilisées

Pour vous montrer comment ajouter les pvalues sur un ggplot, de façon manuelle, je vais utiliser les données warpbreaks du package dataset chargé par défaut.

Ces données concernent le nombre de ruptures de chaîne par métier à tisser en fonction de 2 types de laines (A et B) et 3 niveaux de tension (High / Medium /Low).

 

On peut visualiser les données, en utilisant ce graph :

 

ajouter les pvalue sur un ggplot

 

 

2.2 Acquisition des pvalues

Imaginons que, pour une raison ou un autre, ce que nous souhaitons, c’est comparer les niveaux moyens de cassures (breaks) observées sur les laines de type A et B, pour chaque niveau de tension.

C’est sans doute possible de le faire après ajustement d’un modèle complet de type anova à deux facteurs, puis en utilisant des contrasts, mais, ici, on va le faire plus simplement.

On va réaliser tous les tests deux à deux, mais de façon automatisée ! (grâce aux fonctions map). Comme la variable breaks est une variable de comptage, c’est à dire une variable numérique entière discrète, il est nécessaire d’utiliser un glm, avec une distribution de poisson (ou quasi poisson en cas de surdispersion, comme c’est le cas ici).

Pour plus de détail sur les glm sur données de comptage, vous pouvez consulter cet article.

 

Si vous ne comprenez pas le code allez voir cet article.

Comme je suis sensibilisée au problème de l’augmentation du risque alpha global lors de la réalisation de multiple comparaisons, je décide d’ajuster les p-values obtenues selon la méthode de Holm.

 

 

3.3 Ajout des pvalues sur le ggplot

 3.3.1 Le plot de base

 

ajouter les pvalue sur un ggplot

3.3.2 Création des traits pour le niveau low

Je décide d’indiquer la pvalue dans la partie supérieur du graph, entre les valeurs y=75 et y=100.

Il faut savoir que sur l’axe des x, le niveau L correspond à la valeur 1, le niveau M à la valeur 2, le niveau H à la valeur 3.

Pour réaliser ces traits, on utilise la couche geom_segment()

 

traits sur ggplot

La détermination des valeur x, xend, y, yend, se fait en tâtonnant un peu….

 

 

3.3.3 Ajout de la pvalue sur le ggplot pour le niveau low

 

Pour ajouter du texte sur le ggplot, on utilise la fonction annotate()

 

ajouter une pvalue sur un graph avec le logiciel R

3.3.4 Pour l’ensemble des niveaux

Il suffit alors de faire la même chose pour l’ensemble des niveaux :

 

ajouter les pvalues sur un ggplot

Que pensez vous de cette solution ? Si vous en avez une autre, indiquez la moi en commentaire.

Et si cet article vous a plu, partagez le sur les réseaux sociaux en cliquant sur les petits logos en haut à gauche 😉

 

Poursuivez votre lecture : 

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

Laisser un commentaire

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