Τι είναι το τεστ G;
sobes.tech AI
Απάντηση από AI
Το τεστ G (ή τεστ G, χ²-τεστ λόγου πιθανοτήτων) είναι ένα στατιστικό τεστ που χρησιμοποιείται για τον έλεγχο υποθέσεων σχετικά με την κατανομή συχνοτήτων σε κατηγορικά δεδομένα. Στο πλαίσιο του QA, μπορεί να χρησιμοποιηθεί για τη σύγκριση κατανομών ελαττωμάτων ανά κατηγορία (π.χ. τύπος, προτεραιότητα) σε διάφορες εκδόσεις προϊόντων, δοκιμαστικά περιβάλλοντα ή για τη σύγκριση αποτελεσμάτων δύο διαφορετικών προσεγγίσεων δοκιμών, προκειμένου να διαπιστωθεί αν υπάρχει στατιστικά σημαντική διαφορά. Είναι εναλλακτική του τεστ χι-τετ Πιρσόν, ιδιαίτερα χρήσιμο όταν εργάζεστε με μικρά δείγματα.
Βασικά βήματα:
- Διατύπωση μηδενικής ($H_0$) και εναλλακτικής ($H_1$) υπόθεσης.
- $H_0$: Δεν υπάρχει στατιστικά σημαντική διαφορά στην κατανομή συχνοτήτων μεταξύ των αναλύσιμων ομάδων.
- $H_1$: Υπάρχει στατιστικά σημαντική διαφορά.
- Κατασκευή πίνακα συχνοτήτων με παρατηρούμενες τιμές.
- Υπολογισμός αναμενόμενων συχνοτήτων για κάθε κελί του πίνακα υπό την υπόθεση $H_0$.
- Υπολογισμός του στατιστικού G με τον τύπο: $G = 2 \sum_{i} O_i \ln(O_i/E_i)$ όπου $O_i$ είναι η παρατηρούμενη συχνότητα, $E_i$ η αναμενόμενη συχνότητα.
- Καθορισμός του αριθμού βαθμών ελευθερίας ($df$). Για πίνακα συχνοτήτων $R \times C$ ($R$ γραμμές, $C$ στήλες): $df = (R-1)(C-1)$.
- Σύγκριση της υπολογιζόμενης τιμής G με την κρίσιμη τιμή από τον πίνακα κατανομής G ή χρήση p-τιμής. Αν G > κρίσιμη τιμή ή p < επίπεδο σημαντικότητας ($\alpha$), απορρίπτεται το $H_0$.
Παράδειγμα εφαρμογής στο QA:
Σύγκριση κατανομής τύπων ελαττωμάτων σε δύο διαφορετικά δοκιμαστικά περιβάλλοντα.
| Τύπος ελαττώματος | Περιβάλλον Α (Παρατηρούμενο) | Περιβάλλον Β (Παρατηρούμενο) |
|---|---|---|
| Λειτουργικό | 50 | 30 |
| UI/UX | 20 | 15 |
| Απόδοση | 10 | 5 |
| Σύνολο | 80 | 50 |
Στη συνέχεια υπολογίζονται οι αναμενόμενες συχνότητες και η τιμή G.
Εργαλεία για τον υπολογισμό:
- Python: βιβλιοθήκες
scipy.stats. - R: ενσωματωμένες συναρτήσεις.
- Στατιστικά πακέτα: SPSS, R, SAS.
# Παράδειγμα χρήσης σε Python με scipy
import numpy as np
from scipy.stats import chi2_contingency # Το G-τεστ υλοποιείται στο chi2_contingency στο scipy μέσω του παραμέτρου lambda='log-likelihood'
# Πίνακας παρατηρούμενων συχνοτήτων (παραδείγματα δεδομένων)
observed = np.array([[50, 30],
[20, 15],
[10, 5]])
# Εκτέλεση G-τεστ
# lambda='log-likelihood' υποδεικνύει τη χρήση G-τεστ
g_statistic, p_value, dof, expected = chi2_contingency(observed, lambda_='log-likelihood')
print(f"G-στατιστική: {g_statistic:.4f}")
print(f"P-τιμή: {p_value:.4f}")
print(f"Βαθμοί ελευθερίας (dof): {dof}")
print("Αναμενόμενες συχνότητες:")
print(expected)
# Έλεγχος υπόθεσης σε επίπεδο σημαντικότητας 0.05
alpha = 0.05
if p_value < alpha:
print("Αποτέλεσμα: Απορρίπτουμε τη μηδενική υπόθεση - υπάρχει στατιστικά σημαντική διαφορά.")
else:
print("Αποτέλεσμα: Δεν απορρίπτουμε τη μηδενική υπόθεση - δεν υπάρχει στατιστικά σημαντική διαφορά.")