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個の主成分まで求めることができる。
前の例において、重心(x1,x2)を通る直線をZ=a1・x1+a2・x2とする。この直線は、各標本データからのこの直線上への距離が最小になるように引く。
いま、図の1点Dからこの直線Z上に降ろした点をQとすると
PD2=PQ2+DQ2 であり、PD2 は実際の情報量であるから一定である。いま点Dからこの直線上への距離を最小にする(合成することにより失われる情報量を最小にする)ことを考えるのでDQ2をできるだけ小さくしたい、するとPQ2 を最大にする(合成して求める情報量を最大にする)ことを考えればよい。
なお、重心P(x1,x2)から点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 を求める。
第1主成分としては、大きい方のλ値を採用する。
5.1.1 分散共分散行列から主成分を求める。
主成分得点の分散Qを最大にするa1・a2を求めるには、分散共分散行列を使用して行うことができる。
(1)説明変量2個の時、分散共分散行列から出発して主成分を求める。
AX=λX (λ:実数)
を満たす時、λをAの固有値、Xをλに属する固有ベクトルという。固有値λは主成分得点の分散に一致する。
この固有方程式から固有値λを求める。
よって
この時 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個の時、相関行列から出発して主成分を求める。
(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 主成分負荷量
もとのデータと主成分で求めたデータ間にどれくらい関係があるか見るためのものとして、 主成分負荷量がある。主成分負荷量は、構造係数とも呼ばれている。
主成分負荷量=もとのデータと主成分得点との相関係数
主成分負荷量と固有値との関係
分散共分散行列から主成分を求めた時
相関行列から主成分を求めた時
2変量時の主成分負荷量と主成分の係数a1・a2との関係を調べてみる。
5.5 採用する主成分の数について
一般に、説明変量がp個あれば主成分も第p主成分まで求めることができる。しかし主成分分析の目標自体が説明変量の圧縮であり、第p主成分まで使用なくても十分にもとの情報を説明できる場合が少なくない。それでは、主成分をいくつまで取り上げればよいかということになる。主成分は、第1主成分が一番分散が大きく情報量も多いといえる。次に第2主成分というように徐々に情報量が小さくなるので、第1主成分から第n主成分までの幾つの主成分を取り上げたらよいかを検討する。
5.5.1 幾つまでの主成分を取り上げたらよいかの目安
(1)累積寄与率が60%以上のものまで主成分を取り上げる。
累積寄与率が何%以上になるまで取り上げるべきかについては、特に基準はないが、最低でも60%以上になるまでの主成分を取り上げたほうがよい。
(2)相関行列から出発したときには、固有値が1以上のものを取り上げる。
6. 主成分分析例題
新聞10紙について、記事の内容をニュース・ビジネス・スポーツについてその充実度を10点評価で調査した。その結果が下の表である。
NO |
ニュース |
ビジネス |
スポーツ |
X1 |
X2 |
X3 |
|
1 2 3 4 5 6 7 8 9 10 |
8 2 8 3 7 4 3 6 5 6 |
9 5 5 5 4 3 6 8 4 7 |
4 7 6 4 9 4 8 2 5 6 |
大変充実している…10 充実していない…0
以上の10紙について、その紙面の充実度を評価するために主成分分析を実施する。
分析に先立って上のデータを入力しておく。
6.1 相関係数行列を用いて分析を実施する。
6.1 主成分を求める。
6.1.1 固有値・主成分負荷量を求める
相関係数行列を求める
2変量間の相関係数を求める関数は、=CORREL(範囲1、範囲2)である。
この関数を使用して変量X1−X2、X1−X3、X2−X3間の相関係数を求める。
相関係数行列は、
これより固有ベクトルは a1=0.531 a2=0.673 a3=−0.514
固有値 λ2=0.903 のとき
固有ベクトルは a1=0.689 a2=0.0095 a3=0.724
主成分負荷量は 0.655 0.009 0.688
固有値 λ3=0.527 のとき
固有ベクトルは a1=−0.492 a2=0.738
a3=0.459
主成分負荷量は −0.357
0.536
0.333
以上をまとめると
固有値 |
第1主成分 1.571 |
第2主成分 0.903 |
第3主成分 0.527 |
固有ベクトル |
0.531 0.673 -0.514 |
0.689 0.0095 0.724 |
−0.492 0.738 0.459 |
主成分負荷量 |
0.665 0.844 -0.644 |
0.655 0.009 0.688 |
−0.357 0.536 0.333 |
6.2 べき乗法から固有値・固有ベクトルを求める。
相関係数行列から、次式を満足するような固有値ならびに固有ベクトルを求めることは、大変である。そこで、べき乗法を用いて固有値と固有ベクトルを求める。
べき乗法とは、相関係数行列をAとするとき、成分がすべて1のX行列を考える。
続けて、A・X1を計算する。
続けて、同様にしてA・X2を計算する。
この作業を繰り返し実施し、求められた行列の成分で、最大の値のものが1つ前に比べ10-5程度までの差となったら、終了する。この時最大の成分が1番目の固有値となる、またその時のX成分を標準化すると、1番目の固有値に属する固有ベクトルが求められる。
求められた行列で最大の成分の値は、上の表では分からないが、実施計算していくと、1.57056−1.157055=0.00001 となり、A・X13で収束しそうである。
この時の最大の成分は1.57056であり、これが1番目の固有値である。
2番目以降の固有値を求めるには、A1=A−λ1a1a1’
として再度最初からべき乗法を繰り返す。
A1=A−λ1a1a1’により新しいA1を求める。
この新しいA1を使用して再度べき乗法を実施し2番目の固有値・固有ベクトルを求める。
3番目の固有値・固有ベクトルも同様にして求める。
6.3 主成分負荷量のプロットを見る。
横軸に第1主成分、縦軸に第2主成分をとり、主成分負荷量をグラフに描いてみる。
主成分負荷量は、主成分と各変量の間の相関係数に一致し、主成分負荷量が1に近いほどその変量と主成分の関係が深いことを示しているので、各変量の主成分負荷量をみていく。
第1主成分の主成分負荷量は、ニュース:0.665
ビジネス:0.844 と同程度に大きく、スポーツは負(−)となっている。このことから、第1主成分はニュースとビジネス関係を中心に主成分負荷量が大きく、スポーツ関係の負荷量は低いので、専門紙志向度を計る尺度と考え専門誌志向度と名付ける。第2主成分の主成分負荷量は、ニュース:0.655 スポーツ:0.688 と同程度に大きいが、ビジネス:0.009 となっている。このことから第2主成分は大衆紙志向度を計る尺度と考え大衆紙志向度と名付ける。
また、第1主成分・第2主成分・第3主成分のそれぞれの固有値・累積寄与率(%)をみると、
固有値が1以上または累積寄与率が60%以上のものを採用するとすると、第2主成分まで採用するようにする。
6.4 主成分得点を求める。
6.4.1 第1主成分得点を求める。
この式を用いて、第1主成分得点を求める。
X1〜X3の説明変量に標準化した値を用いて主成分得点を求める。この時主成分得点の有値が一致していることが分かる。求めた主成分得点をさらに標準化した値を求める。
6.4.2 第2主成分得点を求める。
この式を用いて、第2主成分得点を求める。
NO |
主成分得点 |
標準化 |
1 2 3 4 5 6 7 8 9 10 |
0.424 −0.545 1.123 −1.286 1.859 −0.959 0.158 1.957 −0.256 0.458 |
0.447 −0.573 1.182 −1.354 −0.976 −1.010 0.167
−1.028 −0.269 0.482 |
平均 |
0.000 |
0.000 |
分散 |
0.903 |
1.000 |
STD |
0.950
|
1.000 |
第3主成分についても、第3主成分の固有ベクトルを用いて、同様に計算して求める。
第1主成分得点・第2主成分得点・第3主成分得点のそれぞれお互いの相関係数を求めると、いずれも0となり無相関であることがわかる。お互いに独立であることがわかる。
第1主成分の固有値:1.571 第2主成分の固有値:0.903 第3主成分の固有値:0.527 これは、第1主成分得点の分散、第2主成分得点の分散、第3主成分得点の分散に一致していることがわかる。分散の大きいデータ群ほど説明力が大きいのでより重要なデータである。固有値の大きいほど重要なデータであるといえる。
第1主成分得点から、専門誌志向度が一番高いのはNO1紙であり次にNO8紙であり、一番小さいのはNO2紙であることがわかる。次に第2主成分得点から大衆紙志向度が一番大きいのはNO5紙であり、一番小さいのはNO4紙であることがわかる。
6.5 分散・共分散行列を用いる方法
6.5.1 主成分を求める。
(1)分散・共分散を求める
分散を求める関数は、=VARPA(範囲)である。また共分散を求める関数は、=COVAR(範囲1、範囲2)である。この2つの関数を使用して分散・共分散を求める。
(2)固有値・主成分負荷量を求める
分散・共分散行列は
これより固有ベクトルは a1=0.598 a2=0.582 a3=−0.548
以下同様にして
固有値λ2=3.7023のときの固有ベクトル a1= 0.683 a2=−0.0148 a3=0.7305
固有値λ3=1.8746のときの固有ベクトル a1=−0.419 a2= 0.812 a3=0.408
以上をまとめると
固有値 |
第1主成分 5.8731 |
第2主成分 3.7023 |
第3主成分 1.8746 |
固有ベクトル |
0.5986 0.5843 −0.548 |
0.683 −0.0148
0.7303 |
−0.4185 0.8114 0.4079 |
6.5.2 主成分得点を求める。
(1) 第1主成分得点を求める式は、
この式を用いて、第1主成分得点を求める。
求められた主成分得点をさらに標準化し、平均:0 分散:1 とする。
(2)第2主成分得点を求める。
この式を用いて、第2主成分得点を求る。
第3主成分を求める式は
この式を用いて、第3主成分得点を求める。
第1主成分得点から、専門紙志向度が一番高いのはNO1紙で次にNO8紙であり、一番小さいのはNO2紙であることがわかる。次に第2主成分得点から大衆紙志向度が一番大きいのは、NO5紙であり、一番小さいのはNO4紙であることがわかる。
主成分得点を求めるのに、相関係数行列から出発し求める方法と、分散共分散行列から出発して求める方法と2通り実行したが、相関係数行列から出発して求めた主成分得点と分散共分散行列から出発して求めた主成分得点の順位は必ずしも一致しない。今回の例では、3変量の単位が同じであるので、通常分散共分散行列から主成分得点を求める。