R에서 mahalanobis 거리를 계산하는 방법


마할라노비스 거리는 다변량 공간에서 두 점 사이의 거리입니다.

이는 여러 변수를 포함하는 통계 분석에서 이상값을 탐지하는 데 자주 사용됩니다.

이 튜토리얼에서는 R에서 Mahalanobis 거리를 계산하는 방법을 설명합니다.

예: R 단위의 Mahalanobis 거리

R의 데이터세트에 있는 각 관측값 에 대한 Mahalanobis 거리를 계산하려면 다음 단계를 사용하세요.

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() 함수를 사용하여 다음 구문을 사용하여 각 관측값에 대한 Mahalanobis 거리를 계산합니다.

마할라노비스(x, 중앙, 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단계: 각 Mahalanobis 거리에 대한 p-값을 계산합니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다