主成分分析の理論
データを
\[
\boldsymbol{x}_i=
\begin{bmatrix}
x_{i1} \\ x_{i2} \\ \vdots \\ x_{id}
\end{bmatrix}
\in\mathbb{R}^d
\quad (i=1,2,\cdots,N)
\]
とします。
平均ベクトルを
\[
\boldsymbol{\mu}=\frac{1}{N}\sum_{i=1}^N\boldsymbol{x}_i \in \mathbb{R}^d
\]
とします。
データを中心化したデータ行列は
\[
\tilde{X}=X-\boldsymbol{1}\boldsymbol{\mu}^\top
\]
となります。
データ行列の各データをある単位ベクトル \(\boldsymbol{w}\) の方向に射影するとき
\[
\tilde{X}\boldsymbol{w}
\]
\(\tilde{X}\boldsymbol{w}\) の分散 \(S_{\tilde{X}\boldsymbol{w}}^2\) を考えます。
\[
\begin{align}
S_{\tilde{X}\boldsymbol{w}}^2
&=\frac{1}{N}\|\tilde{X}\boldsymbol{w}-0\|^2 \\
&=\frac{1}{N}\|\tilde{X}\boldsymbol{w}\|^2 \\
&=\frac{1}{N}(\tilde{X}\boldsymbol{w})^\top(\tilde{X}\boldsymbol{w}) \\
&=\frac{1}{N}\boldsymbol{w}^\top \tilde{X}^\top \tilde{X}\boldsymbol{w} \\
&=\boldsymbol{w}^\top \left(\frac{1}{N}\tilde{X}^\top \tilde{X}\right)\boldsymbol{w}
\end{align}
\]
ここで、\(\dfrac{1}{N}\tilde{X}^\top \tilde{X}\) は標本分散共分散行列 \(\hat{\Sigma}_X\) なので
\[
S_{\tilde{X}\boldsymbol{w}}^2=\boldsymbol{w}^\top \hat{\Sigma}_X \boldsymbol{w}
\]
と書けます。
これを \(\|\boldsymbol{w}\|=1\)(単位ベクトル)という条件の下で、最大化することを考えます。
最適化問題
\[
\max_{\boldsymbol{w}}\boldsymbol{w}^\top \hat{\Sigma}_X\boldsymbol{w}
\quad \text{subject to} \quad \|\boldsymbol{w}\|=1
\]
条件付き最適化問題なので、ラグランジュの未定乗数法を使います。
ラグランジュ関数 \(\mathcal{L}\) は次のようになります。
\[
\mathcal{L}(\boldsymbol{w},\lambda)=\boldsymbol{w}^\top \hat{\Sigma}_X\boldsymbol{w}-\lambda(\boldsymbol{w}^\top\boldsymbol{w}-1)
\]
\(\mathcal{L}(\boldsymbol{w},\lambda)\) を \(\boldsymbol{w}\) で偏微分すると
\[
\begin{align}
\frac{\partial\mathcal{L}}{\partial\boldsymbol{w}}
&=\frac{\partial}{\partial\boldsymbol{w}}\{\boldsymbol{w}^\top \hat{\Sigma}_X\boldsymbol{w}-\lambda(\boldsymbol{w}^\top\boldsymbol{w}-1)\}\\
&=\frac{\partial}{\partial\boldsymbol{w}}(\boldsymbol{w}^\top \hat{\Sigma}_X\boldsymbol{w})-\lambda\frac{\partial}{\partial\boldsymbol{w}}(\boldsymbol{w}^\top\boldsymbol{w})\\
&=(\hat{\Sigma}_X+\hat{\Sigma}_X^\top)\boldsymbol{w}-\lambda(2\boldsymbol{w})\\
&=2\hat{\Sigma}_X\boldsymbol{w}-2\lambda\boldsymbol{w} \quad (\because \hat{\Sigma}_X^\top=\hat{\Sigma}_X)
\end{align}
\]
\(\dfrac{\partial\mathcal{L}}{\partial\boldsymbol{w}}=\boldsymbol{0}\) とすると
\[
\begin{align}
&\frac{\partial\mathcal{L}}{\partial\boldsymbol{w}}=\boldsymbol{0}\\
&\Longleftrightarrow 2\hat{\Sigma}_X\boldsymbol{w}-2\lambda\boldsymbol{w}=\boldsymbol{0}\\
&\Longleftrightarrow \hat{\Sigma}_X\boldsymbol{w}=\lambda\boldsymbol{w}\\
\end{align}
\]
よって、求める \(\boldsymbol{w}\) は \(\hat{\Sigma}_X\) の固有ベクトルであることがわかりました。
続いて、この固有値問題を解きます。
\[
\det(\hat{\Sigma}_X-\lambda E)=0
\]
この固有方程式を解くことで、固有値 \(\lambda\) を求めます。
\[
\lambda=\lambda_1,\lambda_2,\cdots
\]
ここで、ある固有値 \(\lambda_i\) に対して \(\hat{\Sigma}_X\boldsymbol{w}=\lambda_i\boldsymbol{w}\) より
\[
\boldsymbol{w}^\top \hat{\Sigma}_X\boldsymbol{w}
=\boldsymbol{w}^\top \lambda_i\boldsymbol{w}
=\lambda_i(\boldsymbol{w}^\top\boldsymbol{w})
=\lambda_i\|\boldsymbol{w}\|^2
=\lambda_i
\]
となるので
\[
\max_{\boldsymbol{w}}\boldsymbol{w}^\top \hat{\Sigma}_X\boldsymbol{w}
\quad \text{subject to} \quad \|\boldsymbol{w}\|=1
\]
は
\[
\max_i\lambda_i
\]
に等しいことがわかりました。
すなわち、固有値の中で最大の固有値に対応する固有ベクトルが、求める \(\boldsymbol{w}\) となります。
ここで求まった \(\boldsymbol{w}\) が第1主成分です。