Sobes.tech
Middle+

Mi az a G-teszt?

sobes.tech MI

Válasz az MI-től

G-teszt (vagy G-teszt, χ²-teszt a valószínűségi arányokra) egy statisztikai teszt, amelyet a kategóriák szerinti adatok gyakoriságának eloszlásának vizsgálatára használnak. A QA kontextusában alkalmazható a hibák eloszlásának összehasonlítására kategóriák szerint (pl. típus, prioritás) különböző termékverziókban, tesztkörnyezetekben vagy két különböző tesztelési megközelítés eredményeinek összehasonlítására, hogy meghatározzuk, van-e statisztikailag szignifikáns különbség. Alternatívája Pearson χ²-tesztnek, különösen kis minták esetén hasznos.

Fő lépések:

  1. Null ($H_0$) és alternatív ($H_1$) hipotézis megfogalmazása.
    • $H_0$: Nincs statisztikailag szignifikáns különbség a gyakoriság eloszlásában az elemzett csoportok között.
    • $H_1$: Van statisztikailag szignifikáns különbség.
  2. A megfigyelt gyakoriságokat tartalmazó összekapcsolási táblázat készítése.
  3. Az $H_0$ feltételezés mellett minden cellára várható gyakoriságok számítása.
  4. A G-statisztika kiszámítása a következő képlettel: $G = 2 \sum_{i} O_i \ln(O_i/E_i)$ ahol $O_i$ a megfigyelt gyakoriság, $E_i$ a várható gyakoriság.
  5. A szabadságfok ($df$) meghatározása. Egy $R \times C$ táblázat esetén ($R$ sor, $C$ oszlop): $df = (R-1)(C-1)$.
  6. A kiszámított G érték összehasonlítása a G-eloszlás kritikus értékével vagy p-érték használata. Ha G > kritikus érték vagy p < szignifikanciaszint ($\alpha$), akkor elutasítjuk az $H_0$-t.

Példa a QA-ban való alkalmazásra:

Két különböző tesztkörnyezetben a hibatípusok eloszlásának összehasonlítása.

Hibatípus Környezet A (Megfigyelt) Környezet B (Megfigyelt)
Funkcionális 50 30
UI/UX 20 15
Teljesítmény 10 5
Összesen 80 50

Ezután kiszámítják a várható gyakoriságokat és a G értéket.

Számítási eszközök:

  • Python: scipy.stats könyvtárak.
  • R: beépített függvények.
  • Statisztikai csomagok: SPSS, R, SAS.
# Python példakód scipy-vel
import numpy as np
from scipy.stats import chi2_contingency # A G-teszt a scipy chi2_contingency függvényében érhető el a lambda='log-likelihood' paraméterrel

# Megfigyelt gyakoriságok táblázata (példa adatok)
observed = np.array([[50, 30],
                     [20, 15],
                     [10,  5]])

# G-teszt végrehajtása
# lambda='log-likelihood' a G-teszt használatát jelzi
g_statistic, p_value, dof, expected = chi2_contingency(observed, lambda_='log-likelihood')

print(f"G-statisztika: {g_statistic:.4f}")
print(f"P-érték: {p_value:.4f}")
print(f"Szabadságfok (dof): {dof}")
print("Várható gyakoriságok:")
print(expected)

# Hipotézis tesztelése 0.05 szignifikanciaszinten
alpha = 0.05
if p_value < alpha:
    print("Eredmény: Elutasítjuk a nullhipotézist - statisztikailag szignifikáns különbség van.")
else:
    print("Eredmény: Nem utasítjuk el a nullhipotézist - nincs statisztikailag szignifikáns különbség.")