Trazar estadísticas de resumen con media, sd, min y max?

10

Soy de una formación en economía y, por lo general, en la disciplina, las estadísticas resumidas de las variables se presentan en una tabla. Sin embargo, deseo trazarlos.

Podría modificar un diagrama de caja para permitir que muestre la media, la desviación estándar, el mínimo y el máximo, pero no deseo hacerlo, ya que los diagramas de caja se usan tradicionalmente para mostrar medianas y Q1 y Q3.

Todas mis variables tienen diferentes escalas. Sería genial si alguien pudiera sugerir una manera significativa por la cual pudiera trazar estas estadísticas resumidas. Puedo trabajar con R o Stata.

Ridhima
fuente
1
Bienvenido a la lista Si está preguntando acerca de los Rcomandos, esta pregunta está fuera de tema aquí. Pero parece que está preguntando principalmente sobre cómo sería una buena trama y, en segundo lugar, cómo crearla. Si es así, sugiero eliminar "con R" de su título y tal vez declarar, en el cuerpo, que tiene Rdisponible.
Peter Flom - Restablece a Monica

Respuestas:

16

Hay una razón por la cual el diagrama de caja de Tukey es universal, se puede aplicar a datos derivados de diferentes distribuciones, desde gaussiana a Poisson, etc. normalidad. Sin embargo, la media y la DE son más propensas a los valores atípicos, y deben interpretarse con respecto a la distribución subyacente. La siguiente solución es más adecuada para datos normales o logarítmicos normales. Puede navegar a través de una selección de medidas robustas aquí , y explorar el paquete WRS R aquí .

# simulating dataset
set.seed(12)
d1 <- rnorm(100, sd=30)
d2 <- rnorm(100, sd=10)
d <- data.frame(value=c(d1,d2), condition=rep(c("A","B"),each=100))

# function to produce summary statistics (mean and +/- sd), as required for ggplot2
data_summary <- function(x) {
   mu <- mean(x)
   sigma1 <- mu-sd(x)
   sigma2 <- mu+sd(x)
   return(c(y=mu,ymin=sigma1,ymax=sigma2))
}

# require(ggplot2)
ggplot(data=d, aes(x=condition, y=value, fill=condition)) + 
geom_crossbar(stat="summary", fun.y=data_summary, fun.ymax=max, fun.ymin=min)

Además, al agregar + geom_jitter()o + geom_point()al código anterior, puede visualizar simultáneamente los valores de datos sin procesar.


Gracias a @Roland por señalar la trama del violín . Tiene la ventaja de visualizar la densidad de probabilidad al mismo tiempo que la estadística de resumen:

# require(ggplot2)
ggplot(data=d, aes(x=condition, y=value, fill=condition)) + 
geom_violin() + stat_summary(fun.data=data_summary)

Ambos ejemplos se muestran a continuación.

ingrese la descripción de la imagen aquí

TWL
fuente
2
Prefiero una trama de violín sobre esto.
Roland
1
Dependiendo del propósito del análisis, la media y la desviación estándar es exactamente lo que necesita. Sin embargo, no entiendo la inconsistencia en el resumen.data.frame de R. Muestra medios pero no SDS. No puedo pensar en muchas situaciones donde los medios son útiles, pero las desviaciones estándar son engañosas.
Michael M
De hecho, a veces necesitas ver la media y la DE para juzgar si son útiles ...
Nick Cox
1
@TWL: El tema es demasiado amplio para discutirlo aquí. Pero tomemos, por ejemplo, evaluaciones económicas de medicamentos: para el paciente, tal vez sea importante conocer la duración media del tratamiento, mientras que para la compañía de seguros de salud es la duración promedio del tratamiento porque deben pagarlo por cada paciente. Un hecho curioso: en el caso de la distribución exponencial, la media +/- 1 desviación estándar cubre el 68% de toda la masa, la media +/- 2 sds cubre aproximadamente el 95% de toda la masa. En cuanto a lo normal. (Pero es una mera casualidad;))
Michael M
1
Gracias a todos, me gustan las parcelas de violín propuestas, así que
seguiré
9

Hay innumerables posibilidades.

Una opción que he visto utilizada y que evita la confusión con los diagramas de caja (suponiendo que tenga medianas o datos originales disponibles) es trazar un diagrama de caja y agregar un símbolo que marque la media (con suerte con una leyenda para hacerlo explícito). Esta versión del diagrama de caja que agrega un marcador para la media se menciona, por ejemplo, en Frigge et al (1989) [1]:

Diagramas de caja que también muestran la media marcada

La gráfica izquierda muestra un símbolo + como un marcador medio y la gráfica derecha usa un triángulo en el borde, adaptando el marcador promedio de la gráfica de haz y fulcro de Doane & Tracy [2].

Vea también esta publicación SO y esta

Si no tiene (o realmente no quiere mostrar) la mediana, se necesitará una nueva trama y entonces sería bueno que fuera visualmente diferente de un diagrama de caja.

Quizás algo como esto:

ingrese la descripción de la imagen aquí

±

ingrese la descripción de la imagen aquí

±

Si sus números están en escalas muy diferentes, pero todos son positivos, puede considerar trabajar con registros o puede hacer pequeños múltiplos con escalas diferentes (pero claramente marcadas)

Código (actualmente no es un código particularmente 'agradable', pero por el momento esto es solo explorar ideas, no es un tutorial sobre cómo escribir un buen código R):

fivenum.ms=function(x) {r=range(x);m=mean(x);s=sd(x);c(r[1],m-s,m,m+s,r[2])}
eps=.015

plot(factor(c(1,2)),range(c(A,B)),type="n",border=0)
points((rep(c(1,2),each=5)),c(fivenum.ms(A),fivenum.ms(B)),col=rep(c(2,4),each=5),pch=rep(c(1,16,9,16,1),2),ylim=c(range(A,B)),cex=1.2,lwd=2,xlim=c(0.5,2.5),ylab="",xlab="")
rect(1-1.2*eps,fivenum.ms(A)[2],1+1.4*eps,fivenum.ms(A)[4],lwd=2,col=2,den=0)
rect(2-1.2*eps,fivenum.ms(B)[2],2+1.4*eps,fivenum.ms(B)[4],lwd=2,col=4,den=0)

plot(factor(c(1,2)),range(c(A,B)),type="n",border=0)
points((rep(c(1,2),each=5)),c(fivenum.ms(A),fivenum.ms(B)),col=rep(c(2,4),each=5),pch=rep(c(1,16,9,16,1),2),ylim=c(range(A,B)),cex=1.2,lwd=2,xlim=c(0.5,2.5),ylab="",xlab="")
rect(1-eps/9,fivenum.ms(A)[2],1+eps/3,fivenum.ms(A)[4],lwd=2,col=2,den=0)
rect(2-eps/9,fivenum.ms(B)[2],2+eps/3,fivenum.ms(B)[4],lwd=2,col=4,den=0)

[1] Frigge, M., DC Hoaglin y B. Iglewicz (1989),
"Algunas implementaciones del diagrama de caja".
Estadístico estadounidense , 43 (febrero): 50-54.

[2] Doane DP y RL Tracy (2000),
"Uso de pantallas de haz y fulcro para explorar datos"
American Statistician , 54 (4): 289–290, noviembre

Glen_b -Reinstate a Monica
fuente