2 votos

Trazar un conjunto de datos muy sesgados

Tengo un conjunto de datos que contiene géneros musicales, canciones y un índice de "locuacidad". Un ejemplo es el siguiente:

Song, Genre,  Speechiness
Dance with wolves, Trance, 0.05
My heart will go on, Pop, 0.09

He utilizado estos datos para crear gráficos de los con diferentes parámetros por género (incluyendo la locución). La cosa es que los datos están muy sesgados (la bailabilidad va de 0 a 1 y el 80% de los datos es <0,1.

Si se grafican los datos esto es lo que obtengo:

https://www.flickr.com/photos/112983354@N05/23025503853/in/dateposted-public/

Si trazo la media de "discursos" por género, los visables no se cortan realmente. Si lo trazo en un gráfico de radar, esto es lo que obtengo (la S representa la locuacidad):

https://www.flickr.com/photos/112983354@N05/23356885200/in/dateposted-public/

Todos están entre 0,05 y 0,1. Ahora me gustaría cambiar los valores para que los gráficos muestren mejor la diferencia entre los géneros. Por supuesto, podría limitar el eje, pero algo me dice que hay una opción mejor.

¿Alguna idea sobre algún método de escalado para obtener un gráfico mejor y más informativo?

2voto

Fabrice Puntos 1581

Para los datos muy sesgados normalmente obtendría el log() del valor. El único problema aquí es que su escala es tan pequeña que sería difícil de interpretar. Podrías escalar tus datos y luego obtener el registro, por ejemplo log(x*1000) o bien puede normalizarlo, centrar la escala en cero y ajustar la desviación estándar a uno.

set.seed(9467)

d <- abs(rnorm(10000, 0.075, 0.005))    #generate most freq values
d.larg <-rnorm(10, 0.5, 0.3)            #generate some high skewing values

ds <- rbind(d, d.larg)                  #combine data
skewness(ds,na.rm=TRUE)                 #highly skewed 

# Using the log to scale back larger values
x11()
par(mfrow = c(3,1))
hist(d)
hist(ds)
hist(log(ds + 0.000001))                #adding the 0.000001 is so you don't get NA's for zero values

#centering the dataset by normailising it 
normalised.ds <- (ds - mean(ds))/sd(ds)
x11()
par(mfrow = c(3,1))
hist(d)
hist(ds)
hist(normalised.ds) 
hist(normalised.ds, breaks = 20)        #could add more breaks to see smaller distributions

2voto

Nick Cox Puntos 22819

Los problemas son definitivamente

  • Asimetría extrema

y muy probablemente

  • Ceros declarados

  • Granularidad de los resultados, por ejemplo, informar a $2$ decimales, es decir, $0, 0.01,$ etc.

A falta de datos con los que jugar, me inventé algunos como, dada una muestra $x$ de tamaño $1000$ de un uniforme en $(0,1)$ , "puntuaciones" $\lfloor 100 x^5 \rfloor/100$ . He aquí el aspecto que tienen de forma bastante convencional en una muestra particular que puede subestimar el problema ya que $662$ son menores que $0.01$ .

enter image description here

La primera idea es claramente una transformación de la escala. Los logaritmos quedan descartados por la aparición de ceros exactos. En lugar de amañar o generalizar la definición de logit, sugiero que se consideren las potencias plegadas tal y como las discutió J.W. Tukey, de forma más accesible en 1977. Análisis exploratorio de datos. Reading, MA: Addison-Wesley. Por analogía con $\text{logit}\ x = \ln[x/(1-x)] = \ln x - \ln (1 - x)$ considerar cualquier poder positivo $p$ y $x^p - (1 - x)^{1-p}$ . Raíces cuadradas $(p = 1/2)$ y raíces cúbicas $(p = 1/3)$ me vienen a la mente. Incluso la raíz cúbica deja esa distribución sesgada y la granularidad es un poco desconcertante.

enter image description here

El problema es, naturalmente, que tampoco hemos transformado las frecuencias. En este caso, una escala de raíces también es una posibilidad (que Tukey denominó en otro lugar rootogram).

enter image description here

La compensación en este caso es delicada. Para ver cualquier cosa que no sea la asimetría más grosera de los datos, tenemos que pensar en escalas que probablemente parezcan poco convencionales o desconocidas.

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