Kolmogorov-Smirnov con datos discretos: ¿Cuál es el uso adecuado de dgof :: ks.test en R?


23

Preguntas para principiantes:

Quiero probar si dos conjuntos de datos discretos provienen de la misma distribución. Me sugirieron una prueba de Kolmogorov-Smirnov.

Conover ( Estadísticas prácticas no paramétricas , 3d) parece decir que la prueba de Kolmogorov-Smirnov puede usarse para este propósito, pero su comportamiento es "conservador" con distribuciones discretas, y no estoy seguro de lo que eso significa aquí.

El comentario de DavidR sobre otra pregunta dice "... Aún puede hacer una prueba de nivel α basada en la estadística KS, pero tendrá que encontrar algún otro método para obtener el valor crítico, por ejemplo, mediante simulación".

La versión de ks.test () en el paquete dgof R ( article , cran ) agrega algunas capacidades que no están presentes en la versión predeterminada de ks.test () en el paquete de estadísticas. Entre otras cosas, dgof :: ks.test incluye este parámetro:

simulate.p.value: una lógica que indica si se deben calcular los valores p mediante la simulación de Monte Carlo, solo para pruebas discretas de bondad de ajuste.

¿El propósito de simulate.p.value = T es lograr lo que sugiere DavidR?

Incluso si es así, no estoy seguro de si realmente puedo usar dgof :: ks.test para una prueba de dos muestras. Parece que solo proporciona una prueba de dos muestras para una distribución continua:

Si y es numérico, se realiza una prueba de dos muestras de la hipótesis nula de que x e y se extrajeron de la misma distribución continua.

Alternativamente, y puede ser una cadena de caracteres que nombra una función de distribución continua (acumulativa) (o tal función), o una función ecdf (u objeto de clase stepfun) que proporciona una distribución discreta. En estos casos, se realiza una prueba de una muestra de la nula de que la función de distribución que generó x es la distribución y ...

(Detalles de fondo: estrictamente hablando, mis distribuciones subyacentes son continuas, pero los datos tienden a estar muy cerca de un puñado de puntos. Cada punto es el resultado de una simulación, y es una media de 10 o 20 números reales entre -1 y 1. Al final de la simulación, esos números son casi siempre muy cercanos a .9 o -9. Por lo tanto, las medias se agrupan alrededor de unos pocos valores, y los estoy tratando como discretos. La simulación es compleja y no tengo razón para pensar que los datos siguen una distribución bien conocida).

¿Consejo?


Acabo de notar el comentario del Dr. G aquí que sugiere que ks.boot es lo que necesito, pero todavía me pregunto si la opción de simulación de dgof :: ks.test funcionaría, y qué significa "convergente".
Marte el

Respuestas:


16

Esta es una respuesta a la extensión @jbrucks (pero también responde al original).

Una prueba general de si 2 muestras provienen de la misma población / distribución o si hay una diferencia es la prueba de permutación. Elija una estadística de interés, esta podría ser la estadística de prueba KS o la diferencia de medias o la diferencia de medianas o la relación de varianzas o ... (lo que sea más significativo para su pregunta, puede hacer simulaciones en condiciones probables para ver qué estadística le da los mejores resultados) y calcule esa estadística en las 2 muestras originales. Luego, al azar permuta las observaciones entre los grupos (agrupa todos los puntos de datos en un gran grupo, luego los divide al azar en 2 grupos del mismo tamaño que las muestras originales) y calcula la estadística de interés en las muestras permutadas. Repite esto muchas veces, la distribución de las estadísticas de muestra forma su distribución nula y usted compara la estadística original con esta distribución para formar la prueba. Tenga en cuenta que la hipótesis nula es que las distribuciones son idénticas, no solo que las medias / mediana / etc. son iguales.

Si no quiere suponer que las distribuciones son idénticas pero desea probar una diferencia en medias / medianas / etc. entonces podrías hacer un bootstrap.

Si sabe de qué distribución provienen los datos (o al menos está dispuesto a asumir una distribución), puede hacer una prueba de razón de probabilidad sobre la igualdad de los parámetros (compare el modelo con un solo conjunto de parámetros en ambos grupos con respecto al modelo con conjuntos de parámetros separados). La prueba de razón de probabilidad generalmente usa una distribución de chi-cuadrado que está bien en muchos casos (asimétricos), pero si está usando tamaños de muestra pequeños o está probando un parámetro cerca de su límite (una varianza es 0 por ejemplo), entonces la aproximación puede no ser bueno, podría usar nuevamente la prueba de permutación para obtener una mejor distribución nula.

Todas estas pruebas funcionan en distribuciones continuas o discretas. También debe incluir alguna medida de potencia o un intervalo de confianza para indicar la cantidad de incertidumbre, una falta de importancia podría deberse a una baja potencia o una diferencia estadísticamente significativa podría ser prácticamente sin sentido.


Greg, gracias. Esta es una respuesta general muy útil a la pregunta de Jbruck, y también es útil para mí. (Mis preguntas eran más específicas. Quizás demasiado limitadas para esperar respuestas.)
Marte,

1
@Mars, creo que mi respuesta indirectamente responde al menos partes de la suya. La prueba regular de KS no asume ningún vínculo y utiliza un modelo teórico para el estadístico de prueba bajo la hipótesis nula. Con los lazos, el modelo teórico no es exacto, pero en su lugar puede usar simulación (prueba de permutación, simulación de nulo dist, etc.) para calcular la distribución nula y, por lo tanto, obtener un valor p, etc. Supongo que eso es lo que simula argumento que mencionas hace.
Greg Snow
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.