이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

mahal

마할라노비스 거리

설명

예제

d2 = mahal(Y,X)Y의 각 관측값에 대해 X의 기준 표본까지의 제곱 마할라노비스 거리를 반환합니다.

예제

모두 축소

상관관계가 있는 이변량 표본 데이터 세트를 생성합니다.

rng('default') % For reproducibility
X = mvnrnd([0;0],[1 .9;.9 1],1000);

X의 평균에서부터 유클리드 거리가 등거리인 4개의 관측값을 지정합니다.

Y = [1 1;1 -1;-1 1;-1 -1];

Y의 각 관측값에 대해 X의 기준 표본까지의 마할라노비스 거리를 계산합니다.

d2_mahal = mahal(Y,X)
d2_mahal = 4×1

    1.1095
   20.3632
   19.5939
    1.0137

Y의 각 관측값에 대해 X의 평균까지의 제곱 유클리드 거리를 계산합니다.

d2_Euclidean = sum((Y-mean(X)).^2,2)
d2_Euclidean = 4×1

    2.0931
    2.0399
    1.9625
    1.9094

scatter를 사용하여 XY를 플로팅하고, 마커 색을 사용하여 X의 기준 표본까지의 Y의 마할라노비스 거리를 시각화합니다.

scatter(X(:,1),X(:,2),10,'.') % Scatter plot with points of size 10
hold on
scatter(Y(:,1),Y(:,2),100,d2_mahal,'o','filled')
hb = colorbar;
ylabel(hb,'Mahalanobis Distance')
legend('X','Y','Location','best')

Y의 모든 관측값([1,1], [-1,-1,], [1,-1], [-1,1])은 X의 평균에서부터 유클리드 거리가 등거리입니다. 그러나 [1,1][-1,-1]은 마할라노비스 거리가 [1,-1][-1,1]보다 X에 훨씬 가깝습니다. 마할라노비스 거리는 데이터의 공분산과 여러 변수의 스케일을 고려하기 때문에 이상값을 감지하는 데 유용합니다.

입력 인수

모두 축소

데이터로, nxm 숫자형 행렬로 지정됩니다. 여기서 n은 관측값 개수이고 m은 각 관측값에서의 변수 개수입니다.

XY는 열 개수가 같아야 하지만, 행 개수는 다를 수 있습니다.

데이터형: single | double

기준 표본으로, pxm 숫자형 행렬로 지정됩니다. 여기서 p는 표본 개수이고 m은 각 표본에서의 변수 개수입니다.

XY는 열 개수가 같아야 하지만, 행 개수는 다를 수 있습니다. X는 열보다 행이 많아야 합니다.

데이터형: single | double

출력 인수

모두 축소

Y의 각 관측값에 대해 X의 기준 표본까지의 제곱 마할라노비스 거리로, nx1 숫자형 벡터로 반환됩니다. 여기서 n은 X의 관측값 개수입니다.

세부 정보

모두 축소

마할라노비스 거리

마할라노비스 거리는 표본 점과 분포 사이의 거리를 측정한 값입니다.

벡터 y에서 평균이 μ이고 공분산이 Σ인 분포까지의 마할라노비스 거리는 다음과 같습니다.

d=(yμ)1(yμ)'.

이 거리는 표준편차 개수를 기준으로 y가 평균에서 얼마나 떨어져 있는지를 나타냅니다.

mahalY의 관측값에서 X의 기준 표본까지의 제곱 마할라노비스 거리 d2을 반환합니다. mahal 함수에서 μ와 Σ는 각각 기준 표본의 표본평균과 공분산입니다.

참고 항목

|

R2006a 이전에 개발됨