主成分分析

主成分分析(前回のポイント)
構造を探る
(主成分分析)
◎主成分分析は条件付の最大最小問題
問題:
観測データにおける分散が最大の軸を求める
Principal Component Analysis
(PCA)
新しい軸 Z1
新しい軸 Z 2
主成分分析(今回のポイント)
◎主成分分析は条件付の最大最小問題
問題:
観測データにおける分散が最大の軸を求める
条件:
軸同士が直交
p次元の軸の長さ=1
◎主成分分析の問題
固有値問題
主成分分析(今回のポイント)
◎主成分分析の問題
固有値問題
固有値  分散
固有ベクトル  主軸
V ( Z1 )  V ( Z 2 )    V ( Z q )
注:教科書によって Var ( Z i )の表示もある
第1主成分(第1主軸)は最大の分散V(Z1)
第2主成分(第2主軸)は次に大きい分散V(Z2)
・・・
軸と軸が直交しながら求められる
主成分分析の例
主成分分析の例(続)
数 英
学 語
合
計
順
位
左の表では、順位は単純合計値によるが、
A
2
3
5
7
B
1
4
5
7
主成分分析を行い、主成分得点で順位を出す
C
2
2
4
10
3
2
5
7
E
5
4
9
3
4
4
8
6
G
8
5
13
1
H
F
6
3
9
3
I
7
6
13
1
J
4
5
9
3
1)点数グラフを作成
8
6
英語
D
10
2)英語と数学のそれ
4
ぞれの平均点を重心と
する
x2 2
3)重心を通る線を引く
・B
0
・A
・C ・D
2
・I
・J
・F×
・E
・H
4
6
数学  ( x1 )
・G
8
数 英
学 語
合
計
順
位
A
2
3
5
7
B
1
4
5
7
C
2
2
4
10
D
3
2
5
7
E
5
4
9
3
F
10
重心(4.2,3.8)
主成分分析で求めた主成分(主軸)は
4
4
8
6
G
8
5
13
1
H
6
3
9
3
I
7
6
13
1
J
4
5
9
3
新しい軸 Z1
第一主成分
重心
第一主成分得点
新しい軸 Z 2
Z1
第二主成分
軸:第1主成分で総合能力
Z2 軸:第2主成分で系別能力
1)重心を通る直線である
2)各点からこの直線におろした点と重心の距離2乗総和を最大に
する直線(軸)(=分散最大)
Z1 と Z2 垂直
1
2次元のデータ形式と主成分(主軸)
得られる主成分(主軸):
2個の変数
1
2
:
:
n
x1
x2
x11
x12
x21
x22

z1  l11x1  l12x2
x1n
n個のケース
単位ベクトル: lij 1,
x2 n
各変 数の観
測データ
分散が最大の軸を探す
2
単位ベクトル: lij 1,
2
軸同士直交: likl jk  0, ただし、i, j 1,2; i  j
2
軸同士直交: likl jk  0, i, j 1,2;
k 1
i j
l 
l 
単位ベクトル: l1   11, l2   21, l1  l1  l2  l2  l1  l2  1
l
l22 
 12 
軸同士直交: l1  l2  0
主成分分析
主成分分析
(2次元の場合、数式で表す)
(2次元の場合、数式で表す)
Z i  (cos  ) xi  (sin  ) yi (i  1,2,..., n)より
x-y座標系上の点p(x1, y1)は、直交軸の回転をした場合の
新しいX-Y座標系では点P(X1,Y1)となる
回転角度をとすると、点P(X1, Y1)と点p(x1, y1)の関係:
Z1  (cos  ) x1  (sin  ) y1
Z i  xi l1  yi l2 (i  1,2,..., n)
ただし、l1  cos  ; l2  sin 
y軸
新しいZ軸
X軸
Y軸
p(x1,y1)
P(X1, Y1)
X1
Y1

この基礎知識から、(xi, yi)が
新しいZ軸(第1主軸)上の点Ziを次式で表現する:
x軸
Z i  (cos  ) xi  (sin  ) yi (i  1,2,...n)
ベクトルZとl、行列Xで表現:  Z1   x1 y1 
 Z   x y  l
2  1 
Z   2   2
 Xl
 :   : :  l2 
  

 Z n   xn y n 
1
ベクトルZの分散 S ZZ  Z 'Z を最大にする問題
n
主成分分析
主成分分析(数式で表す)
(2次元の場合、数式で表す)
S ZZ 
1 '
Z Zの最大となる時のベクトルlの値を求めれば、
n
新しいZ 軸(第1主軸)が求められる
ただし、下の制約条件が常に付いている:
l1  cos  ; l2  sin  から l  l  1
2
1
2
i 1
k 1
i1
 X 1  (cos  ) x1  (sin  ) y1

Y1  ( sin  ) x1  (cos  ) y1
z1  l11x1  l12x2
z2  l21x1  l22x2
2
2個の変量の線形(一次)結合
但し、以下の条件を満足:
2
得られる主成分(主軸):
2個の変量の線形結合であり、以下の条件を満足:
z2  l21x1  l22x2

