마할라노비스 거리 (Mahalanobis Distance)
일반적으로 거리를 나타낼 때는 유클리드 거리(Euclidean distance)를 많이 사용한다. 그런데 유클리드 거리는 확률과 무관한 거리이기에 확률론적 거리로는 마할라노비스 거리를 많이 사용한다.
마할라노비스 거리는 평균에서 얼마나 많은 표준편차만큼 떨어져 있는지를 나타낸다. 즉 나타날 확률이 작을 수록 거리가 멀다. 이때 변량들끼리의 상관관계를 고려하게 된다. 즉 변량의 분산과 변량들끼리의 공분산을 반영한다.
벡터 $ \mathbf{x} $, $ \mathbf{y} $ 의 공분산 행렬이 $ \mathbf{\Sigma} $ 일 때 마할라노비스 거리는 다음과 같다.
$$ d_M = \sqrt{(\mathbf{x} - \mathbf{y} )^T \mathbf{\Sigma}^{-1} ( \mathbf{x} - \mathbf{y} )^T} $$
다변량 정규분포의 확률밀도함수에 평균부터의 마할라노비스 거리가 포함되어 있다.
좌표 평면을 통한 이해
예를 들어서 위와 같이 $ y_1 $ 과 $ y_2 $ 가 떨어져 있다고 해보자. $ y_1 = (-5, -5) $ 이고 $ y_2 = (5, 5) $ 이다. 현재 평균벡터 $ \boldsymbol{\mu} $ 는 $ (0, 0) $ 이고, 공분산 행렬은 $ \begin{bmatrix} 2 & 0 \\ 0 & 2 \end{bmatrix} $ 이다.
그렇다면 $ y_1 $ 과 $ y_2 $ 의 중앙 $(0, 0)$ 으로부터의 유클리드 거리는 각각 대략 $ 3.5 $ 이다. 이제 마할라노비스 거리를 계산하면 각각 $ 5 $ 가 나온다. 위 좌표 평면에서 $y_1 $ 과 $ y_2 $ 가 $ 5 \sigma$ 에 걸쳐 있는 것으로도 알 수 있다.
그렇다면 아래와 같은 상황에서도 같은 거리를 유지할까.
공분산 행렬만 $ \begin{bmatrix} 2 & 0.5 \\ 0.5 & 2 \end{bmatrix} $ 로 바꾸었다. 유클리드 거리는 편함이 없다. 그러나 마할라노비스 거리는 각각 $ 4\sigma $ 와 $ 5\sigma $ 사이에 있는 대략 $ 4.5 $ 정도가 나온다.
극단적으로 공분산 행렬이 $ \begin{bmatrix} 5 & 0.5 \\ 0.5 & 5 \end{bmatrix} $ 라 하면 아래와 같이 나타난다.
따로 계산하지 않아도 $y_1 $, $y_2 $ 모두 $ 3\sigma $ 에 걸쳐 있는 것으로 보아 마할라노비스 거리가 $ 3 $ 정도 되는 것을 알 수 있다.
이렇게 확률적 거리를 마할라노비스 거리로 나타내고, 이를 통해 거리가 확률을 나타낼 수 있다는 것을 확인할 수 있다. 등고선 개념으로 이해해도 좋을 것이다.
고윳값 분해 (eigendecomposition)
마할라노비스 거리를 나타내기 위한 등고선을 그려본다면 기본적인 원형을 늘리고 찌그러트린 것으로 볼 수도 있을 것이다. 그렇다면 어느 방향으로 얼마나 늘렸는지와 전체적으로 얼마나 퍼졌는지를 따로 확인하고자 한다면 고윳값(참고링크)을 통해 확인할 수 있다.
공분산 행렬을 $ \mathbf{\Sigma} $ 라 하면 이는 다음과 같다.
$$ \mathbf{\Sigma} = \mathbf{U} \mathbf{\Lambda} \mathbf{U}^T $$
여기서 $ \mathbf{U} $ 는 공분산 행렬의 고유벡터들로 이루어진 직교행렬이고, $ \mathbf{\Lambda} $ 는 공분산 행렬의 고윳값들로 이루어진 대각행렬이다.
이때 $ \mathbf{U} = \begin{bmatrix} \vert & \vert \\ \mathbf{u}_1 & \mathbf{u}_2 \\ \vert & \vert \end{bmatrix} $ 라 하면 각 $ \mathbf{u}_1 $ 과 $ \mathbf{u}_2 $ 는 주성분 방향을 보여주며 $ \mathbf{\Lambda} $ 의 대각 성분은 주성분 방향이 얼마만큼 분포가 늘어져 있는지를 보여준다.
공분산 행렬이 $ \begin{bmatrix} 1 & 0.5 \\ 0.5 & 1.5 \end{bmatrix} $ 라 할 때 고윳값 분해를 하면 아래와 같다.
$$ \mathbf{\Sigma} = \begin{bmatrix} -0.8507 &0.5257 \\ 0.5257 & 0.8507 \end{bmatrix} \begin{bmatrix} 0.6910 & 0 \\ 0 & 1.8090 \end{bmatrix} \begin{bmatrix} -0.8507 &0.5257 \\ 0.5257 & 0.8507 \end{bmatrix}^T $$
즉 주성분 방향인 $ PC 1 $ 과 $ PC 2 $ 는 $ \begin{bmatrix} \vert & \vert \\ PC 1 & PC2 \\ \vert & \vert \end{bmatrix} = \begin{bmatrix} -0.8507 &0.5257 \\ 0.5257 & 0.8507 \end{bmatrix} $ 이고, $ \mathbf{\Lambda} $ 의 대각 성분 즉 고윳값은 $ 0.6910 $, $ 1.8090 $ 이다. 그림으로 보면 아래와 같다.
그렇다면 공분산 행렬의 역행렬은 다음과 같다.
$$ \mathbf{\Sigma}^{-1} = (\mathbf{U} \mathbf{\Lambda} \mathbf{U}^T)^{-1} = \mathbf{U}^{-T} \mathbf{\Lambda}^{-1} \mathbf{U}^T = \sum_{i=1}^D \dfrac{1}{\lambda_i} \mathbf{u}_i \mathbf{u}_i^T $$
$ \mathbf{u}_i $ 는 $ \mathbf{U} $ 의 $ i $ 번째 열이다. 즉 $ i $ 번째 고유벡터이다.
이를 마할라노비스 거리로 나타낸다면, 특히 다변량 정규분포에서 지수 부분에 등장하는 마할라노비스 거리로 만든다면 다음과 같다.
$ (\mathbf{x} - \boldsymbol{\mu} )^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \boldsymbol{\mu}) = (\mathbf{x} - \boldsymbol{\mu} )^T \left( \sum_{i=1}^D \dfrac{1}{\lambda_i} \mathbf{u}_i \mathbf{u}_i^T \right) (\mathbf{x} - \boldsymbol{\mu}) $
$ = \sum_{i=1}^D \dfrac{1}{\lambda_i} (\mathbf{x} - \boldsymbol{\mu} )^T \mathbf{u}_i \mathbf{u}_i^T (\mathbf{x} - \boldsymbol{\mu} ) $
$ = \sum_{i=1}^D \dfrac{y_i^2}{\lambda_i} $
여기서 $ y_i = \mathbf{u}_i ^T (\mathbf{x} - \boldsymbol{\mu} ) $ 이다.
'Statistics > Mathematical Statistics' 카테고리의 다른 글
[Mathematical Statistics] 표본평균과 표본분산의 표집분포 (0) | 2025.01.25 |
---|---|
[Mathematical Statistics] 표집분포(sampling distribution) (0) | 2025.01.23 |
[Mathematical Statistics] 다변량 정규분포(MVN, multivariate normal distribution) (0) | 2025.01.21 |
[Mathematical Statistics] 이변량 정규분포(bivariate normal distribution) (0) | 2025.01.17 |
[Mathematical Statistics] 조건부 기댓값 및 분산과 최소제곱 회귀직선과의 관계 (0) | 2025.01.17 |