도구스학업·수학

마할라노비스 거리 계산기

변수들이 서로 상관되어 있을 때 중심에서 얼마나 먼지를 재는 거리입니다. 각 변수만 보면 평범한데 조합으로는 드문 점을 잡아내며, 카이제곱 임계값으로 이상치 후보까지 가려 줍니다.

한 줄에 한 표본, 값은 공백이나 쉼표로 구분합니다. 모든 줄의 값 개수가 같아야 합니다.

비워 두면 자료 안의 점들만 봅니다.

% 상위

자유도 p의 카이제곱에서 이 확률만큼 위에 있는 지점을 임계값으로 씁니다.

(160, 75) 의 마할라노비스 거리

53.6562

d² = 2,878.9919 · 임계값 9.21 · 이상치 후보입니다 (p = 0)

표본 수 · 변수 수15개 · 2개
평균 벡터169.733, 63.533
공분산 행렬식7.89524
카이제곱 임계값 (자유도 2)9.2103
이상치 후보0개
마할라노비스 거리53.6562
유클리드 거리15.0407
유클리드로 더 먼 자료점3개 / 15개
d²이 이보다 클 확률0%
유클리드 거리로는 평범한데 마할라노비스로는 이상치입니다. 자료 안에 이 점보다 «멀리» 있는 표본이 3개나 되는데도 이 점이 이상치로 걸립니다. 변수들이 함께 움직이는 방향에서 벗어났기 때문입니다 — 각 변수만 놓고 보면 평범하지만 조합으로 보면 드문 자리입니다. 이것이 이 거리를 쓰는 이유입니다.

공분산 행렬

42.0666750.86667
50.8666761.69524

대각선이 각 변수의 분산, 나머지가 변수끼리의 공분산입니다. 대각선 밖이 0에 가까울수록 마할라노비스 거리가 유클리드 거리에 가까워집니다.

표본마다의 거리

번호d유클리드판정
1160, 522.5491.59715.092
2165, 580.7250.8527.282
3170, 633.9041.9760.596
4175, 700.7110.8438.34
5180, 762.521.58816.15
6158, 505.5552.35717.912
7168, 611.0911.0443.07
8173, 681.6761.2955.534
9178, 742.8051.67513.337
10163, 551.8941.37610.87
11171, 650.0610.2461.938
12176, 710.99919.748
13166, 590.3330.5775.873
14169, 622.241.4971.7
15174, 690.9360.9686.935

d²의 평균은 이론상 정확히 p(n−1)/n = 1.8667이고, 실제로 1.8667입니다. 60개까지만 보여 줍니다.

각 변수는 평범한데 조합이 이상한 점을 잡습니다. 키 150cm는 흔하고 몸무게 90kg도 흔하지만, 둘을 함께 가진 사람은 드뭅니다. 유클리드 거리는 각 축을 같은 무게로 보고 축끼리의 상관을 무시하지만, 마할라노비스 거리는 공분산의 역행렬로 눌러 주어 「자료가 함께 움직이는 방향」에서 얼마나 벗어났는지를 잽니다.
단위를 바꿔도 값이 그대로입니다. Σ⁻¹을 끼우는 것은 자료를 구형으로 펴는 변환과 같아서, 키를 cm로 재든 m로 재든 결과가 같습니다. 더 일반적으로 자료 전체를 늘리거나 회전해도(아핀 변환) 거리가 변하지 않습니다. 공분산이 단위행렬이면 그냥 유클리드 거리로 돌아옵니다.
이상치가 자기 자신을 숨깁니다. 평균과 공분산을 그 자료로 구하는 이상, 이상치가 이미 들어 있으면 그것이 평균을 끌어당기고 공분산을 부풀려 스스로를 정상으로 보이게 만듭니다(마스킹). 이상치가 여럿이면 더 심해집니다. 진지한 이상치 탐지에는 MCD 같은 로버스트 추정을 씁니다.
임계값은 다변량 정규분포를 가정합니다. 자료가 다변량 정규분포를 따를 때 d²이 자유도 p의 카이제곱을 따르므로 그 상위 지점을 임계값으로 씁니다. 분포가 크게 치우쳐 있으면 이 판정이 흔들리므로, 「이상치 후보」로 보고 자료를 직접 들여다보는 실마리로 쓰는 것이 안전합니다.
변수가 겹치면 계산할 수 없습니다. 어떤 변수가 다른 변수들의 선형결합이면(완전 상관, 또는 표본이 변수보다 적으면) 공분산 행렬의 역행렬이 없어 거리를 정의할 수 없습니다. 이때는 겹치는 변수를 빼거나 주성분으로 차원을 줄인 뒤 계산해야 합니다.

