Python ile Tanımlayıcı (Descriptive) Veri Analizi
Günümüzde teknolojinin gelişimiyle birlikte, hayatımızın her alanından veri toplanabiliyor. Ancak bu verilerin ham haliyle bilgiye dönüşmesi mümkün değil. Bu noktada devreye veri bilimi ve veri analistleri giriyor. Ham verileri anlamlı hale getirerek içgörü üreten veri bilimciler, bugünün en çok ihtiyaç duyulan uzmanları arasında yer alıyor.
Veri biliminde ilk adımlardan biri, eldeki veriyi tanımak ve yapısını incelemektir. İşte bu yüzden tanımlayıcı analiz (descriptive analysis), her analizin vazgeçilmez bir parçasıdır.
Bu yazıda, Python kullanarak bir veri seti üzerinde tanımlayıcı analiz yapmak için kullanabileceğiniz kodları ve her bir adımın neden önemli olduğunu detaylarıyla öğreneceksiniz.
Tanımlayıcı Analiz Nedir ve Neden Önemlidir?
Tanımlayıcı analiz, bir veri kümesiyle ilk kez karşılaşıldığında yapılması gereken ilk analiz türüdür. Amaç:
- Verinin dağılımını görmek
- Aykırı değerleri tespit etmek
- Yazım hatalarını fark etmek
- Değişkenler arası benzerlikleri belirlemek
- Daha ileri analizlere hazırlık yapmak
Bu analiz sayesinde, sonraki adımlarda uygulayacağınız istatistiksel ya da makine öğrenimi modellerine sağlam ve temiz bir veri sunmuş olursunuz.
Önce Verileri Excel’den Yükleyelim
import pandas as pd
df = pd.read_excel("C:/Data_1.xlsx")
df.head(5)
Çıktı:
| Sample | Treatment | Period | Result |
|---|---|---|---|
| 1 | Tr-1 | 6 | 0.000158 |
| 1 | Tr-2 | 6 | 0.000218 |
| 1 | Tr-3 | 6 | 0.009765 |
| 1 | Tr-4 | 6 | 0.003189 |
| 1 | Tr-1 | 12 | 0.020538 |
1️⃣ Belirli Bir Kolonu Özetle
df.Result.describe()
Ne İşe Yarar?
Verinin genel yapısını hızlıca görmenizi sağlar.
Ortalama ile medyan arasındaki fark, verinin simetrik mi yoksa çarpık mı olduğunu gösterir.
2️⃣ Gruplara Göre Özet İstatistikler
df.groupby("Treatment").Result.describe()
Bu fonksiyon, Treatment adlı kategorik değişkene göre Result değişkeninin tanımlayıcı istatistiklerini sunar. Deneysel çalışmalarda gruplar arası karşılaştırmalar için oldukça etkilidir.
3️⃣ Gruplara Göre Ortalama (Mean)
df.groupby("Treatment").Result.mean()
Her grup için ortalama değerleri verir ve gruplar arası farkları hızlıca görmenizi sağlar.
Gruplar yoksa:
mean = df.Result.mean()
print('Mean: %.3f' % mean)
4️⃣ Gruplara Göre Medyan
df.groupby("Treatment").Result.median()
Medyan, uç değerlerden etkilenmeyen bir merkezi eğilim ölçüsüdür. Parametrik veya parametrik olmayan test seçiminde yol göstericidir.
5️⃣ Gruplara Göre Varyans
df.groupby("Treatment").Result.var()
Varyans, verinin homojen mi yoksa heterojen mi olduğunu anlamamızı sağlar.
6️⃣ Gruplara Göre Standart Sapma
df.groupby("Treatment").Result.std()
Standart sapma, varyansın kareköküdür ve birimlerle ifade edilir. Bu nedenle yorumlanması daha kolaydır.
7️⃣ Beşli Özet (Five-Number Summary)
from numpy import percentile
quarters = percentile(df["Result"], [25, 50, 75])
min_data, max_data = df["Result"].min(), df["Result"].max()
print('- Min: %.5f' % min_data)
print('- Q1: %.5f' % quarters[0])
print('- Median: %.5f' % quarters[1])
print('- Q3: %.5f' % quarters[2])
print('- Max: %.5f' % max_data)
Beşli özet, aykırı değer tespiti ve kutu grafikleri için temel bir yapı sunar.
8️⃣ Researchpy ile Tanımlayıcı İstatistikler
import researchpy as rp
rp.summary_cont(df["Result"])
Bu tablo; ortalama, standart sapma, standart hata, güven aralığı ve örneklem sayısını tek seferde sunar. Akademik raporlamada oldukça kullanışlıdır.
Neden Bu Analizleri Yapmalıyız?
Tanımlayıcı analiz, veri analizinin en temel ve en hayati aşamasıdır. Veriye hakim olmadan doğru test seçimi, modelleme ve yorumlama yapmak mümkün değildir.
Sonuç ve Öneriler
describe()vegroupby()fonksiyonları ilk bakışta hayat kurtarır.- Medyan, varyans ve standart sapma verinin dağılım yapısını anlamanızı sağlar.
- Researchpy gibi araçlar akademik raporlamayı kolaylaştırır.
Tanımlayıcı analiz, sadece sayılarla oynamak değil; veriyi tanımak, anlamak ve ona saygı göstermek demektir.