Diagramme en barres avec intervalles de confiance

Exemple en langage R


  • Imaginons deux exhausteurs de goût ayant été testés sur 10 consommateurs : comment savoir si ces additifs ont un effet réellement positif ou seulement dû au hasard ?


Mots clefs : diagramme en barres avec le logiciel R - R Project CRAN - avec barres d'erreur - intervalles de confiance - étoiles de significativité - test de Student - significativité
Diagramme en barres avec intervalles de confiance sous R (logiciel R)

Les tests de Student établissent une différence non-significative entre l'additif 1 et le témoin (p-value de 0.07) ainsi qu'une différence significative à 99% de l'additif 2 avec le témoin (** pour une p-value de 0.003)

Étape 1 - Comment entrer les valeurs dans R

# Liste de notes hédonique (condition sans additif) : notes_temoin
notes_temoin = c(1,6,3,5,2,2,5,5,4,6)
# Liste de notes hédonique (condition sans additif) : notes_add1
notes_add1 = c(10,0,10,10,0,10,10,10,10,0)
# Liste de notes hédonique (condition sans additif) : notes_add2
notes_add2 = c(5,6,6,6,6,7,7,6,6,5)

Étape 2 - Calculer la note moyenne pour chaque condition testée.

# Calculer les moyennes et les nommer : 
# moyenne_temoin, moyenne_add1 et moyenne_add2 
moyenne_temoin = mean(notes_temoin)
moyenne_add1 = mean(notes_add1)
moyenne_add2 = mean(notes_add2)
# Afficher les valeurs des moyennes
moyenne_temoin
moyenne_add1
moyenne_add2
# Regrouper les moyennes dans une liste
moyenne_liste = c(moyenne_temoin, moyenne_add1, moyenne_add2)
moyenne_liste

A ce stade : les moyennes sont :

  • L'additif 1 semblerait donc, au vu des de ces seules moyennes, être le meilleur additif.

Témoin

3.9

Additif 1

7

Additif 2

6

Étape 3 - Afficher les moyennes sous forme d'un diagramme en barres (cf. aide).

# Paramétrer le diagramme mis en forme
    # Titre du graphique : titre
    titre = "Impacts d'exhausteurs de goûts sur la note hédonique moyenne d'un plat alimentaire"
    # Titre de l'axe y : titre_axe_y
    titre_axe_y = "Note hédonique de 0 à 10"
    # Titres de barres : titre_barres
    titre_barres = c("Témoin","Additif 1","Additif 2")
# Tracer le diagramme
toto = barplot(moyenne_liste,ylab=titre_axe_y, names=titre_barres, xlab = titre, cex.lab=1,cex.names=1.5, col="red",space=1, ylim = c(0,11.5))
    #cex.names = taille de la police des titres des barres
    #cex.lab = titre des axes
    #col = couleur des barres
    #space = espace entre les barres
    # ylim : échelle de l'axe y - ici de 0 à 11.5 (on va au-delà de 01 pour pouvoir voir la barre d'erreur)
    # le nom de toto a été donné ici au diagramme afin de pouvoir utiliser ses caractéristiques pour ajouter les barres d'erreurs
# Encadrement du graphique
box()

Étape 4 - Calculer les intervalles de confiance (aide ici)

# Charger la fonction de calcul des intervalles de confiance int.ech - aide sur cette commande ici

# La commande int.ech est à copier ici puis à coller dans la console R

# Calculs des 3 intervalles de confiance des 3 barres
int_temoin = int.ech(notes_temoin,0.95)
int_add1 = int.ech(notes_add1,0.95)
int_add2 = int.ech(notes_add2,0.95)
# Intervalles à 95% de confiance par défaut. Si on avait voulu des barres de confiance à 99%, il aurait fallu écrire par exemple :
#int_temoin = int.ech(notes_temoin, 0.99)
# Regroupement des 3 intervalles dans une liste et affichage
int_liste = c(int_temoin, int_add1, int_add2)
cat("Les intervalles de confiance sont de : ",int_liste,"\n")

A ce stade : les intervalles de confiance sont :

  • L'additif 1 semblerait présenter une grande variabilité qui suggère que l'on ne peut avoir confiance dans sa qualité.

Témoin

1,3

Additif 1

3,5

Additif 2

0,5

Étape 5 - Superposer les barres d'erreur au diagramme (intervalles de confiance) (aide ici)

