Wnioskowanie Statystyczne

Jak zbadać, czy próba pochodzi ze wskazanego rozkładu?

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."
Wynikiem testu Kołmogorowa-Smirnowa jest para liczb:Hipotezę zerową możemy odrzucić jeżeli \(p < \alpha\).

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