Sobes.tech
Middle+

Kas ir G tests?

sobes.tech AI

Atbilde no AI

G-tests (vai G-tests, χ²-tests, kas attiecas uz ticamības likmju attiecību) ir statistisks tests, ko izmanto, lai pārbaudītu hipotēzes par frekvenču sadalījumu kategoriskajos datos. QA kontekstā tas var tikt izmantots, lai salīdzinātu defektu sadalījumu pēc kategorijām (piemēram, veids, prioritāte) dažādās produkta būvēs, testēšanas vidēs vai, salīdzinot divu dažādu testēšanas pieeju rezultātus, lai noteiktu, vai pastāv statistiski nozīmīga atšķirība. Tas ir alternatīvs Pīrsona chi-kvadrāta testam, īpaši noderīgs ar nelielām paraugu ņēmumiem.

Galvenie soļi:

  1. Nolikt nulles ($H_0$) un alternatīvas ($H_1$) hipotēzes.
    • $H_0$: Nav statistiski nozīmīgas atšķirības frekvenču sadalījumā starp analizētajām grupām.
    • $H_1$: Pastāv statistiski nozīmīga atšķirība.
  2. Izveidot kontingences tabulu ar novērotajām frekvencēm.
  3. Aprēķināt gaidītās frekvences katrai šūnai, pieņemot, ka $H_0$ ir patiess.
  4. Aprēķināt G-statistiku pēc formulas: $G = 2 \sum_{i} O_i \ln(O_i/E_i)$ kur $O_i$ ir novērotā frekvence, $E_i$ ir gaidītā frekvence.
  5. Noteikt brīvības pakāpes ($df$). Kontingences tabulai ar $R \times C$ ($R$ rindas, $C$ kolonnas): $df = (R-1)(C-1)$.
  6. Salīdzināt aprēķināto G vērtību ar kritisko vērtību no G sadalījuma tabulas vai izmantot p- vērtību. Ja G > kritiskā vērtība vai p < nozīmīguma līmenis ($\alpha$), $H_0$ tiek noraidīta.

Piemērs QA pielietošanai:

Salīdzinājums starp divu dažādu testēšanas vidi defekt tipu sadalījumu.

Defekta veids Vidē A (novērots) Vidē B (novērots)
Funkcionāls 50 30
UI/UX 20 15
Veiktspēja 10 5
Kopā 80 50

Tālāk tiek aprēķinātas gaidītās frekvences un G vērtība.

Aprēķinu rīki:

  • Python: scipy.stats bibliotēka.
  • R: iebūvētās funkcijas.
  • Statistikas pakotnes: SPSS, R, SAS.
# Piemērs Python ar scipy
import numpy as np
from scipy.stats import chi2_contingency # G-tests tiek realizēts ar chi2_contingency ar parametru lambda='log-likelihood'

# Novēroto frekvenču tabula (piemēra dati)
observed = np.array([[50, 30],
                     [20, 15],
                     [10,  5]])

# G-tests veikšana
# lambda='log-likelihood' norāda uz G-test izmantošanu
g_statistic, p_value, dof, expected = chi2_contingency(observed, lambda_='log-likelihood')

print(f"G-statistika: {g_statistic:.4f}")
print(f"P-vērtība: {p_value:.4f}")
print(f"Brīvības pakāpes (dof): {dof}")
print("Gaidītās frekvences:")
print(expected)

# Hipotēzes pārbaude pie nozīmīguma līmeņa 0.05
alpha = 0.05
if p_value < alpha:
    print("Rezultāts: Noliedz nulles hipotēzi - pastāv statistiski nozīmīga atšķirība.")
else:
    print("Rezultāts: Ne noliedz nulles hipotēzi - nav statistiski nozīmīgas atšķirības.")