# Ajouter les barres d'erreur (intervalles de confiance)
arrows(toto,moyenne_liste-int_liste,toto, moyenne_liste+int_liste, lwd=2, angle=90,length=0.1,code=3) 
# lwd : épaisseur du trait des barres d'erreur
# angle : permet d'avoir des barres se terminant par un segment à angle droit
# length :longueur des segments limitant les barres d'erreur
# code : 3 implique des barres avec segments terminaux, 0  sans segments 
box()

Étape 6 - Faire un test de Student pour comparer les deux additifs au témoin afin de voir s'il existe une différence réelle, significative, non-due au hasard entre les moyennes obtenues avec les additifs et le témoin sans additif

# Le test t de Student permet de faire des comparaisons deux moyennes : chaque barre est comparée ainsi au témoin
test_add1 = t.test(notes_temoin, notes_add1, var.equal=TRUE)
test_add2 = t.test(notes_temoin, notes_add2, var.equal=TRUE)
# Récupération des valeurs de p-value : cette valeur est la probabilité qu'il n'y ait pas de différence entre les barres ==> une p-value faible indique une différence significative
test_add1$p.value
test_add2$p.value
# si p.value > 0.05 : on n'observe pas de différence significative.
# si p.value < 0.05 : probabilité de 95% qu'il y ait une différence réelle - on observe donc une différence significative.
# si p.value < 0.01 : probabilité de 99% qu'il y ait une différence réelle - c'est donc significatif.
# si p.value < 0.001 : probabilité de 1‰ qu'il n'y ait pas une différence réelle - c'est donc significatif - puisque la probabilité que la différence soit réelle est de 99,9%
#Ajout des étoiles de significativité au-dessus des barres :
# * Probabilité d'identicité : 5% <-> p-value <= 0,05
# ** Probabilité d'identicité : 1% <-> p-value <= 0,01
# *** Probabilité d'identicité : 1 sur 1000 <-> p-value <= 0,001

A ce stade : les p.value calculées par le test de Student par rapport au témoin sont :

  • L'additif 1 ne provoque pas une amélioration significative du goût (p.value > 0.05).
  • L'additif 2 provoque une amélioration significative du goût à 99% (p.value < 0.01).

Additif 1

0.07

Additif 2

0.003

Étape 7 - En fonction des résultats des test de Student (p-values), superposer des étoiles de confiance au diagramme (à configurer manuellement)

# Ajouter les étoiles sur le diagramme
text(toto,moyenne_liste+1,c("","","**"),cex=2)
# On ne met pas d'étoile au-dessus du témoin
# Le 1 en rouge définit la position de l'étoile au-desus de la barre, 1 unité au-dessus ici.
# cex : taille des étoiles

Étape 8 - Calculer les différences entre les deux moyennes (aide ici)

#Ici, on a des échantillons appariés : c'est à dire que les notes hédoniques pour chaque plat (avec ou sans exhausteur de goût) ont été obtenus avec les mêmes consommateurs testeurs.
# ==> Le calcul de la différence entre témoin et plats avec additifs se fait selon la démarche suivante : (Wonnacott, p303 et non l'autre cas p299)
# Différence entre les deux moyennes
diff_add1 = moyenne_add1-moyenne_temoin
diff_add2 = moyenne_add2-moyenne_temoin
# Confiance dans les différences calculées
int_diff_add1 = int.ech(notes_add1-notes_temoin)
int_diff_add2 = int.ech(notes_add2-notes_temoin)
int_diff_add1
int_diff_add2
# Résultats : différences en pourcents
diff_add1_percents = ((diff_add1)/moyenne_temoin)*100
diff_add2_percents = ((diff_add2)/moyenne_temoin)*100
diff_add1_percents
diff_add2_percents
# Résultats : intervalles de confiance en pourcents
int_diff_add1_percents = (int_diff_add1/moyenne_temoin)*100
int_diff_add2_percents = (int_diff_add2/moyenne_temoin)*100
int_diff_add1_percents
int_diff_add2_percents

Ainsi, l'effet bénéfique des exhausteurs de goût additifs 1 et 2 sur la note hédonique d'un plat est de :

  • Ainsi, on constate bien que l'additif 1 n'a pas d'effet significatif : il peut entraîner une amélioration du goût de 182%, ou une diminution de 24%...
  • En revanche l'additif 2 améliore le goût potentiellement de minimum 19% et maximum de 89% : il vaut donc la peine d'être commercialisé.

Additif 1

+79% ±103%

Additif 2

+54% ±35%