Main Content

mahal

基準標本に対するマハラノビス距離

説明

d2 = mahal(Y,X) は、X 内の基準標本に対する Y 内の各観測値のマハラノビス距離の二乗を返します。

すべて折りたたむ

相関二変量標本データ セットを生成します。

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

X の平均からユークリッド距離で等距離にある 4 つの観測値を指定します。

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

X 内の基準標本に対する Y 内の各観測値のマハラノビス距離を計算します。

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

    1.1095
   20.3632
   19.5939
    1.0137

X の平均に対する Y 内の各観測値の 2 乗ユークリッド距離を計算します。

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 に近くなります。データの共分散および異なる変数のスケールが考慮されるので、マハラノビス距離は外れ値の検出に役立ちます。

入力引数

すべて折りたたむ

データ。nm 列の数値行列を指定します。n は観測値の個数、m は各観測値の変数の個数です。

XY の列数は同じでなければなりませんが、行数を同じにする必要はありません。

データ型: single | double

基準標本。pm 列の数値行列を指定します。p は標本の個数、m は各標本の変数の個数です。

XY の列数は同じでなければなりませんが、行数を同じにする必要はありません。X の行数は列数より多くなければなりません。

データ型: single | double

出力引数

すべて折りたたむ

X 内の基準標本に対する Y 内の各観測値のマハラノビス距離の二乗。n 行 1 列の数値ベクトルとして返されます。nX 内の観測値の個数です。

詳細

すべて折りたたむ

マハラノビス距離

マハラノビス距離は、標本点と分布の間の尺度です。

ベクトル y から平均 μ および共分散 Σ をもつ分布までのマハラノビス距離は次のようになります。

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

この距離は、標準偏差単位で y が平均からどの程度離れているかを表します。

mahal は、Y 内の各観測値から X 内の基準標本までのマハラノビス平方距離 d2 を返します。関数 mahal では、μ および Σ はそれぞれ基準標本の平均および共分散です。

バージョン履歴

R2006a より前に導入