1
主成分分析(PCA)とは
2009.11.4
「互いに相関のある多種類の変数を,
互いに無相関な少数個の変数に要約す
る 」
k
k
x
2
u
u
2
平均ベクトルが0の2変数分布の場合
る.」
少ない次元数で解析,圧縮などを行う.
x
=
k
1u
1+
k
2u
2 u
1
2
x
u
x
ˆ
=
k
1 1 ≈
x
1
2次元から1次元
1
1
u1:サンプルの分散が最大の方向
x
2次元から1次元
への削減
分散最大の軸への
1 サンプルの分散が最大の方向
(単位ベクトル)
u2:2番目に分散が大きい方向
x
2
u
1
分散最大の軸への
投影
2
(単位ベクトル)
(2変数の場合は,分散が最小の方
向)
x
1
x
≈ k
1u
1
1
2
回帰分析とはどこが違う?
回帰分析:
1個以上の説明変数を用いて1個(以
上) 的変数を近似的な関数 表
主成分分析:
複数個の変数から互いに無相関な変数
(もと 変数 線形結合 表 され ) 上)の目的変数を近似的な関数で表現
すること.
(もとの変数の線形結合で表現される)
に集約すること.
(回帰分析のような主従関係はない)
2変数に対する1次回帰分析との違い
2変数に対する1次回帰分析との違い
x
=
k
u
+
k
u
x
2
u
1
u
2
2変数に対する1次回帰分析との違い
2変数に対する1次回帰分析との違い
x
2
x
=
k
1u
1+
k
2u
2 u
1
x
u
x
ˆ
=
k
1 1 ≈
x
1
2次元から1次元
x
1
2次元から1次元
への削減
3
平均が0ベクトルでないときの手順
x
2
u
1
u
2 x
=
m
+
k
1u
1+
k
2u
2 x
'
= −
x
m
k
k
x
2
u
この状態で主成分分析を行う
k
1u
1
u
u
=
k
1 1+
k
2 2
u
1
u
2
平均ベクトル
を引く
x
1
m
x
1
x
1
2次元から1次元
への削減
x
2
u
1
' k
平均ベクトル
を足す
x m
≈
+ k
1u
1
x
2
x
'
x
≈ k
1u
1
を足す
m
x
1
x
1
4
高次元の主成分分析
m次元から2次元への要約
m次元から2次元への要約
x
=
m
+
k
1u
1+
k
2u
2+ +
"
k
u
x
m u
1
u2 x
m
+
k
1
u
1
+
k
2
u
2
+ +
k
mu
m
m
x m
=
+
k
1u
1+
k
2u
2
x
1
x
2
x
m
+
k
1u
1+
k
2u
2
5
共分散行列の復習(2変数の場合)
共分散行列 各変数とも,平均を0にしてから
相関を計算して得られる行列
(
)
(
)(
)
(
)(
)
(
)
⎥
⎥
⎥
⎤
⎢
⎢
⎢
⎡
−
−
−
=
∑
∑
∑
∑
=
=
2
1
2
2
,
1
1
,
1
2
1
1
,
1
1
1
1
n
n
n
i
i
i
n
i
i x
m
x
m
n
m
x
n
C
(
)(
)
(
)
(
)(
)
=
⎢
⎡
⎥
⎤
=
⎥
⎥
⎦
⎢
⎢
⎣
−
−
−
∑
∑
∑
=
=
12
2
1
1
2
2
2
,
1
2
2
,
1
1
,
1
1
1
σ
σ
n
T
i
i
i
i
i x
m
n
m
x
m
x
n
m
x
m
x
(
)(
)
⎥
⎦
⎢
⎣
=
−
−
=
∑
=1
σ
12
σ
22
i
i
i
n
x
m
x
m
(例1) 2変数間に相関がある場合 (例2)2変数間に相関がない場合
⎤
⎡
2
⎡
2
⎤
⎥
⎦
⎤
⎢
⎣
⎡
=
2
2
12
12
2
1
σ
σ
σ
σ
C
⎥
⎦
⎤
⎢
⎣
⎡
=
2
2
2
1
0
0
σ
σ
C
6
主成分の方向u
1,u
2を求める
方針
2変数間で相関が0になる方向,
すなわち共分散行列が対角行列になる
方向を求めればよい
方針
x
2
u
2
u
方向を求めればよい.
上記の条件を満足する,正規直交基底
k
1
k
2
x
1
1
u
u
1,u
2: 正規直交基底ベクトル
ベクトルをu1,u2とする.
この2つの基底ベクトルを用いた座標
変換は以下のように表される
1
変換は以下のように表される.
Uで変換した後の共分散行列Ckは
⎤
⎡
⎤
⎡
⎤
⎡
k
u
u
x
)
1
(
2
1
22
21
12
11
2
1
"
⎥
⎦
⎤
⎢
⎣
⎡
⎥
⎦
⎤
⎢
⎣
⎡
=
⎥
⎦
⎤
⎢
⎣
⎡
x
x
u
u
u
u
k
k
)
2
(
)
(
"
CU
U
U
xx
U
x
U
x
U
kk
C
T
T
T
T
T
T
T
k
=
=
=
=
またはベクトル表現で
ただし
両辺にUを左からかけて
左右入れ替えると
x
U
k
=
U
Tx
U
=
[
u
1
u
2
]
k
[
1 2
]
)
3
(
"
k
T
UC
CU
UU
=
7
主成分の方向を求める(つづき)
これは,もとのデータの共分散行列
Cに対する固有値問題に他ならない
T 1
( )
Uの正規直交性より
)
3
(
"
k
T
UC
CU
UU
=
Cに対する固有値問題に他ならない.
すなわち,u
1,u
2は行列Cの固有ベクトル,
2 2
は固有値として求められる
U
T =
U
−1
"
(4)
よって(3)式は
共分散の対角化がUによってなされると
σ
12
, σ
22は固有値として求められる.
)
(
0
2
i
all
for
i ≥
⇒
σ
は実対称行列
C
k
UC
CU
=
共分散の対角化がUによってなされると
すると 固有値σi2は対角化されたデータの
各変数の分散を与える.
)
5
(
0
0
2
2
1
"
⎥
⎦
⎤
⎢
⎣
⎡
=
σ
k
C
成分に分けて表すと
u
1
u
2
0
22
⎥
⎦
⎢
⎣
σ
k
⎤
⎡
2
0
σ
または
[
] [
]
⎥
⎦
⎤
⎢
⎣
⎡
=
2
2
1
2
1
2
1
0
0
σ
σ
u
u
u
u
C
2
1
σ
2
2
σ
2
2
2
2
1
2
1
1
u
,
Cu
u
Cu
=
σ
=
σ
8
主成分の方向を求める-一般の高次元データ-
サンプルデータ:
座標変換後の共分散行列:
2次元での議論をそのままm次元へ拡張すればよい
[
]
座標変換後の共分散行列:
[
]
⎥
⎤
⎢
⎡
=
n
n
x
x
1,1 ,1
1
#
#
" x
x
X
⎥
⎥
⎤
⎢
⎢
⎡
2
1
0
σ
%
C
⎥
⎥
⎥
⎦
⎢
⎢
⎢
⎣
=
m
n
m x
x
1, ,
#
"
#
⎥
⎥
⎥
⎦
⎢
⎢
⎢
⎣
=
2
0
m
k
σ
%
C
C
=
1
XX
T
サンプルデータの共分散行列: 固有値問題の表現:
k
UC
CU
=
C
XX
n
対角化する基底ベクトルのセット:
または
[
]
U
m
i
for
i
i
i ,
1
,...,
2
=
=
u
Cu
σ
[
]
⎥
⎥
⎤
⎢
⎢
⎡
=
=
m
m
u
u
1,1 ,1
1
#
#
" u
u
U
⎥
⎥
⎦
⎢
⎢
⎣
=
m
m
m u
u
1, ,
#
"
#
9
主成分の方向を求める-計算例-
共分散行列が以下の式で表されるサンプルの集合を考える.
⎤
⎡1
⎥
⎦
⎤
⎢
⎣
⎡
=
1
1
α
α
C
ただし平均ベクトルは0とする
α
的に描きなさい
サンプルの分布を模式
について,
が以下の3種類の場合
問題1:
ただし平均ベクトルは0とする.
5
.
0
)
ii
(
0
)
i
(
=
=
α
α
的に描きなさい.
サンプルの分布を模式
.
分を計算で求めなさい
の場合について,主成
問題2:
0
<
α
<
1
0
.
1
)
iii
(
α
=
を解く とと同値 あ
①固有値問題
ヒント
)
1
(
)
(
Cu
=
λ
u
⇔
C
−
λ
I
u
=
0
"
を用いる.
②正規性の条件
る.
を解くことと同値であ
1
2
2
2
1
+
=
=
u
u
u
10
低次元主成分による近似と誤差
もとの変数と主成分ベクトルの係数
との間には以下の関係がある.
誤差ベクトルは
)
(
)
(
)
(
)
(
)
(
)
(
ˆx
x
e
j
j
j
j
j
j =
−
また,Uの正規直交性より
x
U
k
=
T
2
)
(
2
1
)
(
1
2
)
(
2
1
)
(
1
)
(
u
u
u
u
j
j
j
j
k
k
k
k
=
−
+
=
誤差ベクトルの大きさ(ノルムの2乗)は
または
Uk
x
x
UU
Uk
=
T ⇒
=
誤差ベクトルの大きさ(ノルムの2乗)は
2
)
(
2
2
2
)
(
2
2
)
(
|
|
|
|
e
j =
k
j u
=
k
j
x
=
u
=
∑
k
i i
i
m
1
いま 2とし 1次元主成分によ
サンプル全体での誤差の平均は
2
2
2
)
(
2
2
)
(
1
|
|
1
=
=
σ
>=
=<
∑
∑
n j
n
j
k
E
e
e
あるj番目のサンプルについて,もと
いま,m=2とし,1次元主成分によ
る近似とそれによる誤差を考える.
2
1
2
1
|
|
σ
>
<
∑
∑
=
=
j
j
k
n
n
E
e
e
すなわち誤差は,用いなかった第2主成分
の残差(分散)に等しい
あるj番目のサンプルについて,もと
データおよび低次元(1次元)による
近似表現は以下のように書ける.
の残差(分散)に等しい.
2
)
(
2
1
)
(
1
)
(
u
u
x
j =
k
j +
k
j
1
)
(
1
)
(
ˆ
u
x
j =
k
j
11
低次元主成分による近似と誤差(つづき)
より一般に,m次元データに対するr
次元主成分による近似とそれに
よる誤差を考える
このとき,サンプル全体での誤差の平均は
>
≡<
r
E
(
)
|
e
|
2
よる誤差を考える.
もとのデータおよび近似データを
∑
=
=
>
≡<
n
j
j
n
r
E
1
2
)
(
|
|
1
|
|
)
(
e
e
r<m
と書く 誤差ベクトルは
∑ ∑
∑ ∑
= = +
=
m n
j
n
j
m
r
i
j
i
k
n
2
)
(
1 1
2
)
(
1
1
,
1
∑
=
=
m
i
i
i
k u
x
∑
=
=
r
i
i
i
k
1
ˆ
u
x
と書く.誤差ベクトルは
∑
∑
−
=
r
j
m
j
j
j
j
k
k
( ) ( )
)
(
)
(
)
(
ˆx
x
e
∑
∑ ∑
+
= =
=
=
m
i
r
i j
j
i
k
n
2
1 1
2
)
(
1
σ
すなわち,誤差は,用いなかった主成分
残差(分散) 和に等し
∑
∑
∑
=
=
=
−
=
m
i
j
i
i
i
j
i
i
i
j
i
k
k
k
)
(
1
)
(
1
)
(
u
u
u
∑
=r+
i
i
1
σ
の残差(分散)の和に等しい.
∑
+
=r
i
i
i
1
であり,その2ノルムは
+
+
+
j j
j
j
k
k
k
( )2 ( )2 ( )2
2
)
(
|
| e
∑
+
=
+
+
=
+
+
+
=
m
r
i
j
i
j
m
j
r
j
r
j
k
k
k
k
1
2
)
(
)
(
)
(
2
)
(
1
)
(
|
|
e
"
12
近似による誤差と累積寄与率
主成分を,分散の大きい順に番号
付けしたものならば 誤差 逆に,はじめのr個の成分でどのくらい
正確に もとの分布を表せるかの尺度
付けしたものならば,誤差
正確に,もとの分布を表せるかの尺度
として,以下に示す累積寄与率がある.
∑
∑
<
>
=
=
m k
i m i
r
E
(
)
2
σ
2
は rに関して単調減少関数となる 累積寄与率(r)=
σ
i
i
r
m
2
1
2
=
∑
∑
∑
∑
+
=
+
=
r i r
i 1 1
は,rに関して単調減少関数となる
E(r)
σ
i
i
2
1
=
∑
累積寄与率(r)
1
累積寄与率(r)
r
m
r
m r
m