Ce este testul G?
sobes.tech AI
Răspuns de la AI
Testul G (sau testul G, testul χ² al raportului de verosimilitate) este un test statistic utilizat pentru a verifica ipoteze despre distribuția frecvențelor în date categorice. În contextul QA, poate fi utilizat pentru compararea distribuțiilor defectelor pe categorii (de exemplu, tip, prioritate) în diferite versiuni ale produsului, medii de testare sau la compararea rezultatelor a două abordări diferite de testare, pentru a determina dacă există o diferență statistic semnificativă. Este o alternativă la testul χ² al lui Pearson, deosebit de util pentru eșantioane mici.
Pașii principali:
- Formularea ipotezelor nul ($H_0$) și alternative ($H_1$).
- $H_0$: Nu există o diferență statistic semnificativă în distribuția frecvențelor între grupurile analizate.
- $H_1$: Există o diferență statistic semnificativă.
- Construirea tabelului de contingenta cu frecvențele observate.
- Calcularea frecvențelor așteptate pentru fiecare celulă a tabelului sub ipoteza $H_0$.
- Calcularea statistcii G după formula: $G = 2 \sum_{i} O_i \ln(O_i/E_i)$ unde $O_i$ este frecvența observată, iar $E_i$ frecvența așteptată.
- Determinarea numărului de grade de libertate ($df$). Pentru un tabel de contingenta $R \times C$ ($R$ rânduri, $C$ coloane): $df = (R-1)(C-1)$.
- Compararea valorii calculate a lui G cu valoarea critică din distribuția G sau utilizarea valorii p. Dacă G > valoarea critică sau p < nivelul de semnificație ($\alpha$), se respinge $H_0$.
Exemplu de aplicare în QA:
Compararea distribuției tipurilor de defecte în două medii de testare diferite.
| Tip defect | Mediu A (Observat) | Mediu B (Observat) |
|---|---|---|
| Funcțional | 50 | 30 |
| UI/UX | 20 | 15 |
| Performanță | 10 | 5 |
| Total | 80 | 50 |
Apoi se calculează frecvențele așteptate și valoarea G.
Instrumente pentru calcul:
- Python: biblioteci
scipy.stats. - R: funcții încorporate.
- Pachete statistice: SPSS, R, SAS.
# Exemplu de utilizare în Python cu scipy
import numpy as np
from scipy.stats import chi2_contingency # Testul G este implementat în chi2_contingency în scipy prin parametrul lambda='log-likelihood'
# Tabelul frecvențelor observate (date de exemplu)
observed = np.array([[50, 30],
[20, 15],
[10, 5]])
# Executarea testului G
# lambda='log-likelihood' indică utilizarea testului G
g_statistic, p_value, dof, expected = chi2_contingency(observed, lambda_='log-likelihood')
print(f"Statistica G: {g_statistic:.4f}")
print(f"Valoarea p: {p_value:.4f}")
print(f"Gradele de libertate (dof): {dof}")
print("Frecvențele așteptate:")
print(expected)
# Verificarea ipotezei la nivelul de semnificație 0.05
alpha = 0.05
if p_value < alpha:
print("Rezultat: Rejeterem ipoteza nulă - există o diferență statistic semnificativă.")
else:
print("Rezultat: Nu rejetăm ipoteza nulă - nu există o diferență statistic semnificativă.")