Jak przeprowadzić testowanie hipotez w pythonie (z przykładami)


Test hipotezy to formalny test statystyczny, którego używamy do odrzucenia lub nieodrzucenia hipotezy statystycznej.

W tym samouczku wyjaśniono, jak wykonać następujące testy hipotez w Pythonie:

  • Próbny test t
  • Test T dla dwóch próbek
  • Test t dla sparowanych próbek

Chodźmy!

Przykład 1: Przykład testu t w Pythonie

Test t dla jednej próby służy do sprawdzenia, czy średnia populacji jest równa określonej wartości.

Załóżmy na przykład, że chcemy wiedzieć, czy średnia waga określonego gatunku żółwia wynosi 310 funtów.

Aby to przetestować, zbieramy prostą losową próbkę żółwi o następujących masach:

Waga : 300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303

Poniższy kod ilustruje sposób użycia funkcji ttest_1samp() w bibliotece scipy.stats w celu wykonania testu t dla jednej próby:

 import scipy.stats as stats

#define data
data = [300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303]

#perform one sample t-test
stats. ttest_1samp (a=data, popmean= 310 )

Ttest_1sampResult(statistic=-1.5848116313861254, pvalue=0.1389944275158753)

Statystyka testu t wynosi -1,5848 , a odpowiadająca dwustronna wartość p wynosi 0,1389 .

Dwie hipotezy dotyczące tego testu t na konkretnej próbie są następujące:

  • H 0 : µ = 310 (średnia waga tego gatunku żółwia to 310 funtów)
  • H A : µ ≠310 (średnia waga nie wynosi 310 funtów)

Ponieważ wartość p naszego testu (0,1389) jest większa niż alfa = 0,05, nie udało nam się odrzucić hipotezy zerowej testu.

Nie mamy wystarczających dowodów, aby stwierdzić, że średnia waga tego konkretnego gatunku żółwia przekracza 310 funtów.

Przykład 2: Test t dla dwóch próbek w Pythonie

Test t dla dwóch prób służy do sprawdzenia, czy średnie z dwóch populacji są równe, czy nie.

Załóżmy na przykład, że chcemy wiedzieć, czy średnia waga dwóch różnych gatunków żółwi jest równa, czy nie.

Aby to przetestować, zbieramy prostą losową próbkę żółwi z każdego gatunku o następujących masach:

Próbka 1 : 300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303

Próbka 2 : 335, 329, 322, 321, 324, 319, 304, 308, 305, 311, 307, 300, 305

Poniższy kod ilustruje sposób użycia funkcji ttest_ind() w bibliotece scipy.stats w celu wykonania dwóch przykładów testu t:

 import scipy. stats as stats

#define array of turtle weights for each sample
sample1 = [300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303]
sample2 = [335, 329, 322, 321, 324, 319, 304, 308, 305, 311, 307, 300, 305]

#perform two sample t-tests
stats. ttest_ind (a=sample1, b=sample2) 

Ttest_indResult(statistic=-2.1009029257555696, pvalue=0.04633501389516516)

Statystyka testu t wynosi –2,1009 , a odpowiadająca jej dwustronna wartość p wynosi 0,0463 .

Dwa założenia tego konkretnego testu t dla dwóch próbek są następujące:

  • H 0 : µ 1 = µ 2 (średnia waga obu gatunków jest równa)
  • H A : µ 1 ≠ µ 2 (średnia masa obu gatunków nie jest równa)

Ponieważ wartość p testu (0,0463) jest mniejsza niż 0,05, odrzucamy hipotezę zerową.

Oznacza to, że mamy wystarczające dowody, aby stwierdzić, że średnia waga obu gatunków nie jest równa.

Przykład 3: Test t dla par próbek w Pythonie

Test t dla par prób służy do porównania średnich z dwóch próbek, gdy każdą obserwację w jednej próbie można powiązać z obserwacją w drugiej próbie.

Załóżmy na przykład, że chcemy wiedzieć, czy określony program treningowy jest w stanie zwiększyć maksymalny skok pionowy (w calach) koszykarzy.

Aby to przetestować, możemy zrekrutować prostą losową próbę 12 koszykarzy z college’u i zmierzyć każdy z ich maksymalnych skoków w pionie. Następnie możemy pozwolić każdemu zawodnikowi korzystać z programu treningowego przez miesiąc, a następnie pod koniec miesiąca ponownie zmierzyć jego maksymalny skok wzwyż.

Poniższe dane pokazują maksymalną wysokość skoku (w calach) przed i po zastosowaniu programu treningowego dla każdego zawodnika:

Przód : 22, 24, 20, 19, 19, 20, 22, 25, 24, 23, 22, 21

Po : 23, 25, 20, 24, 18, 22, 23, 28, 24, 25, 24, 20

Poniższy kod pokazuje, jak używać funkcji ttest_rel() w bibliotece scipy.stats w celu wykonania testu t dla próbek sparowanych:

 import scipy. stats as stats

#define before and after max jump heights
before = [22, 24, 20, 19, 19, 20, 22, 25, 24, 23, 22, 21]
after = [23, 25, 20, 24, 18, 22, 23, 28, 24, 25, 24, 20]

#perform paired samples t-test
stats. ttest_rel (a=before, b=after)

Ttest_relResult(statistic=-2.5289026942943655, pvalue=0.02802807458682508)

Statystyka testu t wynosi –2,5289 , a odpowiadająca jej dwustronna wartość p wynosi 0,0280 .

Dwa założenia dla tego konkretnego testu t dla par próbek są następujące:

  • H 0 : µ 1 = µ 2 (średnia wysokość skoku przed i po użyciu programu jest równa)
  • H A : µ 1 ≠ µ 2 (średnia wysokość skoku przed i po użyciu programu nie jest równa)

Ponieważ wartość p testu (0,0280) jest mniejsza niż 0,05, odrzucamy hipotezę zerową.

Oznacza to, że mamy wystarczające dowody, aby stwierdzić, że średnia wysokość skoku przed i po zastosowaniu programu treningowego nie jest równa.

Dodatkowe zasoby

Do automatycznego wykonywania różnych testów t można używać następujących kalkulatorów online:

Przykład kalkulatora testu t
Kalkulator testu t dla dwóch próbek
Kalkulator testu t dla sparowanych próbek

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *