주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

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')

Figure contains an axes object. The axes object contains 2 objects of type scatter. These objects represent X, Y.

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

입력 인수

모두 축소

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

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

데이터형: single | double

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

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

데이터형: single | double

출력 인수

모두 축소

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

세부 정보

모두 축소

  • mahal 함수를 호출할 때마다 기준 표본의 공분산 행렬이 계산됩니다. 여러 데이터 세트와 동일한 기준 표본 X 사이의 마할라노비스 거리를 계산하려는 경우, X의 공분산 행렬을 한 번만 계산하고 이를 pdist2 함수에 제공함으로써 계산 시간을 절약할 수 있습니다. 예제는 마할라노비스 거리 계산하기 항목을 참조하십시오.

버전 내역

R2006a 이전에 개발됨