Korelasyon, nedensellik ve yaygın tuzaklar
Önkoşul:Bayes teoremiVeriye bakmak: merkez ve yayılım
Kanca
Dört farklı veri seti var. Dördünün de korelasyon katsayısı (r) tıpatıp aynı: 0.816. Ama birini çizince dümdüz bir doğru, birini çizince yumuşak bir eğri, birini çizince tek bir aykırı noktanın her şeyi sürüklediği bir kaos görüyorsun. Aynı sayı, dört bambaşka gerçeklik. Bu son ders, bu kursun en önemli uyarısını içeriyor: sayıya güvenmeden önce, her zaman grafiğe bak.
Sezgi
Korelasyon katsayısı (r), iki değişkenin birlikte ne kadar DOĞRUSAL hareket ettiğini, tek bir sayıya sıkıştırır: −1 (tam ters yönlü) ile +1 (tam aynı yönlü) arasında. Ama bu sıkıştırma bir bedel öder: şekil, aykırı değerler, doğrusal olmayan örüntüler — hepsi kaybolur.
Korelasyon katsayısı: r = 0.963 — noktaları sürükleyip r'nin nasıl değiştiğini izle.
Serbest modda noktaları sürükle, r’nin nasıl değiştiğini izle. Sonra Anscombe I-IV düğmelerine bas: dördü de r=0.82 civarında ama gözünle gördüğün şekiller tamamen farklı. Bu yüzden bir korelasyon raporlanırken mutlaka bir serpme grafiği (scatter plot) de gösterilmeli — sayı tek başına yalan söylemez ama yarım gerçeği anlatır.
Mekanizma
Anscombe dörtlüsünü sayılarla doğrulayalım:
Anscombe dörtlüsü
# Anscombe dörtlüsü: dört farklı veri seti, DÖRDÜ DE neredeyse aynı korelasyon katsayısına
# sahip — ama şekilleri tamamen farklı. r tek başına asla yeterli değildir.
anscombe = {
"I": ([10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5], [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]),
"II": ([10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5], [9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74]),
"III": ([10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5], [7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73]),
"IV": ([8, 8, 8, 8, 8, 8, 8, 19, 8, 8, 8], [6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 12.50, 5.56, 7.91, 6.89]),
}
for isim, (x, y) in anscombe.items():
r, _ = stats.pearsonr(x, y)
print(f"Anscombe {isim}: r = {r:.3f} (ortalama x={np.mean(x):.2f}, ortalama y={np.mean(y):.2f})")
print("\nDördü de r≈0.816 — ama I doğrusal, II eğrisel, III bir aykırı değerle bozulmuş,")
print("IV ise tek bir aykırı nokta YÜZÜNDEN korelasyon gösteriyor. r tek başına şekli anlatmaz.")Anscombe I: r = 0.816 (ortalama x=9.00, ortalama y=7.50)
Anscombe II: r = 0.816 (ortalama x=9.00, ortalama y=7.50)
Anscombe III: r = 0.816 (ortalama x=9.00, ortalama y=7.50)
Anscombe IV: r = 0.817 (ortalama x=9.00, ortalama y=7.50)
Dördü de r≈0.816 — ama I doğrusal, II eğrisel, III bir aykırı değerle bozulmuş,
IV ise tek bir aykırı nokta YÜZÜNDEN korelasyon gösteriyor. r tek başına şekli anlatmaz.Dördü de r≈0.816 — istatistik ders kitaplarının en ünlü uyarı örneklerinden biri. Şimdi ikinci tuzağa geçelim: korelasyon, nedensellik değildir.
Dondurma ve boğulma: klasik bir karışık değişken
# Klasik tuzak: dondurma satışı ile boğulma vakaları arasında güçlü bir korelasyon var.
# Dondurma boğulmaya mı sebep oluyor? Hayır — ikisini de SICAKLIK sürüklüyor.
gun_sayisi = 200
sicaklik = rng.normal(25, 8, size=gun_sayisi) # günlük sıcaklık (santigrat)
dondurma_satisi = 50 + 4 * sicaklik + rng.normal(0, 10, size=gun_sayisi)
bogulma_vakasi = 1 + 0.15 * sicaklik + rng.normal(0, 1, size=gun_sayisi)
bogulma_vakasi = np.clip(bogulma_vakasi, 0, None)
r_dogrudan, _ = stats.pearsonr(dondurma_satisi, bogulma_vakasi)
print(f"\nDondurma satışı ile boğulma vakaları arasındaki korelasyon: r = {r_dogrudan:.3f}")
print("Güçlü bir korelasyon var — ama dondurma boğulmaya sebep OLMUYOR.")
# Sıcaklığı SABİT tutarak (kontrol ederek) gerçek ilişkiye bakalım: kısmi korelasyon.
kalinti_dondurma = dondurma_satisi - np.polyval(np.polyfit(sicaklik, dondurma_satisi, 1), sicaklik)
kalinti_bogulma = bogulma_vakasi - np.polyval(np.polyfit(sicaklik, bogulma_vakasi, 1), sicaklik)
r_kismi, _ = stats.pearsonr(kalinti_dondurma, kalinti_bogulma)
print(f"Sıcaklık kontrol edildiğinde (kısmi korelasyon): r = {r_kismi:.3f}")
print("Sıcaklık sabitlenince ilişki neredeyse kayboluyor — gerçek sürükleyici sıcaklıkmış.")
Dondurma satışı ile boğulma vakaları arasındaki korelasyon: r = 0.669
Güçlü bir korelasyon var — ama dondurma boğulmaya sebep OLMUYOR.
Sıcaklık kontrol edildiğinde (kısmi korelasyon): r = 0.031
Sıcaklık sabitlenince ilişki neredeyse kayboluyor — gerçek sürükleyici sıcaklıkmış.Dondurma satışı ile boğulma vakaları arasında r=0.669 — güçlü bir korelasyon. Dondurma boğulmaya mı sebep oluyor? Tabii ki hayır. Sıcaklık, her ikisini de aynı anda yukarı çekiyor (sıcak günlerde hem dondurma satışı hem yüzme, dolayısıyla boğulma artıyor). Sıcaklığı sabit tutunca (kısmi korelasyon), ilişki neredeyse tamamen kayboluyor (r=0.031). Buna karışık değişken (confounder) denir — iki değişkeni de etkileyen, gizli üçüncü bir etken.
Çoğu kişi “iki şey birlikte hareket ediyorsa, biri diğerine sebep oluyordur” sanır. Değil, çünkü üç farklı açıklama her zaman mümkündür: A, B’ye sebep olabilir; B, A’ya sebep olabilir; ya da üçüncü bir C, ikisine de sebep olabilir (tam bizim örneğimizdeki gibi).
Matematik
Pearson korelasyon katsayısı
| Sembol | Anlamı |
|---|---|
| Her gözlemin iki değişkendeki değeri | |
| İki değişkenin ortalamaları | |
| Pay | Kovaryans (birlikte değişim) — ikisi de ortalamanın aynı yönünde sapıyorsa pozitif katkı verir |
| Payda | Her değişkenin kendi yayılımıyla normalize eder, sonucu −1 ile +1 arasına sıkıştırır |
Formülün doğası gereği, r sadece doğrusal bir örüntüyü yakalayabilir — pay, sapmaların çarpımına dayanır, bu da düz bir çizgi etrafındaki ilişkiyi ölçer. Eğrisel bir ilişkide (aşağıda göreceğiz) sapmalar birbirini götürüp r’yi sıfıra yakın gösterebilir.
Kod
Üçüncü tuzak: r’nin sadece doğrusal ilişkiyi yakaladığını doğrudan gösterelim.
Güçlü ama doğrusal olmayan ilişki
# r sadece DOĞRUSAL ilişkiyi ölçer. Çok güçlü ama eğrisel bir ilişkide r küçük çıkabilir.
x_egri = np.linspace(-10, 10, 100)
y_egri = x_egri ** 2 + rng.normal(0, 5, size=100) # mükemmel bir U şekli + az gürültü
r_egri, _ = stats.pearsonr(x_egri, y_egri)
print(f"\nY = X² ilişkisinde (neredeyse gürültüsüz, mükemmel bir örüntü): r = {r_egri:.3f}")
print("r sıfıra yakın — ama aralarında GÜÇLÜ bir ilişki var, sadece doğrusal değil!")
Y = X² ilişkisinde (neredeyse gürültüsüz, mükemmel bir örüntü): r = -0.011
r sıfıra yakın — ama aralarında GÜÇLÜ bir ilişki var, sadece doğrusal değil!Y = X² gibi neredeyse gürültüsüz, mükemmel bir örüntüde r=−0.011 — sıfıra çok yakın, sanki hiç ilişki yokmuş gibi görünüyor. Ama aralarında çok güçlü (sadece eğrisel) bir ilişki var. r=0 raporlamak burada tamamen yanıltıcı olurdu.
Nerede işe yarar
Bu üç uyarı, veriyle çalışan herkesin günlük hayatında karşısına çıkar:
- İş raporlama. “Pazarlama harcaması ile satış arasında r=0.8” demek, harcamayı artırmanın satışı artıracağı anlamına gelmez — mevsim, rakip hareketleri gibi karışık değişkenler olabilir.
- Sağlık haberleri. “X yiyeceği Y hastalığıyla ilişkili” başlıkları genelde gözlemsel korelasyon verisine dayanır, nedensellik iddia etmez (ama okuyucu genelde öyle anlar).
- Ürün analitiği. Bir özelliği kullanan kullanıcıların daha çok harcaması, o özelliğin harcamayı ARTIRDIĞI anlamına gelmeyebilir — zaten en aktif/sadık kullanıcılar hem o özelliği kullanıyor hem daha çok harcıyor olabilir.
Bu 3 hatayı yaparsın:
- Bir korelasyon katsayısını serpme grafiğine bakmadan yorumlamak — Anscombe dörtlüsü tam olarak bunun tehlikesini gösteriyor.
- “Korelasyon var, demek ki biri diğerine sebep oluyor” sonucuna atlamak — karışık değişken ihtimalini değerlendirmeden asla.
- r=0 veya r’ye yakın bir değeri “hiç ilişki yok” diye okumak — ilişki güçlü ama doğrusal olmayabilir.
Kendini test et
1. Anscombe dörtlüsündeki dört veri setinin hepsinin r≈0.816 olması neyi gösterir?
- Dördü de aynı ilişkiye sahiptir
- r tek başına veri setinin şeklini (doğrusal mı, eğrisel mi, aykırı değerli mi) yansıtmaz — grafiğe bakmak şarttır (doğru cevap)
- Korelasyon katsayısı hatalı hesaplanmıştır
- Anscombe dörtlüsü gerçek veri değildir, önemsizdir
Neden: Aynı r değeri, doğrusal bir ilişkiden, eğrisel bir ilişkiden, hatta tek bir aykırı değerden bile kaynaklanabilir — bu yüzden r'yi her zaman bir serpme grafiğiyle birlikte yorumlamak gerekir.
2. Dondurma satışı ile boğulma vakaları arasındaki güçlü korelasyonun açıklaması nedir?
- Dondurma boğulmaya sebep oluyor
- Boğulma dondurma satışını artırıyor
- Sıcaklık gibi bir karışık değişken, ikisini de bağımsız olarak etkiliyor (doğru cevap)
- Aralarında hiçbir bağlantı yoktur, tamamen tesadüf
Neden: Sıcaklık hem dondurma satışını hem yüzme (dolayısıyla boğulma riskini) artırıyor — iki değişken arasında doğrudan nedensellik değil, ortak bir sürükleyici (karışık değişken) var.
3. Y = X² gibi güçlü ama eğrisel bir ilişkide r neden sıfıra yakın çıkabilir?
- Hesaplama hatası olduğu için
- r sadece DOĞRUSAL ilişkiyi ölçer; simetrik bir eğride pozitif ve negatif sapmalar birbirini götürebilir (doğru cevap)
- X ve Y arasında gerçekten hiçbir ilişki olmadığı için
- Veri miktarı yetersiz olduğu için
Neden: Pearson r'nin formülü doğrusal sapmalara dayanır; U şeklindeki bir örüntüde negatif X değerleri ile pozitif X değerleri Y üzerinde simetrik etki yaptığından, doğrusal korelasyon birbirini iptal edip sıfıra yakın çıkabilir.
Özet
Özet
- Korelasyon katsayısı (r), iki değişken arasındaki DOĞRUSAL ilişkinin gücünü −1 ile +1 arasında özetler.
- Aynı r değeri çok farklı veri şekillerinden gelebilir (Anscombe dörtlüsü) — her zaman grafiğe de bak.
- Korelasyon nedensellik kanıtı değildir: A→B, B→A, veya gizli bir C→A,B her zaman olası açıklamalardır.
- Karışık değişkenler (confounder), iki değişkeni de bağımsız olarak etkileyip sahte bir ilişki yaratabilir.
- r sadece doğrusal ilişkiyi yakalar — güçlü ama eğrisel bir ilişkide r yanıltıcı şekilde düşük çıkabilir.