6 votos

¿Plano de cuantiles con distribución desconocida?

N=2762

N=2762

He estado explorando un conjunto de datos que parece dar lugar a este tipo de trama con bastante frecuencia. ¿Diría que se trata de una población con una población diferente a la normal? ¿O se trata de dos poblaciones que confunden la distribución normal?

Utilizó matplotlib y scipy.stats:

      (x,y), (slope, inter, cor) = stats.probplot(data, dist='norm')

      osmf = x.take([0, -1])  # endpoints
      osrf = slope * osmf + inter
      self.ax.plot(x, y, ',', osmf, osrf, '-', **self.kwargs)

7voto

Derek Swingley Puntos 3851

Hay una gran variedad de posibilidades. Por ejemplo, una distribución chi-cuadrado con grados de libertad en el rango de 30-40 daría lugar a un gráfico qq. En R:

x <- rchisq(10000, df=35)
qqnorm(x)
qqline(x)

se ve así:

alt text

Sin embargo, una mezcla de dos normales con diferentes medios no se aplica.

x <- c(rnorm(10000/2, mean=0), rnorm(10000/2, mean=2))
qqnorm(x)
qqline(x)

se ve así:

alt text

Observa cómo los puntos cruzan la línea, que es un patrón diferente al que observas.

5voto

jldugger Puntos 7490

Su conjunto de datos claramente no es normal. (Con esta cantidad de datos, cualquier prueba de bondad de ajuste te lo dirá). Pero puedes leer mucho más que eso en el gráfico de probabilidad normal:

  • La curvatura, en general suave, no hace pensar en una estructura de mezcla.

  • La cola superior está demasiado estirada (valores demasiado altos en comparación con la distribución de referencia).

  • La cola inferior está demasiado comprimida (los valores también son demasiado altos).

Esto sugiere que una leve Transformación Box-Cox producirá datos casi normales, o al menos simétricos. Para encontrarla, considere algunos valores clave en este gráfico: la mediana, que se encuentra por encima del valor x de 0, es aproximadamente 0,90; +2 desviaciones estándar es aproximadamente 0,99; y -2 desviaciones estándar es aproximadamente 0,825. La no linealidad se desprende de los cálculos simples 0,99 - 0,90 = 0,09 mientras que 0,90 - 0,825 = 0,075: el aumento de la mediana a la cola superior es mayor que el aumento de la cola inferior a la mediana. Podemos igualar las pendientes probando algunas reexpresiones sencillas de estos tres valores solamente. Por ejemplo, tomando los recíprocos de los tres valores de los datos clave (potencia de Box-Cox de -1) se obtiene

1/0.825 = 1.21
1/0.90  = 1.11; 1.21 - 1.11 = 0.10 (new slope is 0.050 per SD)
1/0.99  = 1.01; 1.11 - 1.01 = 0.10 (0.050 per SD)

Porque las pendientes de los valores reexpresados son ahora iguales, sabemos que la parcela de recíprocos de los datos será aproximadamente lineal entre -2 y +2 DE. Como comprobación, elijamos más puntos en las colas y veamos qué hace el recíproco con ellos. Estimo que el valor del gráfico a -3 DE de la media es de alrededor de 0,79 y el valor a +3 DE de la media es de 1,05. Las dos pendientes en cuestión son iguales a 0,053 y 0,052 por SD: bastante cercanas entre sí y a las pendientes encontradas entre -2 y +2 SD.

Mis estimaciones -basadas en el gráfico que se muestra en un monitor- son burdas, por lo que es conveniente repetir estos cálculos (sencillos y rápidos) con los datos reales. Sin embargo, hay pruebas considerables de que sus datos, cuando se reexpresan adecuadamente con una simple transformación, se aproximan a una distribución normal.

5voto

Mohit Jain Puntos 412

Puede que quiera echar un vistazo a la Anderson-Darling prueba de normalidad que comprueba empíricamente si los datos proceden o no de una distribución determinada. @chl recomienda mirar el scipy caja de herramientas, en concreto anderson() en morestats.py para una aplicación.

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