Keşifsel Veri Analizi (EDA) Kapsamlı Rehber
İstatistikçi John Tukey, 1977'de yayımladığı Exploratory Data Analysis adlı eseriyle veri analizine yeni bir bakış açısı kazandırdı: önce veriye bakın, sonra hipotez kurun. Keşifsel Veri Analizi (EDA), herhangi bir istatistiksel model uygulamadan önce verinin doğasını, dağılımını, ilişkilerini ve olası sorunlarını görsel ve sayısal araçlarla anlamak demektir. Bu kapsamlı rehber; betimsel istatistiklerden çarpıklık/basıklığa, aykırı değer tespitinden otomatik EDA araçlarına ve SPSS'teki karşılığına kadar tüm süreci ele alır.
1. EDA Nedir ve Neden Önemlidir?
EDA, herhangi bir istatistiksel model veya makine öğrenmesi algoritması uygulamadan önce verinin yapısını, dağılımını, örüntülerini ve anomalilerini anlamak için yapılır. Eksik veriler, aykırı değerler, dağılım şekilleri ve değişkenler arası ilişkiler EDA aşamasında keşfedilir. Bu adım atlandığında model performansı ve yorumların güvenilirliği ciddi ölçüde zarar görebilir — yanlış dağılım varsayımıyla seçilen bir test veya fark edilmeyen bir aykırı değer, sonuçları baştan sona geçersiz kılabilir.
Tukey'nin mirası: Tukey (1977), veri analizinde "doğrulayıcı" (confirmatory) ve "keşifsel" (exploratory) yaklaşımları ayırt etmiştir. Doğrulayıcı analiz önceden kurulan bir hipotezi test ederken, EDA önyargısız biçimde veriye bakıp hangi hipotezlerin anlamlı olduğunu ortaya çıkarır. Boxplot, stem-and-leaf gösterimi ve medyan bazlı sağlam (robust) istatistikler Tukey'nin bu felsefeden doğan katkılarındandır.
2. EDA'nın Veri Analizi Sürecindeki Yeri
Wickham ve Grolemund'un (2017) R for Data Science eserinde vurgulandığı gibi, EDA döngüsel bir süreçtir: soru sor, veriyi görselleştir/özetle, yeni sorular türet, tekrarla. Tipik bir veri analizi/veri bilimi projesinde EDA şu adımlar arasında yer alır:
- Veri toplama / temin etme
- Veri temizleme (bkz. Veri Temizleme Nasıl Yapılır?)
- Keşifsel Veri Analizi (EDA) — bu yazının konusu
- Hipotez kurma / model seçimi
- İstatistiksel test veya makine öğrenmesi modeli uygulama
- Sonuçları yorumlama ve raporlama
Sık yapılan hata: Veri temizleme ile EDA'yı birbirinin yerine kullanmak. Veri temizleme, hataları (yinelenen kayıt, tutarsız format, geçersiz değer) düzeltmeyi hedefler; EDA ise temizlenmiş veride örüntü ve ilişki aramayı hedefler. Pratikte ikisi iç içe geçer: EDA sırasında fark edilen bir anomali, veri temizlemeye geri dönmeyi gerektirebilir.
3. Veri Setine Genel Bakış
İlk adım veri setinin boyutunu, değişken türlerini ve genel yapısını incelemektir:
Bu aşamada zaten pek çok şey dikkat çekebilir: beklenmedik veri tipleri (sayısal bir sütunun metin olarak okunması), çok sayıda eksik değer içeren sütunlar veya anlamsız/tutarsız sütun isimleri.
4. Eksik Veri Analizi
Eksik verinin miktarı kadar deseni de önemlidir. Rastgele mi eksik, yoksa belirli bir alt gruba mı yoğunlaşmış? missingno kütüphanesi bu deseni görselleştirmede etkilidir:
Eksik veri türleri (MCAR / MAR / MNAR) ve uygun doldurma (imputation) stratejileri için Anket Analizi Nasıl Yapılır? yazımızdaki ilgili bölüme bakabilirsiniz.
5. Betimsel İstatistikler: Merkezi Eğilim ve Yayılım
Sayısal değişkenler için df.describe() komutu merkezi eğilim ve yayılım ölçütlerini özetler:
| İstatistik | Ne İçin Kullanılır |
|---|---|
| mean (ortalama) | Merkezi eğilim; aykırı değerlere duyarlı |
| 50% (medyan) | Aykırı değerlerden etkilenmeyen sağlam (robust) merkez |
| std (standart sapma) | Verinin ortalama etrafındaki yayılımı |
| IQR (Q3−Q1) | Aykırı değerlere dayanıklı yayılım ölçütü |
| min / max | Olası veri giriş hatalarını (örn. negatif yaş) gösterir |
| mode (mod) | En sık tekrarlanan değer; kategorik değişkenlerde temel ölçüt |
Kategorik değişkenler için df['kolon'].value_counts() frekans dağılımını, df['kolon'].nunique() ise benzersiz kategori sayısını verir.
6. Çarpıklık (Skewness) ve Basıklık (Kurtosis)
Ortalama ve standart sapma tek başına dağılımın şeklini anlatmaz. İki ek ölçüt bu boşluğu doldurur:
- Çarpıklık (Skewness): Dağılımın simetriden sapmasını ölçer. 0'a yakın değer simetrik dağılımı; pozitif değer sağa çarpık (kuyruk sağda), negatif değer sola çarpık (kuyruk solda) dağılımı gösterir.
- Basıklık (Kurtosis): Dağılımın kuyruklarının normal dağılıma göre "ağırlığını" ölçer. Fazladan basıklık (excess kurtosis) > 0 ise dağılım sivri ve ağır kuyrukludur (leptokurtik — aykırı değer olasılığı yüksek); < 0 ise basık ve hafif kuyrukludur (platikurtik).
7. Tek Değişkenli Görselleştirme
Histogram ve KDE
Histogram, sürekli bir değişkenin dağılımını görsel olarak ortaya koyar. sns.histplot(data=df, x='gelir', kde=True) komutu histogramın üzerine yoğunluk eğrisi (KDE) ekler — KDE'nin matematiksel temeli için Yoğunluk Analizi (KDE) yazımıza bakabilirsiniz.
Boxplot ve Violin Plot
Kutu grafiği (boxplot), medyanı, çeyrekler arası aralığı (IQR) ve aykırı değerleri tek bir grafikte sunar:
8. Kategorik Değişken Analizi
Kategorik değişkenler için frekans tabloları ve bar grafikleri temel araçtır:
Az sayıda kategori dominant, çok sayıda kategori az temsil ediliyorsa (uzun kuyruklu dağılım), Pareto grafiği (kümülatif yüzde çizgisiyle bar grafiği) hangi kategorilerin toplam gözlemin çoğunluğunu oluşturduğunu (80/20 kuralı) hızlıca gösterir.
9. Çift Değişkenli Analiz: Scatter Plot ve Korelasyon
İki sürekli değişken arasındaki ilişkiyi görselleştirmek için saçılım diyagramı kullanılır:
Doğrusal mı, eğrisel mi, yoksa ilişki yok mu — bu dört temel deseni ayırt etmek, hangi korelasyon katsayısının (Pearson vs Spearman) ve hangi modelin (doğrusal vs doğrusal olmayan) uygun olduğuna karar vermenizi sağlar. Detaylı yorumlama için Korelasyon Analizi yazımıza bakabilirsiniz.
🔷 Pearson kullanın, eğer…
- İlişki doğrusal görünüyorsa
- Her iki değişken de yaklaşık normal dağılıyorsa
- Aykırı değer az/yoksa (Pearson aykırı değere duyarlıdır)
🟩 Spearman kullanın, eğer…
- İlişki monotonik ama doğrusal değilse
- Sıra/ordinal veriyle çalışıyorsanız
- Aykırı değerlere dayanıklı bir ölçüt istiyorsanız
10. Çok Değişkenli Analiz: Pair Plot ve Isı Haritası
Birden fazla değişken arasındaki tüm ikili ilişkileri aynı anda görmek için pair plot, tüm korelasyonları tek bakışta özetlemek için ısı haritası (heatmap) kullanılır:
Koyu kırmızı güçlü pozitif, koyu mavi güçlü negatif ilişkiyi temsil eder. Çok değişkenli veri setlerinde (10+ sayısal değişken), ısı haritası hangi değişken çiftlerinin derinlemesine incelenmeye değer olduğunu önceliklendirmenize yardımcı olur.
11. Aykırı Değer Tespiti
Aykırı değerler, gerçek bir anomaliyi (veri giriş hatası) veya nadir ama geçerli bir gözlemi temsil edebilir — ayrım yapmak analistin uzmanlığını gerektirir. En yaygın tespit yöntemleri:
| Yöntem | Mantık | Ne Zaman Uygun |
|---|---|---|
| IQR Kuralı | Q1 − 1.5×IQR altı veya Q3 + 1.5×IQR üstü aykırı kabul edilir | Çarpık dağılımlarda da sağlam (robust) çalışır — genel amaçlı ilk tercih |
| Z-Skoru | Ortalamadan >3 standart sapma uzaklık aykırı kabul edilir | Yaklaşık normal dağılımlarda; çarpık verilerde yanıltıcı olabilir |
| Görsel (Boxplot/Scatter) | Gözle inceleme | Hızlı ilk tarama, az sayıda değişken |
| Mahalanobis Mesafesi | Çok değişkenli uzaklık; değişkenler arası korelasyonu dikkate alır | Tek başına normal görünen ama çok değişkenli uzayda aykırı olan noktalar |
| Isolation Forest | Ağaç tabanlı anomali tespiti; azınlık noktaları daha az bölme ile izole eder | Yüksek boyutlu, büyük veri setlerinde otomatik tespit |
Aykırı değeri silmeden önce düşünün: Bir aykırı değer, veri giriş hatası (yaş = 999) olabileceği gibi gerçek ve önemli bir gözlem de olabilir (bir CEO'nun maaşı). Sildiğiniz her gözlem için gerekçenizi raporlayın; "aykırı olduğu için sildim" tek başına yeterli bir gerekçe değildir.
12. Veri Dönüşümleri: Log, Box-Cox, Normalizasyon
Çarpık dağılımlar veya farklı ölçeklerdeki değişkenler, bazı analizlerden önce dönüştürülmelidir:
- Logaritmik dönüşüm: Sağa çarpık dağılımları (gelir, nüfus gibi) simetrikleştirmede etkilidir:
np.log1p(df['gelir']). - Box-Cox dönüşümü: Log dönüşümünün genelleştirilmiş hali; veriye en uygun λ parametresini otomatik bulur (yalnızca pozitif değerlerde çalışır).
- Min-Max Normalizasyon: Değerleri [0, 1] aralığına ölçekler; mesafe tabanlı algoritmalar (K-Means, KNN) için önemlidir.
- Standardizasyon (Z-score): Ortalama 0, standart sapma 1 olacak şekilde ölçekler; PCA ve regresyon gibi yöntemlerde tercih edilir.
13. Otomatik EDA Araçları
Veri seti büyük veya değişken sayısı fazlaysa, manuel olarak her değişkeni tek tek incelemek yerine otomatik EDA araçları tek komutla kapsamlı bir HTML rapor üretir:
| Araç | Öne Çıkan Özellik |
|---|---|
| ydata-profiling (eski adıyla pandas-profiling) | Her değişken için dağılım, eksik değer, korelasyon, uyarılar (yüksek korelasyon, sabit sütun vb.) içeren kapsamlı HTML rapor |
| Sweetviz | İki veri setini (örn. eğitim vs test) yan yana karşılaştırmalı görselleştirme |
| AutoViz | Veri tipine göre otomatik en uygun grafik türünü seçip toplu görselleştirme üretir |
| D-Tale | Etkileşimli, tarayıcı tabanlı veri keşif arayüzü (Excel benzeri deneyim) |
Otomatik araçların sınırı: Bu araçlar hızlı bir ilk genel bakış sağlar ancak alan bilgisi (domain knowledge) gerektiren yorumlamanın (örn. "bu aykırı değer aslında kampanya dönemine denk geliyor") yerini tutmaz. Otomatik rapor bir başlangıç noktasıdır, analizin sonu değil.
14. SPSS'te EDA: Explore Prosedürü
SPSS kullanıcıları için EDA'nın büyük kısmı tek bir prosedürde toplanmıştır:
Dependent List: incelenecek sayısal değişken(ler)
Factor List: (isteğe bağlı) gruplara göre karşılaştırma değişkeni
Statistics: Descriptives (ortalama, medyan, çarpıklık, basıklık)
Plots: Boxplot, Histogram, Normality plots with tests (Shapiro-Wilk/Kolmogorov-Smirnov)
→ OK
15. EDA Raporlama ve Sonraki Adımlar
EDA bir keşif sürecidir; bulguları özetlemek ve analizin bir sonraki aşaması için yol haritası çizmek önemlidir. Bir EDA raporunda şu sorulara yanıt verilmelidir:
- Hangi değişkenler bağımlı değişkenle ilişkili görünüyor?
- Hangi sütunlarda veri kalitesi sorunu (eksik veri, aykırı değer) var ve nasıl ele alındı?
- Dağılımlar normal mi, yoksa parametrik olmayan yöntemler mi gerekiyor?
- Değişkenler arasında çoklu doğrusal bağlantı (multicollinearity) riski var mı (korelasyon > 0.8)?
- Bir sonraki adımda hangi model/test aileleri (parametrik/non-parametrik, doğrusal/doğrusal olmayan) uygun görünüyor?
16. Yaygın Hatalar
- Sadece ortalamaya bakıp medyanı görmezden gelmek: Çarpık dağılımlarda ortalama yanıltıcı olabilir; ikisini birlikte raporlayın.
- Aykırı değerleri sorgusuzca silmek: Silme kararını gerekçelendirin ve duyarlılık analizi yapın (silmeden/silerek sonuçları karşılaştırın).
- Korelasyonu nedensellikle karıştırmak: Isı haritasında yüksek korelasyon görmek, bir değişkenin diğerine neden olduğu anlamına gelmez.
- Yalnızca sayısal özet çıkarıp hiç görselleştirme yapmamak: Anscombe'un dörtlüsü (Anscombe's Quartet) klasik örneğidir — dört farklı veri seti aynı ortalama, varyans ve korelasyona sahipken tamamen farklı desenler sergiler; yalnızca görselleştirme bu farkı ortaya çıkarır.
- EDA'yı atlayıp doğrudan modele geçmek: Zaman baskısı altında cazip gelse de, fark edilmeyen bir veri kalitesi sorunu modelin tamamını geçersiz kılabilir.
Verinizin Hikayesini Birlikte Keşfedelim
Veri setiniz için kapsamlı EDA raporu hazırlıyor, bulgularınızı yorumluyor ve ileri analiz için en uygun yöntemi öneriyoruz.
Ücretsiz Danışma AlKaynaklar
- Tukey, J. W. (1977). Exploratory Data Analysis. Addison-Wesley.
- Wickham, H., & Grolemund, G. (2017). R for Data Science. O'Reilly Media. r4ds.had.co.nz
- Anscombe, F. J. (1973). Graphs in Statistical Analysis. The American Statistician, 27(1), 17–21.
- ydata-profiling Documentation. docs.profiling.ydata.ai