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

第16章 主成分分析

この章では主成分の意味と主成分分析の原理、そして結果の解釈方法について解説します。

16.1 主成分と主成分分析

(1) 概括評価項目と主成分

第6章第2節で説明したように、医学や薬学分野では多数の評価項目を主観で総合した概括評価項目にしばしばお目にかかります。 しかし心理学や社会学分野では、主観による概括評価項目の代わりにできるだけ客観的な概括評価項目を使用する傾向があります。

医学・薬学分野では評価項目そのものは臨床検査値のような客観的なデータが多いものの、その解釈に医学的な経験が必要であり、数値では表すことができない患者の様々な情報も概括評価項目に反映することがよくあります。 それに対して心理学・社会学分野では評価項目そのものが主観に基づくものが多く、それらをさらに主観で総合して概括評価するとあまりに恣意的になってしまいがちです。 医学・薬学分野で主観による概括評価項目が多用されるのに対して、心理学・社会学分野では客観的な概括評価項目が使用される傾向が強いのは、そのようなことが要因のひとつではないかと思います。 (→6.2 データの要約と多変量解析)

例えば、ある学校で20名の生徒を対象にして5科目のテストを行い、その結果が表16.1.1のようになったとします。 このような時、普通は概括評価項目として合計点を用います。 しかし科目間に関連性がある——例えば国語の成績が良いと英語の成績も良いという関係がある——と、単純な合計点は特定の学力(この場合は語学力)を偏重した概括評価になってしまう恐れがあります。

表16.1.1 テスト結果
生徒ID国語数学英語理科社会合計点
17280885671367
25388627044317
34425503860217
42934432438168
56629663773271
65152437265283
77338754081307
86971526370325
93565585066274
104228462944189
115725384150211
125530403245202
134961664562283
147395818577411
156336747765315
165041606753271
174271555238258
185755534652263
198147784878332
206645494063263
平均値5651595160276

そこで科目間の関連性を考慮して、特定の学力に偏重しないように各科目に適当な重みを付けて合計点を求め、それを概括評価項目にすることが考えられます。 その重みをデータに基づいて決定し、概括評価項目を数学的に求める手法を主成分分析(PCA:Principal Component Analysis)といい、求めた概括評価項目を主成分(principal component)といいます。

(2) 主成分の概念

主成分の概念を幾何学的に表すと図16.1.1のようになります。 この図の横軸は評価項目x1、縦軸は評価項目x2で、お互いに関連性があります。 この2つの評価項目を総合する時、情報の損失を最も少なくするような総合の仕方として楕円状に分布するプロットの長軸に各プロットを正射影する方法が考えられます。 この時の楕円の長軸をz1軸とすると、この軸に各プロットを正射影したものが主成分になります。

この主成分では各プロットと楕円の長軸との距離が情報の損失分に相当します。 そしてx1とx2の相関係数が1つまり完全に関連している時は楕円が潰れて長軸に一致し、各プロットは楕円の長軸上に並びます。 この時、x1とx2は同じ情報を持っていて、それが主成分に損失なく集約されます。

図16.1.1 主成分の幾何学的解釈
第1主成分:z1i=a10 + a11xi1 + a12xi2  第2主成分:z2i=a20 + a21xi1 + a22xi2

一方、楕円の短軸に各プロットを正射影して2つの評価項目を総合する方法も考えられます。 この時、楕円の短軸をz2軸とすると、この軸に各プロットを正射影したものも主成分になります。 この主成分はz1軸に正射影した主成分の情報損失分を集約したものであり、z1軸のものを第1主成分と呼ぶのに対して第2主成分と呼びます。

図16.1.1からわかるように、z1軸とz2軸は直交するので第1主成分と第2主成分は独立になり、お互いに独立した情報を集約したものになります。 そして第6章第2節で説明した概括評価項目z1とz3のように、第1主成分は2つの評価項目の合計点のようなもの、つまりレベルまたはサイズを表すものになり、第2主成分は2つの評価項目の差のようなもの、つまりタイプまたはシェイプを表すものになります。 主成分分析では、たいていこのようにレベルを表す主成分とタイプを表す主成分が求められます。

(3) 主成分分析の実例

表16.1.1のデータに主成分分析を適用すると、次のような結果になります。 (注1)

○第1主成分
固有値:779.122(寄与率 = 0.580276)
主成分スコア:z1i = -114.538 + 0.2852530xi1 + 0.6659759xi2 + 0.3989357xi3 + 0.4916883xi4 + 0.2723964xi5
xi1、xi2、xi3、xi4、xi5:i番目の生徒の国語、数学、英語、理科、社会の点数
○第2主成分
固有値:330.428(寄与率 = 0.246097)
主成分スコア:z2i = -46.9847948 + 0.5339487xi1 - 0.5347619xi2 + 0.3382138xi3 - 0.1579885xi4 + 0.5381260xi5

固有値(eigen value)は主成分の分散つまりバラツキ具合のことであり、この値が大きいほど多くの情報を集約していることを表します。 また寄与率は固有値を全項目の分散の合計で割った値であり、主成分が全情報のうちのどの程度の割合の情報を集約しているかを表します。 上記の結果から第1主成分は5教科の情報の約58%を集約していて、第2主成分は約25%を集約していることと、これら2つの主成分で全情報の約83%を集約していることがわかります。

図16.1.1からわかるように、主成分は項目数と同じ数だけ求めることができます。 しかし主成分は多数の評価項目を総合して評価するためのものなので、本来は1つだけというのが理想です。 ところがその主成分に集約された情報が少ないと重要な情報を見落としてしまう恐れがあります。 そこで寄与率が大きい主成分から順番に求めていき、累積寄与率が大きくなったら——通常は80%以上——以後の主成分は無視するのが普通です。 このデータの場合は2つの主成分の累積寄与率が約83%あるので、これで十分な情報を集約していると考えて良いと思います。

なおどちらの主成分スコア(主成分得点)の式にも切片があります。 これは主成分スコアの平均値を0にするためのものであり、場合によっては切片を付けない時もあります。 主成分スコアは絶対値に意味があるのではなく、相対的な大きさに意味があります。 そのため全体の平均値を0にした方が解釈が簡単になるのです。


(注1) 主成分は次のようにして導出します。

データ行列:   平均値ベクトル:
単純積和行列:'   積和行列: = ' - n'
(分散)共分散行列:
相関行列: = c-1/2c-1/2
ただし

ここで、p次元の症例ベクトルi.'を単位ベクトル(大きさが1のベクトル)上に正射影した1次元の合成変量をyiとします。

yi = i.'

ただし' = 1

このyiの情報集約分を最大にする、つまり分散を最大化する時のを求めれば、それが第1主成分軸になります。 それはラグランジュ(Labrange)の未定乗数法を用いて求めることができます。

yiの分散:
ラグランジュの未定乗数法の束縛条件:' = 1
h(,λ) = ' - λ(' - 1) → 最大化
と置くと [ - λp]=p
ただし:単位行列
pより [ - λp]=p
これは| - λp| = 0という固有方程式の根を求める固有値問題になる

固有値問題と固有値および固有ベクトルの求め方については「ベクトルと行列」の「9.固有値と固有ベクトル」を参照してください。 この固有方程式を解いての最大固有値λ1とその固有ベクトル1を求めれば、1が第1主成分軸になります。 そしてこれらを用いて第1主成分の分散と主成分スコアの係数を求めることができます。

λ11をh(,λ)の偏微分方程式に代入する:21 - 2λ11 = p
この式に1を前掛する:1'1 - λ11'1 = 0
1'1 = λ1
第1主成分軸:1   第1主成分の分散:1'1 = λ1
第1主成分スコア:z1i = yi - my = -my + i'1 (切片-myを付けない場合もある)

次に第1主成分と独立つまり1と直行し、かつ分散を最大化する時のを求めれば、それが第2主成分軸になります。 これもラグランジュの未定乗数法を用いて求めることができます。

ラグランジュの未定乗数法の束縛条件:' = 1 かつ '1 = 0
h(,λ,θ) = ' - λ(' - 1) - θ('1-0) → 最大化
と置くと [ - λp] = θ1
この式に1を前掛する:1' - λ1' = θ1'1
λ1' - λ1' = θ より θ = 0
∴[ - λp] =

これは第1主成分と同様の固有値問題になり、の2番目に大きな固有値λ2とその固有ベクトル2を求めれば2が第2主成分軸になります。 そしてこれらを用いて第2主成分の分散と主成分スコアの係数を求めることができます。

第2主成分軸:2   第2主成分の分散:2'2 = λ2
第2主成分スコア:z2i = -my2 + i'2

以下、同様にして第p主成分まで求めることができます。 そしてp個の固有ベクトルを列ベクトルとする(p×p)の行列をとし、それに対応するp個の合成変量yiを要素とする(n×p)の行列をとすると、これらと元のデータ行列の間には次のような関係があります。

  -1 = '
   =
の単純積和行列:' = []'[] = '[']
の積和行列:'['] - nyy' = '['] - n(')(')' = '[' - n'] = '
の共分散行列:
  

このように、主成分分析はを正規直交行列で表される直交座標系に直交変換してを求めることに相当します。 この時、の情報はに全て集約されます。 そのためp個の主成分の分散つまり固有値を合計するとp個の変数の分散の合計と一致し、累積寄与率が100%になります。 ただし、普通は主成分の累積寄与率が80%以上になったところで主成分の抽出を終了します。 なお正規直交行列と直交変換については「ベクトルと行列」の「6.ベクトルの直交分解と直交変換」を参照してください。

表16.1.1のデータについて実際に計算すると次のようになります。

  
x1〜x5の分散合計 = 194.87 + 468.38 + 212.66 + 284.67 + 182.09 = 1342.68
(1) の最大固有値とその固有ベクトルをベキ乗法によって求める
第1固有値:λ1 = 779.122 (寄与率 = 779.122/1342.68 = 0.580276)
固有ベクトル:
主成分の平均値:'1 = 114.538
主成分スコア:z1i = -114.538 + 0.2852530xi1 + 0.6659759xi2 + 0.3989357xi3 + 0.4916883xi4 + 0.2723964xi5
(2) 次の固有値と固有ベクトルをベキ乗法によって求める
の更新:
第2固有値:λ2 = 330.428 (寄与率 = 330.428/1342.68 = 0.246097 累積寄与率 = 0.826372)
固有ベクトル:
主成分の平均値:'2 = 46.9847948
主成分スコア:z2i = -46.9847948 + 0.5339487xi1 - 0.5347619xi2 + 0.3382138xi3 - 0.1579885xi4 + 0.5381260xi5

第2主成分までの累積寄与率が80%以上になったので、これで主成分の抽出を終了します。