理論関連事項

統計学の基本事項,確率分布の詳細,各種データ解析法の理論的背景について.

主成分分析は,高次元のデータをより低次元のデータに圧縮したいときに用いられる最も基本的な符号化法のひとつである.各アトリビュート間の共分散を計算した分散共分散行列,または,そこから求められる相関行列に対して固有値問題を解くことで実現できる.

全部で $n$ 個からなるデータのうちで $j$ 番目のインスタンスである $\boldsymbol{d}_j$ を以下のようなベクトル型のデータとする.アトリビュートの数,すなわち,データの次元は $m$ 次元とする.

\begin{eqnarray*}\boldsymbol{d}_j=(x_{1j},x_{2j},\dots,x_{mj})\tag{1}\end{eqnarray*}

このようなデータに対して以下のような線形変換を考える.この $p_j$ を,インスタンス $d_j$ の主成分得点という.また,線形結合係数は最終的に計算する固有ベクトルであり,この固有ベクトルに対応する固有値の平方根を掛けたものは主成分負荷量と呼ばれる.この固有値の平方根は以下で最大化する分散に他ならない.

\begin{eqnarray*}p_j&=&\sum_{i=1}^{m}w_ix_{ij}\\&=&w_1x_{1j}+w_2x_{2j}+\cdots+w_mx_{mj}\tag{2}\end{eqnarray*}

主成分分析では,このように変換された新たなデータである主成分得点がより多くの情報を持つように,すなわち,得られた $n$ 個の主成分得点ができるだけバラバラに分布するように係数 $\boldsymbol{w}$ を決定する.つまり,主成分分析を実現するためには以下の $f(\boldsymbol{w})$ を最大化する.

\begin{eqnarray*}f(\boldsymbol{w})&=&\frac{1}{n}\sum_{j=1}^n(p_j-\overline{p})^2\\&=&\frac{1}{n}[(p_1-\overline{p})^2+(p_2-\overline{p})^2+\cdots+(p_n-\overline{p})^2]\tag{3}\end{eqnarray*}

ここで,$\overline{p}$ は主成分得点の平均値で,以下であらわされる.

\begin{eqnarray*}\overline{p}&=&\frac{1}{n}\sum_{j=1}^np_j\\&=&w_1\overline{x}_1+w_2\overline{x}_2+\cdots+w_m\overline{x}_m\\&=&\sum_{i=1}^mw_i\overline{x}_i\tag{4}\end{eqnarray*}

ただし,$\overline{x}_i$ は以下で与えられる値である.

\begin{eqnarray*}\overline{x}_i=\frac{1}{n}\sum_{j=1}^nx_{ij}\tag{5}\end{eqnarray*}

主成分分析では $f(\boldsymbol{w})$ を最大化したいが,主成分得点 $p_j$ が無限に大きくなってしまう場合,解を見つけることができない.よって,これを避けるために主成分得点 $p_j$ を有限な値に収めなければならないが,そのために $\boldsymbol{w}$ に以下のような制約を加える.

\begin{eqnarray*}\sum_{i=1}^mw_i^2=w_1^2+w_2^2+\cdots+w_m^2=1\tag{6}\end{eqnarray*}

これを今後の計算のため,以下のように変形する.

\begin{eqnarray*}g(\boldsymbol{w})=\sum_{i=1}^mw_i^2-1=0\tag{7}\end{eqnarray*}

すなわち,ここで解くべき問題は以下の最大化問題である.

