Was ist der G-Test?
sobes.tech KI
Antwort von AI
Der G-Test (oder G-Test, χ²-Test der Likelihood-Ratio) ist ein statistischer Test, der verwendet wird, um Hypothesen über die Verteilung der Frequenzen in kategorialen Daten zu überprüfen. Im Kontext von QA kann er verwendet werden, um die Verteilungen von Fehlerarten nach Kategorien (z.B. Typ, Priorität) in verschiedenen Produktversionen, Testumgebungen oder beim Vergleich zweier verschiedener Testansätze zu vergleichen, um festzustellen, ob ein statistisch signifikanter Unterschied besteht. Er ist eine Alternative zum Pearson-χ²-Test, insbesondere bei kleinen Stichprobengrößen.
Hauptschritte:
- Formulierung der Nullhypothese ($H_0$) und der Alternativhypothese ($H_1$).
- $H_0$: Es gibt keinen statistisch signifikanten Unterschied in der Verteilung der Frequenzen zwischen den untersuchten Gruppen.
- $H_1$: Es gibt einen statistisch signifikanten Unterschied.
- Erstellung einer Kontingenztabelle mit beobachteten Frequenzen.
- Berechnung der erwarteten Frequenzen für jede Zelle der Tabelle unter der Annahme $H_0$.
- Berechnung der G-Statistik nach der Formel: $G = 2 \sum_{i} O_i \ln(O_i/E_i)$ wobei $O_i$ die beobachtete Frequenz und $E_i$ die erwartete Frequenz ist.
- Bestimmung der Freiheitsgrade ($df$). Für eine Kontingenztabelle $R \times C$ ($R$ Zeilen, $C$ Spalten): $df = (R-1)(C-1)$.
- Vergleich des berechneten G-Werts mit dem kritischen Wert aus der G-Verteilung oder Verwendung des p-Werts. Wenn G > kritischer Wert oder p < Signifikanzniveau ($\alpha$), wird $H_0$ verworfen.
Anwendungsbeispiel in QA:
Vergleich der Verteilung von Fehlerarten in zwei verschiedenen Testumgebungen.
| Fehlerart | Umgebung A (Beobachtet) | Umgebung B (Beobachtet) |
|---|---|---|
| Funktionell | 50 | 30 |
| UI/UX | 20 | 15 |
| Leistung | 10 | 5 |
| Summe | 80 | 50 |
Anschließend werden die erwarteten Frequenzen und der G-Wert berechnet.
Werkzeuge für die Berechnung:
- Python: Bibliotheken
scipy.stats. - R: Eingebaute Funktionen.
- Statistische Pakete: SPSS, R, SAS.
# Beispiel für die Verwendung in Python mit scipy
import numpy as np
from scipy.stats import chi2_contingency # Der G-Test ist in chi2_contingency in scipy mit dem Parameter lambda='log-likelihood' implementiert
# Beobachtungstabelle (Beispieldaten)
observed = np.array([[50, 30],
[20, 15],
[10, 5]])
# Durchführung des G-Tests
# lambda='log-likelihood' gibt die Verwendung des G-Tests an
g_statistic, p_value, dof, expected = chi2_contingency(observed, lambda_='log-likelihood')
print(f"G-Statistik: {g_statistic:.4f}")
print(f"p-Wert: {p_value:.4f}")
print(f"Freiheitsgrade (dof): {dof}")
print("Erwartete Frequenzen:")
print(expected)
# Hypothese auf Signifikanzniveau 0.05 prüfen
alpha = 0.05
if p_value < alpha:
print("Ergebnis: Nullhypothese ablehnen - es besteht ein statistisch signifikanter Unterschied.")
else:
print("Ergebnis: Nullhypothese nicht ablehnen - kein statistisch signifikanter Unterschied.")