Hoe een f-test uit te voeren in python
Een F-toets wordt gebruikt om te testen of twee populatievarianties gelijk zijn. De nul- en alternatieve hypothesen van de test zijn als volgt:
H 0 : σ 1 2 = σ 2 2 (populatievarianties zijn gelijk)
H 1 : σ 1 2 ≠ σ 2 2 (populatievarianties zijn niet gelijk)
In deze tutorial wordt uitgelegd hoe u een F-test uitvoert in Python.
Voorbeeld: F-test in Python
Stel dat we de volgende twee voorbeelden hebben:
x = [18, 19, 22, 25, 27, 28, 41, 45, 51, 55] y = [14, 15, 15, 17, 18, 22, 25, 25, 27, 34]
We kunnen de volgende functie gebruiken om een F-test uit te voeren om te bepalen of de twee populaties waar deze steekproeven vandaan komen gelijke varianties hebben:
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)
De F-teststatistiek is 4,38712 en de overeenkomstige p-waarde is 0,019127 . Omdat deze p-waarde kleiner is dan 0,05, zouden we de nulhypothese verwerpen. Dit betekent dat we voldoende bewijs hebben om te zeggen dat de twee populatievarianties niet gelijk zijn.
Opmerkingen
- De F-teststatistiek wordt berekend als s 1 2 / s 2 2 . Standaard berekent numpy.var de populatievariantie. Om de steekproefvariantie te berekenen, moeten we ddof=1 opgeven.
- De p-waarde komt overeen met 1 – cdf van de verdeling F met vrijheidsgraden in de teller = n 1 -1 en vrijheidsgraden in de noemer = n 2 -1.
- Deze functie werkt alleen als de variantie van de eerste steekproef groter is dan de variantie van de tweede steekproef. Stel dus beide voorbeelden in om met de functie te werken.
Wanneer moet u de F-test gebruiken?
De F-test wordt doorgaans gebruikt om een van de volgende vragen te beantwoorden:
1. Komen twee steekproeven uit populaties met gelijke varianties?
2. Vermindert een nieuwe behandeling of proces de variabiliteit van een huidige behandeling of proces?
Gerelateerd: Een F-test uitvoeren in R