Prueba de Kolmogorov-Smirnov de dos muestras en Python Scipy

No puedo averiguar cómo hacer una prueba de KS de dos muestras en Scipy.

Después de leer la documentación scipy kstest

Puedo ver cómo probar dónde una distribución es idéntica a la distribución normal estándar

from scipy.stats import kstest import numpy as np x = np.random.normal(0,1,1000) test_stat = kstest(x, 'norm') #>>> test_stat #(0.021080234718821145, 0.76584491300591395) 

Lo que significa que con un valor de p de 0,76 no podemos rechazar la hipótesis nula de que las dos distribuciones son idénticas.

Sin embargo, quiero comparar dos distribuciones y ver si puedo rechazar la hipótesis nula de que son idénticas, algo así como:

 from scipy.stats import kstest import numpy as np x = np.random.normal(0,1,1000) z = np.random.normal(1.1,0.9, 1000) 

y prueba si x y z son idénticos

Probé el ingenuo

 test_stat = kstest(x, z) 

y obtuve el siguiente error:

 TypeError: 'numpy.ndarray' object is not callable 

¿Hay alguna manera de hacer una prueba de KS de dos muestras en Python? Si es así, ¿cómo debo hacerlo?

Gracias de antemano

Related of "Prueba de Kolmogorov-Smirnov de dos muestras en Python Scipy"

Estás utilizando la prueba KS de una muestra. Probablemente quieras ks_2samp :

 >>> from scipy.stats import ks_2samp >>> import numpy as np >>> >>> np.random.seed(12345678) >>> x = np.random.normal(0, 1, 1000) >>> y = np.random.normal(0, 1, 1000) >>> z = np.random.normal(1.1, 0.9, 1000) >>> >>> ks_2samp(x, y) Ks_2sampResult(statistic=0.022999999999999909, pvalue=0.95189016804849647) >>> ks_2samp(x, z) Ks_2sampResult(statistic=0.41800000000000004, pvalue=3.7081494119242173e-77) 

Esto es lo que dicen los doctores scipy:

Si la estadística KS es pequeña o el valor p es alto, no podemos rechazar la hipótesis de que las distribuciones de las dos muestras son las mismas.

No se puede rechazar no significa que confirmemos.