Goodな生活

経済学修士→環境コンサル→データサイエンス

判別分析(2)マハラノビスの距離

フィッシャーの線形判別関数は、青(1群)と赤(2群)から観測されたデータを、変数の線形結合で表される軸上へ射影し、それぞれの群の分離度を表す群間分散と、各群内のデータのばらつき度合いを示す郡内分散の比を最大にする軸(直線)を最適な射影軸とする関数を構成した。ここではデータと各群を代表する平均ベクトルとの距離を定義し、距離の小さい方に判別する方法を示す。

マハラノビスの距離

1次元のマハラノビスの距離

データを1次元(青(1群)のデータはm個、赤(2群)のデータはn個)とする。新しいデータx_0が得られたときに、x_0がそれぞれの群の平均\bar{x_1},\bar{x_2}のどちらに近いかを考える。図1の青線・赤線はそれぞれ1群・2群の分布(密度関数)を表す。線形判別関数はy=(x_0-\bar{x})となり、この関数の正負だけが問題になる。

f:id:good_na_life:20210614081112p:plain
図1

ただし単純な距離だけでは不適切は判別となる可能性がある。x_0においては青線(1群の密度関数)の値と比較して赤線(2群の密度関数)は値が大きいため小さくないためx_0は1群よりも2群に属する可能性が高い。しかしx_0は2つの群の平均\bar{x_1},\bar{x_2}の中間に位置するため、各群の平均からの距離は等しい。つまりどちらの群とも判別がつかない。これは1群と2群の密度関数の形状(分散)が異なるため生じる。そこで各群のデータを標準化し、平均0、分散1に揃えた上で、平均からの距離で判別する。

f:id:good_na_life:20210612080903p:plain
図2

図2は標準化したデータの密度関数。x_0は赤(2群)の平均により近いことがわかる。このときの青(1群)、赤(2群)それぞれの平均と分散*1は次のように表され、

 {
\begin{align}
\bar{x_1} &= \frac{1}{m} \sum_{i=1}^{m}x_{i1} \quad s_{1}^2 = \frac{1}{m} \sum_{i=1}^{m} (x_{i1} - \bar{x_1})^2 \\
 \bar{x_2} &= \frac{1}{n} \sum_{j=1}^{n}x_{j2} \quad s_{2}^2 = \frac{1}{n} \sum_{j=1}^{n}(x_{j2} - \bar{x_2})^2 \tag{1}
\end{align}
}

次のD_1,D_2x_0と1群、2群とのマハラノビスの距離という。言い換えれば各群でデータx_0を標準化したものの絶対値である。

 {
\begin{align}
D_1 = \frac{|x_0-\bar{x_1}|}{s_1} \quad D_2 = \frac{|x_0-\bar{x_2}|}{s_2} \tag{2}
\end{align}
}

判別方法は、マハラノビスの距離が小さい方の群に判別する。D_1 < D_2ならばx_0は1群に判別、D_1 > D_2なら2群に判別する。あるいはD_2^2 - D_1^2が正なら1群に判別、負なら2群に判別と考えてもよい。

多次元のマハラノビスの距離

考え方は1次元の場合と同じ。各群の平均は平均ベクトルに、分散は分散共分散行列に変わる。1群の平均ベクトルを\bar{x_1}、分散共分散行列をS_1とする。2群の平均ベクトルを\bar{x_2}、分散共分散行列をS_2とする。x_0と各群の多次元のマハラノビスの距離は

 {
\begin{align}
D_1 = \sqrt{ (x_0-\bar{x_1})^\top S_1^{-1} (x_0 - \bar{x_1})} \tag{7} \\
D_2 = \sqrt{ (x_0-\bar{x_2})^\top S_2^{-1} (x_0 - \bar{x_2})} \tag{8} 
\end{align}
}

この距離が小さい方に判別する。D_2^2 - D_1^2

 {
\begin{align}
D_2^2 - D_1^2 = (x_0-\bar{x_2})^\top S_2^{-1} (x_0 - \bar{x_2}) - (x_0-\bar{x_1})^\top S_1^{-1} (x_0 - \bar{x_1}) \tag{9}
\end{align}
}

