マハラノビスの平方距離  Last modified: Jan 13, 2006

 マハラノビスの平方距離に基づき,距離の近い群に判別するということを,架空例で見てみよう。

 2 群のデータを考える。各群 10 組の2 変数データとする。データは表 1 の通り。
表 1. 2群,2変量データ
X1 X2
1 7 8
1 30 28
1 60 29
1 28 55
1 57 60
1 77 62
1 69 77
1 55 94
1 96 93
1 111 134
  
X1 X2
2 107 58
2 130 78
2 160 79
2 128 105
2 157 110
2 177 112
2 169 127
2 155 144
2 196 143
2 211 184
 第 2 群のデータは,第 1 群のデータを (100, 50) だけ平行移動したものである。
 第 1 群の平均値は (59, 64),第 2 群の平均値は (159, 114) である。

> data1
    X1  X2
1    7   8
2   30  28
3   60  29
4   28  55
5   57  60
6   77  62
7   69  77
8   55  94
9   96  93
10 111 134

> ( m1 <- colMeans(data1) ) # 第 1 群の平均値
群 X1 X2 
 1 59 64 

> data2
    X1  X2
1  107  58
2  130  78
3  160  79
4  128 105
5  157 110
6  177 112
7  169 127
8  155 144
9  196 143
10 211 184

> ( m2 <- colMeans(data2) ) # 第 2 群の平均値
  X1  X2 
 159 114 

 分散・共分散行列および,その逆行列を計算する。第 1 群と第 2 群の分散・共分散行列は全く等しいことに注意。

> ( n1 <- nrow(data1) ) # 第 1 群のサンプルサイズ
[1] 10
> ( n2 <- nrow(data2) ) # 第 2 群のサンプルサイズ
[1] 10
> ( S1 >- var(data1)*(n1-1) ) # 第 1 群の変動・共変動行列
     X1    X2
X1 9024  8895
X2 8895 12568
> ( S2 >- var(data2)*(n2-1) ) # 第 2 群の変動・共変動行列
     X1    X2
X1 9024  8895
X2 8895 12568
> ( V <- (S1+S2)/(n1+n2-2) ) # 二群をプールした分散・共分散行列
          X1        X2
X1 1002.6667  988.3333
X2  988.3333 1396.4444
> ( inv.S <- solve(V) ) # 二群をプールした分散・共分散行列の逆行列
             X1           X2
X1  0.003298437 -0.002334468
X2 -0.002334468  0.002368324

 マハラノビスの平方距離は,分散共分散行列の逆行列を用いて計算する。
 第 1 群の 10 番目の例 (111, 134) について,各群の重心までマハラノビスの平方距離の計算例を以下に示す。

 (111, 134) から (59, 64) への距離
\[ \begin{align*} &(111, 134) - (59, 64) = (52, 70)\\[5pt] &(52\ \ 70)\left ( \begin{array}{rr} 0.003298437 & -0.002334468 \\ -0.002334468 & 0.002368324 \end{array} \right ) \left ( \begin{array}{r} 52 \\ 70 \end{array} \right ) \\[5pt]   &=3.528831972 \end{align*} \]

> ( diff1 <- c(111, 134)-m1 )
X1 X2 
52 70 
> ( dist2 <- diff1 %*% inv.S %*% diff1 )
         [,1]
[1,] 3.528832

 (111, 134) から (159, 114) への距離
\[ \begin{align*} &(111, 134) - (159, 114) = (-48, 20)\\[5pt] &(-48\ \ 20)\left ( \begin{array}{rr} 0.003298437 & -0.002334468 \\ -0.002334468 & 0.002368324 \end{array} \right ) \left ( \begin{array}{r} -48 \\ 20 \end{array} \right ) \\[5pt]   &=13.02910706 \end{align*} \]

> ( diff2 <- c(111, 134)-m2 )
 X1  X2 
-48  20 
> ( dist2 <- diff2 %*% inv.S %*% diff2 )
         [,1]
[1,] 13.02911

 この結果を図 2 に示す。
fig
図 2. マハラノビスの平方距離とユークリッド距離の関係

 ユークリッド距離では,緑で描いた線分は紫で描いた線分より長い(距離が長い)。しかし,第 1 群の重心までのマハラノビス距離は 3.53,第 2 群の重心までのマハラノビス距離は 13.03 である。その理由は,各群のデータは楕円で示したような二次元(正規分布)をしているので,ユークリッド距離的に楕円の長軸方向と短軸方向へ同じだけ離れた点までのマハラノビス距離は異なるのである(短軸方向の距離の方が長い)。

 それぞれのデータが各グループに属する確率は,マハラノビスの平方距離が自由度 $p$ のカイ二乗分布に従うことに基づいて計算できる($p$ は判別分析に用いた変数の個数)。
 第 1 群の 10 番目の例 (111, 134) は,第 1 群までの平方距離が 3.528832,第 2 群までの平方距離が 13.02911 であり,$p = 2$ であるから,各群に属する確率はそれぞれ約 0.17128,0.00148 となる。

> ( p <- ncol(data1) ) # 変数の個数
[1] 2
> ( p1 <- pchisq(dist1, 2, lower.tail=FALSE) )
          [,1]
[1,] 0.1712868
> ( p2 <- pchisq(dist2, 2, lower.tail=FALSE) )
            [,1]
[1,] 0.001481717


このデータを判別分析した結果例を以下に示す。

★ 平均値
                      全体        第1群        第2群
                  20ケース      10ケース      10ケース
  2 Var002        109.0000      59.00000      159.0000
  3 Var003        89.00000      64.00000      114.0000

★ 判別関数

                 判別係数       標準化判別係数
  2 Var002       -0.21312         -12.43133
  3 Var003        0.11503           4.99000
    定数項       12.99238

★ 各ケースの判別結果

ケース  R     P      平方距離1      平方距離2       判別値
     1  1     1      2.75(0.253)    27.59(0.000)    12.42079
     2  1     1      0.97(0.616)    20.61(0.000)     9.81963
     3  1     1      3.07(0.216)    10.15(0.006)     3.54106
     4  1     1      2.06(0.357)    28.76(0.000)    13.35170
     5  1     1      0.01(0.993)    15.51(0.000)     7.74637
     6  1     1      1.25(0.536)     8.67(0.013)     3.71402
     7  1     1      0.12(0.940)    14.41(0.001)     7.14444
     8  1     1      2.74(0.254)    26.91(0.000)    12.08365
     9  1     1      1.50(0.473)     7.96(0.019)     3.23069
    10  1     1      3.53(0.171)    13.03(0.001)     4.75014  図 1 の計算例に示したもの
    11  2     2      9.03(0.011)     2.75(0.253)    -3.13971
    12  2     2     12.45(0.002)     0.97(0.616)    -5.74086
    13  2     2     27.11(0.000)     3.07(0.216)   -12.01944
    14  2     2      6.48(0.039)     2.06(0.357)    -2.20880
    15  2     2     15.64(0.000)     0.01(0.993)    -7.81413
    16  2     2     24.94(0.000)     1.25(0.536)   -11.84647
    17  2     2     16.96(0.000)     0.12(0.940)    -8.41605
    18  2     2      9.70(0.008)     2.74(0.254)    -3.47685
    19  2     2     26.16(0.000)     1.50(0.473)   -12.32981
    20  2     2     25.15(0.000)     3.53(0.171)   -10.81036

    注:‘平方距離'は各群の重心までのマハラノビスの平方距離
        カッコ内は各群に属する確率

★ 判別結果

              判別された群
実際の群     第1群  第2群    合計
  第1群         10       0      10
      %     (100.0) (  0.0) (100.0)
  第2群          0      10      10
      %     (  0.0) (100.0) (100.0)

                 正判別率 ・・・ 100.00%


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI

Made with Macintosh