主成分分析
主成分分析とは、互いに相関のある多数の変数から相関のない少数の合成変数(主成分)に要約し、全体のばらつきを説明する手法です。変数が多いことによる分析の困難さを軽減(次元の縮約)するための手法です。
主成分を与える変換は、第1主成分の分散を最大化し、続く主成分(第2主成分以下)はそれまでに決定した主成分と直交するという拘束条件の下で、分散を最大化するようにして定められます。
以下、変数(サンプル)の種類が3つで、各サンプル数が $n$($j=1\sim n$)の場合での解析手順を説明します。
{ $x_{11}$ 、$x_{12}$ 、$x_{13}$ 、$\cdots$ 、$x_{1n}$ }
{ $x_{21}$ 、$x_{22}$ 、$x_{23}$ 、$\cdots$ 、$x_{2n}$ }
{ $x_{31}$ 、$x_{32}$ 、$x_{33}$ 、$\cdots$ 、$x_{3n}$ }
主成分の導出
1.変数の標準化
標準化変数 $u_{1j}$ 、$u_{2j}$ 、$u_{3j}$ は、各変数の平均 $\bar{x}_1$ 、$\bar{x}_2$ 、$\bar{x}_3$ と標準偏差 $s_1$ 、$s_2$ 、$s_3$ により定義されます。
$$u_{1j}\equiv\frac{x_{1j}-\bar{x}_1}{s_1}$$$$u_{2j}\equiv\frac{x_{2j}-\bar{x}_2}{s_2}$$$$u_{3j}\equiv\frac{x_{3j}-\bar{x}_3}{s_3}$$
尚、それぞれの平均と分散(標準偏差の2乗)は以下で求められます。
$$\bar{x}_i\equiv\frac{1}{n}\sum_{j=1}^nx_{ij}$$$$s_i^2\equiv\frac{1}{n-1}\sum_{j=1}^n(x_{ij}-\bar{x}_i)^2$$
この標準化変数は以下の関係を持ちます。ここで、$r_{ik}$ は相関係数と呼ばれています。
$$\bar{u}_i=\frac{1}{n}\sum_{j=1}^nu_{ij}=0 -①$$$$\sum_{j=1}^nu_{ij}^2=\sum_{j=1}^n\frac{(x_{ij}-\bar{x}_i)^2}{s_i^2}=n-1 -②$$$$\sum_{j=1}^nu_{ij}u_{kj}=\sum_{j=1}^n\frac{(x_{ij}-\bar{x}_i)(x_{kj}-\bar{x}_k)}{s_is_k}=(n-1)r_{ik} -③$$$$r_{ik}=r_{ki}\equiv\sum_{j=1}^n\frac{(x_{ij}-\bar{x}_i)(x_{kj}-\bar{x}_k)}{(n-1)s_is_k}$$
2.第1主成分の計算
第1主成分を係数 $a_i$ により以下で定義します。
$$z_{1j}\equiv a_1u_{1j}+a_2u_{2j}+a_3u_{3j} -④$$
尚、第1主成分の平均と分散は以下で計算されます。
$$\bar{z}_1\equiv\frac{1}{n}\sum_{j=1}^nz_{1j}=0 -⑤$$$$V_1\equiv\frac{1}{n-1}\sum_{j=1}^n(z_{1j}-\bar{z}_1)^2=\frac{1}{n-1}\sum_{j=1}^nz_{1j}^2 -⑥$$
このとき、第1主成分は以下のようにして求められます。
第1主成分の分散 $V_1$ を最大化する係数 $a_i$ は、相関係数行列 $R$ の最大の固有値 $\lambda_1$ に対応する固有ベクトル ${\bf a}$ になります(導出)。$$R{\bf a}=\lambda_1{\bf a} -⑦$$ |
ここで、相関係数行列と固有ベクトルは以下で定義されます。
$$R\equiv\left(\begin{array}{ccc} 1 & r_{12} & r_{13} \\
r_{21} & 1 & r_{23} \\
r_{31} & r_{32} & 1 \end{array}\right) , {\bf a}\equiv\left(\begin{array}{ccc} a_1 \\ a_2 \\ a_3 \end{array}\right)$$
3.第2主成分の計算
第1主成分だけでデータの情報を十分に説明できない場合は第2主成分を計算します。第2主成分 $z_2$ は係数 $b_i$ により以下で定義します。
$$z_{2j}\equiv b_1u_{1j}+b_2u_{2j}+b_3u_{3j} -⑧$$
尚、第1主成分の平均と分散は以下で計算されます。
$$\bar{z}_2\equiv\frac{1}{n}\sum_{j=1}^nz_{2j}=0 -⑨$$$$V_2\equiv\frac{1}{n-1}\sum_{j=1}^n(z_{2j}-\bar{z}_2)^2=\frac{1}{n-1}\sum_{j=1}^nz_{2j}^2 -⑩$$
このとき、第2主成分 $z_2$ は第1主成分 $z_1$ と無相関になるように定める必要があります。
$$r_z\equiv\sum_{j=1}^n\frac{(z_{1j}-\bar{z}_1)(z_{2j}-\bar{z}_2)}{(n-1)s_{z1}s_{z2}}$$$$=\sum_{j=1}^n\frac{z_{1j}z_{2j}}{(n-1)s_{z1}s_{z2}}=0 -⑪$$
⑪の条件は以下で表されます(⑫の導出)。
$$a_1b_1+a_2b_2+a_3b_3=0 -⑫$$
このとき、第2主成分は以下のようにして求められます。
第2主成分の分散 $V_2$ を最大化する係数 $b_i$ は、⑫の条件の下、相関係数行列 $R$ の2番目に大きい固有値 $\lambda_2$ に対応する固有ベクトル ${\bf b}$ になります(導出)。$$R{\bf b}=\lambda_2{\bf b} -⑬$$ |
ここで、固有ベクトルは以下で定義されます。
$${\bf b}\equiv\left(\begin{array}{ccc} b_1 \\ b_2 \\ b_3 \end{array}\right)$$
4.第3主成分の計算
今回の例では変数は3つあるので、第3主成分まで求めることができます。第3主成分 $z_3$ は係数 $c_i$ により以下で定義します。
$$z_{3j}\equiv c_1u_{1j}+c_2u_{2j}+c_3u_{3j}$$$$V_3=\frac{1}{n-1}\sum_{j=1}^nz_{3j}^2$$
これまでと同様、第3主成分の分散 $V_3$ を最大化する係数 $c_i$ は、相関係数行列 $R$ の3番目に大きい固有値 $\lambda_3$ に対応する固有ベクトル ${\bf c}$ になります。
$$R{\bf c}=\lambda_3{\bf c}$$
寄与率
寄与率とは、その主成分で説明できるデータのばらつきの割合として定義されます。
- | 寄与率 | 累積寄与率 |
第1主成分 | $$\frac{\lambda_1}{\lambda_1+ \lambda_2+\lambda_3}$$ | $$\frac{\lambda_1}{\lambda_1+ \lambda_2+\lambda_3}$$ |
第2主成分 | $$\frac{\lambda_2}{\lambda_1+ \lambda_2+\lambda_3}$$ | $$\frac{\lambda_1 +\lambda_2}{\lambda_1 +\lambda_2+\lambda_3}$$ |
第3主成分 | $$\frac{\lambda_3}{\lambda_1+ \lambda_2+\lambda_3}$$ | $$\frac{\lambda_1+\lambda_2 +\lambda_3}{\lambda_1 +\lambda_2+\lambda_3}=1$$ |
主成分の選択の目安は以下になります。
- 固有値が1以上、または、
- 累積寄与率が80%以上
因子負荷率
因子負荷率とは主成分と元の変数との相関係数です。これにより、主成分と元の変数の関係性を調べることができます。
$$r_{zixk}\equiv\sum_{j=1}^n\frac{(z_{ij}-\bar{z}_i)(x_{kj}-\bar{x}_k)}{(n-1)s_{zi}s_{xk}} -⑭$$
尚、主成分と元の変数との相関係数は、主成分と標準化変数との相関係数は定義より等しくなります。
$$r_{zixk}=r_{ziuk}\equiv\sum_{j=1}^n\frac{(z_{ij}-\bar{z}_i)(u_{kj}-\bar{u}_k)}{(n-1)s_{zi}s_{uk}} -⑮$$
因子負荷率と各主成分の固有値は以下のような関係があります(⑯の導出)。
$$\left[\begin{array}{ccc} r_{z1x1} & r_{z1x2} & r_{z1x3} \\
r_{z2x1} & r_{z2x2} & r_{z2x3} \\
r_{z3x1} & r_{z3x2} & r_{z3x3} \end{array}\right]=
\left[\begin{array}{ccc} \sqrt{\lambda_1}a_1 & \sqrt{\lambda_1}a_2 & \sqrt{\lambda_1}a_3 \\
\sqrt{\lambda_2}b_1 & \sqrt{\lambda_2}b_2 & \sqrt{\lambda_2}b_3 \\
\sqrt{\lambda_3}c_1 & \sqrt{\lambda_3}c_2 & \sqrt{\lambda_3}c_3 \end{array}\right] -⑯$$
導出
⑦を導く
⑥に④を代入し、②と③を使うと、
$$V_1=\frac{1}{n-1}\sum_{j=1}^n(a_1u_{1j}+a_2u_{2j}+a_3u_{3j})^2$$$$=\frac{1}{n-1}\sum_{j=1}^n(a_1^2u_{1j}^2+a_2^2u_{2j}^2+a_3^2u_{3j}^2+2a_1a_2u_{1j}u_{2j}+2a_2a_3u_{2j}u_{3j}+2a_1a_3u_{1j}u_{3j})$$$$=a_1^2+a_2^2+a_3^2+2a_1a_2r_{12}+2a_2a_3r_{23}+2a_1a_3r_{13} -(1)$$
ここで次の条件を設けて、
$$a_1^2+a_2^2+a_3^2=1 -(2)$$
$V_1$ を最大にする問題をラグランジュ乗数法を用いて解きます。未定乗数 $\lambda_1$ を使って以下の関数を定義すると、
$$F_1\equiv a_1^2+a_2^2+a_3^2+2a_1a_2r_{12}+2a_2a_3r_{23}+2a_1a_3r_{13}$$$$-\lambda_1(a_1^2+a_2^2+a_3^2-1)$$
この関数が停留点を持つ条件は以下になります。
$$\frac{\partial F_1}{\partial a_1}=2a_1+2r_{12}a_2+2r_{13}a_3-2\lambda_1a_1=0$$$$\frac{\partial F_1}{\partial a_2}=2r_{12}a_1+2a_2+2r_{23}a_3-2\lambda_1a_2=0$$$$\frac{\partial F_1}{\partial a_3}=2r_{13}a_1+2r_{23}a_2+2a_3-2\lambda_1a_3=0$$
これを行列で表すと、
$$\left(\begin{array}{ccc} 1 & r_{12} & r_{13} \\
r_{12} & 1 & r_{23} \\
r_{13} & r_{23} & 1 \end{array}\right)
\left(\begin{array}{ccc} a_1 \\ a_2 \\ a_3 \end{array}\right)=\lambda_1\left(\begin{array}{ccc} a_1 \\ a_2 \\ a_3 \end{array}\right)$$$$R{\bf a}=\lambda_1{\bf a}$$
この両辺の左から転置ベクトル ${\bf a}^t$ を掛けると、
$${\bf a}^tR{\bf a}=\lambda_1{\bf a}^t{\bf a}$$
$$a_1^2+a_2^2+a_3^2+2a_1a_2r_{12}+2a_2a_3r_{23}+2a_1a_3r_{13}$$$$=\lambda_1(a_1^2+a_2^2+a_3^2)$$
この左辺は (1) より分散 $V_1$ に等しく、右辺は (2) よりに固有値 $\lambda$ に等しいため、第1主成分の分散の最大値を求めることと、最大の固有値を求めることは同値になります。
$$V_1=\lambda_1 -(3)$$
⑫を導く
⑪の分子に④と⑧を代入し、②と③を使うと、
$$\sum_{j=1}^nz_{1j}z_{2j}=\sum_{j=1}^n(a_1u_{1j}+a_2u_{2j}+a_3u_{3j})(b_1u_{1j}+b_2u_{2j}+b_3u_{3j})$$$$=\sum_{j=1}^n\Big(a_1b_1u_{1j}^2+a_2b_2u_{2j}^2+a_3b_3u_{3j}^2+a_1b_2u_{2j}u_{1j}+a_2b_1u_{1j}u_{2j}$$$$+a_1b_3u_{1j}u_{3j}+a_3b_1u_{3j}u_{1j}+a_2b_3u_{2j}u_{3j}+a_3b_2u_{3j}u_{2j}\Big)$$$$=(n-1)\Big(a_1b_1+a_2b_2+a_3b_3+a_1b_2r_{12}+a_2b_1r_{12}$$$$+a_1b_3r_{13}+a_3b_1r_{13}+a_2b_3r_{23}+a_3b_2r_{23}\Big)$$$$=(n-1){\bf a}^tR{\bf b}=(n-1)\lambda_1{\bf a}^t{\bf b} -(4)$$
最後は⑦を使っています。これより、⑪を0にする条件は以下で表されることが分かります。
$${\bf a}^t{\bf b}=a_1b_1+a_2b_2+a_3b_3=0$$
⑬を導く
⑩を計算すると、
$$V_2=\frac{1}{n-1}\sum_{j=1}^nz_{2j}^2=\frac{1}{n-1}\sum_{j=1}^n(b_1u_{1j}+b_2u_{2j}+b_3u_{3j})^2$$$$=\frac{1}{n-1}\sum_{j=1}^n(b_1^2u_{1j}^2+b_2^2u_{2j}^2+b_3^2u_{3j}^2+2b_1b_2u_{1j}u_{2j}+2b_2b_3u_{2j}u_{3j}+2b_1b_3u_{1j}u_{3j})$$$$=b_1^2+b_2^2+b_3^2+2b_1b_2r_{12}+2b_2b_3r_{23}+2b_1b_3r_{13} -(5)$$
ここで次と⑫を条件として設けて、
$$b_1^2+b_2^2+b_3^2=1 -(6)$$
$V_2$ を最大にする問題をラグランジュ乗数法を用いて解きます。未定乗数 $\lambda_2$ と$\eta$ を使って以下の関数を定義すると、
$$F_2\equiv b_1^2+b_2^2+b_3^2+2b_1b_2r_{12}+2b_2b_3r_{23}+2b_1b_3r_{13}$$$$-\lambda_2(b_1^2+b_2^2+b_3^2-1)-\eta(a_1b_1+a_2b_2+a_3b_3)$$
この関数が停留点を持つ条件は以下になります。
$$\frac{\partial F_2}{\partial b_1}=2b_1+2r_{12}b_2+2r_{13}b_3-2\lambda_2b_1-\eta a_1=0$$$$\frac{\partial F_2}{\partial b_2}=2r_{12}b_1+2b_2+2r_{23}b_3-2\lambda_2b_2-\eta a_2=0$$$$\frac{\partial F_2}{\partial b_3}=2r_{13}b_1+2r_{23}b_2+2b_3-2\lambda_2b_3-\eta a_3=0$$
これを行列で表すと、
$$\left(\begin{array}{ccc} 1 & r_{12} & r_{13} \\
r_{12} & 1 & r_{23} \\
r_{13} & r_{23} & 1 \end{array}\right)
\left(\begin{array}{ccc} b_1 \\ b_2 \\ b_3 \end{array}\right)=\lambda_1\left(\begin{array}{ccc} b_1 \\ b_2 \\ b_3 \end{array}\right)+\frac{1}{2}\eta\left(\begin{array}{ccc} a_1 \\ a_2 \\ a_3 \end{array}\right)$$$$R{\bf b}=\lambda_2{\bf b}+\frac{\eta}{2}{\bf a}$$
この両辺の左から転置ベクトル ${\bf a}^t$ を掛けると、
$${\bf a}^tR{\bf b}=\lambda_2{\bf a}^t{\bf b}+\frac{\eta}{2}{\bf a}^t{\bf a}$$
この右辺第1項は⑫より0、左辺も(4)より0になり、${\bf a}^t{\bf a}\ne0$ であるため、$\eta=0$ であることが分かります。従って、
$$R{\bf b}=\lambda_2{\bf b}$$
この両辺の左から転置ベクトル ${\bf b}^t$ を掛けると、
$${\bf b}^tR{\bf b}=\lambda_2{\bf b}^t{\bf b}$$$$b_1^2+b_2^2+b_3^2+2b_1b_2r_{12}+2b_2b_3r_{23}+2b_1b_3r_{13}$$$$=\lambda_2(b_1^2+b_2^2+b_3^2)$$
この左辺は (5) より分散 $V_2$ に等しく、右辺は (6) よりに固有値 $\lambda_2$ に等しいため、第2主成分の分散の最大値を求めることと、2番目に大きい固有値を求めることは同値になります。
$$V_2=\lambda_2$$
⑯を導く
以下の関係が成り立つことを示します。
$$r_{z1x1}=\sqrt{\lambda_1}a_1$$
⑮を利用し、①と⑤と $s_{u1}=1$ であるから、
$$r_{z1x1}=r_{z1u1}=\sum_{j=1}^n\frac{(z_{1j}-\bar{z}_1)(u_{1j}-\bar{u}_1)}{(n-1)s_{z1}s_{u1}}$$$$=\sum_{j=1}^n\frac{z_{1j}u_{1j}}{(n-1)s_{z1}}$$
次に、(3) より $s_{z1}^2=V_1=\lambda_1$ であり、④を使うと、
$$r_{z1x1}=\sum_{j=1}^n\frac{(a_1u_{1j}+a_2u_{2j}+a_3u_{3j})u_{1j}}{(n-1)\sqrt{\lambda_1}}$$$$=\frac{(a_1+a_2r_{12}+a_3r_{13})}{\sqrt{\lambda_1}}=\sqrt{\lambda_1}a_1$$
最後は、②と③を使い、さらに⑦の第1行(下記)を使っています。
$$a_1+r_{12}a_2+r_{13}a_3=\lambda_1a_1$$