玄関雑学の部屋雑学コーナー統計学入門

18.2 重判別分析

(1) 重判別分析の原理

2群ごとの判別分析を利用した多群の判別は単純でわかりやすいものの、群の数が増えると判別結果の解釈が複雑になってしまいます。 例えば5群を判別したいとすると、2群ごとの判別分析を10種類行う必要があります。 そして被検者を判別する時は10種類の判別スコアを求め、それらの値を比較検討して最も確率が高いと思われる群に判別する必要があります。 はっきり言って、これは相当複雑な作業です。

そこで、もっと効率的な判別の方法を考えてみましょう。 第9章の図9.1.1を例にして説明したように、2群の判別分析は2群のデータを多次元の散布図にプロットし、2群のプロットの重なりが最小になるような判別軸を見つけて、その軸に2群のプロットを正射影して判別スコアを求め、その判別スコアを利用して判別を行うものでした。

図18.2.1 重判別分析の概念図

この原理を多群に拡張して、図18.2.1のように多群のデータを多次元の散布図にプロットします。 そしてまず最初に多群の中で最も離れている2群のプロットの重なりが最小になるような判別軸1――図18.2.1では正準軸1――を見つけて、その軸に多群のプロットを正射影して判別スコア1を求めます。 次に、その軸では重なりが大きかった別の2群の重なりが最小になるような判別軸2を見つけて、今度はその軸に多群のプロットを正射影して判別スコア2を求めます。 こうして多群を複数の判別軸で判別すると、最終的には(群数−1)個の判別軸を見つけ出し、判別軸の数だけ判別スコアを計算することができます。

図18.2.2 正準スコアのプロット

最後にそれらの判別軸を座標軸とする(群数−1)次元座標上に被検者の判別スコアをプロットすると、図18.2.2のようになります。 この図の次元数は(群数−1)であり、次元数が図18.1.1よりも減少している上に、群がお互いに離れてプロットの重なりが少なくなっています。 そして被検者を判別する時は(群数−1)個の判別スコアを計算して、それをこの図にプロットし、そのプロットと各群の重心(中心)との距離を計算して、それが最小の群に判別します。 群の中心は群ごとに(群数−1)個の判別スコアの平均値を求め、それをプロットした点になります。

このような原理で多群を判別する手法を重判別分析(MDA:Multiple Discriminant Analysis)または正準判別分析(CDA:Canonical Discriminant Analysys)といいます。 そしてこの手法で求めた判別軸のことを重判別軸(multiple discriminant axis)または正準軸(canonical axis)といい、判別スコアのことを重判別スコア(multiple discriminant score)または正準スコア(canonical score)、判別スコアを求めるための関数のことを重判別関数(multiple discriminant function)または正準関数(canonical function)、正準関数の係数のことを正準係数(canonical coefficient)といいます。

ちなみに「正準」とは、本来は正準相関分析(CCA:Canonical Correlation Analysys)で用いられる用語です。 しかし重判別分析が正準相関分析の親切筋に相当する手法のため、この用語を流用しているのです。 (→第19章 正準相関分析)

(2) 正準軸と正準関数

表18.1.1のデータに重判別分析を適用すると、次のようになります。 (注1)

○第1正準軸
固有値:1.861(寄与率=0.927716)
正準関数:z1=0.4032238 + 0.7327189x1 + 1.0384614x2 - 1.2873219x3 + 0.4419487x4 - 0.2632886x5
x1〜x5:検査項目1〜検査項目5
○第2正準軸
固有値:0.145002(寄与率=0.072284)
正準関数:z2=-1.7750462 - 0.288767x1 - 0.2208574x2 + 0.0380198x3 + 0.4348566x4 + 0.1750495x5

固有値は群の違いによるデータのバラツキつまり群間差のバラツキのうち各正準軸に集約できるバラツキのことであり、この値が大きいほど各正準スコアの群間差が大きいことを表します。 また寄与率は群間差の情報のうち各正準軸に集約された情報の割合を表します。 このデータの場合、群間差の情報のうち約93%が第1正準軸に集約される、つまり群の判別には第1正準関数が90%以上寄与していると解釈することができます。 このことから2種類の正準関数を用いずに第1正準関数だけで群の判別をしても、それほど大きな違いはないと考えられます。

(3) 線形判別分析との関係

重判別分析は普通の判別分析つまり線形判別分析を多群に拡張した手法ですから、当然、2群の判別に用いることもできます。 例えば第9章の表9.1.1のデータに重判別分析を適用すると、次のようになります。 (→第9章 判別分析)

