東京に棲む日々

データ分析、統計、ITを勉強中。未だ世に出ず。

主成分分析と特異値分解

―― 特異値分解 ――

A (n×p)をランクrの行列とする。

A = ULV’ と分解することができる。

ここで、U(n×r)とV(p×r)はそれぞれ列ベクトルが直行する。U’U = V’V = I、I(r×r)は単位行列

L(r×r)は、正の値を対角要素に取る対角行列となる。
L = diag(ψ1, ψ2, …, ψr)、ψ1 > ψ2 > … > ψr。

Uを左特異ベクトルと呼ぶ。
Vを右特異ベクトルと呼ぶ。
Lの対角要素(ψ1, ψ2, …, ψr)を特異値と呼ぶ。

――――――――――――

Uの各列ベクトルは、Aの列ベクトルが張る空間の正規直交基底である。

Vの各列ベクトルは、Aの行ベクトルが張る空間の正規直交基底である。

 

A’A を考える。
A’A(p×p)は対称行列となる。
A’A = ( ULV’ )’ ULV’ = VL’U’ ULV’ = VL’LV’ = V(L^2)V’
これは、行列A’Aのスペクトル分解と見ることができる。
よって、V、L^2 は、行列A’Aの固有値問題を解いた時の固有ベクトル、対角要素に固有値を持つ対角行列となる。

 

AA’を考える。
AA’(n×n)は対称行列となる。
AA’ = ULV’(ULV’)’ = ULV’VL’U’ = ULL’U’ = U(L^2)U’
これは、行列AA’のスペクトル分解と見ることができる。
よって、U、L^2は、行列AA’の固有値問題を解いた時の固有ベクトル、対角要素に固有値を持つ対角行列となる。

 

A’A、AA’それぞれにおいて、固有値(L^2の対角要素)は共通である。
L^2(r×r)の対角要素はψ1, ψ2, …, ψrの2乗。

 

 

では、主成分分析で考える。
前回、標準化された行列(X)から相関係数行列(R)を計算した。標準化されているので相関係数行列と共分散行列は一致する。
R = X’X / n-1
nはXの行数。

ここで、A = X / sqrt(n-1) と置く。
そうすると、A’A = X’X / n-1 = R となる。

特異値分解を用いると、A = ULV’ なので、V、L^2は、行列A’A = Rの固有値問題を解いた時の固有ベクトル、対角要素に固有値を持つ対角行列となる。

A <- X/sqrt(n-1)

Rではsvd()特異値分解を行える関数である。
Svd <- svd(A)

  
$d
[1] 1.4452338 0.8164783 0.4950769

$u
             [,1]        [,2]        [,3]
 [1,] -0.17339499  0.38212929  0.21260483
 [2,]  0.16532305  0.02718646  0.58980952
 [3,]  0.31876398  0.47574259 -0.01773747
 [4,]  0.14824773 -0.48147970 -0.17919096
 [5,] -0.16447764  0.39135159 -0.12219387
 [6,] -0.70130101 -0.16232883 -0.22127123
 [7,]  0.14617825  0.10831915 -0.56541121
 [8,] -0.20830848 -0.14502916  0.11415064
 [9,]  0.48489629 -0.24662368 -0.18820653
[10,] -0.01592717 -0.34926771  0.37744628

$v
           [,1]       [,2]        [,3]
[1,] -0.6254950  0.2845735  0.72648048
[2,] -0.6104604  0.4013624 -0.68282230
[3,] -0.4858951 -0.8705895 -0.07732934

 

V <- Svd$v

  
           [,1]       [,2]        [,3]
[1,] -0.6254950  0.2845735  0.72648048
[2,] -0.6104604  0.4013624 -0.68282230
[3,] -0.4858951 -0.8705895 -0.07732934

固有ベクトルである。

L <- diag( Svd$d )
L^2

  
         [,1]      [,2]      [,3]
[1,] 2.088701 0.0000000 0.0000000
[2,] 0.000000 0.6666368 0.0000000
[3,] 0.000000 0.0000000 0.2451012

固有値を対角要素とする対角行列である。

このように、主成分分析を行列Rに対する固有値問題を解き求めるように、特異値分解でも求めることが可能である。

 

日本語書籍で特異値分解まで取り上げているものは少ないが、以下などに記載あり。

統計的データ解析入門 線形代数

統計的データ解析入門 線形代数

非計量多変量解析法 (シリーズ〈行動計量の科学〉)

非計量多変量解析法 (シリーズ〈行動計量の科学〉)