多変量解析 ~主成分分析~
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 2a1 0
2rx1x2 a1 2a2 2a2 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)aR b
( n-1)1 ab となる。
また、b=[ b1 , b2 ]’ でとおいている。
( Ra aより aR a)
変数が2個の場合の主成分分析(6)
相関係数 rx1x2 0 となる条件は
aR b 0 または ab 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 2b1 a1 0
2rx1x2 b1 2b2 2b2 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
au i
ui 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
aRa
ここでRは相関係数行列である。
最大化の制約条件
a1 a2 ・・・ a p aa 1
2
2
2
行列とベクトルによる表現(3)
ラグランジュの未定乗数法
f (a, ) aRa (aa 1)
これをベクトルaにより微分して0とおく。(P.39参照)
f
2 Ra 2a 0
a
Ra a
aRa aa Vz1
第1主成分の係数は、固有値問題を解いて、
最大固有値に対応する(長さ1の)固有ベクトルを求めればよい。
行列とベクトルによる表現(4)
第2主成分の導出
z2 b1u1 b2u2 ・・・ bpu p
b [b1, b2 , ・・・ , bp ]
とすると
z2 bui uib
z1のときと同様に、z2の分散は
Vz2
n
1
2
z
bRb
i2
n 1 i 1
制約条件
b1 b2 ・・・ bp bb 1
2
2
2
行列とベクトルによる表現(5)
z1,z2が無相関である制約条件の設定
1 n
zi1 zi 2 (aui )(ui b) (n 1)a
ui ui b
i 1
i 1
n 1 i 1
(n 1)aRb (n 1)1ab
n
n
aR b 0 または ab a1b1 a2b2 0
ラグランジュの未定乗数法
f (b, , ) bRb (bb 1) ab
2aRb 2ab aa 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 2a2a2 ・・・ pa pap
第2主成分までの累積寄与率が1に近いとすると、
R ≒ 1a1a1 2a 2a2
主成分分析はスペクトル分解に基づいた相関係数行列Rの近似である。
近似がうまくいくためには、いくつかの大きな固有値が存在し、その他の固有値が
ゼロに近ければよい。つまり、そのような相関構造が変数間にあればいい。
逆に、特徴のある相関構造がなく、各変数が無相関に近い場合は、近似は成立せ
ず、データの情報を小数個の主成分に縮約できない。
© Copyright 2026 ExpyDoc