Ana içeriğe geç

R sd() Fonksiyonu: R'de Standart Sapma

R sd() fonksiyonunu kullanarak verinizdeki değişkenliği ölçmeyi öğrenin. Eksik değerler ve gruplanmış veriler için pratik örnekleri ve temel teknikleri keşfedin.
· 5 dk. oku

Yapay Zeka ile Keşfedin

Standart sapma, verinizin ne kadar yayılım gösterdiğini özetlemenin en yaygın yollarından biridir. R'de, sd() fonksiyonu, vektörler, veri çerçeveleri veya gruplanmış verilerle çalışıyor olun, bu değişkenlik ölçüsünü hızlıca hesaplamanın bir yolunu sunar. 

Bu yazıda, R'de sd() kullanımının temellerini ele alacak, eksik değerlerle nasıl başa çıkılacağını inceleyecek ve tapply() gibi fonksiyonlar ile dplyr gibi paketleri kullanarak gruplar arasında standart sapmanın nasıl hesaplanacağını göstereceğim.

R'de sd() Ne Yapar?

R'nin temel paketindeki sd() fonksiyonu, sayısal bir vektörün veya veri çerçevesi sütununun standart sapmasını hesaplar. Verinizdeki değerlerin ortalamadan ne kadar saptığını ölçerek değişkenlik ya da yayılım hakkında fikir verir.

Varyans kavramına aşinaysanız, standart sapma onun kareköküdür ve hesaplanma biçimi nedeniyle (ortalama karesel sapmanın karekökünü alma) standart sapma, özgün verilerle aynı ölçekte kalır. Bu da pratikte yorumlamayı kolaylaştırır.

Basit bir sd() Örneği

Elinizde bir sayı kümesi olduğunu ve bunların ortalamadan ne kadar saptığını bilmek istediğinizi varsayalım.

Bunu R'de şöyle yaparsınız:

exam_scores <- c(75, 80, 85, 90, 95) 
sd(exam_scores) 

Çıktı, standart sapmayı verir; bu değer, her bir puanın ortalamadan ortalama uzaklığını niceler.

sd()'yi, tamsayılar, ondalıklar veya hesaplama sonuçları dahil olmak üzere herhangi bir sayısal vektörle kullanabilirsiniz. R'nin mantıksal vektörleri sayısal olarak değerlendirdiğini biliyor olabilirsiniz (TRUE için 1, FALSE için 0), bu nedenle sd() teknik olarak mantıksal vektörlerde de çalışır (isterseniz deneyebilirsiniz), ancak standart sapma kavramı en anlamlısını sürekli sayısal veriler için ifade eder.

sd() ile Eksik Değerlerin Ele Alınması

Gerçek dünyadaki veri kümeleri sıklıkla eksik değerler içerir; bu yüzden şunu belirtmek gerekir: Verinizde herhangi bir NA varsa, sd() varsayılan olarak NA döndürür.

Şu örneği düşünün:

heights <- c(170, 175, NA, 180, 185)
sd(heights)

Sonuç NA olacaktır.

Eksik değerleri yok sayıp mevcut sayıların standart sapmasını hesaplamak için na.rm = TRUE argümanını kullanın. Ya da NA değerleri veri kümenizden temizleyebilirsiniz; ancak bunu yalnızca anlamlıysa yapmanızı öneririm.

sd(heights, na.rm = TRUE) 

Artık 170, 175, 180 ve 185 için standart sapmayı elde edeceksiniz.

R'de Veri Çerçeveleri için Standart Sapma Hesaplama

Veri çerçevesindeki belirli bir sütunun standart sapmasını $ operatörünü kullanarak kolayca hesaplayabilirsiniz. Diyelim ki ürün ağırlıklarından oluşan bir veri çerçeveniz var:

product_data <- data.frame( weight = c(1.2, 1.5, 1.3, 1.7, 1.4), price = c(10, 12, 11, 13, 12) ) 
sd(product_data$weight)

Bu, weight sütununun standart sapmasını verir. Unutmayın, sd() tüm bir veri çerçevesi için değil, sayısal vektörler için tasarlanmıştır. Her zaman uygun sütunu seçin.

sd() ve Gruplanmış Standart Sapmalar

Çoğu zaman, kategori, bölge veya başka bir faktöre göre gruplar içindeki değişkenliği ölçmek isteyeceksiniz. R, gruplanmış standart sapmaları hesaplamak için çeşitli yollar sunar. Üç tanesini göstereceğim:

Gruplanmış standart sapmalar için tapply() kullanma

Farklı bölgeler için satış verilerine sahip olduğunuzu ve her bölge için standart sapmayı istediğinizi varsayalım:

sales_amount <- c(200, 220, 210, 250, 240, 230) 
region <- c("North", "North", "South", "South", "North", "South") 
tapply(sales_amount, region, sd)

tapply(), bölge tarafından tanımlanan her gruba sd()'yi uygular.

Gruplanmış standart sapmalar için aggregate() kullanma

Sonuçlarınızı düzenli bir veri çerçevesi halinde almak isterseniz, aggregate() işe yarar:

sales_data <- data.frame( region = c("North", "North", "South", "South", "North", "South"), amount = c(200, 220, 210, 250, 240, 230) ) 
aggregate(amount ~ region, data = sales_data, sd)

Bu, her bölge için standart sapmayı içeren özet bir veri çerçevesi üretir.

Gruplanmış standart sapmalar için dplyr kullanma

dplyr paketiyle, gruplanmış hesaplamalar daha da okunabilir hale gelir. Grupladıktan sonra summarize() kullanın:

library(dplyr) 

sales_data %>% 
   group_by(region) %>% 
   summarize(sd_amount = sd(amount))

Bu yaklaşım, özellikle daha büyük veri kümeleri için ya da birden fazla veri dönüşümünü art arda bağlarken kullanışlıdır. (Ya da benim gibi pipe operatörünü kullanmayı tercih ediyorsanız.)

Yaygın Hatalar ve İpuçları

sd() gibi basit bir fonksiyon bile dikkatli olmazsanız sorun yaratabilir. İşte yaygın tuzaklardan bazıları:

  • Sayısal olmayan veri: sd() yalnızca sayısal vektörlerle çalışır. Veriniz karakterler veya faktörler içeriyorsa hata alırsınız. Verinizi kontrol etmek için is.numeric() kullanın.

  • Eksik değerler: Tek bir NA, sd()'nin NA döndürmesine yol açar. Eksik değerleri yok saymak istiyorsanız her zaman na.rm = TRUE kullanın.

  • Küçük örneklem boyutları: sd() paydada n-1 kullanır (örneklem standart sapması). Uzunluğu 1 olan vektörler için sd() 0 değil, NA döndürür.

Özellikle sonuncusunun ilginç olduğunu düşünüyorum. Daha az bilinen bir farktır ve Python'dan R'ye geçiyorsanız sizi şaşırtabilir; zira Python, örneklem değil, anakütle standart sapmasına göre böler.

R'de Faydalı Varyasyonlar ve İlgili Fonksiyonlar

R, değişkenliği ölçmek ve veriyi özetlemek için çeşitli ilgili fonksiyonlar sunar:

  • var(): Standart sapmanın karesi olan varyansı hesaplar.

  • apply(), sapply(), lapply(): Matrislerin ve veri çerçevelerinin satır veya sütunları boyunca sd() uygulamak için kullanışlıdır.

  • mad(): Medyan mutlak sapmayı hesaplar; bu, değişkenliğin ilginç ve daha dayanıklı bir ölçüsüdür.

Madem bahsettim, sd()'yi apply() ile kullanmayı göstereyim: Bir matrisin her sütununun standart sapmasını elde etmek için apply() nasıl kullanılır, burada. Daha önce olduğu gibi, matrisi anında oluşturacağım.

measurement_matrix <- matrix(1:9, nrow = 3) 
apply(measurement_matrix, 2, sd)

Bu, her sütun için standart sapmayı döndürerek birden çok değişken arasındaki değişkenlik hakkında hızlı bir genel bakış sağlar.

Sonuç

R'deki sd() fonksiyonu nispeten basittir (yalnızca tek satır kod). Ancak bunu raporlar veya sunumlar için kullanırken ayrıntılara biraz uzak hissettiğinizi fark ederseniz, R ile İstatistikçi kariyer yoluna kaydolun. İstatistik ve veri analizinde çok fazla nüans vardır; bu nedenle iyi derecede yetkin olduğunuzdan emin olun.

Josef Waples

Yazar

Josef Waples

Bilimsel dergilerde yayımlanan araştırma makalelerine katkıları olan bir veri bilimi yazarı ve editörüyüm. Özellikle lineer cebir, istatistik, R ve benzeri konularla ilgileniyorum. Aynı zamanda epey satranç da oynarım! 

Konular

İlgili