Merhaba Dostlar, Atölyeye Teknik Bir Mola Veriyoruz!

Şimdiye kadar ggplot2 ile harika görseller yarattık. Ancak atölyemizdeki en hassas ölçüm cihazları olan geom_histogram ve geom_density’yi kullanmaya başlamadan önce, bu aletlerin bize ne söylediğini anlamak için bir adım geri çekiliyoruz.

Bu bölümde, bir grafiği nasıl “okuyacağımızı” öğreneceğiz. Verinin “şeklinin” ardında yatan temel istatistiksel kavramları hatırlayarak, birazdan çizeceğimiz dağılım grafiklerinin bize fısıldadığı o derin hikayeleri duyabilmek için kulaklarımızı eğiteceğiz.


1. Dağılım Nedir? Verinin Karakter Haritası

Bir değişkenin dağılımı, o değişkenin aldığı değerlerin hangi aralıklarda ne kadar sık göründüğünü gösteren bir haritadır.

Veri görselleştirme alanında Wilke (2019), bir dağılımı anlamak için özellikle iki özelliğe odaklanılması gerektiğini vurgular: merkezi eğilim (dağılımın merkezi) ve yayılım (değerlerin ne kadar geniş bir aralığa dağıldığı). Bu iki temel soru, verinin “kalbinin” nerede attığını ve ne kadar “dağınık” olduğunu kavramaya yardımcı olur.

Bu iki soruyu cevaplamak için kullandığımız temel istatistiksel ölçüleri, basit bir görsel üzerinde hatırlayalım.


2. Merkezi Eğilim Ölçüleri: Verinin Kalbi

Bu ölçüler, bize dağılımın merkez noktasını, yani “tipik” bir değerin ne olduğunu söyler.

a) Ortalama (Mean)

Hepimizin bildiği gibi, tüm değerlerin toplamının gözlem sayısına bölünmesiyle bulunur. Veri setinin “ağırlık merkezidir”.

En Önemli Özelliği: Wilke (2019), ortalamanın aykırı değerlere duyarlı olduğunu ve tek bir aşırı büyük ya da küçük gözlemin dağılımın ortalamasını önemli ölçüde kaydırabileceğini belirtir.

# Normal bir veri seti
notlar_normal <- c(85, 90, 75, 80, 82)
mean(notlar_normal)
## [1] 82.4
# Icine tek bir aykiri (dusuk) deger eklenmis bir veri seti
notlar_aykiri <- c(85, 90, 75, 80, 82, 5)
mean(notlar_aykiri)
## [1] 69.5

Gördüğünüz gibi, tek bir ‘5’ notu, ortalamayı ~82’den ~70’e çekti!

b) Medyan (Median)

Veri setini küçükten büyüğe sıraladığımızda, tam ortada kalan değerdir. Veriyi %50’lik iki eşit parçaya bölen “sağlam orta direktir”.

En Önemli Özelliği: Uç değerlerin (outliers) büyüklüğünden veya küçüklüğünden fazla etkilenmemesidir; bu nedenle ortalamaya kıyasla daha sağlam (robust) bir konum ölçüsüdür (Wilke, 2019).

# Normal veri setinin medyani
median(notlar_normal)
## [1] 82
# Aykiri deger iceren veri setinin medyani
median(notlar_aykiri)
## [1] 81

Gördüğünüz gibi, ‘5’ notunun eklenmesi medyanı neredeyse hiç değiştirmedi!

Görsel Karşılaştırma: Gelin bu hassasiyet farkını, basit bir yoğunluk grafiği (geom_density) üzerinde görelim.

library(ggplot2)
library(patchwork)

# Ornek veri setleri
notlar_normal_df <- data.frame(notlar = c(85, 90, 75, 80, 82))
notlar_aykiri_df <- data.frame(notlar = c(85, 90, 75, 80, 82, 5))

# Iki dagilimi cizelim
p1 <- ggplot(notlar_normal_df, aes(x = notlar)) +
  geom_density(fill="skyblue", alpha=0.5) +
  geom_vline(aes(xintercept = mean(notlar), color = "Ortalama"),
             linetype="dashed", linewidth=1) +
  geom_vline(aes(xintercept = median(notlar), color = "Medyan"),
             linetype="dotted", linewidth=1) +
  ggtitle("Normal Dagilim") +
  theme_minimal()

p2 <- ggplot(notlar_aykiri_df, aes(x = notlar)) +
  geom_density(fill="salmon", alpha=0.5) +
  geom_vline(aes(xintercept = mean(notlar), color = "Ortalama"),
             linetype="dashed", linewidth=1) +
  geom_vline(aes(xintercept = median(notlar), color = "Medyan"),
             linetype="dotted", linewidth=1) +
  ggtitle("Aykiri Degerli Dagilim ('5' dahil)") +
  theme_minimal()

