統計検定準1級 22.主成分分析


主成分分析とは、多変量の情報を少数個の主成分と呼ばれる合成変数で記述する方法。情報の縮約や次元圧縮を目的とした手法である。高次元のデータのばらつきが、少数個の主成分からなる低次元空間内で出来るだけ再現できるようにする。したがって主成分の分散最大化と主成分間の無相関化(直行化)が必要である。これは固有値固有ベクトルを求めることにより実現できる。
100点満点のテストのようにデータの単位が揃っている場合は、分散共分散行列と相関行列のどちらを使って主成分分析をしても良い。単位が揃っていない場合は、相関行列を使って無単位化を行った主成分分析が適切である。

標本の分散共分散行列と相関行列

変数をp個、個体数をnとしてデータをXのように表現する。
X=(X_{i,j})_{1\leq i \leq n,1\leq j\leq p}=\begin{pmatrix} x_{1,1} & \cdots & x_{1,p} \\ \vdots & \ddots & \vdots \\ x_{n,1} & \cdots & x_{n,p}  \end{pmatrix}
また、行と列それぞれの和をx_{\cdot j},x_{i \cdot}で表現する。
\displaystyle x_{\cdot j}=\sum_{i=1}^n x_{i,j} \quad (j=1,...,p), \quad x_{i,\cdot}=\sum_{j=1}^p x_{i,j} \quad (i=1,...,n)
この時、変数jの平均は\bar{x_{\cdot j}}=x_{\cdot j}/nとなり、分散はs_{j,j}=\dfrac{1}{n-1}\sum_{i=1}^n (x_{i,j}-\bar{x_{\cdot j}})^2、変数jと変数kの共分散はs_{j,k}=\dfrac{1}{n-1}\sum_{i=1}^n (x_{i,j}-\bar{x_{\cdot j}})(x_{i,k}-\bar{x_{\cdot k}})で表せられる。
さらに変数jと変数kの標本相関係数r_{j,k}r_{j,k}=\dfrac{s_{j,k}}{\sqrt{s_{j,j}s_{k,k}}} = \dfrac{\sum_{i=1}^n (x_{i,j}-\bar{x_{\cdot j}}) (x_{i,k}-\bar{x_{\cdot k}})} {\sqrt{\sum_{i=1}^n (x_{i,j}-\bar{x_{\cdot j}})^2 \times \sum_{i=1}^n (x_{i,k}-\bar{x_{\cdot k}})^2}}

標本の分散と共分散を並べた行列を標本分散共分散行列S、標本相関係数を並べた行列を標本相関行列Rと表す。
S=\begin{pmatrix} s_{1,1} & \cdots & s_{1,p} \\ \vdots & \ddots & \vdots \\ s_{p,1} & \cdots & s_{p,p} \end{pmatrix}, \quad R=\begin{pmatrix} 1 & r_{1,2} & \cdots & r_{1,p} \\ r_{2,1} & 1 & \cdots & r_{2,p} \\ \vdots & \vdots & \ddots & \vdots \\ r_{p,1} & r_{p,2} & \cdots & 1 \end{pmatrix}
s_{j,k}=s_{k,j},\quad r_{j,k}=r_{k,j}であるため、SとRは共に対称行列である。また、r_{j,j}=1であり、Rの対角成分は1である。

SもしくはRj番目の固有値固有ベクトルをそれぞれ\lambda_j, u_jとする。

j主成分y_jy_j=u_j \cdot x=x_1u_{1,j}+\cdots +x_pu_{p,j}
j主成分c_jc_j=\lambda_j / (\lambda_1+\cdots +\lambda_p)
主成分負荷量:r_{y_j,x_k}=\dfrac{\sqrt{\lambda_j} u_{k,j}}{\sqrt{s_{k,k}}}
で表される。


参考: