Dans mon domaine de recherche, une façon populaire d'afficher des données consiste à utiliser une combinaison d'un graphique à barres avec des "poignées". Par exemple,
Les "guidons" alternent entre les erreurs types et les écarts types selon l'auteur. En règle générale, les tailles d'échantillon pour chaque "barre" sont assez petites - environ six.
Ces parcelles semblent être particulièrement populaires dans les sciences biologiques - voir les premiers articles de BMC Biology, vol 3 pour des exemples.
Alors, comment présenteriez-vous ces données?
Pourquoi je n'aime pas ces intrigues
Personnellement, je n'aime pas ces parcelles.
- Lorsque la taille de l'échantillon est petite, pourquoi ne pas simplement afficher les points de données individuels.
- Est-ce le sd ou le se qui est affiché? Personne n'accepte lequel utiliser.
- Pourquoi utiliser des barres du tout. Les données ne vont pas (généralement) de 0 mais un premier passage sur le graphique suggère que c'est le cas.
- Les graphiques ne donnent aucune idée de la plage ou de la taille de l'échantillon des données.
Script R
Il s'agit du code R que j'ai utilisé pour générer l'intrigue. De cette façon, vous pouvez (si vous le souhaitez) utiliser les mêmes données.
#Generate the data
set.seed(1)
names = c("A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3")
prevs = c(38, 37, 31, 31, 29, 26, 40, 32, 39)
n=6; se = numeric(length(prevs))
for(i in 1:length(prevs))
se[i] = sd(rnorm(n, prevs, 15))/n
#Basic plot
par(fin=c(6,6), pin=c(6,6), mai=c(0.8,1.0,0.0,0.125), cex.axis=0.8)
barplot(prevs,space=c(0,0,0,3,0,0, 3,0,0), names.arg=NULL, horiz=FALSE,
axes=FALSE, ylab="Percent", col=c(2,3,4), width=5, ylim=range(0,50))
#Add in the CIs
xx = c(2.5, 7.5, 12.5, 32.5, 37.5, 42.5, 62.5, 67.5, 72.5)
for (i in 1:length(prevs)) {
lines(rep(xx[i], 2), c(prevs[i], prevs[i]+se[i]))
lines(c(xx[i]+1/2, xx[i]-1/2), rep(prevs[i]+se[i], 2))
}
#Add the axis
axis(2, tick=TRUE, xaxp=c(0, 50, 5))
axis(1, at=xx+0.1, labels=names, font=1,
tck=0, tcl=0, las=1, padj=0, col=0, cex=0.1)
la source
Réponses:
Merci pour toutes vos réponses. Pour être complet, j'ai pensé que je devrais inclure ce que je fais habituellement. J'ai tendance à faire une combinaison des suggestions données: les points, les boîtes à moustaches (lorsque n est grand) et les plages se (ou sd).
( Supprimé par le modérateur car le site hébergeant l'image ne semble plus fonctionner correctement. )
D'après le graphique en points, il est clair que les données sont beaucoup plus réparties que les graphiques en "guidon" suggèrent. En fait, il y a une valeur négative dans A3!
J'ai fait de cette réponse un CW donc je ne gagne pas de rep
la source
Frank Harrell (le plus excellent) keynote intitulé "Information Allergy" at useR! le mois dernier a montré des alternatives à celles-ci: plutôt que de masquer les données brutes via l'agrégation fournie par les barres, les données brutes sont également affichées sous forme de points (ou points). "Pourquoi cacher les données?" était le commentaire de Frank.
Compte tenu du mélange alpa, cela semble être une suggestion la plus judicieuse (et le discours le plus plein de bonnes et importantes pépites).
la source
jitter
est également en clair R.D'un point de vue psychologique, je préconise de tracer les données ainsi que votre incertitude sur les données. Ainsi, dans une intrigue comme vous le montrez, je ne prendrais jamais la peine d'étendre les barres jusqu'à zéro, ce qui ne sert qu'à minimiser la capacité de l'œil à distinguer les différences dans la plage des données.
De plus, je suis franchement anti-bargraph; les graphiques à barres mettent en correspondance deux variables avec le même attribut esthétique (emplacement sur l'axe des x), ce qui peut prêter à confusion. Une meilleure approche consiste à éviter une cartographie esthétique redondante en mappant une variable sur l'axe des x et une autre variable sur un autre attribut esthétique (par exemple, la forme ou la couleur du point ou les deux).
Enfin, dans votre graphique ci-dessus, vous n'incluez que des barres d'erreur au-dessus de la valeur, ce qui entrave la capacité de comparer les intervalles d'incertitude par rapport aux barres au-dessus et en dessous de la valeur.
Voici comment je tracerais les données (via le package ggplot2). Notez que j'ajoute des lignes reliant des points dans la même série; certains soutiennent que cela n'est approprié que lorsque les séries sur lesquelles les lignes sont connectées sont numériques (comme cela semble être le cas dans ce cas), mais tant qu'il existe une relation ordinale raisonnable entre les niveaux de la variable de l'axe des x, je pense les lignes de connexion sont utiles pour aider l'œil à associer des points sur l'axe des x. Cela peut devenir particulièrement utile pour détecter des interactions qui se démarquent vraiment des lignes.
la source
geom_ribbon()
indiquant l'erreur. Si vous n'aimez pas produire des estimations apparentes pour les régions comprises entre 1 et 2, réduisez au moins la largeur de la barre d'erreur.Je suis curieux de savoir pourquoi vous n'aimez pas ces intrigues. Je les utilise tout le temps. Sans vouloir énoncer l'évidence de la floraison, ils vous permettent de comparer les moyennes de différents groupes et de voir si leurs IC à 95% se chevauchent (c'est-à-dire que la vraie moyenne est susceptible d'être différente).
Il est important de trouver un équilibre entre simplicité et informations à des fins différentes, je suppose. Mais lorsque j'utilise ces tracés, je dis: «ces deux groupes sont différents l'un de l'autre d'une manière importante» [ou pas].
Cela me semble très bien, mais je serais intéressé d'entendre des contre-exemples. Je suppose implicite dans l'utilisation de l'intrigue est que les données n'ont pas une distribution bizzare qui rend la moyenne invalide ou trompeuse.
la source
Si les données sont des taux : c'est-à-dire le nombre de succès divisé par le nombre d'essais, alors une méthode très élégante est un graphique en entonnoir. Par exemple, voir http://qshc.bmj.com/content/11/4/390.2.full (excuses si le lien nécessite un abonnement - faites le moi savoir et j'en trouverai un autre).
Il peut être possible de l'adapter à d'autres types de données, mais je n'ai vu aucun exemple.
MISE À JOUR:
Voici un lien vers un exemple qui ne nécessite pas d'abonnement (et a une bonne explication sur la façon dont ils pourraient être utilisés): http://understandinguncertainty.org/fertility
Ils peuvent être utilisés pour des données non tarifaires, en traçant simplement la moyenne par rapport à l'erreur standard, mais ils peuvent perdre une partie de leur simplicité.
L'article de wikipedia n'est pas génial, car il ne traite que de leur utilisation dans les méta-analyses. Je dirais qu'ils pourraient être utiles dans de nombreux autres contextes.
la source
J'utiliserais des boxplots ici; propre, significatif, non paramétrique ... Ou vioplot si la distribution est plus intéressante.
la source
Simplifier le formidable code de @ csgillespie d'en haut:
la source
Je préfère geom_pointrange à errorbar et je pense que les lignes sont distrayantes plutôt qu'utiles. Voici la version que je trouve beaucoup plus propre que la version @James ou @csgillespie:
la source