Middle+
G testi nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
G testi (veya G testi, χ² oranlık olasılık oranı testi), kategorik verilerdeki frekans dağılımını test etmek için kullanılan istatistiksel bir testtir. QA bağlamında, ürünün farklı derlemeleri, test ortamları veya iki farklı test yaklaşımının sonuçlarını karşılaştırmak için kullanılabilir ve istatistiksel olarak anlamlı bir fark olup olmadığını belirlemek için kategorilere göre hata dağılımlarını karşılaştırabilir. Pearson χ² testine alternatif olup, özellikle küçük örneklemlerle çalışırken faydalıdır.
Ana adımlar:
- Sıfır ($H_0$) ve alternatif ($H_1$) hipotezlerinin formüle edilmesi.
- $H_0$: Analiz edilen gruplar arasında frekans dağılımında istatistiksel olarak anlamlı bir fark yoktur.
- $H_1$: İstatistiksel olarak anlamlı bir fark vardır.
- Gözlemlenen frekanslarla birlikte kontenjan tablosunun oluşturulması.
- $H_0$ varsayımı altında her hücre için beklenen frekansların hesaplanması.
- Formül kullanılarak G istatistiğinin hesaplanması: $G = 2 \sum_{i} O_i \ln(O_i/E_i)$ burada $O_i$ gözlemlenen frekans, $E_i$ beklenen frekanstır.
- Serbestlik derecesinin ($df$) belirlenmesi. $R \times C$ tablosu için ($R$ satır, $C$ sütun): $df = (R-1)(C-1)$.
- Hesaplanan G değeri ile G dağılım tablosundaki kritik değerin karşılaştırılması veya p-değeri kullanılması. G > kritik değer veya p < anlamlılık seviyesi ($\alpha$) ise, $H_0$ reddedilir.
QA'da uygulama örneği:
İki farklı test ortamında hata tiplerinin dağılımını karşılaştırma.
| Hata Tipi | Ortam A (Gözlemlenen) | Ortam B (Gözlemlenen) |
|---|---|---|
| Fonksiyonel | 50 | 30 |
| UI/UX | 20 | 15 |
| Performans | 10 | 5 |
| Toplam | 80 | 50 |
Daha sonra, beklenen frekanslar ve G değeri hesaplanır.
Hesaplama araçları:
- Python:
scipy.statskütüphaneleri. - R: yerleşik fonksiyonlar.
- İstatistik paketleri: SPSS, R, SAS.
# Python'da scipy kullanımı örneği
import numpy as np
from scipy.stats import chi2_contingency # G testi, scipy'de chi2_contingency fonksiyonunda lambda='log-likelihood' parametresiyle uygulanır
# Gözlemlenen frekans tablosu (örnek veriler)
observed = np.array([[50, 30],
[20, 15],
[10, 5]])
# G testi yapma
# lambda='log-likelihood' G testinin kullanılmasını belirtir
g_statistic, p_value, dof, expected = chi2_contingency(observed, lambda_='log-likelihood')
print(f"G istatistiği: {g_statistic:.4f}")
print(f"p-değeri: {p_value:.4f}")
print(f"Serbestlik derecesi (dof): {dof}")
print("Beklenen frekanslar:")
print(expected)
# Anlamlılık seviyesi 0.05 ile hipotez testi
alpha = 0.05
if p_value < alpha:
print("Sonuç: Null hipotez reddedilir - istatistiksel olarak anlamlı bir fark vardır.")
else:
print("Sonuç: Null hipotez reddedilmez - istatistiksel olarak anlamlı bir fark yoktur.")