Przy pomocy testu Kołmogorowa-Smirnowa możemy przetestować, czy dana próba \(X = (x_1 \ldots x_N)\) pochodzi ze wskazanego, znanego rozkładu. Formułujemy w tym celu hipotezę zerową \(H_0\): „dane pochodzą ze wskazanego rozkładu” i hipotezę alternatywną \(H_1\): „dane nie pochodzą ze wskazanego rozkładu”.
Jako miarę istotności wnioskowania, ustalamy poziom istotności \(\alpha\) jako maksymalne prawdopodobieństwo popełnienia błędu pierwszego rodzaju, czyli odrzucenia \(H_0\) mimo jej prawdziwości. Zazwyczaj przyjmujemy w tym celu wartość α=0.05 lub mniejszą.
import scipy.stats
alpha = 0.01
X = [1.2, 2.3, 3.1, 1.7, 2.5]
# -- PRZYKŁAD 1 --
# podajemy rozkład jako napis (rozkład jednostajny)
D, p = scipy.stats.kstest(X, 'uniform')
# -- PRZYKŁAD 2 --
# podajemy rozkład jako dystrybuantę (rozkład t-Studenta o 4 stopniach swobody)
D, p = scipy.stats.kstest(X, scipy.stats.t(4).cdf)
if (p < alpha) :
print "Dane nie pochodzą ze wskazanego rozkładu."
else :
print "Nie można odrzucić hipotezy o pochodzeniu ze wskazanego rozkładu."
Warto pamiętać, że dla rozkładu normalnego lepiej jest korzystać z testu Shapiro-Wilka, ponieważ ma on większą moc, czyli mniejsze prawdopodobieństwo popełnienia błędu drugiego rodzaju (nieodrzucenia hipotezy fałszywej).
autor: Piotr Różański, ostatnia modyfikacja: 10.04.2016