Tip 1 / Tip 2 hata ve istatistiksel güç
Önkoşul:t-testi
Kanca
Yeni bir öğretim yönteminin gerçekten 4 puanlık bir etkisi olsa bile — 25 kişilik bir örneklemle bunu tespit etme şansımız sadece %64. Yani üçte bir ihtimalle, gerçek bir etki varken bile testimiz onu kaçırıyor. Bu nasıl mümkün, ve şansımızı nasıl artırırız?
Sezgi
Bir hipotez testinde iki tür hata yapabiliriz — mahkeme benzetmesine devam edersek: masum birini suçlu bulmak (Tip 1), ya da suçlu birini masum bulmak (Tip 2).
Tip 1 hata: H0 gerçekten doğruyken (etki yokken) yanlışlıkla reddetmek — “yanlış alarm”. Tip 2 hata: H0 gerçekten yanlışken (etki varken) reddedememek — “kaçırma”. Bu ikisi arasında bir ödünleşim var: reddetme eşiğini sıkılaştırırsan (α’yı küçültürsen) yanlış alarmların azalır ama kaçırma riskin artar.
- H0 dağılımı
- H1 dağılımı
- Tip 1 hata (α)
- Tip 2 hata (β)
α = 0.05, β = 0.050, istatistiksel güç (1−β) = 0.950
α’yı küçült: turuncu alan (Tip 1) küçülür ama mavi alan (Tip 2) büyür — ikisi H0 ve H1 eğrilerinin kesiştiği bölgede ters yönde hareket eder. Etki büyüklüğünü ve n’i artırınca iki eğri birbirinden ayrışıyor, her ikisi de küçülebiliyor.
Mekanizma
Somut bir senaryo kuralım: gerçekte (test bunu bilmiyor, biz biliyoruz) yeni yöntem ortalamayı 70’ten 74’e çıkarıyor. n=25, α=0.05.
Karar eşiği
# H0: yeni yöntemin etkisi yok, ortalama hâlâ 70. Gerçekte (biz biliyoruz, test bilmiyor)
# yeni yöntem ortalamayı 74'e çıkarıyor — GERÇEK bir etki var, büyüklüğü 4 puan.
mu0, gercek_mu, sigma, n = 70, 74, 10, 25
standart_hata = sigma / np.sqrt(n)
alfa = 0.05
z_kritik = stats.norm.ppf(1 - alfa) # tek yönlü test
esik_deger = mu0 + z_kritik * standart_hata
print(f"Karar eşiği: x̄ > {esik_deger:.2f} ise H0 reddedilir")Karar eşiği: x̄ > 73.29 ise H0 reddedilirÖnce Tip 1 hatayı doğrulayalım: H0 GERÇEKTEN doğruyken (etki yokken) ne sıklıkla yanlışlıkla reddediyoruz?
Tip 1 hata simülasyonu
# Tip 1 hata: H0 GERÇEKTEN DOĞRUYKEN (etki yokken) yanlışlıkla reddetmek.
tekrar = 5000
tip1_sayisi = 0
for _ in range(tekrar):
ornek = rng.normal(mu0, sigma, size=n) # H0 doğru: gerçek ortalama 70
if ornek.mean() > esik_deger:
tip1_sayisi += 1
print(f"Tip 1 hata oranı (deneysel): %{tip1_sayisi / tekrar * 100:.2f} (hedef α = %{alfa * 100:.0f})")Tip 1 hata oranı (deneysel): %5.06 (hedef α = %5)%5.06 — tam olarak α’nın tanımı. Şimdi asıl soruyu soralım: H1 gerçekten doğruyken (gerçek etki varken) ne sıklıkla bunu KAÇIRIYORUZ?
Tip 2 hata ve istatistiksel güç
# Tip 2 hata: H1 GERÇEKTEN DOĞRUYKEN (gerçek etki varken) yanlışlıkla reddedememek.
tip2_sayisi = 0
for _ in range(tekrar):
ornek = rng.normal(gercek_mu, sigma, size=n) # H1 doğru: gerçek ortalama 74
if ornek.mean() <= esik_deger: # H0'ı reddedemedik — ama etki gerçekten var!
tip2_sayisi += 1
guc_deneysel = 1 - tip2_sayisi / tekrar
print(f"Tip 2 hata oranı (deneysel, β): %{tip2_sayisi / tekrar * 100:.2f}")
print(f"İstatistiksel güç (deneysel, 1-β): %{guc_deneysel * 100:.2f}")
# Analitik (formülle) güç hesabı, simülasyonu doğrulamak için:
guc_analitik = 1 - stats.norm.cdf((esik_deger - gercek_mu) / standart_hata)
print(f"İstatistiksel güç (analitik): %{guc_analitik * 100:.2f}")Tip 2 hata oranı (deneysel, β): %35.82
İstatistiksel güç (deneysel, 1-β): %64.18
İstatistiksel güç (analitik): %63.88β=%35.82 — gerçek bir etki varken bile testimiz üçte bir ihtimalle bunu kaçırıyor! Güç (1−β) sadece %64.18. Çoğu kişi “test H0’ı reddetmedi, demek ki etki yok” sonucuna atlar. Değil, çünkü test düşük güce sahipse, gerçek bir etkiyi kaçırma ihtimali yüksektir — “reddedemedik” ile “etki yok” arasında büyük fark var.
Matematik
Dört olası durum
| H0 gerçekte doğru | H0 gerçekte yanlış | |
|---|---|---|
| H0 reddedilmedi | Doğru karar | Tip 2 hata (β) |
| H0 reddedildi | Tip 1 hata (α) | Doğru karar (güç, 1−β) |
Gücü belirleyen üç şey vardır: etki büyüklüğü (ne kadar büyükse tespit o kadar kolay), örneklem büyüklüğü (n arttıkça standart hata küçülür, eğriler ayrışır) ve α (gevşetilirse güç artar ama Tip 1 hata riski de artar). Bu üçü arasında serbest bir öğle yemeği yok — birini iyileştirmek genelde diğerinden ödün vermeyi gerektirir, tek istisna n’i artırmaktır (ama bunun da maliyeti var: daha fazla veri toplamak).
Kod
Gücü en ucuz şekilde artırmanın yolu genelde n’i artırmaktır — ne kadar etkili olduğuna bakalım:
Gücü artıran etkenler
# Gücü ne artırır? n'i, etki büyüklüğünü veya α'yı değiştirerek görelim.
print("\nn arttıkça güç:")
for n_deneme in [10, 25, 50, 100]:
se_d = sigma / np.sqrt(n_deneme)
esik_d = mu0 + stats.norm.ppf(1 - alfa) * se_d
guc_d = 1 - stats.norm.cdf((esik_d - gercek_mu) / se_d)
print(f" n={n_deneme:>3} güç=%{guc_d * 100:.1f}")
print("\nEtki büyüklüğü arttıkça güç (n=25 sabit):")
for etki in [1, 2, 4, 8]:
guc_e = 1 - stats.norm.cdf((esik_deger - (mu0 + etki)) / standart_hata)
print(f" etki={etki} güç=%{guc_e * 100:.1f}")
n arttıkça güç:
n= 10 güç=%35.2
n= 25 güç=%63.9
n= 50 güç=%88.2
n=100 güç=%99.1
Etki büyüklüğü arttıkça güç (n=25 sabit):
etki=1 güç=%12.6
etki=2 güç=%26.0
etki=4 güç=%63.9
etki=8 güç=%99.1n=10’da güç sadece %35.2 iken, n=100’de %99.1’e çıkıyor. Aynı şekilde etki büyüklüğü arttıkça (aynı n’de) güç de artıyor — etki=1 için sadece %12.6 iken etki=8 için %99.1. Küçük etkileri küçük örneklemlerle yakalamak neredeyse imkansızdır.
Nerede işe yarar
İstatistiksel güç, bir deneyi tasarlarken sorman gereken en önemli sorudur:
- Deney tasarımı. “Bu deneyi kaç kişiyle yapmalıyım?” sorusunun cevabı, hedeflenen güç (genelde %80) ve beklenen etki büyüklüğünden hesaplanır (güç analizi).
- Negatif sonuçları yorumlama. “Anlamlı fark bulunamadı” başlıklı bir araştırmada, önce testin gücüne bakmak gerekir — belki etki var ama örneklem yetersizdi.
- Kaynak planlaması. Bir A/B testi için kaç kullanıcı gerektiğini önceden hesaplamak, deneyi başlatmadan önce yapılması gereken bir adımdır.
Bu 3 hatayı yaparsın:
- “H0 reddedilmedi” sonucunu “etki yok” ile eşitlemek — düşük güçlü bir testte bu, sadece “tespit edemedik” anlamına gelebilir.
- Deneyi tasarlarken güç hesabı yapmadan “yeterli” gördüğün bir n ile başlamak.
- α’yı düşürerek (daha “katı” olarak) güvenilirliği artırdığını sanmak — α’yı düşürmek Tip 1 hatayı azaltır ama Tip 2 hatayı (dolayısıyla gücü) kötüleştirir.
Kendini test et
1. Tip 1 ve Tip 2 hata arasındaki fark nedir?
- İkisi aynı şeydir
- Tip 1: gerçekte etki yokken yanlışlıkla "var" demek; Tip 2: gerçekte etki varken "yok" demek (doğru cevap)
- Tip 1 her zaman Tip 2'den daha ciddidir
- Tip 2 sadece büyük örneklemlerde olur
Neden: Tip 1 (α) yanlış alarmdır — H0 doğruyken reddetmek. Tip 2 (β) kaçırmadır — H0 yanlışken (gerçek etki varken) reddedememek.
2. α'yı 0.05'ten 0.01'e düşürürsen (daha katı bir eşik) ne olur?
- Hem Tip 1 hem Tip 2 hata azalır
- Tip 1 hata azalır ama Tip 2 hata (ve dolayısıyla kaçırma riski) artar (doğru cevap)
- Hiçbir şey değişmez
- Sadece örneklem büyüklüğü değişir
Neden: Eşiği sıkılaştırmak yanlış alarmları azaltır ama H0'ı reddetmeyi zorlaştırdığı için gerçek etkileri kaçırma riskini (β) artırır — interaktifte α küçüldükçe mavi alanın büyüdüğünü gördük.
3. Bir deneyin gücünü artırmanın en güvenilir yolu nedir?
- α'yı büyütmek
- Örneklem büyüklüğünü artırmak (doğru cevap)
- Veriyi yuvarlamak
- Test türünü değiştirmeden hiçbir şey yapmadan beklemek
Neden: n'i artırmak standart hatayı küçültür, H0 ve H1 dağılımlarını birbirinden ayrıştırır — bu, Tip 1 hatayı artırmadan gücü yükseltmenin en güvenilir yoludur (maliyeti: daha fazla veri toplamak).
Özet
Özet
- Tip 1 hata (α): H0 gerçekte doğruyken yanlışlıkla reddetmek — yanlış alarm.
- Tip 2 hata (β): H0 gerçekte yanlışken reddedememek — gerçek bir etkiyi kaçırmak.
- İstatistiksel güç (1−β), gerçek bir etkiyi doğru şekilde tespit etme olasılığıdır.
- Gücü artıran üç etken: daha büyük etki büyüklüğü, daha büyük örneklem, daha gevşek α — ama α gevşetmek Tip 1 riskini artırır.
- "H0 reddedilmedi" hiçbir zaman "etki yok" anlamına gelmez — düşük güçlü bir test gerçek etkileri kaçırabilir.