Main Content

mahal

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

説明

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

すべて折りたたむ

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

rng('default')% For reproducibilityX = 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×11.1095 20.3632 19.5939 1.0137

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

d2_Euclidean = sum((Y-mean(X)).^2,2)
d2_Euclidean =4×12.0931 2.0399 1.9625 1.9094

scatterを使用して、XYをプロットします。マーカーの色を使用して、X内の基準標本に対するYのマハラノビス距離を可視化します。

scatter(X(:,1),X(:,2),10,'.')% Scatter plot with points of size 10holdonscatter(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]) は、Xの平均からユークリッド距離で等距離にあります。しかし、マハラノビス距離では、[1,1][-1,-1][1,-1][1]よりはるかに X に近くなります。データの共分散および異なる変数のスケールが考慮されるので、マハラノビス距離は外れ値の検出に役立ちます。

入力引数

すべて折りたたむ

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

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

データ型:single|double

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

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

データ型:single|double

出力引数

すべて折りたたむ

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

詳細

すべて折りたたむ

マハラノビス距離

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

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

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

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

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

バージョン履歴

R2006a より前に導入