Bölüm 5 Betimleyici İstatistikler

Bu bölümde veri setine ait en sık kullanılan betimleyici istatistikler hesaplanmıştır.

5.1 Minimum ve maksimum değerler

min() ve max() fonksiyonları sayesinde veri setinin minimum ve maksimum değerleri bulunabilir:

min(midiPISA$ODOKUMA1) # minimum değer hesaplama
## [1] 175.608

midiPISA verisinin minimum değeri 175.61 olarak bulunmuştur.

max(midiPISA$ODOKUMA1) # maksimum değer hesaplama
## [1] 771.508

midiPISA verisinin maksimum değeri 771.51 olarak bulunmuştur.

Alternatif olarak range() fonksiyonu: size doğrudan minimum ve maksimum değerleri verir. range() fonksiyonunun çıktısının aslında minimum ve maksimum değerleri (bu sırayla) içeren bir nesne olduğuna dikkat edin. Bu, aslında minimuma şu şekilde erişebileceğiniz anlamına gelir:

min<-range(midiPISA$ODOKUMA1)[1] #minimum değer hesaplama
min
## [1] 175.608
max<-range(midiPISA$ODOKUMA1)[2] #maksimum değer hesaplama
max
## [1] 771.508

Elde edilen çıktıda, sırasıyla midiPISA verisindeki okuma olası değeri1’ e ait minimum ve maksimum değerleri sırasıyla görüntülenmiştir.

5.2 Ortalama

Ortalama, mean() fonksiyonu ile hesaplanabilir:

mean(midiPISA$ODOKUMA1) # ortalama hesaplama
## [1] 464.2299

midiPISA verisinin ortalama değeri 464.23 olarak bulunmuştur.

Veri setinde en az bir eksik(kayıp) değer varsa, ortalama NA hariç tutularak hesaplanabilir. Bunun için na.rm_TRUE argümanı kullanılabilir. Bu argüman sadece ortalama için değil, R’da sunulan çoğu fonksiyon için kullanılabilir.

mean(midiPISA$ODOKUMA1,na.rm=TRUE) # kayıp değerler hariç ortalama hesaplama
## [1] 464.2299

midiPISA verisine ait okuma olası değeri1 de kayıp değer olmadığı için ortalama değer yine 464.23 olarak bulunmuştur. Ayrıca kırpılmış bir ortalama için mean(midiPISA$O_OD1, trim = 0.10) kullanılabilir ve trim argümanını ihtiyaçlarınıza göre değiştirebilirsiniz.

5.3 Medyan

Medyan(ortanca değer), median() fonksiyonu sayesinde hesaplanabilir:

median(midiPISA$ODOKUMA1) # medyan hesaplama
## [1] 463.403

midiPISA verisinin medyanı 463.405 olarak bulunmuştur. Aynı zamandabu değer -quantile() fonksiyonu ile de hesaplanabilir.

quantile(midiPISA$ODOKUMA1,0.5) # medyan hesaplama
##     50% 
## 463.403

5.4 I. ve III. Çeyrekler

Medyan gibi, birinci ve üçüncü çeyrekler de quantile() işlevi sayesinde ve ikinci bağımsız değişkenin 0.25 veya 0.75 olarak ayarlanmasıyla hesaplanabilir:

quantile(midiPISA$ODOKUMA1,0.25) # I. çeyrekler hesaplama
##      25% 
## 402.5635

midiPISA verisinin I.çeyrekler 402.5625 olarak bulunmuştur.

quantile(midiPISA$ODOKUMA1,0.75) # III. çeyrekler hesaplama
##      75% 
## 525.7188

midiPISA verisinin III.çeyrekler 525.72 olarak bulunmuştur.

5.5 Standart sapma ve varyans

Standart sapma ve varyans, sd() ve var() fonksiyonları ile hesaplanır:

sd(midiPISA$ODOKUMA1) # standart sapma hesaplama
## [1] 87.78006

midiPISA verisinin standart sapması 87.78 olarak bulunmuştur.

var(midiPISA$ODOKUMA1) # varyans hesaplama
## [1] 7705.339

midiPISA verisinin varyansı 7705.345 olarak bulunmuştur.

Standart sapma ve varyansın bir örneklem veya popülasyon için hesaplanmasının farklı olduğu hatırlanmalıdır (örneklem ve popülasyon arasındaki fark ilgili kaynaklardan incelenmelidir). R’de standart sapma ve varyans, veriler bir örneklem temsil ediyormuş gibi hesaplanır. Birden fazla değişkenin standart sapmasını veya varyansını aynı anda hesaplamak için, ikinci bağımsız değişken olarak uygun istatistiklerle birlikte lapply() fonksiyonu ile kullanılmalıdır.

midiPISA %>% 
# "O_" başlayan ve "OD" içeren değişkenlerin seçimi
  select(starts_with("OD") & contains("MA")) %>% 
  lapply(.,sd) # her bir değişkenin standart sapmasının hesaplanması
## $ODOKUMA1
## [1] 87.78006
## 
## $ODOKUMA2
## [1] 87.696
## 
## $ODOKUMA3
## [1] 87.07692
## 
## $ODOKUMA4
## [1] 87.40305
## 
## $ODOKUMA5
## [1] 87.21323

Çıktıda da görüldüğü üzere, veri setinde “O” ile başlayan ve “OD” içeren beş değişkene ait standart sapma değerleri hesaplanır.

Aynı işlemi veri seti olarak elde etmek istiyorsanız summarise() fonksiyonunu kullabailirsiniz.

midiPISA %>% 
# "O_" başlayan ve "OD" içeren değişkenlerin seçimi
  select(starts_with("OD") & contains("MA")) %>% 
  summarise(across(everything(), list(sd = sd),na.rm=TRUE)) # her bir değişkenin standart sapmasının hesaplanması
## # A tibble: 1 × 5
##   ODOKUMA1_sd ODOKUMA2_sd ODOKUMA3_sd ODOKUMA4_sd ODOKUMA5_sd
##         <dbl>       <dbl>       <dbl>       <dbl>       <dbl>
## 1        87.8        87.7        87.1        87.4        87.2

5.6 Tüm özet istatistikler

summary() fonksiyonu ise betimleyici istatistikleri özet olarak verir.

summary(midiPISA$ODOKUMA1) # betimleyici istatistiklerin özeti
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   175.6   402.6   463.4   464.2   525.7   771.5

Bu tanımlayıcı istatistikleri gruba göre hesaplamak istenirse by() fonksiyonu kullanıılır.

# gruplara göre betimleyici istatistiklerin özeti
by(midiPISA$ODOKUMA1, midiPISA$CINSIYET, summary) 
## midiPISA$CINSIYET: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   236.4   418.2   477.6   478.1   536.9   771.5 
## ------------------------------------------------------------ 
## midiPISA$CINSIYET: 2
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   175.6   387.5   448.0   450.7   512.2   747.5

lapply() kullanımında bağımsız değişkenler veri setinin adı, gruplama değişkeni ve özet fonksiyonudur. Bu sıra takip edilmeli veya bu sıra takip edilemiyorsa argümanların adı belirtilmelidir.

Daha açıklayıcı istatistiklere ihtiyaç varsa, psych paketindeki describe() fonksiyonu kullanılmalıdır.

library(psych)
describe(midiPISA %>% select(CINSIYET,ODOKUMA1)) # özetleyici istatistiklerinin hesaplanması
##          vars    n   mean    sd median trimmed   mad    min    max range  skew
## CINSIYET    1 6890   1.51  0.50    2.0    1.51  0.00   1.00   2.00   1.0 -0.03
## ODOKUMA1    2 6890 464.23 87.78  463.4  463.90 91.11 175.61 771.51 595.9  0.04
##          kurtosis   se
## CINSIYET     -2.0 0.01
## ODOKUMA1     -0.3 1.06

5.7 Değişkenlik katsayısı

Değişkenlik katsayısı stat.desc() ile veya manuel olarak hesaplanarak bulunabilir (Değişkenlik katsayısının standart sapmanın ortalamaya bölümü olduğu hatırlanmalıdır):

library(pastecs) # paketin aktifleştirilmesi
round(stat.desc(midiPISA %>% select(CINSIYET,OKUMA_ZEVK)),2)  # değişkenlik katsayısının hesaplanması
##              CINSIYET OKUMA_ZEVK
## nbr.val       6890.00    6821.00
## nbr.null         0.00       0.00
## nbr.na           0.00      69.00
## min              1.00      -2.73
## max              2.00       2.66
## range            1.00       5.39
## sum          10384.00    4659.70
## median           2.00       0.64
## mean             1.51       0.68
## SE.mean          0.01       0.01
## CI.mean.0.95     0.01       0.02
## var              0.25       0.95
## std.dev          0.50       0.98
## coef.var         0.33       1.43

Seçilen CINSIYET ve OKUMA_ZEVK değişkenlerinin değişkenlik katsayıları hesaplanmış ve sonuçlar round ile virgülden sonra iki basamak olacak şekilde yuvarlanmıştır.

5.8 Mod

Bir değişkenin modunu bulmak için table() ve sort() fonksiyonları kullanarak hesaplanmalıdır.

tab <- table(midiPISA$Anne_Egitim) # her benzersiz değer için oluşum sayısı
tab
## 
##    0    1    2    3    4    5    6 
##  695 1882 1362  575  675  759  887
sort(tab, decreasing = TRUE) # en yüksekten en düşüğe doğru sıralama
## 
##    1    2    6    5    0    4    3 
## 1882 1362  887  759  695  675  575

table() fonksiyonu, her bir benzersiz değer için oluşum sayısını verir, ardından sort() decreasing = TRUE argümanı ile oluşum sayısını en yüksekten en düşüğe doğru görüntüler.

5.9 Frekans tablosu oluşturma

Herhangi bir ek işlem (yani veri işleme) yapmadan içe aktarılan veri setini kullanarak örneklemin demografik özellikleri hakkında bazı temel tanımlayıcı bilgiler hesaplanabilir.

Veri kümesi midiPISA kullanılarak Anne_Egitim (anne eğitim düzeyi) değişkenine göre gruplama yapılır. Ardından her gruptaki gözlemlerin sayısı bulunur ve gruplandırma kaldırılır.

midiPISA %>%
  group_by(Anne_Egitim) %>% # Anne_Egitim e göre gruplandırma
  count() %>%  # frekans tablosu oluşturma
  ungroup() # gruplandırmanın kaldırılması
## # A tibble: 8 × 2
##   Anne_Egitim     n
##         <dbl> <int>
## 1           0   695
## 2           1  1882
## 3           2  1362
## 4           3   575
## 5           4   675
## 6           5   759
## 7           6   887
## 8          NA    55

group_by() fonkisyonu veri setinin yüzey düzeyinde değişikliklere neden olmaz, bunun yerine temel yapıyı değiştirir, böylece gruplar belirtilirse, daha sonra çağrılan fonksiyonlar gruplama değişkeninin her düzeyinde ayrı ayrı gerçekleştirilir. Bu gruplama oluşturulan nesnede kalır, bu nedenle nesne üzerinde gelecekte yapılacak işlemlerin gruplar tarafından bilinmeden gerçekleştirilmesini önlemek için ungroup() ile kaldırılması önemlidir.

Bu nedenle yukarıdaki kod, Anne_Egitim değişkeninin yani anne eğitim düzeyinin her bir grubundaki gözlem sayısını sayar. Eğer sadece toplam gözlem sayısına ihtiyacınız varsa, group_by() ve ungroup() satırlarını kaldırabilirsiniz, böylece işlemi gruplar yerine tüm veri seti üzerinde gerçekleştirebilirsiniz:

Benzer şekilde, örneklemin ortalama başarısı (ve SD’sini) hesaplanmak istendiğinde dplyr/tidyverse paketindeki summarise() fonkisyonu kullanılabilir.

midiPISA %>%
  summarise(ort = mean(ODOKUMA1), # ortalama
            sd = sd(ODOKUMA1),    # standart sapma 
            n = n())              # frekans hesaplama
## # A tibble: 1 × 3
##     ort    sd     n
##   <dbl> <dbl> <int>
## 1  464.  87.8  6890

Bu kod, başarı ortalamasının hesaplanmasının sonucunu içeren ort adlı bir sütun biçiminde özet veriler üretir. Daha sonra aynı işlemi standart sapma için yapan sd sütununu oluşturur. Son olarak, istatistiği hesaplamak için kullanılan değerlerin sayısını n adlı bir sütuna eklemek için n() fonksiyonu kullanır.

Yukarıdaki kodun bu işlemin sonucunu kaydetmeyeceğini, sadece konsolda çıktısını vereceğini unutmayın. İleride kullanmak üzere kaydetmek isterseniz, “<-” notasyonunu kullanarak bir nesnede saklanabilir ve daha sonra nesne adını yazarak yazdırılabilir. Son olarak, group_by() fonksiyonu özet istatistikleri hesaplarken aynı şekilde çalışacaktır. group_by() fonksiyonundan sonra çağrılan işlevin çıktısı gruplama değişkeninin her düzeyi için üretilecektir.