En mi área de investigación, una forma popular de mostrar datos es usar una combinación de un gráfico de barras con "barras de control". Por ejemplo,
Las "barras de control" alternan entre errores estándar y desviaciones estándar según el autor. Por lo general, los tamaños de muestra para cada "barra" son bastante pequeños, alrededor de seis.
Estas parcelas parecen ser particularmente populares en las ciencias biológicas; consulte los primeros documentos de BMC Biology, vol 3 para ver ejemplos.
Entonces, ¿cómo presentarías estos datos?
¿Por qué no me gustan estas tramas?
Personalmente no me gustan estas tramas.
- Cuando el tamaño de la muestra es pequeño, ¿por qué no solo mostrar los puntos de datos individuales?
- ¿Se está mostrando el SD o el SE? Nadie acepta cuál usar.
- ¿Por qué usar barras en absoluto? Los datos (generalmente) no van de 0, pero un primer paso en el gráfico sugiere que sí.
- Los gráficos no dan una idea sobre el rango o el tamaño de la muestra de los datos.
R script
Este es el código R que utilicé para generar la trama. De esa manera puede (si lo desea) usar los mismos datos.
#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)
data-visualization
csgillespie
fuente
fuente
Respuestas:
Gracias por todas tus respuestas. Para completar, pensé que debería incluir lo que suelo hacer. Tiendo a hacer una combinación de las sugerencias dadas: puntos, diagramas de caja (cuando n es grande) y se (o sd) rangos.
( Eliminado por el moderador porque el sitio que aloja la imagen ya no parece funcionar correctamente ) .
Desde el gráfico de puntos, está claro que los datos están mucho más extendidos que los gráficos de "barra de control" sugieren. De hecho, ¡hay un valor negativo en A3!
He hecho esta respuesta un CW para no ganar rep.
fuente
La nota clave de Frank Harrell (la más excelente) titulada "Alergia a la información" en useR! el mes pasado mostró alternativas a estos: en lugar de ocultar los datos sin procesar a través de la agregación que proporcionan las barras, los datos sin procesar también se muestran como puntos (o puntos). "¿Por qué ocultar los datos?" fue el comentario de Frank.
Dada la combinación de alpa, eso parece una sugerencia más sensata (y toda la charla más llena de pepitas buenas e importantes).
fuente
jitter
también está en R. simpleDesde una perspectiva psicológica, abogo por trazar los datos más su incertidumbre sobre los datos. Por lo tanto, en una trama como la que muestra, nunca me molestaría en extender las barras hasta cero, lo que solo sirve para minimizar la capacidad del ojo para distinguir las diferencias en el rango de los datos.
Además, soy francamente anti-bargraph; Los gráficos de barras asignan dos variables al mismo atributo estético (ubicación del eje x), lo que puede causar confusión. Un mejor enfoque es evitar el mapeo estético redundante mapeando una variable al eje xy otra variable a otro atributo estético (p. Ej., Forma de punto o color o ambos).
Finalmente, en su gráfico anterior, solo incluye barras de error por encima del valor, lo que dificulta la capacidad de comparar los intervalos de incertidumbre en relación con las barras por encima y por debajo del valor.
Así es como trazaría los datos (a través del paquete ggplot2). Tenga en cuenta que agrego líneas que conectan puntos en la misma serie; algunos argumentan que esto solo es apropiado cuando las series a través de las cuales se conectan las líneas son numéricas (como parece ser en este caso), sin embargo, siempre que haya una relación ordinal razonable entre los niveles de la variable del eje x, creo las líneas de conexión son útiles para ayudar al ojo a asociar puntos a través del eje x. Esto puede ser particularmente útil para detectar interacciones, que realmente se destacan con líneas.
fuente
geom_ribbon()
indicando el error. Si no le gusta producir estimaciones aparentes para regiones entre 1 y 2, al menos reduzca el ancho de la barra de error.Tengo curiosidad por saber por qué no te gustan estas tramas. Yo los uso todo el tiempo. Sin querer establecer lo obvio de la floración, le permiten comparar las medias de diferentes grupos y ver si sus IC del 95% se superponen (es decir, la media verdadera probablemente sea diferente).
Supongo que es importante lograr un equilibrio de simplicidad e información para diferentes propósitos. Pero cuando uso estas tramas estoy diciendo: "estos dos grupos son diferentes entre sí de alguna manera importante" [o no].
Me parece genial, pero me interesaría escuchar contraejemplos. Supongo que implícito en el uso de la trama es que los datos no tienen una distribución extraña que hace que la media sea inválida o engañosa.
fuente
Si los datos son tasas : es decir, el número de éxitos dividido por el número de ensayos, entonces un método muy elegante es un gráfico en embudo. Por ejemplo, consulte http://qshc.bmj.com/content/11/4/390.2.full (disculpas si el enlace requiere una suscripción; avíseme y encontraré otra).
Es posible adaptarlo a otros tipos de datos, pero no he visto ningún ejemplo.
ACTUALIZAR:
Aquí hay un enlace a un ejemplo que no requiere una suscripción (y tiene una buena explicación de cómo podrían usarse): http://understandinguncertainty.org/fertility
Se pueden usar para datos que no son de velocidad, simplemente trazando la media frente al error estándar, sin embargo, pueden perder algo de su simplicidad.
El artículo de Wikipedia no es excelente, ya que solo analiza su uso en los metanálisis. Yo diría que podrían ser útiles en muchos otros contextos.
fuente
Yo usaría boxplots aquí; limpio, significativo, no paramétrico ... O vioplot si la distribución es más interesante.
fuente
Simplificando el excelente código de @ csgillespie desde arriba:
fuente
Prefiero geom_pointrange a errorbar y creo que las líneas distraen en lugar de ser útiles. Aquí hay una versión que encuentro mucho más limpia que la versión @James o @csgillespie:
fuente