logo

수리통계학에서의 주성분 분석 PCA 📂수리통계학

수리통계학에서의 주성분 분석 PCA

개요

주성분 분석회귀분석에서 다중공선성을 회피하고 데이터를 요약하는 등 통계학에서 많은 쓰임새가 있고, 머신러닝에서도 차원축소라는 중요한 의미를 가진다. 이 포스트에서는 실전적인 사용법보다는 주성분을 구하는 이론적 토대에 대해 설명한다.

정의 1

주성분분석

랜덤벡터 X=(X1,,Xp)\mathbf{X} = \left( X_{1} , \cdots , X_{p} \right) 이 주어져 있다고 하자. k=1,,pk = 1 , \cdots, p 에 대해 길이가 11단위 벡터ak=(ak1,,akp)Rp\mathbf{a}_{k} = \left( a_{k1} , \cdots , a_{kp} \right) \in \mathbb{R}^{p} 와 같이 표기할 때, 확률변수 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} 을 생각해보자. 이에 대해 첫번째 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 , piji \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 순으로 정렬되어 있다고 하자. 단위 구unit Sphere 상에서 이차 형식 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} 에 따라 lkl \ne kYl,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. ↩︎