Jak wykonać test dwumianowy w pythonie
Test dwumianowy porównuje proporcję próbki z proporcją hipotetyczną.
Załóżmy na przykład, że mamy 6-ścienną kostkę. Jeśli rzucimy 12 razy, spodziewamy się, że liczba „3” pojawi się w 1/6 przypadków, czyli 12 * (1/6) = 2 razy.
Jeśli cyfra „3” faktycznie pojawi się 4 razy, czy jest to dowód na to, że kość jest przechylona na korzyść liczby „3”? Aby odpowiedzieć na to pytanie, moglibyśmy przeprowadzić test dwumianowy.
W Pythonie można wykonać test dwumianowy za pomocą funkcji binom_test() z biblioteki scipy.stats, która wykorzystuje następującą składnię:
binom_test(x, n=Brak, p=0,5, alternatywa=’dwie twarze’)
Złoto:
- x: liczba „sukcesów”
- n: całkowita liczba prób
- p: prawdopodobieństwo powodzenia każdej próby
- alternatywa: hipoteza alternatywna. Wartość domyślna to „dwustronna”, ale można także określić „wyższą” lub „mniejszą”.
Ta funkcja zwraca wartość p testu. Możemy załadować tę funkcję, używając następującej składni:
from scipy.stats import binom_test
Poniższe przykłady ilustrują sposób wykonywania testów dwumianowych w języku Python.
Przykład 1: 6-ścienna kostka została rzucona 24 razy i dokładnie 6 razy wypadła na cyfrze „3”. Wykonaj test dwumianu, aby określić, czy kostka jest przesunięta w stronę cyfry „3”.
Hipotezy zerowe i alternatywne naszego testu są następujące:
H 0 : π ≤ 1/6 (kostka nie jest przesunięta w stronę liczby „3”)
H A : π > 1/6
*π to symbol proporcji populacji.
Wprowadzimy w Pythonie następującą formułę:
binom_test(x= 6 , n= 24 , p= 1/6 , alternative=' greater ') 0.1995295129479586
Ponieważ ta wartość p (0,1995) jest nie mniejsza niż 0,05, nie możemy odrzucić hipotezy zerowej. Nie mamy wystarczających dowodów, aby stwierdzić, że kość jest przesunięta w stronę liczby „3”.
Przykład 2: Rzucamy monetą 30 razy i wypadnie reszka dokładnie 19 razy. Wykonaj test dwumianu, aby określić, czy moneta jest skierowana w stronę reszki.
Hipotezy zerowe i alternatywne naszego testu są następujące:
H 0 : π ≤ 1/2 (moneta nie jest skierowana w stronę orła)
H A : π > 1/2
Wprowadzimy w Pythonie następującą formułę:
binom_test(x= 19 , n= 30 , p= 1/2 , alternative=' greater ') 0.10024421103298661
Ponieważ ta wartość p (0,10024) jest nie mniejsza niż 0,05, nie możemy odrzucić hipotezy zerowej. Nie mamy wystarczających dowodów, aby stwierdzić, że moneta jest faworyzowana reszkami.
Przykład 3: Sklep produkuje widgety z wydajnością 80%. Wdrażają nowy system, który, jak mają nadzieję, poprawi wskaźnik wydajności. Wybierają losowo 50 widżetów z najnowszej produkcji i zauważają, że 47 z nich jest skutecznych. Wykonaj test dwumianowy, aby określić, czy nowy system prowadzi do większej wydajności.
Hipotezy zerowe i alternatywne naszego testu są następujące:
H 0 : π ≤ 0,80 (nowy system nie powoduje wzrostu wydajności)
H A : π > 0,80
Wprowadzimy w Pythonie następującą formułę:
binom_test(x= 47 , n= 50 , p= 0.8 , alternative=' greater ') 0.005656361012155314
Ta wartość p (0,00565) jest mniejsza niż 0,05, odrzucamy hipotezę zerową. Mamy wystarczająco dużo dowodów, aby stwierdzić, że nowy system skutkuje wzrostem efektywności.