ANOVA
Önkoşul:Ki-kare testi
Kanca
Üç farklı öğretim yöntemini (A, B, C) karşılaştırmak istiyorsun. İlk içgüdün: A-B, A-C, B-C arasında üç ayrı t-testi yapmak. Ama bunu simüle ettiğimizde, üç grubun gerçek ortalaması TAMAMEN AYNI olsa bile, üç testten en az birinin yanlışlıkla “anlamlı” çıkma ihtimali %11.7 — hedeflediğimiz %5’in iki katından fazla! Neden, ve doğrusu ne?
Sezgi
Her t-testinin kendine ait bir yanlış alarm riski (α=0.05) var. Üç ayrı test yaparsan, bunlardan en az birinin yanlışlıkla anlamlı çıkma ihtimali tek bir testinkinden daha yüksek olur — tıpkı üç zar atıp “en az biri 6 gelir mi” sorusunun, tek zar atmaktan daha olası olması gibi (2. dersten hatırla: P(A veya B) hesabı).
ANOVA (varyans analizi), birden çok grubu TEK bir testte karşılaştırarak bu sorunu çözer. Mantığı: gruplar arasındaki farkı (gruplar arası varyans), gruplar içindeki doğal değişkenlikle (gruplar içi varyans) kıyaslar. Gruplar arası fark, grup içi gürültüye göre büyükse, “en az bir grup farklı” sonucuna varırız — tek bir p-değeriyle, tek bir yanlış alarm riskiyle.
Mekanizma
Üç öğretim yöntemiyle eğitilen 15’er kişilik sınıflarla ilerleyelim:
Üç grup
# Üç farklı öğretim yöntemiyle eğitilen üç sınıf (15'er kişi). Ortalamaları farklı mı?
yontem_a = rng.normal(70, 8, size=15)
yontem_b = rng.normal(75, 8, size=15)
yontem_c = rng.normal(78, 8, size=15)
for isim, grup in zip(["A", "B", "C"], [yontem_a, yontem_b, yontem_c]):
print(f"Yöntem {isim}: ortalama={grup.mean():.2f} std={grup.std(ddof=1):.2f} n={len(grup)}")Yöntem A: ortalama=69.98 std=7.36 n=15
Yöntem B: ortalama=75.29 std=5.08 n=15
Yöntem C: ortalama=79.06 std=6.84 n=15Ortalamalar 69.98, 75.29, 79.06 — belirgin bir artış eğilimi var. ANOVA ile tek bir testte hepsini karşılaştıralım:
Tek yönlü ANOVA
# H0: üç grubun da gerçek ortalaması aynı. H1: en az biri farklı.
# ANOVA, gruplar ARASI varyansı gruplar İÇİ varyansa oranlayan tek bir F istatistiği üretir.
f_istatistigi, p_degeri = stats.f_oneway(yontem_a, yontem_b, yontem_c)
print(f"\nF istatistiği: {f_istatistigi:.2f}")
print(f"p-değeri: {p_degeri:.4f}")
print(f"α=0.05'e göre karar: {'H0 reddedilir — en az bir grup farklı' if p_degeri < 0.05 else 'H0 reddedilemez'}")
F istatistiği: 7.39
p-değeri: 0.0018
α=0.05'e göre karar: H0 reddedilir — en az bir grup farklıF=7.39, p=0.0018 — H0 reddedilir: en az bir grup diğerlerinden farklı. Şimdi başta sorduğumuz soruyu test edelim: üç ayrı t-testi yerine tek ANOVA kullanmanın gerçek bedeli nedir?
Çoklu karşılaştırma sorunu
# Neden tek tek ikili t-testleri (A-B, A-C, B-C) yapmıyoruz? Çünkü her test kendi başına
# %5 yanlış alarm riski taşır — üçünü art arda yapınca risk katlanır.
# Bunu, H0'ın GERÇEKTEN doğru olduğu (üç grubun da aynı ortalamaya sahip olduğu) bir
# senaryoda simüle edelim.
tekrar = 2000
en_az_bir_yanlis_alarm = 0
for _ in range(tekrar):
g1 = rng.normal(70, 8, size=15)
g2 = rng.normal(70, 8, size=15) # gerçekte hepsi AYNI ortalama (70)
g3 = rng.normal(70, 8, size=15)
ciftler = [(g1, g2), (g1, g3), (g2, g3)]
herhangi_bir_anlamli = any(stats.ttest_ind(a, b).pvalue < 0.05 for a, b in ciftler)
if herhangi_bir_anlamli:
en_az_bir_yanlis_alarm += 1
print(f"\n3 ayrı t-testi ile, H0 tamamen doğruyken en az bir yanlış alarm oranı: "
f"%{en_az_bir_yanlis_alarm / tekrar * 100:.1f} (tek bir testin hedefi %5 idi)")
3 ayrı t-testi ile, H0 tamamen doğruyken en az bir yanlış alarm oranı: %11.7 (tek bir testin hedefi %5 idi)Üç grubun gerçek ortalaması TAMAMEN AYNI (hepsi 70) olduğu bir senaryoda bile, üç ayrı t-testinden en az birinin yanlışlıkla “anlamlı” çıkma oranı %11.7 — hedeflenen %5’in çok üzerinde. Çoğu kişi “her testin kendi α’sı %5, sorun yok” sanır. Değil, çünkü birden fazla test yaptığında, “en az bir tanesi yanlış alarm verir” olasılığı testlerin sayısıyla birlikte katlanarak büyür — bu çoklu karşılaştırma sorunudur, ve ANOVA’nın tek bir p-değeri üretmesinin sebebi tam olarak budur.
Matematik
F istatistiğinin formülü
| Sembol | Anlamı |
|---|---|
| Gruplar arası varyans | Grup ortalamalarının, genel ortalama etrafında ne kadar dağıldığı |
| Gruplar içi varyans | Her grubun kendi içindeki doğal değişkenlik (gürültü) |
| Bu iki varyansın oranı — büyükse gruplar arası fark, doğal gürültüye göre büyük demektir |
F, 1’e yakınsa gruplar arası fark, grup içi gürültüden ayırt edilemiyor demektir (muhtemelen H0 doğru). F büyükse, gruplar arası fark tesadüften büyük demektir. ANOVA sadece “en az bir grup farklı” der, hangisinin farklı olduğunu söylemez — bunun için ANOVA’dan sonra “post-hoc” (sonrasında yapılan, çoklu karşılaştırma için düzeltilmiş) testler kullanılır.
Kod
Nerede işe yarar
ANOVA, “ikiden fazla grubu aynı anda karşılaştır” ihtiyacının standart cevabıdır:
- Çoklu varyant testleri. 3 veya daha fazla tasarım/fiyat/mesaj varyantını aynı anda test etmek (A/B/C/D testi).
- Tarım ve üretim deneyleri. Farklı gübre türlerinin veya üretim ayarlarının verim üzerindeki etkisini karşılaştırmak.
- Segment analizi. Farklı müşteri segmentlerinin ortalama harcamasının birbirinden farklı olup olmadığını test etmek.
Bu 3 hatayı yaparsın:
- ANOVA anlamlı çıkınca “hangi grup farklı” sorusunu ANOVA’nın kendisinden cevap almaya çalışmak — bunun için post-hoc test (örn. Tukey HSD) gerekir.
- ANOVA yerine art arda ikili t-testleri kullanıp çoklu karşılaştırma sorununu görmezden gelmek.
- Grupların varyanslarının birbirine yakın olduğunu (ANOVA’nın bir varsayımı) kontrol etmeden teste girmek — çok farklı varyanslı gruplarda ANOVA güvenilirliğini kaybedebilir.
Kendini test et
1. Üç grubu karşılaştırırken neden 3 ayrı t-testi yerine tek bir ANOVA tercih edilir?
- ANOVA her zaman daha hızlı hesaplanır
- Ayrı ayrı testler, gerçek fark olmasa bile en az birinin yanlışlıkla anlamlı çıkma riskini katlar (doğru cevap)
- Ayrı testler matematiksel olarak imkansızdır
- Aralarında hiçbir fark yoktur
Neden: Notebook'ta gördüğümüz gibi, gerçek fark olmasa bile 3 ayrı t-testinden en az birinin yanlış alarm verme olasılığı %11.7'ye çıktı — ANOVA bunu tek bir testle önler.
2. F istatistiği neyi neye oranlar?
- Örneklem büyüklüğünü örneklem sayısına
- Gruplar arası varyansı gruplar içi varyansa (doğru cevap)
- Ortalamayı standart sapmaya
- p-değerini α'ya
Neden: F, grup ortalamaları arasındaki farkı (gruplar arası varyans) her grubun kendi içindeki doğal değişkenlikle (gruplar içi varyans) kıyaslar.
3. ANOVA "p < 0.05, H0 reddedilir" sonucunu verdiğinde bu tam olarak ne anlama gelir?
- Tüm gruplar birbirinden farklıdır
- En az bir grup diğerlerinden farklıdır, ama hangisi olduğu belirtilmez (doğru cevap)
- İlk grup en iyisidir
- Test geçersizdir
Neden: ANOVA yalnızca "en az bir grup farklı" bilgisini verir. Hangi spesifik grupların birbirinden farklı olduğunu bulmak için post-hoc testler gereklidir.
Özet
Özet
- ANOVA, ikiden fazla grubun ortalamalarını TEK bir testte karşılaştırır.
- F istatistiği, gruplar arası varyansı gruplar içi varyansa oranlar — büyük F, gerçek bir fark olduğuna işaret eder.
- Birden fazla ayrı t-testi kullanmak, gerçek fark olmasa bile en az bir yanlış alarm riskini katlar (çoklu karşılaştırma sorunu).
- ANOVA sadece "en az bir grup farklı" der — hangisinin farklı olduğunu bulmak için post-hoc testler gerekir.
- Gruplar arasındaki varyansların birbirine yakın olması, ANOVA'nın güvenilir çalışması için önemli bir varsayımdır.