○第1正準軸
固有値:3.81796(寄与率=1)
正準関数:z1=-15.6052501 + 0.0876172×TC - 0.0195756×TG
ウィルキスのΛ=0.207557  相関比:0.890193
Fo=41.9975 (p<0.001)>F(2,22)=3.443 … 有意水準5%で有意
○線形判別分析の結果
判別関数:z=-61.1636 + 0.3352×TC - 0.0749×TG
マハラノビスの平方距離:D2=14.6355  マハラノビスの汎距離:D=3.82564   相関比:η=0.890193
ホッテリングのT2検定:T2=87.813  Fo=41.9975 (p<0.001)>F(2,22)=3.443 … 有意水準5%で有意

重判別分析の正準スコアは総平均値が0、群内分散が1になるように標準化されます。 それに対して線形判別分析の判別スコアは総平均値が0、群内分散がD2になります。 そのため線形判別分析の判別係数をマハラノビスの汎距離Dで割ると、重判別分析の正準係数になります。 なおウィルキスのΛと相関比については第4節で説明します。


(注1) g個の群があり、それぞれn1,…,nk,…,ng例の被検者が属していて、p個の検査項目が測定されていたとします。 そしてこれらの群のデータはp次元多変量正規分布に従っていて、その母共分散行列が全て等しいとします。 (→9.4 多変量の場合 (注1))

データ行列: (k=1,…,g)
ki. ∈ N(μk,)   
母平均ベクトル:
母(分散)共分散行列:

群ごとの母平均ベクトルを平均値ベクトルで推定し、全群の積和行列の和を利用して母共分散行列を推定します。

平均値ベクトル:    (k=1,…,g j=1,…,p)
積和(平方和)行列:
(分散)共分散行列:   群内変動(Within):   群内分散:
総平均ベクトル:    (j=1,…,p)
群間変動(Between):

ここで、p次元の被検者ベクトルki.'をベクトル上に正射影した1次元の合成変量をzkiとします。 この合成変量について群間変動と群内変動の比つまりS/N比を最大にするを求めれば、これがg個の群を最も効率的に判別する正準スコアになり、zkiを求める関数が正準関数になるはずです。

正準関数:zki=ki.'   群間変動:'   群内変動:'
ラグランジュの未定乗数法の束縛条件:'=1
h(,λ)=(')/(') - λ('-1)=' - λ(' - 1) → 最大化
と置くと [ - λ]=p
p より | - λ|=|-1 - λp|=0

これは行列[-1]の固有値問題に帰着します。 [-1]の階数はpまたは(g-1)の小さい方であり、固有値と固有ベクトルはその数だけ抽出されます。 ただし[-1]は対称行列とは限らないため、固有ベクトルはお互いに直行するとは限りません。 しかし固有ベクトルはに関して共役のため合成変量ベクトルはお互いに直行し、正準スコアはお互いに無相関になります。

rank(-1)=min(p, g-1)=q → 固有値λiと固有ベクトルiはq個抽出される
i'j=0 (i≠j) ← この関係を「に関してijは共役である」という
第i正準スコアの寄与率:

通常、正準スコアは総平均が0、群内分散が1になるように標準化します。 こうすると群ごとの分散がほぼ1になり、群の重心と個々の被検者のプロットとの距離を計算しやすくなります。

標準化した固有ベクトル=正準係数(正準スコア計算用係数):
第i正準関数:zki=(ki. - )'i*=ki.'i* - 'i*=ai0 + ki.'i* (k=1,…,g)

基本的に正準係数の絶対値が大きい変数は判別に大きく寄与します。 ただし各変数の単位が異なると、正準係数の絶対値が寄与の大きさを正確には反映しなくなります。 そこで正準係数に各変数の群内標準偏差(の対角要素の平方根)を掛けて標準正準係数にすると、各変数が「1群内標準偏差」だけ変化した時の正準スコアの変化量を表すことになり、寄与の大きさの指標になります。 また群が2つの時、線形判別分析の判別係数をマハラノビスの距離Dで割ると正準係数と一致します。 (→9.4 多変量の場合 (注3))

表18.1.1のデータについて実際に計算してみましょう。

正常群の平均値ベクトル:
正常群の積和行列:
疾患A群の平均値ベクトル:
疾患A群の積和行列:
疾患B群の平均値ベクトル:
疾患B群の積和行列:
  


第1固有ベクトル:   第1固有値:λ1=1.861

正準係数1(標準化した第1固有ベクトル):
定数:a10=-0.7327189×0.45946 - 1.0384614×4.2703 + 1.2873219×4.6216 - 0.4419487×4.3787 + 0.2632886×4.4054=0.4032238
標準正準係数1:
第2固有ベクトル:   第2固有値:λ2=0.145

正準係数2(標準化した第2固有ベクトル):
定数:a20=0.288767×0.45946 + 0.2208574×4.2703 - 0.0380198×4.6216 - 0.4348566×4.3787 - 0.1750495×4.4054=-1.7750462
標準正準係数2:
累積固有値:λ12=1.861 + 0.145=2.006
第1固有値の寄与率:1.861/2.006=0.92772   第2固有値の寄与率:0.145/2.006=0.072284