Python ile Tanımlayıcı (Descriptive) Veri Analizi: Kodlar ve Açıklamalarla Öğrenin
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()
Çıktı:
count 160.000000
mean 0.035109
std 0.038749
min -0.009554
25% 0.009352
50% 0.025866
75% 0.040660
max 0.197265
Bu fonksiyon, bir sayısal değişkenin temel istatistiklerini sunar:
Gözlem sayısı
Ortalama
Standart sapma
Min–Max değerler
25%, 50% (medyan), 75% çeyreklikler
Ne İşe Yarar?
Verinin genel yapısını hızlıca görmenizi sağlar. Ortalamayla medyan arasındaki fark, veride simetrik mi yoksa çarpık mı bir dağılım olduğunu gösterebilir.
2️⃣ Gruplara Göre Özet İstatistikler
df.groupby("Treatment").Result.describe()
Çıktı:
Treatment count mean std min 25% 50% 75% max
--------------------------------------------------------------------------------------
Tr-1 40.0 0.044938 0.051429 -0.009554 0.020605 0.030496 0.037779 0.197265
Tr-2 40.0 0.013218 0.016018 -0.007256 0.005024 0.008880 0.014866 0.066604
Tr-3 40.0 0.049256 0.036690 -0.008682 0.023257 0.034329 0.077918 0.121380
Tr-4 40.0 0.033024 0.032762 -0.008759 0.008753 0.026141 0.050239 0.129738
Ne İşe Yarar?
Bu fonksiyon, Treatment adlı kategorik değişkene göre Result değişkeninin tanımlayıcı istatistiklerini sunar. Her grup için ayrı ayrı min, max, ortalama, medyan gibi değerleri görebilirsiniz.
Bu tür analizler özellikle deneysel çalışmalarda, farklı uygulamaların sonuçlar üzerindeki etkilerini karşılaştırmak için kullanılır.
3️⃣ Gruplara Göre Ortalama (Mean)
df.groupby("Treatment").Result.mean()
Çıktı:
Treatment
Tr-1 0.044938
Tr-2 0.013218
Tr-3 0.049256
Tr-4 0.033024
Ne İşe Yarar?
Her bir tedavi (grup) için ortalama sonuçları verir. Ortalama, verinin merkezini temsil eden önemli bir ölçüdür. Gruplar arası farkları hızlıca görmek mümkündür.
Eğer gruplarınız yoksa:
mean = df.Result.mean()
print('Mean: %.3f' % mean)
Çıktı:
Mean: 0.026
4️⃣ Gruplara Göre Medyan
df.groupby("Treatment").Result.median()
Çıktı:
Treatment
Tr-1 0.030496
Tr-2 0.008880
Tr-3 0.034329
Tr-4 0.026141
Ne İşe Yarar?
Ortalamaya kıyasla medyan, uç değerlerden etkilenmeyen bir merkezi eğilim ölçüsüdür.
Eğer ortalama ≈ medyan: veri normal dağılıma yakın olabilir.
Eğer büyük fark varsa: veri çarpık dağılıma sahip olabilir.
Bu yorumlar, parametrik mi yoksa parametrik olmayan testler mi uygulanacağı konusunda yol gösterir.
5️⃣ Gruplara Göre Varyans
df.groupby("Treatment").Result.var()
Çıktı:
Treatment
Tr-1 0.002645
Tr-2 0.000257
Tr-3 0.001346
Tr-4 0.001073
Ne İşe Yarar?
Varyans, verilerin ortalamadan ne kadar saptığını gösterir.
Düşük varyans: değerler ortalamaya yakın (homojen)
Yüksek varyans: değerler ortalamadan uzak (heterojen)
Bu bilgi, örneklem büyüklüğü, güven aralıkları ve modelleme seçeneklerini belirlemek açısından önemlidir.
6️⃣ Gruplara Göre Standart Sapma
df.groupby("Treatment").Result.std()
Çıktı:
Treatment
Tr-1 0.051429
Tr-2 0.016018
Tr-3 0.036690
Tr-4 0.032762
Ne İşe Yarar?
Standart sapma, varyansın kareköküdür. Yani birimlerle ifade edilir, bu nedenle yorumlanması daha kolaydır.
Örnek: Eğer Tr-1 grubunun ortalaması 0.05 ve std değeri 0.01 ise, verilerin çoğu 0.04–0.06 aralığındadır.
Standart sapma, Gaussian dağılımın tanımlanması için ortalama ile birlikte kullanılan iki temel parametreden biridir.
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)
Çıktı:
- Min: -0.00955
- Q1: 0.00935
- Median: 0.02587
- Q3: 0.04066
- Max: 0.19727
Beşli Özet Nedir?
Minimum (en küçük değer)
Çeyrek (Q1 – %25)
Medyan (Q2 – %50)
Çeyrek (Q3 – %75)
Maksimum (en büyük değer)
Ne İşe Yarar?
Aykırı değer tespiti, kutu grafiği çizimi, dağılım yapısının gözlenmesi gibi pek çok analizde kullanılır.
8️⃣ Araç Olarak Researchpy ile Tanımlayıcı İstatistikler
import researchpy as rp
rp.summary_cont(df["Result"])
Çıktı:
Variable N Mean SD SE 95% Conf. Interval
-------------------------------------------------------------
Result 160 0.0351 0.0387 0.0031 0.0291 0.0412
Ne İşe Yarar?
Bu fonksiyon aşağıdaki istatistikleri sunar:
Ortalama
Standart sapma
Standart hata
Güven aralığı
Gözlem sayısı (n)
Avantajı nedir?
Daha derinlemesine bir tablo sunar. Özellikle makale yazımı, raporlama ya da akademik analizlerde 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 istatistiksel test seçemezsiniz
Modellerden anlamlı sonuç çıkaramazsınız
Hataları tespit edemezsiniz
Bu nedenle, ister regresyon analizi yapacak olun, ister makine öğrenmesi modeli kuracak olun, mutlaka bu adımı atlamamalısınız.
Sonuç ve Öneriler
Verinize ilk bakışınızda
describe()vegroupby()fonksiyonları hayat kurtarır.Standart sapma, varyans ve medyan gibi ölçülerle verinin merkezi eğilim ve dağılım yapısını öğrenirsiniz.
Researchpy gibi ek kütüphaneler, istatistiksel raporlamada işinizi kolaylaştırır.
Bu analizler, sadece sayılarla oynamak değil; veriyi tanımak, anlamak ve saygı göstermek anlamına gelir.
