7 votos

Cómo mejorar el estándar de visualizaciones de un univariante de distribución?

Tengo un conjunto de datos con cerca de 15.000 etiquetados observaciones de un solo valor continuo. ¿Cuál es la mejor manera de graficar este tipo de datos? Estoy jugando con distintos histogramas y la densidad de las parcelas, pero me parece que no puede averiguar la mejor manera de graficar este conjunto de datos. Alguna sugerencia?

Mis datos se parece a esto:

 label     value  
-------   -------  
  foo       1.2  
  bar       6.2  
  baz       0.2  
  qux       4.7  
  ...       ...  

Este conjunto de datos contiene 15,000 valores, cada uno con una etiqueta única.

Estoy buscando en cuanto a la mejor manera de crear una visualización de la distribución de los datos y ver los valores atípicos. Aquí hay dos parcelas he generado. Tanto simplificada de los datos más de lo que me gustaría. Hay alguna otra manera a la que me podría graficar los datos y de alguna manera integrar las etiquetas en esta parcela?

density plotboxplot

6voto

Judioo Puntos 625

Una idea simple que satisface a ambas viendo la totalidad de la distribución y que potencialmente permite que el espacio para colocar las etiquetas es el uso de un jitter, unidimensional diagrama de puntos.

enter image description here

En este ejemplo sólo he escogido arbitrariamente puntos con un valor de más de 25 a de la etiqueta, así como los puntos de semi-transparente (incluso con el temblor todavía hay una cantidad sustancial de sobre-trazado).

Esta no es perfecto (he tenido que elegir arbitrariamente cuáles son los puntos donde se considere a ser "outliers" y, por tanto, de la cual se obtendrá la etiqueta). También en los programas que me produjo esta en (SPSS) I no se puede restringir el temblor sólo a la dimensión Y de la gráfica, por lo que muchos puntos en esta instancia caen fuera de la lógica de los rangos (esto es al azar de los datos generados mediante un registro de la distribución normal, por lo que todos los valores son positivos).

Aunque espero que esto sea una demostración útil para planear, dado el aspecto de tus ejemplos que seguramente sería que desee considerar la transformación de los datos. Estoy seguro de que otros miembros del sitio pueden producir algunos ejemplos en ggplot2 para la demostración si necesita ayuda para producir un gráfico similar en R (espero sugerencias!)

4voto

eelco Puntos 1459

Ampliando la idea de @Andy, yo sugeriría que esta alternativa que incorpora las dos parcelas originales incluidos en las preguntas:labeled outliers

He creado este parcela en R con el siguiente código:

data <- data.frame( Id = paste('case',1:5000), x = exp(rnorm(5000)))

outlier.cut = 10

outliers <- data[ data$x > outlier.cut, ]
outliers <- outliers[ order(outliers$x), ]

png(filename = "labeled_outliers.png", width = 600, height = 600)

plot(density(data$x), main = 'Labeled Outliers')
rug( data$x, side = 1)
rug( data$x, side = 3)

unit <- (par('usr')[4]-par('usr')[3]) / ( dim(outliers)[1] + 5 )
outliers$y <- ( c(1:dim(outliers)[1]) * unit)

text(outliers$x, y = outliers$y, label = outliers$Id, cex = .65, srt = 0)

dev.off()

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X