R İLE TANIMLAYICI İSTATİSTİK

Tezin bulgular bölümü hipotez testleriyle değil, bir tabloyla açılır: katılımcıların ortalaması, standart sapması, en düşük ve en yüksek puanları. Jürinin ilk baktığı da odur — çünkü o tablo verinizi tanıyıp tanımadığınızı gösterir. Tanımlayıcı istatistik "kolay konu" diye geçiştirilir ama sahada tersi yaşanır: ortalama ile medyanın ne zaman ayrıştığını, hangi durumda hangisinin raporlanacağını karıştıran öğrenci, daha testlere gelmeden yanlış tablo kurar.
Bu yazıda 120 üniversite öğrencisine uygulanmış bir sınav kaygısı ölçeğinin puanlarını R ile özetliyoruz. Bütün sayılar gerçek bir çalıştırmadan geliyor; veri dosyasını ve scripti indirip aynı sonuçları kendi bilgisayarınızda üretebilirsiniz.
R scriptini indir (.R) — veri dosyası: r-ile-tanimlayici-istatistik-veri.csv1. Veriyi Tanımak: İlk Üç Komut
Analizin ilk hamlesi her zaman aynıdır — veriyi okuyup göz atmak:
veri <- read.csv("r-ile-tanimlayici-istatistik-veri.csv", fileEncoding = "UTF-8")
head(veri) # ilk 6 satir
str(veri) # degisken turleristr() çıktısı verinin kimliğidir: 120 gözlem, 4 değişken; kaygı puanı tam sayı (int), bölüm metin (chr). Puan değişkeninin sayı olarak okunduğunu burada doğrulamadan ilerlemek, sonraki her hesabı riske atar — Excel'den gelen verilerde sayıların metin olarak sızması en yaygın başlangıç kazasıdır.
2. Merkezi Eğilim: Ortalama, Medyan, Mod
mean(veri$kaygi_puani) # 57.85
median(veri$kaygi_puani) # 57.5
names(sort(table(veri$kaygi_puani), decreasing = TRUE))[1] # "65"Üç ölçü üç ayrı soruya cevaptır: ortalama 57.85 "tipik düzey ne", medyan 57.5 "ortadaki kişi kaç almış", mod 65 "en sık hangi puan". Bu veri setinde ortalama ile medyanın neredeyse çakışması dağılımın simetrik olduğunun ilk işaretidir. İkisi ayrıştığında — örneğin gelir verilerinde ortalamanın medyanın belirgin üstüne çıkması — dağılım çarpık demektir ve raporlamada medyan öne geçer. R'da modun hazır fonksiyonu olmadığına dikkat: frekans tablosunun en üst satırı bu işi görür.
3. Dağılım Ölçüleri: Sapma, Ranj, IQR
sd(veri$kaygi_puani) # 13.35
var(veri$kaygi_puani) # 178.15
range(veri$kaygi_puani) # 26 88
IQR(veri$kaygi_puani) # 18.25Ortalama tek başına yanıltır; 57.85'lik ortalamanın etrafında puanlar ne kadar saçılmış? Standart sapma 13.35 bunun cevabıdır: tipik öğrenci ortalamadan aşağı-yukarı 13 puan uzaktadır. Ranj (26–88) uçları, çeyrekler arası açıklık (IQR=18.25) ortadaki yüzde ellinin genişliğini verir. Tez tablosunun klasik dörtlüsü genellikle n, ortalama, ss ve min–maks'tır; IQR, çarpık dağılımlarda medyanın yol arkadaşı olarak devreye girer.
4. Tek Komutla Tez Tablosu: psych
Ölçüleri tek tek toplamak yerine psych paketinin describe() fonksiyonu hepsini tek satırda döker:
library(psych)
describe(veri$kaygi_puani)
# n mean sd median min max range skew kurtosis se
# 120 57.85 13.35 57.5 26 88 62 -0.17 -0.44 1.22Buradaki iki ek sütun tez için ayrıca değerlidir: çarpıklık (skew) −0.17 ve basıklık (kurtosis) −0.44. İkisi de ±1 bandının rahatça içinde — dağılımın normale yakın olduğunun sayısal özeti. Bu değerler, bir sonraki aşamada parametrik test kullanma kararınızın ilk dayanağıdır; kararın tam akışı normallik testi yazısında işleniyor.
5. Gruplara Göre Özet
Bulgular bölümü nadiren tek grubun özetiyle yetinir; karşılaştırma tabloları grup bazlı özet ister:
tapply(veri$kaygi_puani, veri$bolum, mean)
# PDR Psikoloji Sosyoloji
# 60.67 56.12 58.03
describeBy(veri$kaygi_puani, group = veri$bolum)
PDR öğrencileri (60.67) en yüksek, psikoloji (56.12) en düşük ortalamaya sahip. describeBy() aynı zengin tabloyu her grup için ayrı üretir — n, ortalama, ss, çarpıklık dahil. Dikkat edilecek nokta: bu farkların "anlamlı" olup olmadığını tanımlayıcı istatistik söyleyemez; o soru ANOVA gibi çıkarımsal testlerin işidir. Tanımlayıcı tablo durumu tarif eder, hüküm vermez.
6. Histogram ve Dosyalar
Sayısal özetin görsel karşılığı histogramdır; ggplot2 ile beş satırda üretilir ve dağılımın biçimini tek bakışta gösterir:

