Cara menghitung jarak mahalanobis di r


Jarak Mahalanobis adalah jarak antara dua titik dalam ruang multivariat.

Ini sering digunakan untuk mendeteksi outlier dalam analisis statistik yang melibatkan banyak variabel.

Tutorial ini menjelaskan cara menghitung jarak Mahalanobis di R.

Contoh: Jarak Mahalanobis di R

Gunakan langkah-langkah berikut untuk menghitung jarak Mahalanobis untuk setiap observasi dalam kumpulan data di R.

Langkah 1: Buat kumpulan data.

Pertama, kita akan membuat kumpulan data yang menampilkan nilai ujian dari 20 siswa, beserta jumlah jam yang mereka habiskan untuk belajar, jumlah ujian praktik yang mereka ambil, dan nilai mata pelajaran mereka saat ini:

 #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

Langkah 2: Hitung jarak Mahalanobis untuk setiap observasi.

Selanjutnya, kita akan menggunakan fungsi mahalanobis() yang ada di R untuk menghitung jarak Mahalanobis untuk setiap observasi, yang menggunakan sintaks berikut:

mahalanobis (x, tengah, cov)

Emas:

  • x: matriks data
  • pusat: vektor rata-rata distribusi
  • cov: matriks kovarians distribusi

Kode berikut menunjukkan cara mengimplementasikan fungsi ini untuk kumpulan data kami:

 #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

Langkah 3: Hitung nilai p untuk setiap jarak Mahalanobis.

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *