判別分析

判別分析（はんべつぶんせき、英: discriminant analysis）は、事前に与えられているデータが異なるグループに分かれる場合、新しいデータが得られた際に、どちらのグループに入るのかを判別するための基準（判別関数）を得るための正規分布を前提とした分類の手法。英語では線形判別分析をLDA、二次判別分析をQDA、混合判別分析をMDAと略す。1936年にロナルド・フィッシャーが線形判別分析を発表し、1996年に Trevor Hastie, Robert Tibshirani が混合判別分析を発表した。 3つ以上のグループの判別は重判別分析や正準判別分析と呼ばれる。 判別関数には以下の物などがある。 線形判別関数 超平面・直線による判別。線形判別分析は等分散性が必要。 二次判別関数 楕円など二次関数による判別。二次判別分析は等分散性が不要。 非線形判別関数 超曲面・曲線などの非線形判別関数。 線形判別分析は、以下の前提条件が成立する必要がある。 各グループは多変量正規分布している 全てのグループが同じ共分散行列を持つ（等分散性） その上で、マハラノビス汎距離が等距離の所に直線を引く。これらの前提条件が成立しないとおかしな結果になる。 各グループの平均が異なる以上、分散が異なることは多々ある。等分散性の仮定を外した物が二次判別分析である。それぞれのグループで異なる共分散行列を使用してマハラノビス距離を計算して、等距離になる場所を判別曲面とする方法である。この方法は二次関数となり、正規分布が成立している場合は正しい結果になる。 線形判別分析において、グループ間の確率のロジットは線形関数となるが、ここで線形関数という仮定を残したまま、正規分布や等分散性の仮定を外すとロジスティック回帰や単純パーセプトロンになる。 さらに別な方法としては、線形判別関数を使用したい場合は、線形サポートベクターマシンで線形判別関数を求めるという方法もある。 線形判別関数は以下の通り。これの正負で判断。 x {\displaystyle x} は入力、 μ {\displaystyle \mu } は平均、 Σ {\displaystyle \mathbf {\Sigma } } は共分散行列。この式は多変量正規分布の式より導出できる。 ( x − μ f i r s t + μ s e c o n d 2 ) T Σ − 1 ( μ f i r s t − μ s e c o n d ) {\displaystyle \left(x-{\frac {\mu _{\rm {first}}+\mu _{\rm {second}}}{2}}\right)^{T}\mathbf {\Sigma } ^{-1}(\mu _{\rm {first}}-\mu _{\rm {second}})} より細かく、線形判別関数 ( y = ∑ i = 1 n a i x i + a 0 {\displaystyle y=\sum _{i=1}^{n}a_{i}x_{i}+a_{0}} ) の求め方を以下に示す。 第一群、第二群についてそれぞれ積和を求める(N はサンプル数)。 W i j = ∑ k = 1 N ( x i ( k ) − x ¯ i ) ( x j ( k ) − x ¯ j ) {\displaystyle W_{ij}=\sum _{k=1}^{N}(x_{i}^{(k)}-{\overline {x}}_{i})(x_{j}^{(k)}-{\overline {x}}_{j})} 第一群と第二群の平方和・積和を、同じ2変数について足し、自由度 N f i r s t + N s e c o n d − 2 {\displaystyle N_{\rm {first}}+N_{\rm {second}}-2} で除す。 S i j = W i j ( f i r s t ) + W i j ( s e c o n d ) N f i r s t + N s e c o n d − 2 {\displaystyle S_{ij}={\frac {W_{ij}{\rm {(first)}}+W_{ij}{\rm {(second)}}}{N_{\rm {first}}+N_{\rm {second}}-2}}} S i j {\displaystyle S_{ij}} を、その i {\displaystyle i} 行 j {\displaystyle j} 列に対応させて分散共分散行列 S {\displaystyle {\mathbf {S} }} とし、各変数にかかる係数を n {\displaystyle n} 行 1 {\displaystyle 1} 列に並べた行列を A {\displaystyle {\mathbf {A} }} 、第一群の各変数の平均値から第二群の各変数を引いた数 x i ( f i r s t ) − x i ( s e c o n d ) {\displaystyle x_{i}{\rm {(first)}}-x_{i}{\rm {(second)}}} を n {\displaystyle n} 行 1 {\displaystyle 1} 列に並べた行列を X {\displaystyle {\mathbf {X} }} とすると以下の式が成り立つ。 S A = X {\displaystyle {\mathbf {S} }{\mathbf {A} }={\mathbf {X} }} ゆえに A = S − 1 X {\displaystyle {\mathbf {A} }={\mathbf {S} }^{-1}{\mathbf {X} }} これにより各変数にかかる係数を求めることができる。 定数項は、 a 0 = − 1 2 ∑ i = 1 n a i { x i ( f i r s t a v e r a g e ) + x i ( s e c o n d a v e r a g e ) } {\displaystyle a_{0}=-{\frac {1}{2}}\sum _{i=1}^{n}a_{i}\left\{x_{i}{\rm {(firstaverage)}}+x_{i}{\rm {(secondaverage)}}\right\}} 判別得点 y {\displaystyle y} が正のとき第一群、負のとき第二群と判別される。 変数が標準化されていれば、係数の大きさは、そのままその変数が判別に与える影響の大きさである。 変数が定性的な場合は、ダミー変数を用いる。 y = ∑ i = 1 n ( a i ( f i r s t ) x i ( f i r s t ) + a i ( s e c o n d ) x i ( s e c o n d ) ) + a 0 {\displaystyle y=\sum _{i=1}^{n}\left(a_{i}{\rm {(first)}}x_{i}{\rm {(first)}}+a_{i}{\rm {(second)}}x_{i}{\rm {(second)}}\right)+a_{0}} ここに、 x i j {\displaystyle x_{ij}} : x i {\displaystyle x_{i}} の j {\displaystyle j} 番目のカテゴリーに反応するとき 1 {\displaystyle 1} 、しないとき 0 {\displaystyle 0} 。 グループの平均を中心に回転・軸方向のスケーリングを行い共分散行列を揃え、線形判別分析を行えば良い。 単一の正規分布ではなく、混合正規分布で表現した物を混合判別分析という。その場合でも共分散行列は共通の物を使う。混合正規分布を使うことにより複雑な分布も扱えるようになる。混合正規分布はEMアルゴリズムなどで求める。