ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

mahal

構文

d = mahal(Y,X)

説明

d = mahal(Y,X) は行列 X の参照標本から Y にある各観測のマハラノビス距離 (平方単位) を計算します。Y が n 行 m 列です。ここで、n が観測数、m がデータの次元の場合、d は n 行 1 列になります。XY は、同じ列数でなければなりませんが、異なる行数をもつことはできます。X では、列よりも行の方が多くなければなりません。

観測 I の場合、マハラノビス距離は d(I) = (Y(I,:)-mu)*inv(SIGMA)*(Y(I,:)-mu)' によって定義されます。ここで、muSIGMA は、X 内のデータの標本の平均と共分散です。mahal は等しい数の計算を実行しますが、より効果的です。

すべて折りたたむ

マハラノビス距離と二乗ユークリッド距離の比較

相関 2 変量データを生成します。

X = mvnrnd([0;0],[1 .9;.9 1],100);

観測値を入力します。

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

X の参照標本からの Y の観測値のマハラノビス距離を計算します。

d1 = mahal(Y,X)
d1 =

    0.6288
   19.3520
   21.1384
    0.9404

X の平均からの二乗ユークリッド距離と比較します。

d2 = sum((Y-repmat(mean(X),4,1)).^2, 2)
d2 =

    1.6170
    1.9334
    2.1094
    2.4258

マハラノビス距離に応じて Y 値に色が付けられている観測値をプロットします。

scatter(X(:,1),X(:,2))
hold on
scatter(Y(:,1),Y(:,2),100,d1,'*','LineWidth',2)
hb = colorbar;
ylabel(hb,'Mahalanobis Distance')
legend('X','Y','Location','NW')

すべての観測値はユークリッド距離の X の平均からおおよそ等しい距離にありますが、等価な座標値をもつ Y の観測値は、反対の座標値をもつ観測値よりマハラノビス距離の X により近くなります。マハラノビス距離は、データの共分散と異なる変数のスケールを考慮すると、このような場合の外れ値の検出に役立ちます。

参考

|

この情報は役に立ちましたか?