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:
- 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.
- A megfigyelt gyakoriságokat tartalmazó összekapcsolási táblázat készítése.
- Az $H_0$ feltételezés mellett minden cellára várható gyakoriságok számítása.
- 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.
- 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)$.
- 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.statskö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.")