\begin{eqnarray*}\left\{\begin{array}{l}\rm{maximize}\ &f(\boldsymbol{w})\\\rm{subject\ to}\ &g(\boldsymbol{w})=0\end{array}\right.\tag{8}\end{eqnarray*}

このような最大化問題はラグランジュの未定乗数法にて解くことができる.そのために,任意の定数 $\lambda$ を用いて以下の $L(\boldsymbol{w})$ を定義する.

\begin{eqnarray*}L(\boldsymbol{w})=f(\boldsymbol{w})-\lambda g(\boldsymbol{w})\tag{9}\end{eqnarray*}

ラグランジュの未定乗数法では以下を計算する.これを解いて得られる $\boldsymbol{w}$ が $f(\boldsymbol{w})$ を最大化する値である.

\begin{eqnarray*}\nabla L(\boldsymbol{w})=0\tag{10}\end{eqnarray*}

これは展開すると以下のようになる.

\begin{eqnarray*}\nabla\left(\frac{1}{n}\sum_{j=1}^n(p_j-\overline{p})^2-\lambda\sum_{i=1}^mw_i^2-\lambda\right)=0\tag{11}\end{eqnarray*}

次に,$\displaystyle\frac{\partial{L}}{\partial{w_1}}$ に着目して,上の計算を進めると以下のようになる.

\begin{eqnarray*}\frac{\partial{L}}{\partial{w_1}}&=&\frac{\partial}{\partial{w_1}}\left(\frac{1}{n}[(p_1-\overline{p})^2+(p_2-\overline{p})^2+\cdots+(p_n-\overline{p})^2]-\lambda(w_1^2+w_2^2+\cdots+w_m^2)-\lambda\right)\\&=&\frac{2}{n}[(p_1-\overline{p})(x_{11}-\overline{x}_1)+(p_2-\overline{p})(x_{12}-\overline{x}_1)+\cdots+(p_n-\overline{p})(x_{1n}-\overline{x}_1)]-2\lambda w_1\\&=&\frac{2}{n}\sum_{j=1}^n(p_j-\overline{p})(x_{1j}-\overline{x}_1)-2\lambda w_1\tag{12}\end{eqnarray*}

ここで,$p_j$ および $\overline{p}$ に,上の $(2)$ および $(4)$ を代入することでこの式は以下のように変換される.

\begin{eqnarray*}\frac{\partial{L}}{\partial{w_1}}&=&\frac{2}{n}\sum_{j=1}^n\left(\sum_{i=1}^{m}w_ix_{ij}-\sum_{i=1}^mw_i\overline{x}_i\right)(x_{1j}-\overline{x}_1)-2\lambda w_1\\&=&\frac{2}{n}\sum_{j=1}^n\sum_{i=1}^mw_i(x_{ij}-\overline{x}_i)(x_{1j}-\overline{x}_1)-2\lambda w_1\\&=&2\sum_{i=1}^mw_i\sum_{j=1}^n\frac{(x_{1j}-\overline{x}_1)(x_{ij}-\overline{x}_i)}{n}-2\lambda w_1\tag{13}\end{eqnarray*}

このように得られた $\displaystyle \sum_{j=1}^n\frac{(x_{1j}-\overline{x}_1)(x_{ij}-\overline{x}_i)}{n}$ は $x_1$ と $x_i$ の共分散 $S_{x_{1}x_{i}}$ に他ならない.よって,最終的に得られる式は以下のようになる.

\begin{eqnarray*}\frac{\partial{L}}{\partial{w_1}}=2\sum_{i=1}^mw_iS_{x_{1}x_{i}}-2\lambda w_1\tag{14}\end{eqnarray*}

この値はラグランジュの未定乗数法により,$0$ となるため,以下の式が得られる.

\begin{eqnarray*}\sum_{i=1}^mw_iS_{x_{1}x_{i}}=\lambda w_1\tag{15}\end{eqnarray*}

この計算はその他の $\boldsymbol{w}$ の値,すなわち,$\displaystyle\frac{\partial{L}}{\partial{w_2}}$ から $\displaystyle\frac{\partial{L}}{\partial{w_m}}$ においても同様に進めることができ,それらの得られた値を行列形式に書き下すと以下のようになる.

\begin{eqnarray*}\left(\begin{array}{cccc}S_{x_1x_1}&S_{x_1x_2}&\cdots&S_{x_1x_m}\\S_{x_1x_2}&S_{x_2x_2}&\cdots&S_{x_2x_m}\\\vdots&\vdots&\ddots&\vdots\\S_{x_1x_m}&S_{x_2x_m}&\cdots&S_{x_mx_m}\end{array}\right)\left(\begin{array}{c}w_1\\w_2\\\vdots\\w_m\end{array}\right)=\lambda\left(\begin{array}{c}w_1\\w_2\\\vdots\\w_m\end{array}\right)\tag{16}\end{eqnarray*}

これは,アトリビュート間の共分散の値から作られる行列,すなわち分散共分散行列に対して固有値問題を解くことに他ならない.主成分分析では,この固有値問題を解くことで線形結合の係数 $\boldsymbol{w}$,すなわち固有ベクトルを求める.この固有値問題の解は全部で $m$ 個存在するが,その中で最も大きな固有値に対応する固有ベクトルから計算する線形結合を第1主成分という.以下,第 $m$ 主成分まで計算することができる.また,$k$ 番目に大きい固有値に対応する,第 $k$ 主成分の寄与率 $C_k$ は以下の式で計算できる.

\begin{eqnarray*}C_k=\lambda_k\left/\sum_{i=1}^m\lambda_i\right.\tag{17}\end{eqnarray*}
Hatena Google+