วิธีการคำนวณระยะทาง mahalanobis ใน r


ระยะทางมหาลาโนบิส คือระยะห่างระหว่างจุดสองจุดในพื้นที่หลายตัวแปร

มักใช้เพื่อตรวจจับค่าผิดปกติในการวิเคราะห์ทางสถิติที่เกี่ยวข้องกับตัวแปรหลายตัว

บทช่วยสอนนี้จะอธิบายวิธีคำนวณระยะทางมหาลาโนบิสในหน่วย R

ตัวอย่าง: ระยะทางมหาลาโนบิสเป็นอาร์

ใช้ขั้นตอนต่อไปนี้เพื่อคำนวณระยะทางมหาลาโนบิสสำหรับ การสังเกต แต่ละครั้งในชุดข้อมูลใน R

ขั้นตอนที่ 1: สร้างชุดข้อมูล

ขั้นแรก เราจะสร้างชุดข้อมูลที่จะแสดงคะแนนสอบของนักเรียน 20 คน พร้อมด้วยจำนวนชั่วโมงที่พวกเขาใช้เวลาเรียน จำนวนข้อสอบฝึกหัดที่พวกเขาทำ และเกรดปัจจุบันในหลักสูตร:

 #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

ขั้นตอนที่ 2: คำนวณระยะทางมหาลาโนบิสสำหรับการสังเกตแต่ละครั้ง

ต่อไป เราจะใช้ฟังก์ชัน mahalanobis() ที่สร้างไว้ใน R เพื่อคำนวณระยะทาง Mahalanobis สำหรับการสังเกตแต่ละครั้ง ซึ่งใช้ไวยากรณ์ต่อไปนี้:

มาฮาลาโนบิส (x, center, cov)

ทอง:

  • x: เมทริกซ์ข้อมูล
  • ศูนย์กลาง: เวกเตอร์เฉลี่ยของการแจกแจง
  • cov: เมทริกซ์การกระจายความแปรปรวนร่วม

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชันนี้กับชุดข้อมูลของเรา:

 #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

ขั้นตอนที่ 3: คำนวณค่า p ของระยะทางมหาลาโนบิแต่ละจุด

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *