6 votos

La comprensión de múltiples pruebas KS

He leído estas dos preguntas ¿por Qué son los p-valores uniformemente distribuidos bajo la hipótesis nula? y la Comprensión de scipy prueba de Kolmogorov-Smirnov

Y esto me inspiró el siguiente experimento.

Yo considero que un número (100) de las muestras aleatorias de 10000 números cada uno, a partir de la distribución uniforme:

import numpy as np
from scipy.stats import kstest

np.random.seed(1)
data = np.random.rand(1e6).reshape(100, -1) # Retrieve 100 samples of 10000 random numbers
pvals = np.array([kstest(data[i, :], 'uniform')[1] for i in range(100)]) # Use KS test to determine the p-value that they are drawn from a uniform distribution

El valor de p debe ser distribuido de manera uniforme entre 0 y 1, debido a que la hipótesis nula de que cada muestra se extrae de la distribución uniforme es cierto. En el código, pvals contiene los valores de p, y debe ser distribuido de manera uniforme entre 0 y 1. ¿Cómo puedo probar que se distribuyen de manera uniforme? Así, con otro KS prueba de la p-valores de los mismos. En efecto:

kstest(pvals, 'uniform') # gives (0.066826050153764194, 0.78391523133790764)

Mi pregunta es: ¿cómo de malo si una muestra de falla de cada uno de sus KS prueba, por lo que el valor p de la distribución no uniforme? Que es, a causa de la segunda prueba de KS a fallar así? Vamos a inyectar un par de pruebas fallidas, y ver los resultados:

for i in range(100):
    pvals[i] = 1.e-1000000000000000000
    print(i+1, kstest(pvals, 'uniform'))

1 (0.076826050153764203, 0.58422275090933029)
2 (0.076826050153764203, 0.58422275090933029)
3 (0.086826050153764212, 0.41822788102030262)
4 (0.08849630728801916, 0.39396788117495984)
5 (0.098496307288019169, 0.26906188301811063)
6 (0.10849630728801915, 0.1764729585550886)
7 (0.11849630728801916, 0.11114480850529129)
8 (0.12849630728801917, 0.067209484059870706)
9 (0.13849630728801915, 0.039015977679199176)
10 (0.14849630728801916, 0.021740018916014403)
11 (0.15849630728801917, 0.011625520543988133)
[...]

Esto me dice que para la segunda prueba de KS para reconocer que el p-valor de la distribución no es uniforme con la confianza de 0.99, debo inyectar 11 pruebas fallidas, cada uno tan malo como el p-valor = 1.e-1000000000000000000.

Intuitivamente, sin embargo, yo esperaba que la probabilidad de conseguir uno de los 100 valores de p menor o igual a 1.e-1000000000000000000 vendría dado por:

100!1!99!p(1p)99

Donde p=101000000000000000000. Esta expresión es del orden de 1.e-999999999999999998, o en términos simples (como yo) bastante improbable. Dónde está mi intuición mal?

6voto

AdamSane Puntos 1825

La prueba de Kolmogorov Smirnov estadístico utiliza bastante genérico de medida de la uniformidad - no es particularmente sensible a cada modo en el que una distribución puede ser no uniforme. En particular, no es especialmente sensible al tipo de uniformidad que estamos mirando.

El KS-estadística de prueba se ve en la distancia máxima entre el cdf y ecdf.

reconocer que el p-valor de la distribución no es uniforme con la confianza de 0.99

Que no es como las pruebas de hipótesis de trabajo. Usted no tiene "0.99 confianza". Supongo que quieres decir que te estás haciendo el examen en α=0.01.

Enn=100, 1% valor crítico es 0.163.

Cada uno de los pequeños el valor de poner en los movimientos que el ecdf cerca de 0 por aproximadamente 0,01 (y alrededor de la mitad de esa distancia de cerca de 0.5 si la distribución es casi uniforme). Si el ecdf anteriormente estaba muy cerca de uniforme se podría esperar que la toma de alrededor de 16 valores para llegar a ese valor crítico.

Sin embargo, en la práctica, se tarda menos de 16 a causa de la natural variación aleatoria en el resto típica de una muestra; se menea sobre un uniforme:

enter image description here

El lado izquierdo es un ECDF de muestra de 100 valores de un real uniforme. Hay algunas desviaciones en el centro debido a la variación aleatoria, pero no se acerca lo suficientemente grande como para alcanzar el 1% de nivel de significación. El lado derecho es un ECDF de la misma muestra, en donde además de los 11 primeros valores (no es el más pequeño de 11, solo 11 de los valores desde el inicio de la muestra) fueron reemplazados por exactamente 0*. En este caso, que es más que suficiente para pasar el 1% valor crítico del estadístico. (En este caso, menos de 11 sería suficiente, pero por lo general toma un poco más de 11.)

*(lo cual, dado que incluso una sola instancia de un valor, algunas otras pruebas podría identificar a los no-normalidad sin dificultad)

Así que si quieres hacer algo que está cerca de aspecto uniforme no uniforme a un KS-test mediante la inserción de pequeños valores, deberá insertar un montón de ellos. Si desea una prueba específicamente sensibles a "demasiados valores muy pequeños", hay un número de opciones mejores que el KS de prueba para que. La de Anderson-Darling prueba sería un ejemplo de una prueba que es más sensible a un tipo específico de desviación estás construyendo aquí.

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