# patchwork ile yan yana gosterelim
p1 + p2 + plot_layout(guides = 'collect') & theme(legend.position = 'bottom')
Ortalama ve Medyanin Aykiri Degerlere Karsi Hassasiyeti

Ortalama ve Medyanin Aykiri Degerlere Karsi Hassasiyeti

Gördüğünüz gibi dostlar, soldaki normal dağılımda ortalama ve medyan neredeyse üst üste. Ancak sağdaki grafikte, eklediğimiz tek bir aykırı ‘5’ notu, Ortalama’yı (kesikli çizgi) sola doğru çekerken, Medyan (noktalı çizgi) yerini neredeyse hiç değiştirmedi. İşte bu, medyanın “sağlamlığının” görsel kanıtıdır.

c) Mod (Mode)

Bir veri setinde en sık tekrar eden değerdir. Bir dağılımın kaç tane “tepe” noktası olduğunu bize söyler.


3. Yayılım Ölçüleri: Veri Ne Kadar Dağınık?

Merkezi bilmek önemlidir, ancak tek başına yeterli değildir. İki farklı sınıfın not ortalaması aynı olabilir, ancak bir sınıftaki notlar birbirine çok yakınken diğer sınıfta çok dağınık olabilir. Yayılım ölçüleri, bize bu “dağınıklığın” derecesini anlatır.

a) Standart Sapma (Standard Deviation)

En yaygın kullanılan yayılım ölçüsüdür. Değerlerin, ortalamadan “ortalama olarak ne kadar saptığını” bize söyler.

b) Çeyrekler Arası Açıklık (Interquartile Range - IQR)

geom_boxplot’un “kutusunu” oluşturan bu ölçü, verinin tam ortasındaki %50’lik kısmının ne kadar geniş bir aralığa yayıldığını gösterir. Tıpkı medyan gibi, aykırı değerlere karşı sağlamdır (robust) (Wilke, 2019).

Görsel Karşılaştırma: Gelin, farklı yayılımlara sahip iki grubun geom_boxplot ve geom_violin ile nasıl göründüğüne bakalım.

# Yayilimi DUSUK bir grup (notlar birbirine yakin)
set.seed(42) # Tekrarlanabilirlik icin
grup_a <- data.frame(
  grup = "Grup A",
  deger = rnorm(100, mean = 80, sd = 5) # Standart sapma = 5
)

# Yayilimi YUKSEK bir grup (notlar çok daginik)
grup_b <- data.frame(
  grup = "Grup B",
  deger = rnorm(100, mean = 80, sd = 20) # Standart sapma = 20
)

yayilim_df <- rbind(grup_a, grup_b)

ggplot(yayilim_df, aes(x = grup, y = deger, fill = grup)) +
  geom_violin(alpha = 0.5, trim = FALSE) +
  geom_boxplot(width = 0.2, fill="white", alpha = 0.7) +
  theme_minimal(base_size = 14) +
  theme(legend.position = "none") +
  labs(
    title = "Ayni Ortalamaya, Farkli Yayilima Sahip Gruplar",
    x = "Gruplar",
    y = "Degerler"
  )
Farkli Yayilimlara Sahip İki Grubun Karsilastirmasi

Farkli Yayilimlara Sahip İki Grubun Karsilastirmasi

Grafiğin Yorumu

Bu grafikte, her iki grubun da merkezi eğiliminin, yani “tipik” değerinin aynı olduğunu net bir şekilde görebiliriz. Hem “Grup A” hem de “Grup B” için kutu içerisindeki siyah çizgi (medyan) 80 değeri etrafında hizalanmıştır.

Ancak hikayenin tamamı bu değildir. Asıl fark, verilerin ne kadar dağınık olduğunda, yani yayılımda ortaya çıkar:

  • Grup A (Düşük Yayılım): Bu grubun kemanı daha kısa ve gövdelidir. Bu görsel, verilerin büyük bir çoğunluğunun 80 ortalamasına çok yakın bir aralıkta toplandığını ifade eder. Benzer şekilde, içteki kutu (Çeyrekler Arası Açıklık - IQR) da kısadır, bu da verinin merkezdeki %50’lik kısmının dar bir alanda olduğunu teyit eder.

  • Grup B (Yüksek Yayılım): Bu grubun kemanı ise çok daha uzun ve incedir. Bu şekil, verilerin 80 ortalamasından çok daha uzaklara, hem aşağı hem de yukarı yönlü olarak yayıldığını gösterir. Kemanın uzunluğu, veri setindeki minimum ve maksimum değerler arasındaki mesafenin ne kadar geniş olduğunu anlatır. Aynı şekilde, kutunun ve kutuya bağlı bıyıkların (whiskers) uzun olması, verinin merkezdeki %50’lik kısmının ve genel dağılımın çok daha geniş bir aralığa yayıldığını kanıtlar.

