통계학에서의 주성분분석
개요
다중회귀분석 $Y \gets X_{1} , \cdots, X_{p}$ 을 한다고 생각해보자. 주성분분석principal component analysis, 영어 약어로 PCA는 쉽게 말해 양적변수들이 제대로 독립이 되도록 ‘재구성’해서 분석하는 방법이다. 다변량 데이터의 분석이라는 관점으로 보자면 보다 적은 변수로 현상을 설명하기 위한 ‘차원축소’로써의 의미가 있다.
주성분분석의 이론적인 유도를 제대로 이해하기 위해선 선형대수, 가능하다면 수치선형대수에 대한 지식까지 필요하다. 도저히 눈에 들어오지 않는다면 Step 3,4도 읽고 이해해보도록 하자. 수리통계학에 어느정도 자신이 있다면 수리통계학에서의 주성분분석 포스트를 읽어보는 것도 좋다.
유도 1
Step 1. 표준화$p$ 개의 독립변수와 $n$ 개의 표본이 있는 데이터
$$ \begin{bmatrix} y_{1} \\ y_{2} \\ \vdots \\ y_{n} \end{bmatrix} = \begin{bmatrix} 1 & x_{11} & \cdots & x_{1p} \\ 1 & x_{21} & \cdots & x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & \cdots & x_{np} \end{bmatrix} \begin{bmatrix} \beta_{0} \\ \beta_{1} \\ \vdots \\ \beta_{p} \end{bmatrix} $$
는 계획행렬을 써서 $Y = X \beta + \varepsilon$ 과 같이 나타낼 수 있다. 이 $X$ 를 표준화한 행렬 $Z$ 라고 함은 $j$ 번째 독립변수 $X_{j}$ 의 표본평균 $\overline{ x_{j} }$ 와 표본표준편차 $s_{ X_{j} }$ 에 대해 $(i,j)$-성분을
$$ \left( Z \right)_{ij}: = {{ x_{ij} } - \overline{ x_{j} } \over { s_{ X_{j} } }} $$
으로 갖는 행렬이다. 그러면 새로운 회귀계수
$$ \Theta := \begin{bmatrix} \theta_{1} \\ \theta_{2} \\ \vdots \\ \theta_{p} \end{bmatrix} $$
에 대해 상수항이 없는 회귀분석의 계획행렬식 $Y = Z \Theta + \varepsilon$ 을 얻을 수 있다. 이 $Z = \begin{bmatrix} Z_{1} & \cdots & Z_{p} \end{bmatrix}$ 는 벡터 $X_{1} , \cdots , X_{p}$ 를 표준화한 $Z_{1} , \cdots , Z_{p}$ 로 구성된 $( n \times p )$ 행렬이 된다.
Step 2.
스펙트럴 분해에 대해 $Z^{T} Z$ 는 $( p \times p )$ 대칭행렬인데, 그 정의를 생각해보면 $\displaystyle {{1} \over {n-1}} Z^{T} Z$ 는 $Z_{1} , \cdots , Z_{p}$ 에 대한 공분산행렬이 된다. 특히 $Z$ 는 표준화된 행렬이므로, 동시에 상관계수행렬이 되기도 한다. 스펙트럴 이론에 따르면
$$ \begin{cases} Z^{T} Z = Q \Lambda Q^{T} \\ Q^{T} Q = Q Q^{T} = I \end{cases} $$
를 만족하는 직교행렬
$$ Q = \begin{bmatrix} q_{11} & q_{12} & \cdots & q_{1p} \\ q_{21} & q_{22} & \cdots & q_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ q_{p1} & q_{p2} & \cdots & q_{pp} \end{bmatrix} $$
와 $Z^{T} Z$ 의 고유값들로 이루어진 대각행렬
$$ \Lambda = \text{diag} ( \lambda_{1} , \lambda_{2} , \cdots , \lambda_{p} ) = \begin{bmatrix} \lambda_{1} & 0 & \cdots & 0 \\ 0 & \lambda_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_{p} \end{bmatrix} $$
가 존재한다. 이제 편의상 $\lambda_{1} \ge \lambda_{2} \ge \cdots \ge \lambda_{p}$ 이 되도록 두고 $Z$ 역시 그에 대응되도록 재정렬한 행렬로 생각하자.
Step 3. 주성분 구성
$I = QQ^{T}$ 이므로 $$ Y = Z \Theta + \varepsilon = Z Q Q^{T} \Theta + \varepsilon $$ 여기서 $C := ZQ $, $\alpha := Q^{T} \Theta$ 라고 두면 $$ Y = C \alpha + \varepsilon $$ 이 $C = \begin{bmatrix} C_{1} & \cdots & C_{p} \end{bmatrix}$ 에 대해 $C_{1} , \cdots , C_{p}$ 를 $Z_{1}, \cdots , Z_{p}$ 의 주성분principal component이라 한다. $j$ 번째 주성분의 모양은
$$ C_{j} = q_{1j} Z_{1} + \cdots + q_{pj} Z_{p} = \sum_{i=1}^{p} q_{ij} Z_{j} $$
와 같이 기존의 독립변수들을 선형결합으로 재구성한 것이다.
Step 4.
주성분의 독립성또한 다음의 계산으로 이 주성분끼리의 독립성을 확인할 수 있다. $$ \begin{align*} & Z^{T} Z = Q \Lambda Q^{T} \\ \implies& Q^{T} Z^{T} Z Q = \Lambda \\ \implies& \left( Z Q \right) ^{T} \left( Z Q \right) = \Lambda \\ \implies& C^{T} C = \Lambda \end{align*} $$ 다시 말해 $$ C_{j}^{T} C_{j} = \begin{cases} \lambda_{j} & , i=j \\ 0 & , i \ne j \end{cases} $$ 이므로 주성분끼리는 반드시 독립이고, 고유값 $\lambda_{j}$ 가 $0$ 에 가까울 정도로 작다는 말은 $\displaystyle C_{j} = \sum_{i=1}^{p} q_{ij} Z_{j}$ 가 영벡터에 가깝다는 의미가 되므로 $Z_{1} , \cdots , Z_{p}$ 가 다중공선성을 가진다고 볼 수 있다.
■
한계
주성분회귀분석 $Y \gets C_{1} , \cdots , C_{p}$ 은 고유값에 문제가 있는 변수들을 제거함으로써 다중공선성의 문제를 회피한다. 또한 원래 회귀분석과 비교했을 때 훨씬 적은 수의 변수를 사용하는 것이므로 차원이 축소되었다고 말할 수 있다.
언뜻 주성분분석은 만능처럼 보이지만 꼭 그런것만은 아니다. 우선 $Z$ 를 만들기 위해서 표준화를 한다는 것은 질적변수나 변환에 대해 손을 쓰기 어려운 점이 많다는 뜻이며, 이렇게 ‘재구성’을 하는 과정에서 분석 자체가 이해하기 어려워진다.
통계가 통계학을 이해하지 못하는 사람에게도 필요하다는 점을 생각해보면 이 점은 꽤 치명적이다. 예를들어 한국 경제에 대한 분석에 주성분분석을 쓴다면 구체적으로 실업률 $X_{2}$ 나 평균 초봉 $X_{7}$ 과 같이 이해하기 쉬운 수치가 아니라 ‘종합고용지수’ $C_{4}$ 와 같은 이상한 단어로 표현하게 되는 식이다. 분석자조차도 쓸만한 회귀식은 만들어냈을지언정 그 진정한 의미는 파악하지 못하는 대참사가 일어날 수도 있다. (컴퓨터 공학쪽에서는 데이터의 이해보단 예측과 분류가 중요하기 때문에 이런 단점을 크게 신경쓰지 않는다.)
또한 어떤 주성분도 탈락시키지 않고 $Y \gets C_{1} , \cdots , C_{p}$ 를 그대로 사용한다면 원래의 $Y \gets X_{1} , \cdots , X_{p}$ 와 다를 바가 없는데, 여기서 몇몇 주성분을 탈락시킨다는 것 자체가 원래 있던 데이터를 포기한다는 뜻이 된다. 그래도 필요하다면 써야겠지만, 필요 없으면 굳이 쓸 이유가 없다. 쓸 땐 쓰더라도 어떤 단점과 한계가 있는지는 명확히 알고 써야한다.
조건수 1
한편 유도과정에서 구해지는 고유값을 통해 다중공선성을 진단하는 수치적인 지표인 조건수condition number
$$ \kappa := \sqrt{ {{ \lambda_{1} } \over { \lambda_{p} }} } $$
를 계산할 수 있다. 경험적으로 $\kappa > 15$ 면 원래 데이터에 다중공선성이 있다고 짐작할 수 있으나, 그다지 많이 사용되지는 않는다.