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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert