5. 主成分分析
主成分分析は、相関関係にあるいくつかの要因を合成(圧縮)して、いくつかの成分にし、その総合力や特性を求める方法である。主成分分析では、重回帰分析や判別分析のように目的変量は与えられていない。説明変量を圧縮してその特性を調べるものである。
例えば、何人かの生徒の英語・数学・理科・社会の4つの成績データから、この4つの要因を圧縮し1成分のデータにすることにより、その生徒の総合力を調べたり、また文系能力・理系能力を調べるなどのようにある特性を求めたりする方法である。
5.1 主成分を求める
8人の生徒の英語と数学の評価が下表のようであったとする。この個々の成績から総合力は誰が一番あるのか、また文系能力・理系能力のどちらがあるのかを調べる。
No |
標本 |
英語 x1 |
数学 x2 |
合計 |
順位 |
1 2 3 4 5 6 7 8 |
A B C D E F G H |
5 5 7 8 7 4 8 4 |
8 5 4 5 2 3 7 6 |
13 10 11 13 9 7 15 10 |
2 5 4 2 7 8 1 5 |
|
平 均 |
6 |
5 |
|
|
単純に英語と数学の合計から順位をつけると、上の表のようになる。しかしこの順位が総合力を示しているかどうかは不明である。そこで英語(x1)と数学(x2)のデータを圧縮して1成分に合成し、尺度を1つにしてから総合力を求めることを考える。
2情報をできるだけその情報を失わないようにして、1つの情報に合成してからその総合力を調べてみる。2変量を合成したものをZとすると、2変量を合成するので、適当な重みaiをつけて、Z=a1・x1+a2・x2 とする。
通常、主成分を求めるには、標本データの重心を通る直線を1本引く。この直線は適当な重み aiをつけ
Z=a1・x1+a2・x2+…+an・xn なる直線を考える。そしてこの直線は、各点からの直線への距離が最小になるように引く必要がある。このようにするには、a12+a22+…+an2=1の条件下で合成変数Zの分散が最大になるようにする。また、得られる合成変数Zのうち分散が最大のものを第1主成分、その次に分散が大きく第1主成分とは無相関のものを2主成分という。一般には変量がn個あれば、n個の主成分まで求めることができる。
前の例において、重心を通る直線をZ=a1・x1+a2・x2とする。この直線は、各標本データからのこの直線上への距離が最小になるように引く。
いま、図の1点Dからこの直線Z上に降ろした点をQとすると
PD2=PQ2+DQ2 であり、PD2 は実際の情報量であるから一定である。いま点Dからこの直線上への距離を最小にする(合成することにより失われる情報量を最小にする)ことを考えるのでDQ2をできるだけ小さくしたい、するとPQ2 を最大にする(合成して求める情報量を最大にする)ことを考えればよい。
なお、重心Pから点Qまでの距離を主成分得点という。この主成分得点が2変量を合成した値である。第一主成分をZ1=a1・x1+a2・x2 とすると、主成分得点の分散Qは
a12+a22=1の条件下で、この主成分得点の分散Qを最大にするようなa1・a2を求める。
ラグランジュの未定乗数法を用いて
G=Q−λ(a12+a22−1)とおいて、Gをa1・a2で偏微分し0とおくことにより分散Qを最大にするa1・a2 を求める。
(S11−λ)・a1+S12・a2=0
S12・a1+(S22−λ)・a2=0
a12+a22=1
これを行列を使用して表すと、下のような固有方程式となる。
第1主成分としては、大きい方のλ値を採用する。
5.1.1 分散共分散行列から主成分を求める。
主成分得点の分散Qを最大にするa1・a2を求めるには、分散共分散行列を使用して行うことができる。
(1)説明変量2個の時、分散共分散行列から出発して主成分を求める。
AX=λX (λ:実数)
を満たす時、λをAの固有値、Xをλに属する固有ベクトルという。固有値λは主成分得点の分散に一致する。
この固有方程式から固有値λを求める。
(S11−λ)・(S22−λ)−S122=0 となり、先ほど計算した結果と同じものを得ることができる。
第1主成分の式はZ1=a1・x1+a2・x2 であるが、原点を0からデータの重心(x1,x2)に移動すると、となる。この式を用いて主成分得点を求めることができる。
(2)説明変量がp個ある時、分散共分散行列から出発して主成分を求める。
説明変量がp個ある時の分散共分散行列をAとすると
この時 AX=λX
(λ:実数) の固有方程式を解いて固有値λを得る。固有値λをλ1≧λ2≧…≧λp≧0とすると、固有値の大きい方法から順に、第1主成分・第2主成分…第p主成分となるので、各λに属する固有ベクトルを求めると、各主成分の係数を得ることができる。
から固有値λiを得る。
最大の固有値λ1から、第1主成分が得られるので、λ1に属する固有ベクトルaiを求めて第1主成分の式が求められる。
第1主成の式… Z1=a1・x1+a2・x2+…ap・xp+a0
同様にして、2番目に大きい固有値λ2から第2主成分の式を得ることができる。λ2に属する固有ベクトルajを求めて第2主成分の式が求められる。
第2主成の式… Z2=a1・x1+a2・x2+…ap・xp+a0
以下、同様にして第p主成分まで求めることができる。
5.1.2 相関行列から主成分を求める。
説明変量の単位が異なるときには、単位の影響を受けてうまく主成分を求めることができない。このようなとき、単位の影響を取り除くには、データの標準化をすればよい。
データの標準化は
で変換したデータについて主成分を求めればよい。データの標準化を行うと、平均=0 分散=1となる。分散共分散行列はデータの標準化を行うと、相関行列となる。
(1)変量が2個の時、相関行列から出発して主成分を求める。
固有方程式は
|A−λE|=0 (1−λ)2 −r122 =0 λ=1±r12
(2)変量が2個の時、相関行列から出発して主成分を求める。
説明変量がp個ある時の相関行列をAとすると
分散共分散行列から出発したときと同様に
AX=λX (λ:実数)の固有方程式を解いて固有値λを得る。固有値λをλ1≧λ2≧…≧λp≧0とすると、固有値の大きい方法から順に、第1主成分・第2主成分…第p主成分が得られ、各λに属する固有ベクトルを求めて、各主成分の係数を得る。
から固有値λiを得る。
最大の固有値λ1から、第1主成分が得られるので、λ1に属する固有ベクトルaiを求めて第1主成分の式が求められる。
第1主成の式… Z1=a1・x1'+a2・x2'+…ap・xp'+a0
ただし、xi'は標準化した値である。
同様にして、2番目に大きい固有値λ2から第2主成分の式を得ることができる。λ2に属する固有ベクトルajを求めて第2主成分の式が求められる。
第2主成の式… Z2=a1・x1'+a2・x2'+…ap・xp'+a0
以下、同様にして第p主成分まで求めることができる。
なお新しく求められた主成分は、説明変量を合成して得られるものであるから、新たに自分でその主成分が何を意味する変量であるか命名する必要がある。
5.2 例題について
5.2.1 主成分を求める
No |
標本 |
英語(x1) |
数学(x2) |
1 2 3 4 5 6 7 8 |
A B C D E F G H |
5 5 7 8 7 4 8 4 |
8 5 4 5 2 3 7 6 |
|
平 均 |
6 |
5 |
(2.5−λ)・(3.5−λ) − 0.1252=0
λ=3.515 , 2.484
主成分得点の分散を大きくするのでλ = 3.515を第1主成分として採用する。
第1主成分
λ1 = 3.515 の時の固有ベクトルを求めると
a1 = −0.122 a2 =
0.9925
よって Z1 =−0.1222・(x1−6)+0.9925・(x2− 5) =−0.1222・x1+0.9925・x2−4.229
第2主成分
λ2 = 2.484 から
Z2 = 0.9925・x1 + 0.1222・x2 − 6.566 となる。
5.2.2 主成分得点を求める
第1主成分得点は、Z1=−0.1222・x1+0.9925・x2−4.229 から求めると下表のようになる。
No |
標本 |
英語 x1 |
数学 x2 |
第1主成分得点 |
順位 |
1 2 3 4 5 6 7 8 |
A B C D E F G H |
5 5 7 8 7 4 8 4 |
8 5 4 5 2 3 7 6 |
3.0997 0.1222 −1.1147 −0.2444 −3.0997 −1.7406 1.7406 1.2369 |
1 4 6 5 8 7 2 3 |
平均 |
|
6 |
5 |
|
|
分散 |
|
|
|
|
3.515 |
第1主成分の式を見るとx1(英語)の係数が(−)でx2(数学)の係数が(+)となっている。これから、第1主成分は理系能力を示すと考えられる。主成分得点からその点数の大きい順に順位をつけると、その順位が理系能力の順位であるといえる。
これをグラフに描いてみると
第2主成分得点は、Z1=0.9925・x1+0.1222・x2−6.566 から求めると下表のようになる。
No |
標本 |
英語 x1 |
数学 x2 |
第2主成分得点 |
順位 |
1 2 3 4 5 6 7 8 |
A B C D E F G H |
5 5 7 8 7 4 8 4 |
8 5 4 5 2 3 7 6 |
−0.6259 −0.9925 0.8703 1.985 0.6259 −2.2294 2.2294 −1.8628 |
5 6 3 2 4 8 17 |
平均 |
|
6 |
5 |
2.484 |
|
分散 |
|
|
|
|
|
第2主成分の式を見るとx1(英語)の係数とx2(数学)の係数がともに(+)となっている。これから、第2主成分は総合力を示すと考えられる。主成分得点からその点数の大きい順に順位をつけると、その順位が総合力の順位であるといえる。
これをグラフに描くと
第1主成分得点の分散=3.515 第2主成分得点の分散=2.484であり。この値は固有値に一致していることが分かる。また第1主成分と第2主成分とは無相関であるから、お互いの直線は直交行する。係数同志掛け合わせると0となる。
(−0.1222)×0.9925+0.1222×0.9925 = 0
5.3 寄与率
p個の変量があると、主成分もp個求めることができる。しかし、主成分分析は、p個の変量データを圧縮して分析する方法であるから、主成分をp個求める必要はない。
そこで、第1主成分から順に第2主成分…第p出成分とそれぞれの主成分がもとのデータをどれ位説明しているのかを示す尺度として、寄与率がある。
固有値の大きいほど、主成分得点の分散が大きく、もとのデータを説明する力が大きい(情報量が多い)ので重要であるといえる。
いま、下のように第p主成分まであり、その固有値をそれぞれλiとすると
寄与率は、それぞれの固有値を固有値の合計で割ったものである。
主成分 |
固有値 |
寄与率 |
第1主成分 第2主成分 … 第p主成分 |
λ1 λ2 … λp |
λ1/λT λ2/λT … λp/λT |
合 計 |
買ノi=λT |
|
寄与率を第1主成分から順に累積していったものを、累積寄与率と呼ぶが、一般に累積寄与率が60%以上になるまでの主成分を採用する。また相関行列から主成分を求めるとき には、固有値が1以上のものを採用する。
相関行列から主成分を求めたときの寄与率は
5.4 主成分負荷量
もとのデータと主成分で求めたデータ間にどれくらい関係があるか見るためのものとして、主成分負荷量がある。主成分負荷量は、構造係数とも呼ばれている。
主成分負荷量=もとのデータと主成分得点との相関係数
主成分負荷量と固有値との関係
分散共分散行列から主成分を求めた時
5.5 採用する主成分の数について
一般に、説明変量がp個あれば主成分も第p主成分まで求めることができる。しかし主成分分析の目標自体が説明変量の圧縮であり、第p主成分まで使用なくても十分にもとの情報を説明できる場合が少なくない。それでは、主成分をいくつまで取り上げればよいかということになる。主成分は、第1主成分が一番分散が大きく情報量も多いといえる。次に第2主成分というように徐々に情報量が小さくなるので、第1主成分から第n主成分までの幾つの主成分を取り上げたらよいかを検討する。
5.5.1 幾つまでの主成分を取り上げたらよいかの目安
(1)累積寄与率が60%以上のものまで主成分を取り上げる。
累積寄与率が何%以上になるまで取り上げるべきかについては、特に基準はないが、最低でも60%以上になるまでの主成分を取り上げたほうがよい。
(2)相関行列から出発したときには、固有値が1以上のものを取り上げる。