数理統計学における主成分分析(PCA)
概要
主成分分析は、回帰分析で多重共線性を避けることやデータを要約するなど、統計学で多くの使い道があり、機械学習でも次元削減という重要な意味を持つ。この投稿では、実践的な使用法よりも、主成分を求める理論的な基盤について説明する。
定義 1
主成分分析
ランダムベクトル $\mathbf{X} = \left( X_{1} , \cdots , X_{p} \right)$ が与えられているとする。確率変数 $X_{1} , \cdots , X_{p}$ の線形結合 $$ \mathbf{a}_{k}^{T} \mathbf{X} = a_{k1} X_{1} + \cdots + a_{kp} X_{p} = \sum_{l = 1}^{p} a_{kl} X_{l} $$ について考える。長さが$1$の単位ベクトルを$\mathbf{a}_{k} = \left( a_{k1} , \cdots , a_{kp} \right) \in \mathbb{R}^{p}$ のように表記すると、第一の$\mathbf{a}_{1}^{T} \mathbf{X}$ の分散 $$ \operatorname{Var} \left( \mathbf{a}_{1}^{T} \mathbf{X} \right) $$ を最大化し、$\operatorname{Cov} \left( \mathbf{a}_{1}^{T} \mathbf{X} , \mathbf{a}_{2}^{T} \mathbf{X} \right) = 0$ を満たしつつ、第二の$\mathbf{a}_{2}^{T} \mathbf{X}$ の分散 $$ \operatorname{Var} \left( \mathbf{a}_{2}^{T} \mathbf{X} \right) $$ を最大化し、すべての$l < k$に対して$\operatorname{Cov} \left( \mathbf{a}_{l}^{T} \mathbf{X} , \mathbf{a}_{k}^{T} \mathbf{X} \right) = 0$ を満たしつつ、$k$番目の$\mathbf{a}_{i}^{T} \mathbf{X}$ の分散 $$ \operatorname{Var} \left( \mathbf{a}_{k}^{T} \mathbf{X} \right) $$ を最大化するベクトル$\mathbf{a}_{1} , \cdots , \mathbf{a}_{p}$らを見つけ、$a_{1}^{T} \mathbf{X} , \cdots , a_{p}^{T} \mathbf{X}$らによってデータを分析することを 主成分分析principal Component Analysis, PCAという。
主成分
$\mathbf{X}$ の共分散行列 $\Sigma \in \mathbb{R}^{p \times p}$ の固有対 $\left\{ \left( \lambda_{k} , e_{k} \right) \right\}_{k=1}^{p}$ が$\lambda_{1} \ge \cdots \ge \lambda_{p} \ge 0$順に並んでいて、$e_{k}$らは$\left\| e_{k} \right\| = 1$、つまり正規化されているとする。ランダムベクトル$\mathbf{X}$と$k$番目の固有ベクトル$e_{k}$の内積によって定義される確率変数 $Y_{k}$ を$k$番目の主成分$k$th Principal Componentと呼ぶ。 $$ Y_{k} := e_{k}^{T} \mathbf{X} $$ $Y_{k}$ の実現 $y_{k}$ を $k$番目のPCスコア$k$th PC Scoreと呼ぶ。
定理
主成分分析で主成分を最大化する単位ベクトルは、$\mathbf{a}_{k} = e_{k}$ のように求められる。$k = 1 , \cdots , p$ および$i \ne j$ に対して、$k$番目の主成分の分散および共分散は次のようになる。 $$ \begin{align*} \operatorname{Var} \left( Y_{k} \right) =& \lambda_{k} \\ \operatorname{Cov} \left( Y_{i}, Y_{j} \right) =& 0 \end{align*} $$
証明
共分散行列$\Sigma$は次のように展開できる。 $$ \begin{align*} & \Sigma \\ =& \operatorname{Cov} \left( \mathbf{X} \right) \\ =& \begin{pmatrix} \operatorname{Var} \left( X_{1} \right) & \operatorname{Cov} \left( X_{1} , X_{2} \right) & \cdots & \operatorname{Cov} \left( X_{1} , X_{p} \right) \\ \operatorname{Cov} \left( X_{2} , X_{1} \right) & \operatorname{Var} \left( X_{2} \right) & \cdots & \operatorname{Cov} \left( X_{2} , X_{p} \right) \\ \vdots & \vdots & \ddots & \vdots \\ \operatorname{Cov} \left( X_{p} , X_{1} \right) & \operatorname{Cov} \left( X_{p} , X_{2} \right) & \cdots & \operatorname{Var} \left( X_{p} \right) \end{pmatrix} \end{align*} $$
共分散行列の性質:定数の行列$A \in \mathbb{R}^{k \times p}$が$(A)_{ij} := a_{ij}$のように与えられている場合 $$ \operatorname{Cov} ( A \mathbf{X}) = A \operatorname{Cov} \left( \mathbf{X} \right) A^{T} $$
ここで、$\Sigma$の固有ベクトルで作られた直交行列 $P := \begin{bmatrix} e_{1} & \cdots & e_{p} \end{bmatrix} \in \mathbb{R}^{p \times p}$ を定義すると、共分散行列の性質によりランダムベクトル$\mathbf{Y} := P^{T} \mathbf{X}$の共分散は次のように示せる。 $$ \begin{align*} & \operatorname{Cov} \left( \mathbf{Y} \right) \\ =& \operatorname{Cov} \left( P^{T} \mathbf{X} \right) \\ =& P^{T} \operatorname{Cov} \left( \mathbf{X} \right) P \end{align*} $$
この$\operatorname{Cov} \left( \mathbf{Y} \right)$の第一の対角成分を展開すると、第一の固有値と同じであることがわかる。 $$ \begin{align*} \operatorname{Var} \left( Y_{1} \right) =& e_{1}^{T} \operatorname{Var} \mathbf{X} e_{1} \\ =& e_{1}^{T} \Sigma e_{1} \\ =& \lambda_{1} \end{align*} $$
正定値行列の二次形式と固有値:正の定値行列$A \in \mathbb{R}^{p \times p}$の固有対 $\left\{ \left( \lambda_{k} , e_{k} \right) \right\}_{k=1}^{n}$が$\lambda_{1} \ge \cdots \ge \lambda_{n} \ge 0$ 順に並んでいるとする。単位球上での二次形式$\mathbf{x}^{T} A \mathbf{x}$の最大値と最小値は次のようになる。 $$ \begin{align*} \max_{\left\| \mathbf{x} \right\| = 1} \mathbf{x}^{T} A \mathbf{x} =& \lambda_{1} & \text{, attained when } \mathbf{x} = e_{1} \\ \min_{\left\| \mathbf{x} \right\| = 1} \mathbf{x}^{T} A \mathbf{x} =& \lambda_{p} & \text{, attained when } \mathbf{x} = e_{p} \end{align*} $$ 一方$k = 2, \cdots , p-1$に対して次が成り立つ。 $$ \max_{\substack{\left\| \mathbf{x} \right\| = 1 \\ \mathbf{x} \perp e_{1} , \cdots , e_{k-1} }} \mathbf{x}^{T} A \mathbf{x} = \lambda_{k} \quad \text{, attained when } \mathbf{x} = e_{k} $$
結局、この$\lambda_{1}$は$\left\| \mathbf{x} \right\| = 1$という制約のもとでの二次形式$\mathbf{x}^{T} \Sigma \mathbf{x}$の最大値である。要約すると $$ \operatorname{Var} \left( Y_{1} \right) = \lambda_{1} = \max_{\left\| \mathbf{x} \right\| = 1} \mathbf{x}^{T} \Sigma \mathbf{x} $$ 同じ定理により、$k$番目の分散$\operatorname{Var} \left( Y_{k} \right)$は、$\left\| \mathbf{x} \right\| = 1$と$e_{1} , \cdots , e_{k-1}$が直交するという制約のもとで$\mathbf{x}^{T} \Sigma \mathbf{x}$の最大値である$k$番目の固有値$\lambda_{k}$と同じになる。つまり $$ \operatorname{Var} \left( Y_{k} \right) = \lambda_{k} $$ この時の制約条件$\mathbf{x} \perp e_{1} , \cdots , e_{k-1}$に従って、$Y_{l}, Y_{k}$の共分散は次のように$0$になる。 $$ \begin{align*} \operatorname{Cov} \left( Y_{l} , Y_{k} \right) =& e_{l}^{T} \Sigma e_{k} \\ =& e_{l}^{T} \lambda_{k} e_{k} \\ =& \lambda_{k} e_{l}^{T} e_{k} \\ =& \lambda_{k} \cdot 0 \\ =& 0 \end{align*} $$
■
参照
Johnson. (2013). Applied Multivariate Statistical Analysis(6th Edition): p430~432. ↩︎