マハラノビス距離とユークリッド距離

マハラノビス距離は分散共分散行列を使い、データのばらつき度合いを考慮に入れた距離。

 {
\begin{align}
(\boldsymbol{x}-\bar{\boldsymbol{x}})^\top S^{-1} (\boldsymbol{x}-\bar{\boldsymbol{x}}) \tag{10}
\end{align}
}

2次元データの場合、例え中心からのユークリッド距離が同じであっても、データの密度が高い方向にあるデータ同士は、データの密度が低い方向にあるデータよりも相対的に短くするという考え方。データの密度は相関関係と読み替えることもできる。2次元データの分散共分散S単位行列I(相関ゼロ)の場合、マハラノビス距離とユークリッド距離は同一となる。

 {
\begin{align}
(\boldsymbol{x}-\bar{\boldsymbol{x}})^\top I^{-1} (\boldsymbol{x}-\bar{\boldsymbol{x}}) = (\boldsymbol{x}-\bar{\boldsymbol{x}})^\top (\boldsymbol{x}-\bar{\boldsymbol{x}}) \tag{11}
\end{align}
}

マハラノビスの距離と線形判別関数の関係

1群と2群の分散共分散行列が全体の分散共分散行列に等しいとき(S=S_1=S_2)、マハラノビスの距離による判別はフィッシャーの線形判別関数を使った判別と同じ結果になる。(7)(8)の二乗を取り、分散共分散行列をSに代えると

 {\begin{align}
D_1^2 &= (x-\bar{x_1})^\top S^{-1} (x - \bar{x_1}) \\
           &= x^\top S^{-1} x - \bar{x_1}^\top S^{-1}x - x^\top S^{-1}\bar{x_1} + \bar{x_1}^\top S^{-1} \bar{x_1} \\
           &= x^\top S^{-1}x -2\bar{x_1}^\top S^{-1}x + \bar{x_1}^\top S^{-1} \bar{x_1} \tag{12}
\end{align}}

 {\begin{align}
D_2^2 &= (x-\bar{x_2})^\top S^{-1} (x - \bar{x_2}) \\
           &= x^\top S^{-1} x - \bar{x_2}^\top S^{-1}x - x^\top S^{-1}\bar{x_2} + \bar{x_2}^\top S^{-1} \bar{x_2} \\
           &= x^\top S^{-1}x -2\bar{x_2}^\top S^{-1}x + \bar{x_2}^\top S^{-1} \bar{x_2} \tag{13}
\end{align}}

(10)-(11)は
 {\begin{align}
D_2^2 - D_1^2 &= 2(\bar{x_1}-\bar{x_2})^\top  S^{-1}x - (\bar{x_1}^\top S^{-1} \bar{x_1} - \bar{x_2}^\top  S^{-1} \bar{x_2}) \\
                         &= 2(\bar{x_1}-\bar{x_2})^\top S^{-1}x - (\bar{x_1}-\bar{x_2})^\top S^{-1} (\bar{x_1} + \bar{x_2}) \tag{14}
\end{align}}

フィッシャーの線形判別関数は
 {\begin{align}
h(\boldsymbol{x}) = (\boldsymbol{\bar{x_1}-\bar{x_2}})^\top S^{-1} \boldsymbol{x}- \frac{1}{2} (\boldsymbol{\bar{x_1}-\bar{x_2}})^\top S^{-1} (\boldsymbol{\bar{x_1}+\bar{x_2}}) \tag{15}
\end{align}}
なので、(12)はちょうどフィッシャーの線形判別関数の2倍になる。したがってフィッシャーの線形判別関数の正負による判別とマハラノビスの距離によるD_2^2 - D_1^2の正負の判別の結果は等しい。

*1:実際の計算には標本分散を用いるため分母は\frac{1}{m-1}\frac{1}{n-1}。多次元の場合の分散共分散行列も同様