1 votos

¿Se sabe que la prueba de Kolmogorov-Smirnov falla en algunos casos especiales?

Me gustaría utilizar dos muestras Prueba de Kolmogorov-Smirnov para comprobar si dos muestras dadas proceden de distribuciones diferentes. Para ello utilizo implementación de scipy de la prueba KS.

He descubierto que en algunos casos, cuando las muestras provienen obviamente de dos distribuciones diferentes, el KS no lo "ve" (los valores de p son altos (alrededor de 0,1)). En particular, la prueba T "ve" claramente que las medias de dos distribuciones son diferentes (valor p en torno a 10^-10 ). En otras palabras, las pruebas T ven que las medias de dos distribuciones son diferentes por KS no ve que las distribuciones son diferentes.

El siguiente es un ejemplo que reproduce este comportamiento. Una muestra se genera con dos gaussianos con medias 0 y -10 mientras que otra muestra se genera con una mezcla con medias 0 y 10. La prueba KS no "ve" la diferencia entre las muestras:

import random
from scipy import stats

shift = 10.0
prob  = 0.07

for i in range(20):
    ls1 = [
        random.normalvariate(-shift, 1.0) if random.uniform(0.0, 1.0) < prob
        else random.normalvariate(0.0, 1.0) 
        for i in range(1000)]

    ls2 = [
        random.normalvariate( shift, 1.0) if random.uniform(0.0, 1.0) < prob
        else random.normalvariate(0.0, 1.0) 
        for i in range(1000)]

    ks_2samp = stats.ks_2samp(ls1, ls2).pvalue
    ttest_ind = stats.ttest_ind(ls1, ls2).pvalue

    print ks_2samp, ttest_ind

Este es el resultado:

0.16580778180902842 9.060856080948288e-12
0.01851544068151054 5.898586305260549e-14
0.00427744491524331 9.7049212240596e-16
0.027130694162290223 1.0689263790159754e-14
0.010125210232304454 3.296184221499672e-14
0.0006280816342195499 1.0177034143495455e-18
0.03264195164443303 1.4076742121406555e-12
0.09090010387130891 1.2443419177675215e-13
0.01851544068151049 2.747214603788716e-15
0.01851544068151049 8.121824308260815e-14
0.00427744491524331 5.6988053773438894e-18
0.006634750962621394 1.3293198764640583e-13
0.05547862104852167 2.8550937455660035e-14
0.2828891626185374 6.495297514372301e-09
0.006634750962621394 3.0442842979678378e-15
0.07742034064789591 3.278591079385276e-12
0.046677646772462215 4.576882344667905e-13
0.00821290761051498 1.0193621244783236e-15
0.02713069416229027 2.6797479930917613e-16
0.012432141728521352 6.9673275270114e-15

También he intentado encontrar dos muestras (ambas con 200 números) de forma que el valor p de la prueba T sea lo más pequeño posible y el valor p de la prueba KS esté por encima de 0.06 . He encontrado muestras en las que la prueba KS da un valor p = 0,0622 y la prueba KS da 1.71e-10 . Así es como se ven las dos distribuciones:

enter image description here

Y aquí está la suma acumulada de los elementos ordenados de dos conjuntos:

enter image description here

Entonces, mi pregunta es si se sabe que la prueba KS falla en algunos casos especiales y, si es así, cuáles son esos casos.

2voto

mdewey Puntos 579

La prueba de Kolmogorov-Smirnov es una prueba global muy general que compara dos distribuciones con la hipótesis alternativa muy general de que son diferentes en algún aspecto. El precio que se paga por ello es que no puede ser muy sensible a una hipótesis específica. En cambio, otras pruebas pueden ser muy específicas frente a una alternativa, pero no responden a otras. La prueba t de Student responde al cambio de ubicación pero no responde, por ejemplo, contra la diferencia de varianza. Por lo tanto, el hecho de que den resultados diferentes con un conjunto de datos específico es una prueba de que ambos funcionan exactamente como fueron diseñados y ninguno de ellos es un fracaso.

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