python - two - scipy stats continuous distributions
Prueba de Kolmogorov-Smirnov de dos muestras en Python Scipy (2)
Estás usando 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)
No puedo entender cómo hacer una prueba 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 al valor 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é la ingenuidad:
test_stat = kstest(x, z)
y obtuve el siguiente error:
TypeError: ''numpy.ndarray'' object is not callable
¿Hay alguna manera de hacer una prueba KS de dos muestras en Python? Si es así, ¿cómo debería hacerlo?
Gracias de antemano
Esto es lo que dicen los 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 puedo rechazar no significa que confirmemos.