Faire un diagramme en barres (ou en bâtons) avec barres d'erreur, c'est facile !
Les barres d'erreur (en général la déviation standard ou intervalle de confiance, parfois les écart-types) s'ajoutent avec la fonctions arrows().
On peut ajouter des lettres ou étoiles pour indiquer si la différence est significative avec la commande text().
Cette partie explique comment ajouter les barres d'erreur à un diagramme en barres (en général les intervalles de confiance) et indiquer par des étoiles ou par des lettres si ces barres présentent une différence significative ou non.
Cette partie vise donc à répondre aux questions suivantes :
Le raisonnement pour tracer un diagramme en bâtons avec des barres d'erreur (déviation standard), le raisonnement est le suivant (en 3 étapes) :
1- Donner un nom au diagramme en barres pour enregistrer la position de chaque barre
bp = barplot(moyennes ) # Avec moyenne une liste de valeurs
2- Encadrer le diagramme
box()
3- Ajouter les barres de confiance avec la fonction arrows()
arrows(bp,moyennes-intervalles,bp, moyennes+intervalles, lwd=1.5, angle=90,length=0.1,code=3)
# avec moyennes une liste de valeurs et intervalles la liste des intervalles de confiance correspondant
Exemple 0.1 - avec la fonction arrows()
A = c(1,3,4,5) ; B = c(3,5,6,3,4) ; C = c(7,6,4,7,5,4,4,4,4)
moyennes = c(mean(A),mean(B),mean(C))
intervalles = c( ((t.test(A)$conf.int[2]-t.test(A)$conf.int[1])/2), ((t.test(B)$conf.int[2]-t.test(B)$conf.int[1])/2), ((t.test(C)$conf.int[2]-t.test(C)$conf.int[1])/2) )
bp = barplot(moyennes,ylim=c(0,10) ); box()
arrows(bp,moyennes-intervalles,bp, moyennes+intervalles, lwd=1.5, angle=90,length=0.1,code=3)
# Remarque : on met parfois les écart-types plutôt que la déviation standard (intervalles de confiance)
Exemple 0.2 - avec la fonction barplot2() de la librairie gplots
# En utilisant les données de l'exemple 1.0
library("gplots") # pensez à faire install.packages("gplots") pour installer gplots
barplot2(moyennes,plot.ci=T,ci.l=moyennes-intervalles,ci.u=moyennes+intervalles,ci.width=0.2,ci.lwd=2,col="orange")
# barplot2 permet de réduire le nombre de lignes de code, mais nécessite une librairie supplémentaire (gplots)
On peut comparer les barres à un témoin et indiquer si une différence est très significative (***) ou moins. Ces différences peuvent se déterminer en calculant des p-values par un test de Student (comparaison de moyennes) ou un Khi² (comparaison d'effectifs ou proportions).
L'écriture suit ce raisonnement :
simulation = barplot(x,plot=F) ; barplot(x)
text(simulation,x+n,c("","**","***")) # à configurer manuellement en fonction des p-values
# x : listes de valeurs
# simulation : permet de simuler la position des barres afin d'en retenir les positions et d'y ajouter les étoiles avec la fonction text
# n : à remplacer par une constante qui donne la valeur qui sépare les étoiles de chaque barre
Exemple 1
x = c(3,4,2) ; simulation = barplot(x,plot=F) ; barplot(x, ylim=c(0,5))
text(simulation,x+0.6,c("","**","***"),cex = 2)
# cex : taille des étoiles
Exemple 2 - Comparaison de 2 échantillons avec un témoin.
x = c(2,3,4,3,2,3,2,1,1); y=c(9,8,7,6,5,4,3,2,1,0,4,4); témoin = c(7,8,9,6,5)
test_x = t.test(témoin,x)$p.value ; test_y = t.test(témoin,y)$p.value
cat("la p-value entre x et le témoin est de ",test_x,"\n")
cat("la p-value entre y et le témoin est de ",test_y,"\n")
# Ajouter les étoiles de significativité : * si p-value de 0.05, ** si 0.01 et *** si 0.001
# Remarque : le 2 ici donne la hauteur où se trouvent les étoiles au-dessus des barres
moyennes = c(mean(témoin),mean(x),mean(y))
simul = barplot(moyennes, plot=F)
barplot(moyennes, ylim=c(0,9),names=c("témoin","x","y"),border=NA,col="purple")
text(simul,moyennes+1,c("","**","*"),cex=2) # Le 1 indique qu'on veut que les étoiles apparaissent 1 unité au-dessus des barres
Exemple 3 - COMBINER - Barres d'erreur + Étoiles de confiance
Étape 1 - compiler les valeurs
x = c(2,2,2,1,2,2,2,2,2); y=c(9,8,7,6,5,4,3,2,1,0,4,4); témoin = c(7,8,9,6,5)
moyennes = c(mean(témoin),mean(x),mean(y))
Étape 2 - comparer les barres par un test de Student // témoin
# Comparaison des moyennes de 3 échantillons x, y et témoin
test_x = t.test(témoin,x)$p.value ; test_y = t.test(témoin,y)$p.value
cat("la p-value entre x et le témoin est de ",test_x,"\n")
cat("la p-value entre y et le témoin est de ",test_y,"\n")
# Ajouter les étoiles de significativité : * si p-value de 0.05, ** si 0.01 et *** si 0.001
Étape 3 - Calculer les intervalles de confiance avec int.ech()
# commandes à copier-coller int.ech provenant de l' aide ici : FONCTION INT.ECH
# il faut copier int.ech ici
err = c(int.ech(témoin),int.ech(x),int.ech(y))
Étape 4 - Tracer le diagramme
# Tracer le graphique
simul = barplot(moyennes, ylim=c(0,9),names=c("témoin","x","y"),col="red")
# Tracer les barres d'erreur
arrows(bp,moyennes-err,simul, moyennes+err, lwd=3, angle=90,length=0.1,code=3)
# Ajouter les étoiles en tenant compte de la taille des barres
text(simul,moyennes +err +1,c("","**","*"),cex=2)
# +1 indique que l'étoile sera 1 unité au-dessus du sommet de la barre d'erreur