R cinsinden mahalanobis mesafesi nasıl hesaplanır?
Mahalanobis mesafesi çok değişkenli bir uzayda iki nokta arasındaki mesafedir.
Birden fazla değişkeni içeren istatistiksel analizlerde aykırı değerleri tespit etmek için sıklıkla kullanılır.
Bu eğitimde R cinsinden Mahalanobis mesafesinin nasıl hesaplanacağı açıklanmaktadır.
Örnek: R cinsinden Mahalanobis mesafesi
R’deki bir veri kümesindeki her gözlem için Mahalanobis mesafesini hesaplamak için aşağıdaki adımları kullanın.
Adım 1: Veri kümesini oluşturun.
İlk olarak 20 öğrencinin sınav puanlarını, ders çalışarak geçirdikleri saat sayısını, girdikleri uygulama sınav sayısını ve dersteki mevcut notlarını gösteren bir veri seti oluşturacağız:
#create data df = data.frame(score = c(91, 93, 72, 87, 86, 73, 68, 87, 78, 99, 95, 76, 84, 96, 76, 80, 83, 84, 73, 74) , hours = c(16, 6, 3, 1, 2, 3, 2, 5, 2, 5, 2, 3, 4, 3, 3, 3, 4, 3, 4, 4), prep = c(3, 4, 0, 3, 4, 0, 1, 2, 1, 2, 3, 3, 3, 2, 2, 2, 3, 3, 2, 2), grade = c(70, 88, 80, 83, 88, 84, 78, 94, 90, 93, 89, 82, 95, 94, 81, 93, 93, 90, 89, 89)) #view first six rows of data head(df) score hours prep grade 1 91 16 3 70 2 93 6 4 88 3 72 3 0 80 4 87 1 3 83 5 86 2 4 88 6 73 3 0 84
Adım 2: Her gözlem için Mahalanobis mesafesini hesaplayın.
Daha sonra, her gözlem için Mahalanobis mesafesini hesaplamak amacıyla R’de yerleşik olan mahalanobis() fonksiyonunu kullanacağız ve bu fonksiyon aşağıdaki sözdizimini kullanır:
mahalanobis (x, merkez, cov)
Altın:
- x: veri matrisi
- merkez: dağılımın ortalama vektörü
- cov: dağıtım kovaryans matrisi
Aşağıdaki kod, bu işlevin veri kümemiz için nasıl uygulanacağını gösterir:
#calculate Mahalanobis distance for each observation
mahalanobis(df, colMeans(df), cov(df))
[1] 16.5019630 2.6392864 4.8507973 5.2012612 3.8287341 4.0905633
[7] 4.2836303 2.4198736 1.6519576 5.6578253 3.9658770 2.9350178
[13] 2.8102109 4.3682945 1.5610165 1.4595069 2.0245748 0.7502536
[19] 2.7351292 2.2642268
Adım 3: Her Mahalanobis mesafesi için p değerini hesaplayın.