多変量解析 ~主成分分析~

多変量解析 ~主成分分析~
1.主成分解析とは
2.適用例と解析の目的
3.解析の流れ
4.変数が2個の場合の主成分分析
5.変数がp個の場合の主成分分析
6.行列とベクトルによる表現
第9章 P.132~150
2006/05/26 神津 健太
主成分分析とは
• 多くの量的変数が存在する場合に、
それらの間の相関構造を考慮して、
低い次元の合成変数(主成分)に変換し、
データが有している情報をより解釈しやすくする
ための方法。
• 「相関係数行列から出発する方法」と
「分散共分散行列から出発する方法」の
2種類がるが、今回は前者だけを説明する。
適用例と解析の目的(1)
(P.132~)
表1.試験の成績のデータ
生徒No.
国語 x1
英語 x2
数学 x3
理科 x4
1
86
79
67
68
2
71
75
78
84
3
42
43
39
44
4
62
58
98
95
5
96
97
61
63
6
39
33
45
50
7
50
53
64
72
8
78
66
52
47
9
51
44
76
72
10
89
92
93
91
それぞれの科目を量的変数と考える。 変数の個数は p = 4 である。
x2
x3
100
100
80
80
60
60
40
40
20
x1
20
40
60
80
20
100
x1
20
40
x1 と x2 の散布図
100
x3
100
100
80
80
60
60
40
40
20
x1
40
60
80
20
100
100
80
80
60
60
40
40
20
x2
60
80
x2 と x4 の散布図
40
100
60
80
100
x2 と x3 の散布図
x4
100
40
x2
20
x1 と x4 の散布図
x4
20
80
x1 と x3 の散布図
x4
20
60
20
x3
20
40
60
80
x3 と x4 の散布図
100
適用例と解析の目的(2)
それぞれの相関係数を求めると、
(相関係数の求め方はP.13を参照)
rx1 x2  0.9 6 7
rx1 x4  0.3 1 1
rx2 x4  0.3 9 8
rx1 x3  0.3 7 6
rx2 x3  0.4 1 5
rx3 x4  0.9 7 2
各変数間の相関係数はすべて正となり、
「国語と英語」「数学と理科」の相関係数は高い値となっている。
つまり、データにはなんらかの相関構造があると考えられる。
・「より低い次元でデータのばらつきを解釈できないか」
・「そのためにはどのように合成変数(主成分)を構成すればよいか」
・「それぞれの主成分の説明力はどれくらいか」
・「科目や生徒をどのように分類できるか」
などを検討したい。
主成分分析の流れ
(1)主成分の導出
相関係数行列 R の第1固有値(最大固有値)λ1 に対応する固有ベクトルから
第1主成分 z1 を求める。次にRの第2固有値λ2 に対応する固有ベクトルから
第2主成分 z2 を求める。同様にして、第 k 主成分 を求める。(k = 3,4,・・・,p)
(2)寄与率および累積寄与率
それぞれの主成分の寄与率および累積寄与率を求める。「固有値が1以上」
ないしは「累積寄与率80%を超える」を目安として主成分を選択する。
(3)因子負荷量
因子負荷量を求める。固有ベクトルや因子負荷量の値を参考にして、選択した
各主成分の意味について考察する。また、因子負荷量を散布図にプロットし、
変数の分類を行う。
(4)主成分得点
主成分得点を散布図にプロットし、サンプルの特徴付けや分類を行う。
変数が2個の場合の主成分分析(1)
(1)主成分の導出
(P.134~)
変数がx1,x2の2つで、サンプルサイズがnとする。
x1  x1
u1 
s1
変数x1,x2を標準化
x2  x2
, u2 
s2
また、次のこともにも注意しておく。
n
n
 ui1   ui 2  n  1
2
i 1
n
u
i 1
2
i 1
ui 2  (n  1)rx1 x2
i1
z1  a1u1  a2u2 とおく。
u1  u2  0 だから z1  0 である。
第1主成分z1を
目的は、データの情報をできるだけ多く有するようにz1を定めることである。
(つまり、係数a1とa2をデータから定めることである。)
変数が2個の場合の主成分分析(2)
「z1がもとのデータの情報をできるだけ多く有する」
→ 「データの全体のバラツキをできるだけz1のバラツキに反映させる」と考える。
1 n
1 n 2
2
Vz1 
( zi1  z1 ) 
zi1


n  1 i 1
n  1 i 1
z1の分散
が最大となるようなa1とa2を求める。
1 n 2
1 n
2
Vz1 
z

(
a
u

a
u
)
 i1 n 1 
1 i1
2 i2
n  1 i 1
i 1
n
n
n
1
2
2
2
2

{a1  ui1  2a1a2  ui1ui 2  a2  ui 2 }
n 1
i 1
i 1
i 1
 a1  a2  2rx1x2 a1a2
2
2
となるので、Vz1の値は(a1,a2)の値が大きくなればいくらでも大きくなる。
そこで a1  a2  1 の制約条件を設けた上で、Vz1の最大化を考える。
2
2
変数が2個の場合の主成分分析(3)
制約付きの最大化問題を求めるために、ラグランジュの未定乗数法を用いる。
未定乗数λを用いて
f (a1 , a2 ,  )  a1  a2  2rx1x2 a1a2   (a1  a2  1)
2
2
2
2
とおき、a1,a2のそれぞれで微分(偏微分)してゼロとおく。
2a1  2rx1x2 a2  2a1  0
2rx1x2 a1  2a2  2a2  0
両辺を2で割って行列の形に表現
 1
r
 x1x2
rx1x2   a1 
 a1 
  



1  a2 
a2 
a  a1

a2 
R a = λa
相関係数行列R
λが行列Rの固有値であり、求めるべき[a1,a2]は
ベクトルで あることを示している。
固有
変数が2個の場合の主成分分析(4)
両辺に左からベクトル[a1,a2]をかけてみると
a  a2  2rx1x2 a1a2   (a  a2 )
2
1
2
2
1
2
Vz1  
以上より、Vz1を最大化させることは
「相関係数行列Rの固有値問題を解いて、最大固有値λ1に
対応する(長さ1の) 固有ベクトル a を求めれば(つまり、
R a =λ1 a)、それがVz1の最大値を与える[a1,a2]であり、
Vz1の最大値はλ1となる。」
という手続きで実行される。
変数が2個の場合の主成分分析(5)
第1主成分だけでデータの情報を十分説明できないとき
→ 第1主成分に含まれない情報を追加するために第2主成分を導入する
z2  b1u1  b2u2 とおき、 z1 と無相関となるように定める。
まず、z1,z2 の相関係数 rx1 x2 の分子を考えると、
第2主成分 z2 を
n
 (z
i 1
n
 z1 )(zi 2  z 2 )   zi1 zi 2
i1
i 1
n
  ( a1ui1  a2ui 2 )(b1ui1  b2ui 2 )
i 1
n
n
n
n
i 1
i 1
i 1
 a1b1  ui1 a1b2  ui1ui 2 a2b1  ui1ui 2 a2b2  ui 2
i 1
2
2
 ( n  1){a1b1  rx1 x2 a1b2  rx1 x2 a2b1  a2b2 }
 ( n  1)aR b
 ( n-1)1 ab となる。
また、b=[ b1 , b2 ]’ でとおいている。
 ( Ra  aより aR  a)
変数が2個の場合の主成分分析(6)
相関係数 rx1x2  0 となる条件は
aR b  0 または ab  a1b1  a2b2  0
このことから、第2主成分は
n
1 n
1
2
2
Vz 2 
(
z

z
)

z


i2
2
i2
n  1 i 1
n  1 i 1
 b1  b2  2rx1x2 b1b2
2
2
第1主成分のときと同様に、 b1  b2  1 の制約条件、
2
2
そして相関係数がゼロになる条件のもとで最大化する。
この場合もラグランジュの未定乗数法を用いるが、
相関係数がゼロになる条件あるので、λとηの2つの乗数を用いる。
変数が2個の場合の主成分分析(7)
λとηの2つの乗数を用いると
f (b1 , b2 ,  , )  b1  b2  2rx1x2 b1b2   (b1  b2  1)  (a1b1  a2b2 )
2
2
2
2
とおき、b1,b2のそれぞれで微分(偏微分)してゼロとおく。
2b1  2rx1x2 b2  2b1  a1  0
2rx1x2 b1  2b2  2b2  a2  0
それぞれを2で割って行列で表現
 1
r
 x1x2
rx1x2   b1 
 b1    a1 
       


1  b2 
b2  2 a2 

Rb  b  a
2
ここで両辺にa’ををかけ、相関係数がゼロになる条件を考えると
η=0となる。よって式は
Rb   b
変数が2個の場合の主成分分析(8)
Rb   b
より、第2主成分の係数(b1,b2)もRの固有ベクトルである。
Vz1のときと同じ理由でVz2の最大値もRの最大固有値となる。
しかし、Vz2の最大化において、Rの最大固有値λ1に対応する固有ベクト
ルbは 制約条件: a b  0 を満たさない。
そこで、Vz2の最大値はRの2番目に大きな固有値λ2となる。
第2主成分z2の構成には、λ2に対応する(長さ1の)固有ベクトル b
を用いる。このbは制約条件を満たす。
(対象行列の固有値はすべて実数であり、異なる固有値に対応する
固有ベクトルは直交する。)
変数が2個の場合の主成分分析(9)
(2)寄与率および累積寄与率
(P.139~)
2つの主成分z1とz2は、それぞれVz1,Vz2を最大とするように求めた。
そのVz1,Vz2の最大値はλ1,λ2だったので、寄与率は以下のように定義する。
第1主成分の寄与率  1
1  2

第2主成分の寄与率  2
1  2
次に、累積寄与率は以下のように定義する。
第1主成分の累積寄与 率  1
1  2
 
第2主成分の累積寄与 率  1 2  1
1  2
相関係数 r の値が大きいほど、第1主成分の寄与率は1に近づく。
r=0のときは、どちらの寄与率も0.5になる。
変数が2個の場合の主成分分析(10)
(3)因子負荷量と主成分の解釈
(P.140~)
主成分z1,z2と、もとの変数x1,x2との相関係数を考える。
→ これらの相関係数を因子負荷量という。
これらは主成分z1,z2と、もとの変数を標準化した変数u1,u2との相関係数に等しい。
因子負荷量と固有値、固有ベクトルの間には以下のような関係がある。
rz1x1  1 a1 rz1x2  1 a2
rz2 x1  2 b1 rz2 x2  2 b2
因子負荷量と固有ベクトルは主成分に対して同じ情報を与える。
第1主成分z1については、[ rz1x1 , rz1x2 ]によってもとの変数との関わり具合を考察して
その解釈を与えるが、これは[a1,a2]を見ることと同じである。
変数が2個の場合の主成分分析(11)
(4)主成分得点
(P.141~)
個々のサンプルに対して各変数の値を標準化し、
z1  a1u1  a2u2
に代入して得られた値を、第1成分の主成分得点という。
z2  b1u1  b2u2 に代入すれば、第2主成分の主成分得点となる。
各主成分に対して、主成分得点はサンプルの個数だけ計算することが
できる。
これらを散布図にプロットし、各主成分に与えた意味付けを考慮しながら
サンプルの特徴付けや分類などを試みる。
変数がp個の場合の主成分分析(1)
(P.142~)
変数が3個以上になっても考え方は同様である。
変数の標準化
x1  x1
u1 
s1
x2  x2
, u2 
・・・ s2
第1主成分
z1  a1u1  a2u2  ・・・  a pu p
相関係数行列
 1
r
 x2 x1
R・

・
rx x
 p1
rx1x2 ・ ・
1
・
・
rx p x2 ・ ・
rx1x p 
rx2 x p 
・ 

・ 
1 
up 
xp  xp
sp
変数がp個の場合の主成分分析(2)
第k主成分の寄与率
k
1  2 ・・・   p

k
p
第k主成分までの累積寄与率
1  2 ・・・  k 1  2 ・・・  k

1  2 ・・・   p
p
「固有値が1以上」または「累積寄与率が80%を超える」という目安で主成分を選択。
第1主成分の因子負荷量 (第2成分以降も同様)
rz1x1  1 a1 , rz1x2  1 a2 , ・・・ rz1x p  1 a p
変数がp個の場合の主成分分析(3)
例として、表1のデータに主成分分析を適用する。
1.データの平均と標準偏差を求める。
x1  66.4 x1  64.0 x1  67.3 x1  68.6
s1  20.5 s1  21.6 s1  19.4 s1  18.0
2.相関係数行列Rを求める。
0.967 0.376 0.311
 1
0.967

1
0
.
415
0
.
398

R
0.376 0.415
1
0.972


0
.
311
0
.
398
0
.
972
1


3.固有値と固有ベクトルを求める。(解析ソフトを使用した)
1  2.721 2  1.222 3  0.052 4  0.005 a  [0.487, 0.511, 0.508, 0.493]'
b  [0.527, 0.474,  0.481,  0.516]'
c  [0.499, 0.539,  0.504, 0.455]'
d  [0.485,  0.474,  0.506, 0.533]'
変数がp個の場合の主成分分析(4)
4.求めた固有ベクトルから、4つの主成分を求める。
z1  0.487u1  0.511u2  0.508u3  0.493u4
z 2  0.527u1  0.474u2  0.481u3  0.516u4
z3  0.499u1  0.539u2  0.504u3  0.455u4
z 4  0.485u1  0.474u2  0.506u3  0.533u4
5.固有値より、各主成分の寄与率を求める
1
第1主成分の寄与率  p
2
第2主成分の寄与率  p
3
第3主成分の寄与率  p
4
第4主成分の寄与率  p
 0.680
 0.306
 0.013
第2主成分までの累積寄与率は
0.680+0.306=0.986なので、
 0.001
第2主成分までで十分
変数がp個の場合の主成分分析(4)
表2.因子負荷量
z1
z2
z3
z4
国語x1
0.804
0.583
-0.114
0.035
英語x2
0.842
0.524
0.123
-0.034
数学x3
0.838
-0.531
-0.115
-0.036
理科x4
0.814
-0.570
0.104
0.038
z2
1
0.5
z1
0
-1
-0.5
0
0.5
1
-0.5
z1:総合的な学力
-1
因子負荷量の散布図
z2:文系・理系の違い
表3.標準化した値と主成分得点
生徒No.
標準化した値
主成分得点
u1
u2
u3
u4
z1
z2
1
0.956
0.694
-0.015
-0.033
0.796
0.857
2
0.244
0.509
0.552
0.856
1.027
-0.348
3
-1.190
-0.972
-1.459
-1.367
-2.491
0.319
4
-0.215
-0.278
1.582
1.467
1.280
-1.763
5
1.444
1.528
-0.325
-0.311
1.166
1.802
6
-1.337
-1.435
-1.149
-1.033
-2.477
-0.299
7
-0.800
-0.509
-0.170
0.189
-0.643
-0.679
8
0.566
0.093
-0.789
-1.200
-0.669
1.341
9
-0.751
-0.926
0.448
0.189
-0.518
-1.148
10
1.102
1.296
1.325
1.244
2.485
-0.084
z2
3
文系
2
低総
合
力
1
z1
0
-3
-2
-1
高総
合
力
0
1
-1
-2
-3
主成分得点の散布図
2
3
理系
行列とベクトルによる表現(1)
(1)主成分の導出
変数の個数p
(P.146~)
サンプルサイズn
 a1 
 ui1 
a 
u 
 2
 i2 
a  ・  , u i   ・  (i  1,2,・・・, n)
 
 
・
 
・ 
a p 
uip 
 
 
第1主成分
z1  a1ui1  a2ui 2  ・・・  a p uip
 au i
 ui a
行列とベクトルによる表現(2)
z1の分散
Vz1
n
1
2

z
 i1
n  1 i 1
n
n
1
 1






(
a
u
)(
u
a
)

a
u
u



i
i
i i a
n  1 i 1
 n  1 i 1

 aRa
ここでRは相関係数行列である。
最大化の制約条件
a1  a2 ・・・  a p  aa  1
2
2
2
行列とベクトルによる表現(3)
ラグランジュの未定乗数法
f (a,  )  aRa   (aa  1)
これをベクトルaにより微分して0とおく。(P.39参照)
f
 2 Ra  2a  0
a
Ra  a
aRa  aa  Vz1  
第1主成分の係数は、固有値問題を解いて、
最大固有値に対応する(長さ1の)固有ベクトルを求めればよい。
行列とベクトルによる表現(4)
第2主成分の導出
z2  b1u1  b2u2  ・・・  bpu p
b  [b1, b2 , ・・・ , bp ]
とすると
z2  bui  uib
z1のときと同様に、z2の分散は
Vz2
n
1
2

z
 bRb

i2
n  1 i 1
制約条件
b1  b2 ・・・  bp  bb  1
2
2
2
行列とベクトルによる表現(5)
z1,z2が無相関である制約条件の設定
 1 n

zi1 zi 2   (aui )(ui b)  (n  1)a
ui ui b


i 1
i 1
 n  1 i 1

 (n  1)aRb  (n  1)1ab
n
n
aR b  0 または ab  a1b1  a2b2  0
ラグランジュの未定乗数法
f (b,  , )  bRb   (bb  1)  ab

2aRb  2ab  aa  0    0
 Rb  b
行列とベクトルによる表現(6)
(2)相関係数行列
(P.150~)
Rについての固有値問題を解いて、
Ra1  a1
Ra 2  a 2
・
・
Ra p  a p
a1 , a 2 ,・・・, a pは固有ベクトル
Rは対象行列なのでスペクトル分解が成り立つ(P.38)
R  1a1a1  2a2a2 ・・・  pa pap
第2主成分までの累積寄与率が1に近いとすると、
R ≒ 1a1a1  2a 2a2
主成分分析はスペクトル分解に基づいた相関係数行列Rの近似である。
近似がうまくいくためには、いくつかの大きな固有値が存在し、その他の固有値が
ゼロに近ければよい。つまり、そのような相関構造が変数間にあればいい。
逆に、特徴のある相関構造がなく、各変数が無相関に近い場合は、近似は成立せ
ず、データの情報を小数個の主成分に縮約できない。