主成分分析の計算を詳しく:未定乗数法・固有値問題・分散共分散行列【多変量解析】

主成分分析の計算手順の詳細を説明します.

【スマホでの数式表示について】

当サイトをスマートフォンなど画面幅が狭いデバイスで閲覧すると,数式が画面幅に収まりきらず,正確に表示されない場合があります.その際は画面を回転させ横長表示にするか,ブラウザの表示設定を「PCサイト」にした上でご利用ください.

主成分分析とは何か

主成分分析とは

主成分分析(Principal Component Analysis; PCA)とは,多変量解析(multivariate analysis)における分析法のひとつであり,互いに相関のある変数について,観測されたデータの持つ情報をできるだけ失うことなく,元の変数の線形結合で表される,より少数個の変数に要約するための手法である.

主成分分析を概観する簡単な例

主成分分析を概観する簡単な例として,「数学と物理の試験の得点 (x_1,x_2) と,それらの傾斜配点付き総合点 y 」を考えよう(ただし数学と物理の成績には相関があるとする).傾斜配点を定める重みを (w_1,w_2) とすれば,総合点 y

(1)   \begin{equation*} y = w_1 x_1 + w_2 x_2 \end{equation*}

のように,数学と物理の試験の得点 (x_1,x_2) の線形結合で表すことができる.

式 (1) によって,学生の学力に関する情報は,(数学の得点,物理の得点)という2次元データから,総合点という1次元データに要約される.
また,冒頭に説明に沿えば,〈互いに相関のある変数〉は「数学と物理の得点」に対応し,〈観測されたデータ〉は「各学生の試験の得点」に,〈元の変数の線形結合で表される,より少数個の変数〉は「総合点」に対応する.

主成分分析によって,式 (1) の傾斜配点の重み (w_1,w_2) は,与えられた得点データから一意に決定できる.(ただし,「一意に決定可能であること」は,「唯一の決定方法であること」や「最善の決定方法であること」を意味しない.)

主成分分析は,重み (w_1,w_2) を「総合点のばらつき(= y の分散)」を最大化するように決定する.これは,近い(あるいは同じ)総合点となる学生をできるだけ少なくするという意味がある.(例えば,傾斜配点なしで(数学,英語)の得点が (40,60)(50,50)(60,40) となる3人は同じ総合点にになるが,適当な傾斜配点によって順序をつけることができる.主成分分析は,この傾斜配点の重みの付け方を一意に決定する基準を提供する.)

実際の主成分分析では,式 (1) の変数 (x_1,x_2) の次元を,一般の p 次元ベクトル {\bf x}=\;^t(x_1,...,x_p) として,

    \begin{equation*} y = \;^t{\bf w} \cdot {\bf x} \end{equation*}

なる y の分散を最大化するような重みベクトル {\bf w}=\;^t(w_1,...,w_p) を求めることにより,{\bf x} に対する適当なデータ圧縮変換を構成する.

主成分分析の計算手順の概要

主成分分析の計算手順の概要を述べる.より詳細な計算法は後節を参照のこと(読者は,式 (1) の例と同様,p=2 などとした上で後述する式の計算を追うことにより,理解が深まるだろう).

① データ数とデータ次元の設定

観測される変数を p 次元実ベクトル

(2)   \begin{equation*} {\bf x} = \left( \begin{array}{c} x_{1}\\ x_{2}\\ \vdots \\ x_{j} \\ \vdots \\ x_{p} \end{array} \right) \end{equation*}

で表すことにする.(例:p は科目数,x_{ji} は科目 j についての得点,x_1 は数学の得点,など.)

次に,p 次元観測データ {\bf x}_in 個用意する.すなわち,

(3)   \begin{equation*} {\bf x}_1, \, {\bf x}_2 ,..., \, {\bf x}_i,..., \, {\bf x}_n \end{equation*}

ただし,

(4)   \begin{equation*} {\bf x}_i = \left( \begin{array}{c} x_{1i}\\ x_{2i}\\ \vdots \\ x_{ji} \\ \vdots \\ x_{pi} \end{array} \right), \qquad\text{where}\quad \begin{array}{ccl} j&=& 1,2,...,p, \\ i&=&1,2,...,n \end{array} \end{equation*}

などとする.(例:p は科目数,n は学生数,x_{ji} は学生 i の科目 j についての得点.)

観測される変数を表す {\bf x} と,実際の数値の組である観測データを表す {\bf x}_i の区別に注意せよ.ここでは,添字 i の有無によって区別する.

② 主成分の定義

観測される変数 {\bf x} の各次元の線形結合

(5)   \begin{eqnarray*} y &=& w_1 x_1 + w_2 x_2 + \cdots + w_j x_j + \cdots w_p x_p \\ &=& \sum_{j=1}^{p} w_j x_j \\ &=& \;^t{\bf w} \cdot {\bf x} \end{eqnarray*}

を考える.(例:y は重み {\bf w} によって傾斜配点される総合点.)

ただし,重み {\bf w} は規格化条件

(6)   \begin{equation*} || {\bf w} || = \sqrt{\;^t{\bf w} \cdot {\bf w}} = 1 \end{equation*}

すなわち

(7)   \begin{equation*} \;^t{\bf w} \cdot {\bf w} &=& 1 \end{equation*}

を満たすように取る.

式 (5) に観測データ (3),(4) を代入すると,n 個の1次元データ

(8)   \begin{equation*} y_1 \, , \, y_2\, , ... , \, y_i \, , ... , \, y_n \end{equation*}

を得る.ただし,

(9)   \begin{eqnarray*} y_i &=& w_1 x_{1i} + w_2 x_{2i} + \cdots + w_j x_{ji} + \cdots + w_p x_{pi} \\ &=& \sum_{j=1}^{p} w_j x_{ji} \\ &=& \;^t{\bf w} \cdot {\bf x}_i \end{eqnarray*}

である.この y_i は,観測データ {\bf x}_i をベクトル {\bf w} に平行な直線へと射影した値であり,式 (9) によって,p 次元観測データ \{{\bf x}_1,..., {\bf x}_i,...,{\bf x}_n \} が1次元データ \{y_1,..., y_i ,..., y_n \} に要約される.(例:各学生の学力情報が,科目数 p 次元の得点データから1次元の総合点データに要約され,順序付けが可能になる.)

この時点で,式 (5) および (9) の {\bf w} の値は具体的に定まっていない.{\bf w} の値は,この後,\{y_1,..., y_i ,..., y_n \} の分散が最大となるように決定される.

後述する手続きによって {\bf w} の値を具体的に決定するとき,可能な {\bf w} の取り方は p 通りある.これを表す添字を k として

(10)   \begin{equation*} {\bf w}_1, \, {\bf w}_2 ,..., \, {\bf w}_k,..., \, {\bf w}_p \end{equation*}

のように書くことにする.ただし,

(11)   \begin{equation*} {\bf w}_k = \left( \begin{array}{c} w_{1k}\\ w_{2k}\\ \vdots \\ w_{jk} \\ \vdots \\ w_{pk} \end{array} \right), \qquad\text{where}\quad \begin{array}{ccl} j&=& 1,2,...,p, \\ k&=&1,2,...,p \end{array} \end{equation*}

である.この {\bf w}_k の値を改めて式 (9) に代入すれば,観測データ {\bf x}_i をベクトル {\bf w}_k に平行な直線へと射影した値

(12)   \begin{equation*} y_i^{(k)} = \;^t{\bf w}_k \cdot {\bf x}_i \end{equation*}

を得る.こうして得られる y_i^{(k)} を,データ {\bf x}_ik 主成分という.

③ 射影データの分散最大化とラグランジュの未定乗数法

さて,式 (9) によって定義される,射影軸 {\bf w} に射影されたデータ \{y_1,..., y_i ,..., y_n \} について,その標本平均 \overline{y} を求める式は

(13)   \begin{eqnarray*} \overline{y} &=& \frac{1}{n} \sum_{i=1}^n y_i \\ &=& \;^t{\bf w} \cdot \overline{\bf x} \end{eqnarray*}

であり,標本分散 s_y^2 を求める式は

(14)   \begin{eqnarray*} s_y^2 &=& \frac{1}{n} \sum_{i=1}^n (y_i - \overline{y})^2 \\ &=& \;^t{\bf w} S {\bf w} \end{eqnarray*}