계산 방법

  1. 1한 줄에 한 표본씩, 값은 공백이나 쉼표로 구분해 넣습니다.
  2. 2따로 재어 볼 점을 넣으면 그 점의 마할라노비스 거리와 유클리드 거리를 함께 냅니다.
  3. 3두 거리가 얼마나 다른지, 유클리드로는 더 먼 자료점이 몇 개인지 확인합니다.
  4. 4공분산 행렬에서 대각선 밖이 0에 가까울수록 두 거리가 비슷해지는 것을 봅니다.
  5. 5이상치 판정 기준을 바꿔 가며 임계값과 걸리는 표본이 어떻게 달라지는지 확인합니다.

자주 묻는 질문

변수들 사이의 상관과 척도를 고려한다는 점이 다릅니다. 유클리드 거리는 각 축을 같은 무게로 보지만, 마할라노비스 거리는 공분산의 역행렬을 끼워 d² = (x−μ)ᵀΣ⁻¹(x−μ)로 잽니다. 그래서 키 150cm와 몸무게 90kg처럼 각각은 흔하지만 함께는 드문 조합을 잡아낼 수 있습니다.

Σ⁻¹을 끼우는 것이 자료를 구형으로 펴는 변환과 같기 때문입니다. 변수마다 표준편차로 나누어 단위를 없애고 상관을 지운 공간에서 유클리드 거리를 재는 것과 같아서, 키를 cm로 재든 m로 재든 결과가 같습니다. 더 일반적으로 자료 전체를 늘리거나 회전해도(아핀 변환) 거리가 변하지 않습니다.

자료가 다변량 정규분포를 따르면 d²이 자유도 p(변수 개수)의 카이제곱 분포를 따르므로, 그 상위 1% 지점을 임계값으로 씁니다. 변수가 둘이면 9.21, 셋이면 11.34입니다. 다만 분포가 크게 치우쳐 있으면 이 판정이 흔들리므로 「후보」로 보고 자료를 직접 들여다보는 편이 안전합니다.

평균과 공분산을 그 자료로 구하기 때문에, 이상치가 이미 들어 있으면 평균을 끌어당기고 공분산을 부풀려 스스로를 정상으로 보이게 만듭니다. 이것을 마스킹이라 하며 이상치가 여럿일수록 심해집니다. 진지한 이상치 탐지에는 MCD처럼 자료의 일부만 써서 평균·공분산을 추정하는 로버스트 방법을 씁니다.

공분산 행렬의 역행렬이 없을 때입니다. 어떤 변수가 다른 변수들의 선형결합이거나(완전 상관), 표본 수가 변수 수보다 적으면 그렇습니다. 이때는 겹치는 변수를 빼거나 주성분분석으로 차원을 줄인 뒤 계산해야 합니다.

변수가 하나뿐이면 마할라노비스 거리가 |z|와 정확히 같습니다. 곧 z 점수를 여러 변수로 확장한 것이며, 변수가 여럿일 때 그들 사이의 상관까지 반영한다는 점이 더해집니다. 「몇 σ 밖」이라는 감각을 다변량으로 옮긴 것이라고 보면 됩니다.

다변량 이상치 탐지가 대표적이고, 판별분석(어느 집단에 더 가까운지 판정), 이상 탐지 기반 품질관리, 신용평가에서 특이 거래 찾기 등에 쓰입니다. 군집 분석에서 거리 척도로 쓰기도 하는데, 이때는 군집마다 공분산을 따로 잡을지가 별도의 선택이 됩니다.

전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 공분산은 표본 공분산(n−1로 나눈 것)을 씁니다. 그래서 d²의 평균이 정확히 p(n−1)/n이 됩니다.
  • 평균과 공분산을 같은 자료에서 구하므로 이상치가 스스로를 가리는 마스킹이 일어날 수 있습니다.
  • 임계값은 다변량 정규분포를 가정합니다. 분포가 다르면 판정이 흔들립니다.
  • 표본 500개, 변수 8개까지 다룹니다. 표는 60개까지만 보여 줍니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.