主成分分析の計算手順:ラグランジュ未定乗数法による分散最大化と固有値問題

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

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

当サイトをスマートフォンなど画面幅が狭いデバイスで閲覧すると,数式が画面幅に収まりきらず,正確に表示されない場合があります.その際は画面を回転させ横長表示にするか,ブラウザの表示設定を「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} に対する適当なデータ圧縮変換を構成する.

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

主成分分析の計算手順の概要を述べる.より詳細な計算法は後節を参照のこと.

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

観測される変数を 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 \\ &=& \frac{1}{n} \sum_{i=1}^n \;^t{\bf w} \cdot {\bf x}_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*}

である.ただし,式 (??) の S は,\{y_1,...,y_n \} に関する p\times p 分散共分散行列である.

重みの規格化条件 (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*}

の停留点を求めればよい.このラグランジュ未定乗数法の計算方法については,後に詳しく述べる.

ラグランジュ関数 (15) の極値問題を解くと,

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

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

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

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

(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 に対して,p 個の主成分(データ {\bf x}_i の第 1 主成分:y_i^{(1)}= \;^t{\bf w}_1 \cdot {\bf x}_i,...,データ {\bf x}_i の第 k 主成分:y_i^{(k)}= \;^t{\bf w}_k \cdot {\bf x}_i,...,データ {\bf x}_i の第 p 主成分:y_i^{(p)}= \;^t{\bf w}_p \cdot {\bf x}_i)を得る.

**

重み {\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*}

が成り立つ.

なお,式 (??) および式 (15) より,

(20)   \begin{eqnarray*} s_y^2 &=& \;^t{\bf w} S {\bf w} \\ &=& \;^t{\bf w} S {\bf w} \\ \end{eqnarray*}

コメントを残す

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