である.ただし,式 (13) の \overline{\bf x} は観測データ (3) の標本平均であり,式 (14) の S は 観測データ (3) に関する p\times p の分散共分散行列(variance-covariance matrix)である.
( →「射影データの標本平均と標本分散の計算」の節を読む

重みの規格化条件 (7) の制約下で,式 (14) の標本分散 s_y を最大化するような {\bf w} を求めよう.これには,制約条件付きの評価関数の極値を求める ラグランジュの未定乗数法 をおこなう.すなわち,ラグランジュ関数

(15)   \begin{equation*} L({\bf w}, \lambda) = \;^t{\bf w} S {\bf w} + \lambda \left( 1-\;^t{\bf w} \cdot {\bf w} \right) \end{equation*}

の停留点を求めればよい.このラグランジュ関数 (31) の極値問題は,

(16)   \begin{equation*} S {\bf w} = \lambda {\bf w} \end{equation*}

なる,分散共分散行列 S の固有値問題に帰着する.
( →「分散最大化を目的とするラグランジュの未定乗数法から分散共分散行列の固有値問題を導く」の節を読む

④ 分散共分散行列の固有値問題と第k主成分の決定

ラグランジュの未定乗数法から誘導される固有値問題 (32) を解くと,

(17)   \begin{eqnarray*} S {\bf w}_1 &=& \lambda_1 {\bf w}_1 \\ S {\bf w}_2 &=& \lambda_2 {\bf w}_2 \\ &\vdots& \\ S {\bf w}_k &=& \lambda_k {\bf w}_k \\ &\vdots& \\ S {\bf w}_p &=& \lambda_p {\bf w}_p \\ \end{eqnarray*}

なる,S の固有値 \lambda_k と固有ベクトル {\bf w}_k を得る.ただし,固有値と固有ベクトルの添字 k=1,2,...,p の順序は,固有値 \lambda_k を降順(値の大きい順)に並べたものである.すなわち

(18)   \begin{equation*} \lambda_1 \, \ge \, \lambda_2 \, \ge \, \cdots \, \ge \, \lambda_k \, \ge \, \cdots \, \ge \, \lambda_p \, \ge \, 0 \end{equation*}

となるように,固有値と固有ベクトルの添字 k=1,...,p をつけることとする.

このようにして,分散共分散行列 S の固有ベクトルとして得られる {\bf w}_k を射影軸として,式 (12) を用いれば,データ {\bf x}_i の第 k 主成分 y_i^{(k)} を得る.すなわち,

 データ {\bf x}_i の第 1 主成分 y_i^{(1)}= \;^t{\bf w}_1 \cdot {\bf x}_i
  \vdots
 データ {\bf x}_i の第 k 主成分 y_i^{(k)}= \;^t{\bf w}_k \cdot {\bf x}_i
  \vdots
 データ {\bf x}_i の第 p 主成分 y_i^{(p)}= \;^t{\bf w}_p \cdot {\bf x}_i

のように,データ {\bf x}_i に対する p 個の主成分を得る.

**

重み {\bf w} の制約条件 (7) および 分散共分散行列 S は実対称行列であることから,上で得られた p 個の固有ベクトル \{ {\bf w}_k \, |\, k=1,2,...,p \} は,正規直交基底を成す.すなわち

(19)   \begin{equation*} \;^t{\bf w}_{k'} \cdot {\bf w}_k = \left\{ \begin{array}{cl} 1 & (k'=k)\\ 0 & (k'\not= k)\\ \end{array} \right \end{equation*}

が成り立つ.

射影データの標本平均と標本分散の計算 *

n 個の p 次元観測データ \{x_1,..., x_i ,..., x_n \} を,射影軸 {\bf w} に射影して得られる \{y_1,..., y_i ,..., y_n \} は,式 (9),すなわち

    \begin{eqnarray*} y_i &=& \sum_{j=1}^{p} w_j x_{ji} \\ &=& \;^t{\bf w} \cdot {\bf x}_i \end{eqnarray*}

によって定義される.その標本平均 \overline{y} および標本分散 s_y^2

(20)   \begin{equation*} \overline{y} = \;^t{\bf w} \cdot \overline{\bf x} \end{equation*}

(21)   \begin{equation*} s_y^2 = \;^t{\bf w} S {\bf w} \end{equation*}

である(式 (13) および式 (14) に同じ.S は 観測データ (3) に関する p\times p の分散共分散行列 ).これらの計算の詳細を示す.

観測データ (3) について,その標本平均 \overline{\bf x} は,

(22)   \begin{equation*} \overline{\bf x} := \frac{1}{n} \sum_{i=1}^n \overline{\bf x}_i = \left( \begin{array}{c} \frac{1}{n} \sum_{i=1}^n x_{1i}\\ \vdots \\ \frac{1}{n} \sum_{i=1}^n x_{ji} \\ \vdots \\ \frac{1}{n} \sum_{i=1}^n x_{pi} \end{array} \right) = \left( \begin{array}{c} \overline{x}_1\\ \vdots \\ \overline{x}_j \\ \vdots \\ \overline{x}_p \end{array} \right) \end{equation*}

である.ただし

(23)   \begin{equation*} \overline{x}_j := \frac{1}{n} \sum_{i=1}^n x_{ji} \end{equation*}

である.

標本平均 \overline{y}

(24)   \begin{eqnarray*} \overline{y} &=& \frac{1}{n} \sum_{i=1}^n y_i \\ &=& \frac{1}{n} \sum_{i=1}^n \left(  \sum_{j=1}^{p} w_j x_{ji} \right) \\ &=& \frac{1}{n} \sum_{i=1}^n \left( w_1 x_{1i} +  \cdots + w_j x_{ji} + \cdots + w_p x_{pi}  \right) \\ &=& w_1 \left( \frac{1}{n} \sum_{i=1}^n  x_{1i} \right) + \cdots + w_j \left( \frac{1}{n} \sum_{i=1}^n x_{ji} \right) + \cdots +w_p \left( \frac{1}{n} \sum_{i=1}^n x_{pi} \right)  \\ &=& w_1 \overline{x}_1  + \cdots + w_j \overline{x}_j  + \cdots + w_p \overline{x}_p   \\ &=& \sum_{j=1}^{p} w_j \overline{x}_j \\ &=&  \left( w_1,...,w_j,...,w_p \right) \cdot \left( \begin{array}{c} \overline{x}_1\\ \vdots \\ \overline{x}_j \\ \vdots \\ \overline{x}_p \end{array} \right)\\ &=& \;^t{\bf w} \cdot \overline{\bf x} \end{eqnarray*}

となり,式 (20) を得る.

また,標本分散 s_y^2

(25)   \begin{eqnarray*} s_y^2 &=& \frac{1}{n} \sum_{i=1}^n (y_i - \overline{y})^2 \\ &=& \frac{1}{n} \sum_{i=1}^n \left\{ \left(  \sum_{j=1}^{p} w_j x_{ji} \right) - \left( \sum_{j=1}^{p} w_j \overline{x}_j \right) \right\}^2 \\ &=& \frac{1}{n} \sum_{i=1}^n \left\{  \sum_{j=1}^{p} w_j \left(x_{ji} - \overline{x}_j \right) \right\}^2 \\ &=& \frac{1}{n} \sum_{i=1}^n \left\{  \sum_{j=1}^{p} w_j \left(x_{ji} - \overline{x}_j \right) \right\}\left\{  \sum_{j'=1}^{p} w_j' \left(x_{j'i} - \overline{x}_{j'} \right) \right\}  \\ &=& \sum_{j=1}^{p} \sum_{j'=1}^{p} w_jw_{j'}\frac{1}{n} \sum_{i=1}^n \left(x_{ji} - \overline{x}_j \right) \left( x_{j'i} - \overline{x}_{j'} \right) \\ &=& \sum_{j=1}^{p} \sum_{j'=1}^{p} w_jw_{j'} s_{jj'} \\ &=& \;^t{\bf w} S {\bf w} \end{eqnarray*}

となり,式 (21) を得る.ただし,観測データ (3) に関する標本分散 s_{jj} と標本共分散 s_{jj'}

(26)   \begin{equation*} s_{jj} := \frac{1}{n} \sum_{i=1}^n \left(x_{ji} - \overline{x}_j \right)^2 \qquad (j=1,...,p) \end{equation*}

(27)   \begin{equation*} s_{jj'} := \frac{1}{n} \sum_{i=1}^n \left(x_{ji} - \overline{x}_j \right) \left( x_{j'i} - \overline{x}_{j'} \right) \qquad (j\not= j'; \, j,j'=1,...,p) \end{equation*}

および,それらから成る分散共分散行列

(28)   \begin{equation*} S= \left( \begin{array}{ccccc} s_{11} & \cdots & s_{1j'} & \cdots &  s_{1p}\\ \vdots &  & \vdots &  &  \vdots\\ s_{j1} & \cdots & s_{jj'} & \cdots &  s_{jp}\\ \vdots &  & \vdots &  &  \vdots\\ s_{p1} & \cdots & s_{pj'} & \cdots &  s_{pp} \end{array} \right) \end{equation*}

に注意せよ.

式 (25) について,例示のため p=2 として再度計算をおこなうと,

(29)   \begin{eqnarray*} s_y^2 &=& \frac{1}{n} \sum_{i=1}^n (y_i - \overline{y})^2 \\ &=& \frac{1}{n} \sum_{i=1}^n \left\{ \left(  \sum_{j=1}^{2} w_j x_{ji} \right) - \left( \sum_{j=1}^{2} w_j \overline{x}_j \right) \right\}^2 \\ &=& \frac{1}{n} \sum_{i=1}^n \big\{ \left(   w_1 x_{1i}+ w_2 x_{2i} \right) - \left(  w_1 \overline{x}_1 + w_2 \overline{x}_2 \right) \big\}^2 \\ &=& \frac{1}{n} \sum_{i=1}^n \big\{  w_1 \left(x_{1i} - \overline{x}_1 \right) + w_2 \left(x_{2i} - \overline{x}_2 \right) \big\}^2 \\ &=& \frac{1}{n} \sum_{i=1}^n \left\{  w_1^2 \left(x_{1i} - \overline{x}_1 \right)^2 + w_1 w_2 \left(x_{1i} - \overline{x}_1 \right) \left(x_{2i} - \overline{x}_2 \right) \right \\ &&              \qquad \qquad \left   + w_2 w_1 \left(x_{2i} - \overline{x}_2 \right) \left(x_{1i} - \overline{x}_1 \right) + w_2^2 \left(x_{2i} - \overline{x}_2 \right)    \right\} \\ &=&   w_1^2 \frac{1}{n} \sum_{i=1}^n \left(x_{1i} - \overline{x}_1 \right)^2     + w_1 w_2 \frac{1}{n} \sum_{i=1}^n \left(x_{1i} - \overline{x}_1 \right) \left(x_{2i} - \overline{x}_2 \right)  \\ && + w_2 w_1 \frac{1}{n} \sum_{i=1}^n \left(x_{2i} - \overline{x}_2 \right) \left(x_{1i} - \overline{x}_1 \right)     +   w_2^2 \frac{1}{n} \sum_{i=1}^n \left(x_{2i} - \overline{x}_2 \right)^2    \\ &=& w_1^2 s_{11} + w_1 w_2 s_{12} + w_2 w_1 s_{21} + w_2^2 s_{22} \\ &=& \sum_{j=1}^{2} \sum_{j'=1}^{2} w_jw_{j'} s_{jj'} \\ &=&  \left( w_1, w_2 \right) \left( \begin{array}{cc} s_{11} & s_{12}\\ s_{21} & s_{22}\\ \end{array} \right) \left( \begin{array}{c} w_1\\ w_2\\ \end{array} \right)\\ &=& \;^t{\bf w} S {\bf w} \end{eqnarray*}

となる.

分散最大化を目的とするラグランジュの未定乗数法から分散共分散行列の固有値問題を導く *

いま,重みの規格化条件 (7) の制約下で,式 (14) の標本分散 s_y を最大化するような {\bf w} を求めたい.この問題を解くために,制約条件付きの評価関数の極値を求める ラグランジュの未定乗数法(the method of Lagrange multipliers) をおこなう.

一般に,ラグランジュの未定乗数法とは,次のようなものである.

ラグランジュの未定乗数法
p 次元実ベクトル変数 {\bf z} \in U \subseteq {\mathbb R}^pU{\mathbb R}^p 上の開集合)について,その関数 f:U \to {\mathbb R} および {\bf g}:U \to {\mathbb R}^m \; (m<p)C^1 級関数(関数が微分可能でかつその導関数が連続)であるとする.また,g({\bf z})={\bf 0} を満たす U の部分集合を S とする.すなわち

(30)   \begin{equation*} S:= \{{\bf z} \in U | g({\bf z})={\bf 0} \}\subset U \end{equation*}

{\bf z}^* \in U が,g({\bf z})={\bf 0} なる制約条件の下で(すなわち {\bf z}^* \in S の下で),関数 f の停留点となるとき

すなわち,ラグランジュ関数

(31)   \begin{equation*} L({\bf w}, \lambda) = \;^t{\bf w} S {\bf w} + \lambda \left( 1-\;^t{\bf w} \cdot {\bf w} \right) \end{equation*}

の停留点を求めればよい.このラグランジュ関数 (31) の極値問題は,

(32)   \begin{equation*} S {\bf w} = \lambda {\bf w} \end{equation*}

なる,分散共分散行列 S の固有値問題に帰着する.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です