Ich kann nicht herausfinden, wie man einen Test mit zwei Stichproben KS in Scipy durchführt.
Nach dem Lesen der Dokumentation scipy kstest
Ich kann sehen, wie man prüft, wo eine Verteilung mit der Standardnormalverteilung identisch ist
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)
Dies bedeutet, dass wir bei einem p-Wert von 0,76 die Nullhypothese nicht ablehnen können, dass die beiden Verteilungen identisch sind.
Ich möchte jedoch zwei Distributionen vergleichen und sehen, ob ich die Nullhypothese ablehnen kann, dass sie identisch sind, etwa:
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)
und testen Sie, ob x und z identisch sind
Ich habe den Naiven ausprobiert:
test_stat = kstest(x, z)
und bekam folgenden Fehler:
TypeError: 'numpy.ndarray' object is not callable
Gibt es eine Möglichkeit, einen KS -Test mit zwei Stichproben in Python durchzuführen? Wenn ja, wie soll ich das machen?
Danke im Voraus
Sie verwenden den One-Sample-Test KS. Sie wollen wahrscheinlich 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)
Das sagen die scipy-Dokumente:
Wenn die K-S-Statistik klein oder der p-Wert hoch ist, können wir die Hypothese, dass die Verteilungen der beiden Proben gleich sind, nicht ablehnen.
Nicht ablehnen bedeutet nicht, dass wir bestätigen.