logo

数理統計学における主成分分析(PCA) 📂数理統計学

数理統計学における主成分分析(PCA)

概要

主成分分析は、回帰分析多重共線性を避けることやデータを要約するなど、統計学で多くの使い道があり、機械学習でも次元削減という重要な意味を持つ。この投稿では、実践的な使用法よりも、主成分を求める理論的な基盤について説明する。

定義 1

主成分分析

ランダムベクトル X=(X1,,Xp)\mathbf{X} = \left( X_{1} , \cdots , X_{p} \right) が与えられているとする。確率変数 X1,,XpX_{1} , \cdots , X_{p}線形結合 akTX=ak1X1++akpXp=l=1paklXl \mathbf{a}_{k}^{T} \mathbf{X} = a_{k1} X_{1} + \cdots + a_{kp} X_{p} = \sum_{l = 1}^{p} a_{kl} X_{l} について考える。長さが11単位ベクトルak=(ak1,,akp)Rp\mathbf{a}_{k} = \left( a_{k1} , \cdots , a_{kp} \right) \in \mathbb{R}^{p} のように表記すると、第一のa1TX\mathbf{a}_{1}^{T} \mathbf{X} の分散 Var(a1TX) \operatorname{Var} \left( \mathbf{a}_{1}^{T} \mathbf{X} \right) を最大化し、Cov(a1TX,a2TX)=0\operatorname{Cov} \left( \mathbf{a}_{1}^{T} \mathbf{X} , \mathbf{a}_{2}^{T} \mathbf{X} \right) = 0 を満たしつつ、第二のa2TX\mathbf{a}_{2}^{T} \mathbf{X} の分散 Var(a2TX) \operatorname{Var} \left( \mathbf{a}_{2}^{T} \mathbf{X} \right) を最大化し、すべてのl<kl < kに対してCov(alTX,akTX)=0\operatorname{Cov} \left( \mathbf{a}_{l}^{T} \mathbf{X} , \mathbf{a}_{k}^{T} \mathbf{X} \right) = 0 を満たしつつ、kk番目のaiTX\mathbf{a}_{i}^{T} \mathbf{X} の分散 Var(akTX) \operatorname{Var} \left( \mathbf{a}_{k}^{T} \mathbf{X} \right) を最大化するベクトルa1,,ap\mathbf{a}_{1} , \cdots , \mathbf{a}_{p}らを見つけ、a1TX,,apTXa_{1}^{T} \mathbf{X} , \cdots , a_{p}^{T} \mathbf{X}らによってデータを分析することを 主成分分析principal Component Analysis, PCAという。

主成分

X\mathbf{X}共分散行列 ΣRp×p\Sigma \in \mathbb{R}^{p \times p}固有対 {(λk,ek)}k=1p\left\{ \left( \lambda_{k} , e_{k} \right) \right\}_{k=1}^{p}λ1λp0\lambda_{1} \ge \cdots \ge \lambda_{p} \ge 0順に並んでいて、eke_{k}らはek=1\left\| e_{k} \right\| = 1、つまり正規化されているとする。ランダムベクトルX\mathbf{X}kk番目の固有ベクトルeke_{k}内積によって定義される確率変数 YkY_{k}kk番目の主成分kkth Principal Componentと呼ぶ。 Yk:=ekTX Y_{k} := e_{k}^{T} \mathbf{X} YkY_{k}実現 yky_{k}kk番目のPCスコアkkth PC Scoreと呼ぶ。


定理

主成分分析で主成分を最大化する単位ベクトルは、ak=ek\mathbf{a}_{k} = e_{k} のように求められる。k=1,,pk = 1 , \cdots , p およびiji \ne j に対して、kk番目の主成分の分散および共分散は次のようになる。 Var(Yk)=λkCov(Yi,Yj)=0 \begin{align*} \operatorname{Var} \left( Y_{k} \right) =& \lambda_{k} \\ \operatorname{Cov} \left( Y_{i}, Y_{j} \right) =& 0 \end{align*}

証明

共分散行列Σ\Sigmaは次のように展開できる。 Σ=Cov(X)=(Var(X1)Cov(X1,X2)Cov(X1,Xp)Cov(X2,X1)Var(X2)Cov(X2,Xp)Cov(Xp,X1)Cov(Xp,X2)Var(Xp)) \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*}

共分散行列の性質:定数の行列ARk×pA \in \mathbb{R}^{k \times p}(A)ij:=aij(A)_{ij} := a_{ij}のように与えられている場合 Cov(AX)=ACov(X)AT \operatorname{Cov} ( A \mathbf{X}) = A \operatorname{Cov} \left( \mathbf{X} \right) A^{T}

ここで、Σ\Sigmaの固有ベクトルで作られた直交行列 P:=[e1ep]Rp×pP := \begin{bmatrix} e_{1} & \cdots & e_{p} \end{bmatrix} \in \mathbb{R}^{p \times p} を定義すると、共分散行列の性質によりランダムベクトルY:=PTX\mathbf{Y} := P^{T} \mathbf{X}の共分散は次のように示せる。 Cov(Y)=Cov(PTX)=PTCov(X)P \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*}

このCov(Y)\operatorname{Cov} \left( \mathbf{Y} \right)の第一の対角成分を展開すると、第一の固有値と同じであることがわかる。 Var(Y1)=e1TVarXe1=e1TΣe1=λ1 \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*}

正定値行列の二次形式と固有値正の定値行列ARp×pA \in \mathbb{R}^{p \times p}固有対 {(λk,ek)}k=1n\left\{ \left( \lambda_{k} , e_{k} \right) \right\}_{k=1}^{n}λ1λn0\lambda_{1} \ge \cdots \ge \lambda_{n} \ge 0 順に並んでいるとする。単位球上での二次形式xTAx\mathbf{x}^{T} A \mathbf{x}の最大値と最小値は次のようになる。 maxx=1xTAx=λ1, attained when x=e1minx=1xTAx=λp, attained when x=ep \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,,p1k = 2, \cdots , p-1に対して次が成り立つ。 maxx=1xe1,,ek1xTAx=λk, attained when x=ek \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}

結局、このλ1\lambda_{1}x=1\left\| \mathbf{x} \right\| = 1という制約のもとでの二次形式xTΣx\mathbf{x}^{T} \Sigma \mathbf{x}の最大値である。要約すると Var(Y1)=λ1=maxx=1xTΣx \operatorname{Var} \left( Y_{1} \right) = \lambda_{1} = \max_{\left\| \mathbf{x} \right\| = 1} \mathbf{x}^{T} \Sigma \mathbf{x} 同じ定理により、kk番目の分散Var(Yk)\operatorname{Var} \left( Y_{k} \right)は、x=1\left\| \mathbf{x} \right\| = 1e1,,ek1e_{1} , \cdots , e_{k-1}直交するという制約のもとでxTΣx\mathbf{x}^{T} \Sigma \mathbf{x}の最大値であるkk番目の固有値λk\lambda_{k}と同じになる。つまり Var(Yk)=λk \operatorname{Var} \left( Y_{k} \right) = \lambda_{k} この時の制約条件xe1,,ek1\mathbf{x} \perp e_{1} , \cdots , e_{k-1}に従って、Yl,YkY_{l}, Y_{k}の共分散は次のように00になる。 Cov(Yl,Yk)=elTΣek=elTλkek=λkelTek=λk0=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*}

参照


  1. Johnson. (2013). Applied Multivariate Statistical Analysis(6th Edition): p430~432. ↩︎