2次元のデータ形式と主成分(主軸)
2
2
l 
ベクトルl   1 で表現すると l 'l  1となる
l2 
ラグランジュの未定乗数法を使って新しい式を定義
その問題を解く式は?(各自で書いてみてください)
タイトル「出席レポート」、日付、学籍番号、氏名を書く
v
1 '
Z Z   (l 'l  1) にZ=Xl を代入して
n
1
1
( Xl)' (Xl)   (l 'l  1)  l ' X' Xl   (l 'l  1)  l ' Σl  l 'l  
n
n
1 '
ここで、Σ  X X (分散共分散行列) →対称行列
n
v
ベクトルlについて偏微分して、0とおくと
どんな式が得られるか?
タイトル「出席レポート」、日付、学籍番号、氏名を書く
2
主成分分析の計算を行ってみよう
「数式で表す」のまとめ
2個の変数
●主成分分析はとても簡単な計算で求めることができる
●今まで復習した内容を綺麗にかつ簡潔に使った
●データ行列の分散共分散行列さえ計算されれば、
簡単にヤコビ法で解くことができる
注意:対称行列Aのとき
(1)w  Axのベクトルxについての偏微分は、w x  A
(2)w  x xのベクトルxについての偏微分は、w x  2x
'
(3)w  x Axのベクトルxについての偏微分は、w x  2 Ax
1
2
:
:
n
x1
x2
x11
x12
x21
x22


x1n
x2 n
n個のケース
50
70

Z  Xl  65

60
75
85
75
 l1 
80   
 l2 
70
90
各変数の観
測データ
'
主成分分析の計算
2次元分散共分散行列を求める
50
50 85
70
70 75


 l 
Z  Xl  65 80  1   x y   65

 l2 

60
60 70
75
75 90
平均値は: 64、 80
ベクトルx, yの分散共分散行列
85
75
80 

70
90
 Sxx Sxy  74 10 
Σ


 Sxy Syy  10 50
主成分分析の計算問題
データの分散共分散行列
 Sxx Sxy  74 10 
Σ


 Sxy Syy  10 50
Σの固有値と固有ベクトルを求めて下さい
タイトル「出席レポート」、日付、学籍番号、氏名を書く
分散が最大の軸を探す
2次元分散共分散行列の
固有値と固有ベクトルを求めよう
S
Σ   11
 S 21
S12 
( Σ  E)l  0 Σl  lより S 22 
Σの固有値を求める Σ  E  0 
S11  
S12
S 21
S 22  
0
kの固有ベクトルを求める( Σ  k E)l k  0

 ( S11  k )lk1  S12lk 2  0

 S12lk1  ( S 22  k )lk 2  0
2

lki2  1


i 1

ベクトルで分散・共分散を書くと(復習)
 x1 
 y1 
x 
y 
x   2 , y   2 
:
:
 
 
 xn 
 yn 
•変数xとyの平均をそれぞれ求めてから
•以下の式で分散、共分散を計算できる
•変数が2個、個体がn個の場合
1
(x  x)' (x  x)
n
1
分散( Syy )は : Syy  (y  y)' (y  y )
n
1
共分散( Sxy)は : Sxy  (x  x)' (y  y )
n
分散( Sxx)は : Sxx 
3
行列で分散共分散行列を書く(復習)
行列で分散共分散行列を書く(復習)
列ベクトルの表現で
A  x y z  B  x  x y  y z  z 
列ベクトルの表現で
A  x y  B  x  x y  y 
1 T
1 x  x 
x  x y  y 
B B 
n
n y  y 
 sxx sxy  ここは2個のベクトルの例です
Σ
 各ベクトルのデータ数はnとする
 sxy syy 
Σ
実対称行列
主成分分析(数式で表す)(復習)
x  x 
1 T
1
Σ  B B  y  y x  x y  y
n
n
 z  z 
 sxx

Σ   sxy
 sxz

sxy
syy
syz
z  z
sxz  ここは3個のベクトルの例です
 各ベクトルのデータ数はnとする
syz 
szz  一般的に
p個のベクトルまで拡張できる
データ形式(P次元の場合)
p個の変数
X1
X2
・・・
Xp
1
x11
x21
・・・
xp1
2
x12
x22
・・・
xp2
Σl  l  ( Σ  E)l  0
行列の固有値を求めればOK
・・・
n
・・・
x1n
n個のケース
P変量データからの主成分(主軸)
条件の下で:
z1  l11x1  l12x2  l1p xp
z2  l21x1 l22x2  l2 p xp


zp  lp1x1 lp2x2  lppxp
- MAセミナ P個の変量の線形(一次)結合
p
l
i 1
2
ij
 1,
p
l l
k 1
ik jk
 0,
i, j  1,, p;
i j
軸同士が直交
分散が最大
x2n
・・・
xpn
各変数に関する各ケース
の観測データ
P変量データからの主成分(主軸)
単位軸同士が直交
分散が最大
P個の変量の線形(一次)結合
z1  l11 x1  l12 x2    l1 p x p
z2  l21 x1  l22 x2    l2 p x p


z p  l p1 x1  l p 2 x2    l pp x p
l11 
l21 
l 
l 
22
12
単位ベクトル: l1   , l2   , l1  l1  l2  l2  l1  l2 1


 
 
l1p 
l2 p 
軸同士直交: l1  l2  0
4
行列で平均を求める(復習)
行列で分散共分散行列を書く(復習)
列ベクトルの表現で


A  x1

x 2 ... x p B  x1  x1
 x1  x1 


1
1 x2  x2 
Σ  BT B  
x1  x1
n
n  


x p  x p 

 sx1x1
s
xx
Σ 1 2
 

 sx1x p
sx1x 2
sx 2 x 2

sx 2 x p
x 2  x 2 ... x p  x p
x 2  x 2 ... x p  x p
•変数がp個、個体がn個の場合
教科書の中の求め方は(行ベクトル)

1 n

 x1i
 x1 
 1   x1   n i 1 
x 
   x   1 n
2
2
2
x2 i 
X    , μ  X         n 
:
 :   :   i 1 
 
     n: 
x p 
  p   xp   1 x 
 pi
 n i 1 

p個のベクトルの場合
 sx1x p 
各ベクトルのデータ数はnとする
 sx 2 x p 

 

 sx p x p 
E (x)  μ  X を平均ベクトル(mean vector)と呼ぶ
行列で分散共分散行列を求める(復習)
•変数がp個、個体がn個の場合、教科書の中の求め方は
行ベクトルの表現で
 x1  x1 
x  x 
1
1
2
2
V ( X)  S  ( X  μ)( X  μ) '  
x1  x1
n
n  


x p  x p 

 sx1x1
s
xx
 1 2
 

 sx1x p
sx1x 2
sx 2 x 2

sx 2 x p
 sx1x p 
 sx 2 x p 
Σ

 

 sx p x p 
x 2  x 2 ... x p  x p
分散共分散行列の固有値を求めよう
•変数がp個、個体がn個の場合

 x1  x1 
 x1 
x  x 
x 
2
2
2
X     Xμ  
  
:


 
x p  x p 
x p 
( Σ  E)l  0  Σ  E  0つまり
Σl  lより S11  
S 21
:
S p1
固有値 k の固有ベクトルを求めよう
Σl  lより ( Σ  k E)l k  0 (k  1,2, p )
 a11
a
21
A (Σ  k E)  
 :

a p1
a12
a22
:
a p2
... a1 p 
... a2 p 
とすると
:
: 

... a pp 
 a11lk1  a12lk 2  ... a1 p lkp  0
 a l  a l  ... a l  0
22 k 2
2 p kp
 21 k1
:
:
:
 :

a p1lk 1  a p 2lk 2  ... a pp lkp  0
 p
 lki2  1
←制約条件
 i 1
S12 ... S1 p 
S 22 ... S 2 p 
:
:
: 

S p 2 ... S pp 
 S11
S
21
Σ
 :

 S p1
S12
...
S1 p
S 22   ...
S2 p
 0 p個の固有値が得られる
:
:
:
... S pp  
S p2
分散の最大値と固有値の関係
ラグランジュの未定乗数法を使って、
主成分分析の問題を解く式:
v
1 '
Z Z   (l 'l  1)
n
1
( Xl)' (Xl)   (l 'l  1)  l ' Σl  l 'l  
n
1
ここで、Z  Xl, Σ  X' X (分散共分散行列)
n

S ZZ 
1 '
Z Z  のことを証明しなさい
n
5
分散の最大値と固有値の関係
証明:
 Z  Xl, Σl  l, l l  1
1
 S ZZ  Z ' Z  l ' Σl  l ' (l )   (l 'l )  
n
'
ベクトルZ(主軸) の分散を最大にする問題は
固有値が最大のものを選択することになる
固有値分散
下の図を見ると Z1 軸のほうが重要に思える。
どちらが重要かを統計的に表すのが固有値である。
Z2
この幅が狭い
分散の大きい軸
の方が重要
Z1
この幅が広い
分散=固有値
分散
 固有値
分散最大  固有値最大
主成分(主軸)の求め方(教科書p.36)
V ( Z1 )  V ( Z 2 )    V ( Z q )
1  2    q
第1主成分(主軸)は最大の分散 → 固有値が1番大きい
第2主成分は次に大きい分散
→ 固有値が2番大きい
・・・
一般的に q < p
軸と軸が直交しながら求められる
z m  lm1 x1  lm 2 x2    lmp x p
p
また、
l
k 1
2
k
 1, (  1,2, , m) の条件を満足する
固有値の大きい方
が重要
主成分分析の計算を行ってみましょう
p  2次元場合:
第1主成分( Z1 )  最大の固有値:1  77.62
第2主成分( Z 2 )  最小の固有値:2  46.38
l 
l12 
0.94

0.34
l 
 0.34
1の固有ベクトル:l1   11   
2の固有ベクトル:l 2   21   

l22   0.94 
出席チェック問題3:
ベクトルl1とl2を直交すること証明しなさい
6