Actualmente estoy investigando algunos datos que fueron producidos por una simulación de MC que escribí - espero que los valores estén distribuidos normalmente. Naturalmente, hice un histograma y parece razonable (supongo?):
[Arriba a la izquierda: histograma con dist.pdf()
, arriba a la derecha: histograma acumulado con dist.cdf()
, abajo: gráfico QQ, data
vs dist
]
Luego decidí investigar más a fondo esto con algunas pruebas estadísticas. (Nota que dist = stats.norm(loc=np.mean(data), scale=np.std(data))
.) Lo que hice y los resultados que obtuve fueron los siguientes:
-
Prueba de Kolmogorov-Smirnov:
scipy.stats.kstest(data, 'norm', args=(data_avg, data_sig)) KstestResult(statistic=0.050096921447209564, pvalue=0.20206939857573536)
-
Prueba de Shapiro-Wilk:
scipy.stats.shapiro(dat) (0.9810476899147034, 1.3054057490080595e-05) # donde el primer valor es la estadística de prueba y el segundo es el valor p.
-
Gráfico QQ:
stats.probplot(dat, dist=dist)
Mis conclusiones serían:
-
al observar el histograma y el histograma acumulado, definitivamente asumiría una distribución normal
-
lo mismo se mantiene después de ver el gráfico QQ (¿realmente puede mejorar mucho más?)
-
la prueba KS dice: 'sí, esto es una distribución normal'
mi confusión es: la prueba SW dice que no está distribuido normalmente (el valor p es mucho más pequeño que el nivel de significancia alpha=0.05
, y la hipótesis inicial era una distribución normal). No entiendo esto, ¿alguien tiene una mejor interpretación? ¿Cometí un error en algún punto?
5 votos
Los QQplots para normalidad pueden ser mejores que eso: intenta graficar algunos normales aleatorios del mismo tamaño de muestra para obtener un punto de referencia. Tienes una ligera no normalidad, como lo indica la curvatura sistemática en el QQplot. Los histogramas y los gráficos de distribución acumulada son menos útiles para trabajos precisos. Yo no privilegiaría K-S aquí; tiende a ser más sensible en el centro de una distribución que en las colas, lo cual es lo contrario de lo que necesitas. S-W es una prueba, y no (¡no puede!) mide qué tan problemática es la no normalidad.
0 votos
No puedo comentar sobre tu uso de Python. Preguntar sobre software específico suele estar fuera de tema aquí a menos que la consulta sea esencialmente estadística.
0 votos
No podemos comentar sobre sus motivos para esperar una distribución normal; ¿qué diferencia haría una ligera falta de normalidad en su proyecto?
0 votos
En primer lugar, gracias por el comentario rápido (y perdón por la pregunta específica del software, la puse aquí por si acaso encontraba a alguien con conocimiento de estadísticas Y Python aquí ;). Se espera normalidad después de este tipo de simulación de MC, una ligera no normalidad típicamente no es un problema, si los valores no se distribuyen de forma normal es un indicador de un algoritmo sospechoso (por ejemplo, una alta autocorrelación entre las muestras, efectos sistemáticos no considerados..).
0 votos
Como dije, normalmente sólo echo un vistazo rápido - ya que cambiamos bastante el algoritmo decidí revisar esto un poco más de cerca y encontré este comportamiento. La 'cantidad' de normalidad es ciertamente suficiente (dado el número de muestra de aproximadamente 450) pero ahora estoy interesado en por qué la prueba da resultados diferentes y si mi interpretación es buena aquí.
0 votos
Mi comentario principal es que K-S está sobrevalorado aquí. El criterio de máxima diferencia entre acumulados no coincide con lo que se necesita. No tienes que confiar en mí: tienes la evidencia de que aquí no encuentra lo que es visualmente obvio.
0 votos
Hay un montón de usuarios de Python aquí, supuestamente 319 siguiendo esa etiqueta. Sin embargo, yo no.
0 votos
¡Gracias de cualquier manera! Como es claramente visible, no soy demasiado estadístico, ¡cualquier comentario es más que bienvenido aquí!
0 votos
Te superé. No soy estadístico, sino geógrafo. Pero uso mucho las estadísticas.
5 votos
@Nick Esta aplicación de K-S es inválida, porque compara los datos con una distribución Normal con parámetros determinados por los datos: necesita la versión de Lilliefors. (Sé que sabes eso, pero parece que has pasado por alto este error.) En consecuencia, su valor p es demasiado alto.
0 votos
@whuber Gracias por el cumplido. Estaba y estoy ciertamente al tanto del problema, pero no sabía si la función de Python (o como se llame) hacía lo correcto al aplicar Lilliefors. No la he utilizado y no he mirado su documentación, ya que mis afectos están en otro lugar.
4 votos
@Nick Presumí que la aplicación era errónea, basándome en dos pruebas: (1) el nombre de la función se refiere a K-S y (2) no hay forma en el argumento
args
de revelar si los parámetros se derivaron de los datos o no. La documentación no es clara, pero su falta de mención de estas distinciones sugiere fuertemente que no está realizando la prueba de Lilliefors. Esa prueba está descrita, con un ejemplo de código, en stackoverflow.com/a/22135929/844723.1 votos
¡Ah! Esto es algo que encontré sospechoso pero no estaba al tanto de ese método - lo cambiaré de inmediato. ¡Gracias por señalarlo @whuber!
0 votos
@whuber Impresionante trabajo de detective. Sin embargo, otra razón para no usar la prueba. (Prejuicio personal: otra razón para preocuparse si Python para estadísticas está sobrevalorado).
0 votos
Sobrevendido parece ser una palabra fuerte - creo que está bien para algunas pruebas rápidas (también con precaución como claramente vemos) pero si alguien quisiera hacer un análisis más sofisticado, definitivamente vale la pena mirar otras herramientas.
2 votos
@Nick Me encanta la prueba K-S por varias razones: su simplicidad, su conexión directa con el gráfico Q-Q, su flexibilidad y su poder. Mantengo que cada prueba estadística puede ser visualizada y (casi) toda visualización sugiere una prueba correspondiente, y este es uno de los mejores ejemplos de esa tesis (especialmente si se grafican los residuos en un gráfico Q-Q, lo cual es visualmente más poderoso). Aunque he implementado muchas otras pruebas de bondad de ajuste como S-W, S-F y A-D, la prueba K-S siempre ha sido mi opción para aquellas ocasiones (relativamente raras) en las que se necesita una prueba formal de distribución.
0 votos
¿Sobrevendido? Corrígeme si me equivoco, pero tiendo a elegir las palabras con mucho cuidado y mantengo mi postura. Ten en cuenta que dije "sobrevendido aquí" y el contexto es claramente la prueba de -- más generalmente la evaluación -- de la anormalidad. Sobrevendido significa que muchos autores instan a otros a hacer esto, a pesar de que la prueba es inferior a otras e incluso inválida si utiliza parámetros estimados a partir de los datos, puntos hechos por otros también en este hilo. Me gusta mucho la interpretación de que K-S está vinculado al gráfico de acumulados empíricos, pero la conexión con los gráficos QQ parece más indirecta que directa. cc:@whuber
0 votos
@Nick: bastante justo - Estoy de acuerdo con 'sobrevalorado aquí'.