Grafikteki simetrik tepe, skew=−0.17'nin görsel kanıtı. Script'teki ggplot bloğunu kendi değişkeninize uyarlamak için yalnızca sütun adını değiştirmeniz yeterli; grafik üretiminin incelikleri ggplot2 ile tez grafikleri yazısında derinleşiyor.
Örnek veriyi indir (.csv) — 120 katılımcı, kaygı puanlarıScript ile CSV'yi aynı klasöre koyup RStudio'da çalıştırın (Ctrl+Shift+S); konsolda bu yazıdaki bütün sayıları, çalışma klasörünüzde histogramı bulacaksınız. Tanımlayıcı özetten hipotez testlerine uzanan tam yolculuğu uygulamalı ilerletmek isteyenler için R veri analizi eğitimi bu tabloların tez formatına dökülmesini de kapsıyor; veri düzenleme tarafını Python'da görmek isteyenlere Python veri analizi eğitimi paralel bir hat sunar.
Sıkça Sorulan Sorular
Tezde ortalama mı medyan mı raporlanmalı?
Dağılım simetrikse (çarpıklık ±1 içinde) ortalama ve standart sapma standarttır. Dağılım çarpıksa — gelir, süre, hata sayısı gibi değişkenlerde sık görülür — medyan ve IQR daha dürüst bir özet verir. Bu örnekte ortalama 57.85 ile medyan 57.5 neredeyse çakıştığı için ortalama raporlamak doğrudur.
describe() çıktısındaki skew ve kurtosis değerleri hangi aralıkta olmalı?
Yaygın pratik kural ±1 aralığıdır; bazı kaynaklar ±2'ye kadar tolerans tanır. Örnekteki −0.17 ve −0.44 rahatça sınırlar içindedir. Değerler sınırı aşıyorsa normallik varsayımı sorgulanır; karar tek başına bu sayılarla değil, Shapiro-Wilk testi ve histogram/Q-Q grafiğiyle birlikte verilir.
R'da neden mod fonksiyonu yok, mode() ne yapıyor?
R'daki mode() fonksiyonu istatistiksel mod değil, nesnenin depolama türünü döndürür — yeni başlayanların klasik sürprizi. İstatistiksel mod için frekans tablosu kullanılır: names(sort(table(x), decreasing = TRUE))[1]. Likert tipi ölçek maddelerinde mod raporlamak yaygındır; sürekli değişkenlerde genellikle gerekmez.
Grup ortalamaları farklı çıktı; bu fark anlamlı demek midir?
Hayır — tanımlayıcı istatistik yalnızca durumu tarif eder. PDR 60.67, Psikoloji 56.12 ortalamaları arasındaki farkın örnekleme şansından kaynaklanıp kaynaklanmadığını ancak hipotez testi söyler: iki grup için t testi, üç ve daha fazla grup için ANOVA. Tanımlayıcı tablo o testlerin girişi ve bağlamıdır, hükmü değil.
summary() ile describe() arasındaki fark nedir?
summary() R'ın çekirdeğindedir ve beş sayı özetiyle ortalamayı verir; hızlı bakış için idealdir. psych paketindeki describe() ise tez tablosunun istediği ekleri getirir: n, standart sapma, çarpıklık, basıklık ve standart hata. Raporlamada describe(), keşifte summary() pratik iş bölümüdür.
Aynı özeti yüzlerce değişken için tek seferde alabilir miyim?
Evet — describe() bir veri çerçevesinin tamamına uygulanabilir: describe(veri) tüm sayısal sütunları satır satır özetler. Ölçek çalışmalarında madde bazlı betimleyici tablo bu tek komutla çıkar; sonuç write.csv ile dışa aktarılıp tez tablosuna dönüştürülebilir.