Sonuç olarak, bu grafik bize şunu öğretir: Sadece ortalamaya bakmak yeterli değildir. İki grup aynı ortalamaya sahip olabilir, ancak birindeki değerler birbirine çok yakinken (Grup A’daki gibi homojen), diğerindeki değerler çok geniş bir alana dağılmış olabilir (Grup B’deki gibi heterojen). İşte bu yüzden yayılım ölçüleri, verinin karakterini anlamak için en az merkezi eğilim ölçüleri kadar kritiktir.


4. Dağılımın Şekli: Çarpıklık ve Basıklık

Son olarak, dağılımın “karakterini” anlatan iki önemli özelliğe bakalım. Bu ölçüler, dağılımın simetrik olup olmadığını (bir yöne doğru yığılıp yığılmadığını) ve verilerde aykırı (uç) değerlerin görülme sıklığını nasıl beklememiz gerektiğini ifade eder.

a) Çarpıklık (Skewness): Dağılım Hangi Yöne “Yaslanıyor”?

Bir dağılımın simetriden ne kadar sapma gösterdiğini ölçer ve dağılımın kuyruğunun hangi yöne uzandığını ifade eder (Penn State Eberly College of Science, n.d.). Simetrik veri setlerinde çarpıklık değeri genellikle sıfıra yakındır.

  • Sağa Çarpık (Pozitif Çarpıklık / Positive Skewness): Veri setinde birkaç tane aykırı yüksek değer vardır. Bu değerler, ortalamayı sağa doğru çeker ve dağılımın “kuyruğu” sağa doğru uzar. Bu durumda genellikle Ortalama > Medyan ilişkisi görülür. Pozitif çarpıklık, verilerin çoğunluğunun ölçeğin sol tarafında toplandığını gösterir. Örneğin, bir ülkedeki gelir dağılımı genellikle sağa çarpıktır; çünkü çok yüksek gelire sahip az sayıda insan, genel ortalamayı yukarı çeker.

  • Sola Çarpık (Negatif Çarpıklık / Negative Skewness): Veri setinde birkaç tane aykırı düşük değer vardır. Bu değerler, ortalamayı sola doğru çeker ve dağılımın “kuyruğu” sola doğru uzar. Bu durumda ise genellikle Ortalama < Medyan ilişkisi görülür. Verilerin büyük bir kısmı sağ tarafta yoğunlaşmıştır. Örneğin, insanların emeklilik yaşı sola çarpık bir dağılım gösterebilir; çoğu insan belirli bir yaş aralığında (örneğin 60-65) emekli olurken, çok erken yaşta emekli olan az sayıda kişi ortalamayı aşağı çeker.

Görsel Karşılaştırma: Çarpıklık Bu dağılım şekillerinin yoğunluk grafiğinde nasıl göründüğüne bakalım.

set.seed(123)
df_sekiller_carpiklik <- data.frame(
  deger = c(rnorm(1000, 50, 10),        # A: Simetrik (Normal)
            rbeta(1000, 10, 1.5) * 100, # B: Sola carpik 
            rlnorm(1000, 3, 0.8)),      # C: Saga carpik 
  
  tip = factor(rep(c("A: Simetrik (Normal)", "B: Sola Carpik", "C: Saga Carpik"), 
               each = 1000),
               levels = c("A: Simetrik (Normal)", "B: Sola Carpik", "C: Saga Carpik"))
)

ggplot(df_sekiller_carpiklik, aes(x = deger)) +
  geom_density(aes(fill = tip), alpha = 0.7) +
  facet_wrap(~ tip, scales = "free") +
  theme_minimal(base_size = 12) +
  theme(legend.position = "none") +
  labs(title = "Carpiklik Sekillerine Gorsel Bir Bakis",
       x = "Deger",
       y = "Yogunluk")
Farkli Carpiklik Sekilleri

Farkli Carpiklik Sekilleri

b) Basıklık (Kurtosis): Dağılım Ne Kadar “Sivri” ve “Aykırı Değerli”?

