Jak wykonać test f w pythonie
Test F służy do sprawdzenia, czy dwie wariancje populacji są równe. Hipotezy zerowe i alternatywne testu są następujące:
H 0 : σ 1 2 = σ 2 2 (wariancje populacji są równe)
H 1 : σ 1 2 ≠ σ 2 2 (wariancje populacji nie są równe)
W tym samouczku wyjaśniono, jak wykonać test F w Pythonie.
Przykład: F-Test w Pythonie
Załóżmy, że mamy następujące dwa przykłady:
x = [18, 19, 22, 25, 27, 28, 41, 45, 51, 55] y = [14, 15, 15, 17, 18, 22, 25, 25, 27, 34]
Możemy użyć następującej funkcji, aby przeprowadzić test F w celu ustalenia, czy dwie populacje, z których pochodzą te próbki, mają równe wariancje:
import numpy as np #define F-test function def f_test(x, y): x = np.array(x) y = np.array(y) f = np.var(x, ddof=1)/np.var(y, ddof=1) #calculate F test statistic dfn = x.size-1 #define degrees of freedom numerator dfd = y.size-1 #define degrees of freedom denominator p = 1-scipy.stats.f.cdf(f, dfn, dfd) #find p-value of F test statistic return f,p #perform F-test f_test(x, y) (4.38712, 0.019127)
Statystyka testu F wynosi 4,38712 , a odpowiadająca jej wartość p wynosi 0,019127 . Ponieważ ta wartość p jest mniejsza niż 0,05, odrzucilibyśmy hipotezę zerową. Oznacza to, że mamy wystarczająco dużo dowodów, aby stwierdzić, że obie wariancje populacji nie są równe.
Uwagi
- Statystykę testu F oblicza się jako s 1 2 / s 2 2 . Domyślnie numpy.var oblicza wariancję populacji. Aby obliczyć wariancję próbki, musimy określić ddof=1 .
- Wartość p odpowiada 1 – cdf rozkładu F ze stopniami swobody w liczniku = n 1 -1 i stopniami swobody w mianowniku = n 2 -1.
- Funkcja ta działa tylko wtedy, gdy wariancja pierwszej próbki jest większa niż wariancja drugiej próbki. Ustaw więc oba przykłady tak, aby działały z funkcją.
Kiedy stosować test F
Test F jest zwykle używany do odpowiedzi na jedno z następujących pytań:
1. Czy dwie próbki pochodzą z populacji o równych wariancjach?
2. Czy nowa obróbka lub proces zmniejsza zmienność aktualnej obróbki lub procesu?
Powiązane: Jak wykonać test F w R