Basıklık (Kurtosis), bir veri dağılımında aykırı değerlerin (uç değerlerin) ne sıklıkla ortaya çıktığını normal dağılıma kıyasla ölçen bir istatistiksel değerdir (Investopedia, 2023). Yaygın bir yanılgının aksine basıklık, dağılımın tepe noktasının ne kadar “sivri” olduğuyla değil, doğrudan bu aşırı değerlerin varlığıyla ilgilidir. Basitçe ifade etmek gerekirse; yüksek basıklık daha fazla aykırı değere, düşük basıklık ise daha az aykırı değere işaret eder.

Referans noktamız her zaman Normal Dağılım (Çan Eğrisi)’dir. Normal bir dağılımın basıklık değeri 3’tür ve bu durum Mezokurtik olarak adlandırılır. Analizi kolaylaştırmak için genellikle “Fazla Basıklık” (Excess Kurtosis) kullanılır ki bu da Basıklık - 3 olarak hesaplanır (Investopedia, 2023). Böylece referans noktamız 0 olur.

Basıklığın üç ana kategorisi vardır:

  • Leptokurtik (Sivri / Pozitif Fazla Basıklık): Bu dağılım, normal dağılıma kıyasla daha fazla aykırı değere sahip olma eğilimindedir. Bu durum, verilerin merkezden uzak, aşırı değerlerde normal dağılıma göre daha sık bulunduğu anlamına gelir. Fazla basıklık değeri 0’dan büyüktür (yani basıklık > 3). Finansal piyasalardaki yatırım getirileri genellikle leptokurtik bir dağılım sergiler; çünkü beklenmedik büyük kazançlar veya kayıplar (aşırı olaylar) normal dağılımın öngördüğünden daha sık yaşanır (Investopedia, 2023).

  • Platikurtik (Basık / Negatif Fazla Basıklık): Bu dağılımda, normal dağılıma kıyasla çok daha az sayıda aykırı değer bulunur. Fazla basıklık değeri 0’dan küçüktür (yani basıklık < 3). İçinde sadece belirli ve sınırlı değerlerin olduğu bir veri seti, platikurtik bir yapıya örnektir çünkü aykırı değer üretmez (Investopedia, 2023).

  • Mezokurtik (Normal): Bu dağılım, aykırı değerlerin sıklığı ve dağılımı açısından normal dağılımın kendisidir. Aşırı değerler, normal bir dağılımdan beklenen sıklıkta ve yoğunlukta ortaya çıkar. Fazla basıklık değeri 0’a yakındır (basıklık ≈ 3) (Investopedia, 2023).

Görsel Karşılaştırma: Basıklık Şimdi bu üç basıklık türünü aynı grafik üzerinde karşılaştırarak aralarındaki farkı görelim.

set.seed(456)
df_kurtosis <- data.frame(
  deger = c(
    # Leptokurtik 
    rt(1000, df = 3) * 8 + 50,      
    # Mezokurtik 
    rnorm(1000, 50, 13),              
    # Platikurtik 
    runif(1000, min = 0, max = 100)
  ),  
  
  tip = factor(rep(c("Leptokurtik (Sivri)", "Mezokurtik (Normal)", "Platikurtik (Basik)"), each = 1000),
               levels = c("Leptokurtik (Sivri)", "Mezokurtik (Normal)", "Platikurtik (Basik)"))
)

ggplot(df_kurtosis, aes(x = deger, color = tip)) +
  geom_density(linewidth = 1.1) +
  theme_minimal(base_size = 14) +
  labs(
    title = "Basiklik Turlerinin Karsilastirilmasi",
    x = "Deger",
    y = "Yogunluk",
    color = "Dagilim Tipi"
  ) +
  theme(legend.position = "bottom")
Farkli Basiklik (Kurtosis) Turlerinin Karsilastirilmasi

Farkli Basiklik (Kurtosis) Turlerinin Karsilastirilmasi

Bu grafikler, istatistiksel terimlerin görsel dünyadaki karşılıklarını net bir şekilde özetliyor. Artık bir dağılım grafiğine baktığınızda, onun sadece bir resim değil, aynı zamanda verinin merkezi, yayılımı ve şekli hakkında zengin bir hikaye anlatan bir karakter haritası olduğunu biliyorsunuz.

Bu teorik hazırlıkla, artık atölyenin en hassas ölçüm cihazları olan geom_histogram ve geom_density’yi kullanmaya ve onların bize fısıldadığı bu sırları duymaya tamamen hazırız!


Referanslar

Investopedia. (2023). Kurtosis: What it is and how to interpret it. https://www.investopedia.com/terms/k/kurtosis.asp

Penn State Eberly College of Science. (n.d.). Lesson 1: Introduction to statistics. In STAT 500: Applied statistics. https://online.stat.psu.edu/stat500/Lesson01

Wilke, C. O. (2019). Fundamentals of data visualization. O’Reilly Media. https://clauswilke.com/dataviz/