7.5 Principal Component Analysis

Jaehyun_onelion·2023년 3월 17일
0

선형대수학

목록 보기
42/42

이번 포스트에서는 Principal Component Analysis(주성분 분석)에 대해서 알아보겠습니다.


1) Principal Component Analysis


1) Basic Statistics


주성분분석을 하기에 앞서 기본적인 통계 용어와 개념이 필요합니다.


Definition : Mean, Variance, Covariance, Correlation coefficient

Given random variables X,YX, Y, with pdf fX(x),fY(y)f_X(x), f_Y(y), the mean of XX is (with E(X)<E(\begin{vmatrix} X \end{vmatrix})<\infty)

E(X)={xfX(x)x:discretexfX(x)x:continuousE(X) = \begin{cases} \sum xf_X(x) & x : discrete \\ \int xf_X(x) & x : continuous\end{cases}

If E(X2)<E(X^2)<\infty and E(X)<E(X)<\infty, the variance of XX is

Var(X)=E[(XE(X))2]Var(X) = E[(X-E(X))^2]

If E(X2)<,E(Y2)<,E(XY)<E(X^2)<\infty, E(Y^2)<\infty, E(XY)<\infty, the covariance of X,YX, Y is

Cov(X,Y)=E[(XE(X))(YE(Y))]Cov(X, Y) = E[(X-E(X))(Y-E(Y))]

and the correlation coefficient of XX and YY is

Corr(X,Y)=Cov(X,Y)Var(X)Var(Y)Corr(X, Y) = \frac{Cov(X, Y)}{\sqrt{Var(X)}\sqrt{Var(Y)}}

확률 변수를 정의하고 확률분포를 알게 되면 평균(mean)과 분산(variance)을 구할 수 있습니다. 추가적으로, 두 개의 확률변수의 관계를 나타내는 값으로 공분산(covariance)과 상관계수(correlation coefficient) 정의할 수 있습니다.

하지만 우리는 데이터를 얻었을 때 전체 데이터(모집단이라고 합니다.)를 얻을 수 없기 때문에, 그 중 일부분을 추출한 데이터(표본)를 바탕으로 전체 데이터가 어떤 형태를 가지는지 추측을 합니다.


Definition : Sample mean, Sample variance, Sample covariance, Sample correlation coefficient, Sample Covariance matrix

Given the data (x1,y1),(x2,y2),...,(xn,yn)(x_1, y_1), (x_2, y_2), ..., (x_n, y_n), the sample mean of XX and YY is

Xˉ=1ni=1nxi,  Yˉ=1ni=1nyi\bar X = \frac{1}{n}\sum_{i=1}^n x_i, \ \ \bar{Y} = \frac{1}{n}\sum_{i=1}^ny_i

The sample variance of XX and YY is

Var^(X)=1n1i=1n(xiXˉ)2,  Var^(Y)=1n1i=1n(yiYˉ)2\hat{Var}(X) = \frac{1}{n-1}\sum_{i=1}^n (x_i-\bar{X})^2, \ \ \hat{Var}(Y) = \frac{1}{n-1}\sum_{i=1}^n(y_i-\bar Y)^2

The sample covaraince of XX and YY is

Cov^(X,Y)=1n1i=1n(xiXˉ)(yiYˉ)\hat{Cov}(X, Y) = \frac{1}{n-1}\sum_{i=1}^n (x_i-\bar{X})(y_i-\bar{Y})

The sample correlation coefficient of XX and YY is

Corr^(X,Y)=Cov^(X,Y)Var^(X)Var^(Y)\hat{Corr}(X, Y) = \frac{\hat{Cov}(X, Y)}{\sqrt{\hat{Var}(X)}\sqrt{\hat{Var}(Y)}}

표본 평균, 분산, 공분산, 상관계수에서 생각해야 하는 점은 다음과 같습니다.

  1. 분산이 클수록 데이터가 sample mean에서 퍼져있고, 분산이 작을수록 데이터가 sample mean에 몰려있다.

    • Sample variance의 정의를 보면 데이터에서 데이터의 평균을 뺀 값들을 제곱하여 더한 뒤, sample 개수-1로 나눈 값입니다. 만약 데이터가 평균에 몰려있다면, 데이터에 평균을 뺀 값은 0에 가까울 것이고, 제곱을 하면 0에 가까운 값이 나올 것입니다. 따라서 이를 다 더한 뒤 특정 값으로 나눈 sample variance는 작은 값을 가집니다. 한편 데이터가 평균에서 퍼져있다면, 데이터에 평균을 뺀 결과가 큰 값들이 존재할 것이고, 이를 제곱하면 0에서 먼 값, 즉 상당히 큰 값이 나올 것입니다. 이를 더한 뒤 특정 값으로 나눈 sample variance는 큰 값을 가집니다.
  2. Sample covariance가 양의 값을 가지면 두 변수는 양의 상관관계, 음의 값을 가지면 두 변수는 음의 상관관계를 가진다.

    • Sample covariance는 두 데이터 간의 관계를 나타내주는 값입니다. xix_iXˉ\bar X보다 클 때, yiy_iYˉ\bar Y보다 클 수도, 작을 수도 있습니다. 다음의 그림과 같이 데이터의 위치에 따라 4 가지 경우로 나눌 수 있습니다.

    • 만약 데이터가 1과 3 부분에 많이 존재한다면, sample covariance 계산 식인 (xiXˉ)(yiYˉ)(x_i-\bar X)(y_i-\bar Y) 값은 양수가 될 것입니다. 따라서 이를 다 더하고 sample 개수-1로 나눈 값 또한 양수가 될 것입니다. 1번과 3번 부분에 데이터가 많이 존재한다는 것은, XX가 증가할 때 YY도 증가한다는 것을 의미합니다. 따라서 양의 상관관계를 가진다고 할 수 있습니다.

    • 두 번째로, 데이터가 2번과 4번 부분에 많이 존재한다면, sample covariance 계산 식 값은 음수가 될 것입니다. 이를 다 더하고 sample 개수-1로 나눈 값 또한 음수가 됩니다. 2번과 4번 부분에 데이터가 많이 존재한다는 것은 XX가 증가할 때 YY는 감소하는 것을 의미합니다. 따라서 음의 상관관계를 가진다고 할 수 있습니다.

    • 마지막으로 데이터가 1, 2, 3, 4에 고르게 분포할 경우, sample covariance의 값은 0에 근접한 값을 가지게 됩니다.

  3. Sample correlation coefficient는 상관관계 강도까지 나타낸 값으로, -1과 1에 가까울수록 강한 상관관계를 가진다.

    • Sample correlation은 sample covariance에 각 변수의 sample variance의 root값을 나눈 값으로, 최소 -1에서 최대 1의 값을 가지게 됩니다. Sample covaraince에서는 단순히 양의 상관관계가 있는지, 음의 상관관계가 있는지만을 확인할 수 있었다면, Sample correlation coefficient는 그 강도가 얼마나 강한지까지 알 수 있는 지표입니다. 1에 가까울수록 강한 양의 상관관계(기울기가 양수인 직선 형태), -1에 가까울수록 강한 음의 상관관계(기울기가 음수인 직선형태)를 띄게 됩니다.

      마지막으로, correlation coefficient가 0인 경우, 두 변수는 uncorrelated이다고 정의합니다.


(2) Data and Dimension


Principal Component Analysis(PCA)의 목적은 dimension을 줄이는데 있습니다. 그렇다면 데이터를 분석하는데 있어 dimension을 줄이는 이유는 무엇인지, 줄였을 때 어떤 효과를 얻을 수 있는지 알아보겠습니다.

데이터를 설명하는 변수가 많아질 때 우리가 가질 수 있는 이점은 무엇일까요? 변수가 추가될 때 마다 현재 데이터가 가지는 정보를 설명해주기 때문에, 변수가 많아지면 많아질수록 우리가 데이터로부터 얻을 수 있는 정보는 많아집니다.

그렇다고 데이터를 설명하는 변수가 많아진다고 해서 좋은 점만 있는 것은 아닙니다. 변수가 많을수록 변수를 통제하거나 데이터에서 해당 변수가 가지는 의미를 설명하기가 어려워집니다. 다음 두 식을 살펴봅시다.

y=α0+α1x1  1.y=β0+β1x1+β2x2 2.y = \alpha_0 + \alpha_1 x_1 \ \cdots \ 1. \\ y = \beta_0 + \beta_1 x_1 +\beta_2 x_2 \ \cdots 2.

1번 식보다 2번 식이 yy를 설명하는 변수가 하나 더 많습니다. x2x_2라는 변수 또한 yy를 설명하는데 사용이 되었기 때문에, 2번 식이 1번 식보다 yy에 대한 정보가 많다고 생각할 수 있습니다.

그렇다면 x1,x2x_1, x_2yy에 어떠한 영향을 주는지 해석해보겠습니다. 1번 식의 경우 간단히,

  • x1x_1이 1 증가하면 yyα1\alpha_1만큼 증가한다.

와 같이 해석할 수 있습니다. 하지만, 2번 식의 경우 1번 식과 같이 해석을 할 수 없습니다. β2x2\beta_2 x_2이 존재하기 때문입니다. 따라서 x1x_1yy에 주는 영향을

  • x2x_2가 고정이 되었을 때, x1x_1이 1 증가하면 yyβ1\beta_1만큼 증가한다

로 해석해야 합니다. 부가적인 조건이 붙게 됩니다.

이처럼 변수가 무작정 많아진다고 해서 좋은 것도 아니고, 엄청 적다고 해서 좋지는 않습니다. 데이터를 설명하는 적절한 변수 개수와 적당한 변수를 선택하는 문제는 통계학/머신러닝에서 중요한 문제 중 하나입니다.

그럼 내가 원하는 변수를 내가 원하는 개수만큼 선택해서 분석을 진행하면 되지 않나? 생각을 할 수 있습니다. 하지만 무작정 자신이 원하는 변수나 변수 개수를 선택하면 문제가 발생할 수 있습니다.

다음의 두 데이터 분포를 봅시다.

변수 X,YX, Y에 대한 데이터 분포입니다. 첫 번째 분포는 X,YX, Y 두 변수 모두를 고려하여 산점도를 그렸습니다.(가로축 : xx축, 세로축 : yy축) 그리고 두 번째 분포는 XX 변수만 고려하여 산점도를 그렸습니다.(가로축 : xx축) 즉 데이터 분포 1에서의 x좌표만 나타낸 분포가 데이터 분포 2입니다.

데이터 분포 1을 살펴봅시다. 현재 XX변수는 고르게 퍼져있고, YY 변수는 0에 근접한 값들이 많습니다. 이를 다시 말하면, XX 변수는 상대적으로 분산(또는 표본 분산)이 크고, YY 변수는 상대적으로 분산이 작은 것을 알 수 있습니다.

데이터 분포 1과 2를 비교해봅시다. 데이터의 경향성에 큰 변화가 있다고 느껴지시나요? YY값들이 0 근처의 값에 몰려 있다 보니, 굳이 YY값을 사용하지 않더라도 데이터 경향성(정보)에 큰 변화가 없습니다.

그렇다면 다음 데이터 분포를 살펴봅시다.

세 번째 분포가 첫 번째 분포와 조금 다릅니다. 똑같이 세 번째 분포는 X,YX, Y 두 변수를 모두 고려하여 산점도를 그렸고(가로축 : xx축, 세로축 : yy축) 네 번째 분포는 XX 변수만 고려하여 산점도를 그렸습니다.(가로축 : xx축) 마찬가지로 데이터 분포 3에서 x좌표만 나타낸 분포가 데이터 분포 4입니다.

데이터 분포 3을 보면 X,YX, Y 각각 평균에서 떨어진 값들이 존재합니다. 따라서, 두 변수 모두 분산이 큰 값을 가진다고 해석할 수 있습니다. 여기서 포인트는 YY 값 또한 분산이 높다는 것입니다.

데이터 분포 3과 4를 비교해봅시다. 경향성에 큰 차이가 있는 것이 보이시나요? 데이터 분포 3의 경우 기울기가 양의 값을 가지는 직선 형태의 분포를 가지는 반면, 데이터 분포 4는 x축 직선 모양을 가집니다.(물론 YY값을 제거했으니 당연한 이야기입니다.) 중요한 점은, 데이터를 설명하는 변수 중 YY 또한 많은 정보를 담고 있는 것입니다. YY값이 0에서 멀리 떨어진 데이터의 YY 값을 전부 무시하고 데이터 분포 4를 만들었으니, 데이터 경향성에 큰 변화가 생긴 것을 알 수 있습니다. 이런 경우 데이터의 정보 손실이 많아져 합리적인 분석을 하는데 문제가 발생합니다.

위와 같이 두 개의 변수 뿐만 아니라, 수십개, 수백개의 변수 중에서 위와 같은 경우가 존재할 수 있습니다. 무턱대고 변수를 제거하면 데이터 정보의 큰 손실을 초래할 수 있습니다. PCA는 데이터의 정보의 손실을 최소화하면서, 변수 개수를 줄일 수 있는 방법론 중 하나입니다.


(3) Idea of PCA


PCA는 선형 대수의 지식을 이용하여 데이터 분포 3을 데이터 분포 1처럼 보이게 만들어주는 작업입니다. 그럼 어떤 방법을 이용하여 데이터 분포 3을 데이터 분포 1로 바꾸어주는지 확인해 봅시다.

데이터 분포 3을 다시 봅시다. 현재 X,YX, Y 변수 사이 양의 상관관계가 있는 것을 알 수 있습니다. PCA는 여기서 새로운 축을 생성을 합니다. 새로운 축을 형성할 때, 새로운 축 변수의 분산이 가장 크도록 생성을 해줍니다. 데이터 분포 5에서 uu 축이 해당 조건을 만족하는 새로운 변수이고, 축입니다. 두 번째는 uu 축과 수직이면서, 그 다음으로 축 변수의 분산이 가장 크도록 생성을 해줍니다. 데이터 분포 5에서 vv 축이 해당 조건을 만족하는 새로운 변수이고, 축입니다.

이 후, x,yx, y축, 또는 X,YX, Y 변수가 아닌, 새로운 축인 u,vu, v축, 또는 U,VU, V 변수를 이용하여 데이터를 해석합니다. 그 결과가 아래의 데이터 분포가 됩니다.

데이터 분포 6은 데이터 분포 5에서 uu축과 vv축을 기준으로 하기 위해 회전시킨 산점도이고, 데이터 분포 7은 U,VU, VUU 변수만 고려하여 그린 산점도입니다. 데이터분포 1, 2와 같은 형태를 띄는 것이 보이시나요? VV 변수의 분산이 작기 때문에, VV 변수가 가지는 데이터 정보가 적어서, VV를 제거하고 UU만 고려해도 데이터 정보의 손실이 적은 것을 알 수 있습니다.

정리하면, Principal Component Analysis(PCA)는 데이터의 분산을 가장 크게 만드는 축을 찾고, 그 축과 수직이면서 그 다음으로 분산이 큰 축들을 차례대로 찾아주는 방법입니다. 이 후 분산이 작은 축들은 제거를 해도 데이터 정보의 손실이 적고, 해석하기도 용이해집니다.


2) Derivation of PCA


그럼 어떤 방법으로 분산이 가장 큰 축을 찾는지 수식으로 확인해 봅시다.


(1) Covariance matrix


위에서 시각적 표현을 쉽게 하기 위해 변수 2개만 사용하였지만, 실제로는 변수의 개수가 많을 수 있습니다. 따라서 변수의 개수가 pp일 때 변수간의 관계를 설명하기 위해 벡터와 matrix를 사용합니다.


Notation

Given the random variable X1,...,XpX_1, ..., X_p, the covariance matrix is

[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{bmatrix} Var(X_1) & Cov(X_1, X_2) & \cdots & Cov(X_1, X_p) \\ Cov(X_2, X_1) & Var(X_2) & \cdots & Cov(X_2, X_p) \\\vdots & \vdots & \ddots & \vdots & \\ Cov(X_p, X_1) & Cov(X_p, X_2) & \cdots & Var(X_p)\end{bmatrix}

Given the data (x11,...,x1p),...,(xn1,...,xnp)(x_{11}, ..., x_{1p}), ..., (x_{n1}, ..., x_{np}), we can set n×pn\times p matrix

X=[x11...x1pxn1xnp]X = \begin{bmatrix} x_{11} & ... & x_{1p} \\ \vdots & \ddots & \vdots \\ x_{n1} & \cdots & x_{np} \end{bmatrix}

If we set the sample mean

Xˉj=1ni=1nxij,  j=1,...,p\bar X_{j} = \frac{1}{n}\sum_{i=1}^nx_{ij}, \ \ j=1,...,p

then the sample covariance matrix is

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)]\hat {Cov}(\boldsymbol X) = \begin{bmatrix} \hat{Var}(X_1) & \hat{Cov}(X_1, X_2) & \cdots & \hat{Cov}(X_1, X_p) \\ \hat{Cov}(X_2, X_1) & \hat{Var}(X_2) & \cdots & \hat{Cov}(X_2, X_p) \\\vdots & \vdots & \ddots & \vdots & \\ \hat{Cov}(X_p, X_1) & \hat{Cov}(X_p, X_2) & \cdots & \hat{Var}(X_p)\end{bmatrix}

여러 개의 변수에 대해 sample mean과 sample variance, sample covariance를 정의할 수 있고, 이를 matrix 형태로 나타낸 것이 sample covariance matrix입니다.

XX에서 각각의 변수에 sample mean을 뺀 새로운 matrix를 X~\tilde X

X~=[x11Xˉ1...x1pXˉpxn1Xˉ1xnpXˉp]\tilde X = \begin{bmatrix} x_{11}-\bar X_1 & ... & x_{1p}-\bar X_p \\ \vdots & \ddots & \vdots \\ x_{n1}-\bar X_1 & \cdots & x_{np}-\bar X_p \end{bmatrix}

로 정의하면 sample covariance matrix는

Cov^(X)=1n1X~TX~\hat{Cov}(\boldsymbol X) = \frac{1}{n-1}\tilde X^T\tilde X

가 됩니다.

이제 이 covariance matrix를 적절하게 변형시켜, variance 항만 살아있고, 나머지 covariance항은 0이 되도록 변형시킬 예정입니다.


(2) Spectral Decomposition


지금 sample covariance matrix에서 X~TX~\tilde X^T\tilde X를 보면 symmetric matrix입니다. 따라서, 해당 matrix는 orthogonally diagonalizable합니다. 즉

X~TX~=PDPT\tilde X^T \tilde X = PDP^T

로 분해가 가능합니다.

여기서, 새로운 변수(새로운 축을 담당합니다.) YY

Y=X~PY = \tilde XP

로 설정을 하면

1n1YTY=1n1PTX~TX~P=1n1PTPDPTP=1n1D\frac{1}{n-1}Y^TY = \frac{1}{n-1}P^T\tilde X^T\tilde XP = \frac{1}{n-1}P^TPDP^TP = \frac{1}{n-1}D

가 되어, 새롭게 표현한 데이터 YY 변수간 sample covariance matrix가 diagonal matrix가 됩니다. 즉, 현재 YY 또한 n×pn\times p matrix, 즉 변수가 pp개 존재하는데, pp개의 변수간 sample covariance가 모두 0이 됩니다. 이 때 DD의 diagonal element가 variance가 되구요.


(3) New Axis


YY가 가지는 의미에 대해서 알아봅시다. YYn×pn\times p matrix로

Y=X~PX~=YPTY = \tilde XP \\ \Rightarrow \tilde X = YP^T

를 만족합니다. 여기서 양변에 transpose를 취하면

X~T=PYT\tilde X ^T = PY^T

가 됩니다. X~T\tilde X^Tp×np \times n matrix로

X~T=[x~11x~21x~n1x~12x~22x~n2x~1px~2px~np]\tilde X^T = \begin{bmatrix}\tilde x_{11} & \tilde x_{21} & \cdots & \tilde x_{n1} \\ \tilde x_{12} & \tilde x_{22} & \cdots & \tilde x_{n2} \\ \vdots & \vdots & \ddots & \vdots \\ \tilde x_{1p} & \tilde x_{2p} & \cdots & \tilde x_{np} \end{bmatrix}

각각의 column이 data, observation 역할을 합니다. 이 때, P=p×pP = p\times p matrix로

P=[p1p2...pp]P = \begin{bmatrix}\boldsymbol p_1 & \boldsymbol p_2 & ... & \boldsymbol p_p \end{bmatrix}

로 표현할 수 있습니다. 위의 X~T\tilde X^T의 첫 번째 column을 P,YP, Y로 나타내면

[x~11x~12x~1p]=P[y11y12y1p]=y11p1+y12p2++y1ppp\begin{bmatrix}\tilde x_{11} \\ \tilde x_{12} \\ \vdots \\ \tilde x_{1p} \end{bmatrix} = P\begin{bmatrix}y_{11} \\ y_{12} \\ \vdots \\ y_{1p} \end{bmatrix} = y_{11}\boldsymbol p_1 + y_{12}\boldsymbol p_{2} + \cdots + y_{1p}\boldsymbol p_p

가 됩니다. 즉, X~T\tilde X^T의 첫 번째 column, 첫 번째 observation을 standard basis가 아닌 PP의 column으로 이루어진 basis를 통하여 표현하였을 때의 coordinate vector가 YTY^T의 첫 번재 column이 됩니다.

이를 확장하면 X~T\tilde X^Tjj번째 column, jj번째 observation을 standard basis가 아닌 PP의 column을 이루어진 basis를 통하여 표현하였을 때의 coordinate vector가 YTY^Tjj번째 column입니다.

따라서 PCA idea 설명 부분에서 만든 새로운 축이라는 뜻은 PP의 column을 basis로 하였을 때 Rp\mathbb R^p를 표현하는 축입니다.


(4) Meaning of eigenvalue and eigenvector


X~TX~\tilde X^T \tilde X를 spectral decomposition(또는 diagonalization)을 통해 PDPTPDP^T로 분해하여, 새로운 변수 YY를 만들었습니다. spectral decomposition을 진행할 때 X~TX~\tilde X^T \tilde X의 eigenvalue와 eigenvector를 이용하는데, PCA의 결과로 얻은 새로운 축과 eigenvalue, eigenvector간 관계에 대해 알아봅시다.

X~TX~=PDPT\tilde X^T \tilde X = PDP^T

로 분해할 수 있고

P=[p1...pp],  D=diag(λ1,...,λp)P = \begin{bmatrix} \boldsymbol p_1 & ... & \boldsymbol p_p \end{bmatrix}, \ \ D = diag(\lambda_1, ..., \lambda_p)

입니다. 여기서 λ1,...,λp\lambda_1, ..., \lambda_pX~TX~\tilde X^T \tilde X의 eigenvalue이고, p1,...pp\boldsymbol p_1, ...\boldsymbol p_p는 각각의 eigenvalue에 해당하는 크기 1의 eigenvector입니다.

Y=X~PY = \tilde XP

로 설정하였을 때, YY를 이루는 변수의 sample covariance matrix

1n1YTY=1n1D\frac{1}{n-1}Y^TY = \frac{1}{n-1}D

의 diagonal term이 eigenvalue로 이루어져 있습니다. YY의 각 축들의 variance를 n1n-1로 곱한 값이 X~TX~\tilde X^T\tilde X의 eigenvalue입니다.

다음은 eigenvector입니다. YYX~\tilde XPP의 column을 basis를 이용하여 표현하였을 때의 coordinate vector들을 모아놓은 matrix입니다. 따라서 PP의 column은 Rp\mathbb R^p를 나타내는 새로운 축으로 생각할 수 있습니다. 그런데 PP

P=[p1...pp]P = \begin{bmatrix} \boldsymbol p_1 & ... & \boldsymbol p_p \end{bmatrix}

이고, column 모두 eigenvector이므로, X~TX~\tilde X^T \tilde X의 eigenvector는 PCA를 진행한 후 생성되는 새로운 축을 의미합니다. 그 새로운 축에 대한 분산이 eigenvector에 대응하는 eigenvalue에 n1n-1을 나눈 값이 되구요.


(5) Dimension reduction


마지막으로 실제로 차원을 낮추는 단계입니다. X~TX~\tilde X^T \tilde X의 eigenvalue가 해당 축의 variance에 비례하는 것을 이용하여, variance 비교를 통해 필요없는 변수를 제거하는 과정을 거칩니다. 하지만 variance가 작다는 것을 어떻게 정의할까요? 이를 위해 condition number를 정의합니다.


Definition : Condition number

If λ1,...,λp\lambda_1, ..., \lambda_p are eigenvalue of X~TX~\tilde X^T \tilde X, then the condition number of jjth variable is

λji=1pλi\frac{\lambda_j}{\sum_{i=1}^p\lambda_i}

Condition number는 전체 variance 대비 각 변수별 variance 비율을 나타내는 값입니다. condition number가 클 수록, 해당 축의 variance가 크다는 것을 의미합니다. 따라서 이 값이 작은 변수는 제거함으로써 dimension reduction을 진행할 수 있습니다.

두 번째로, Scree plot을 통해 적절한 변수 개수를 선택할 수 있습니다. PCA를 진행할 때, 분산이 최대가 되도록 축을 생성합니다. 따라서 축이 추가될 때마다 해당 축의 분산은 작아집니다. 따라서 x축을 축 index, y축을 해당 축에 대한 condition number(또는 cummulated condition number)를 지정하여 꺾은선 그래프를 만들 수 있습니다. 이러한 꺾은선 그래프를 Scree plot이라고 합니다.

Scree plot에서 기울기가 완만해지는 지점의 변수 개수를 최적의 변수개수로 지정하여 분석을 진행할 수 있습니다.


지금까지 Principal Component Analysis에 대해서 알아보았습니다. 이번 포스트까지 해서 학부에서 배울 수 있는 선형 대수학에 대한 기본적인 지식 포스트가 완료 되었습니다. 추가적으로 다른 포스트에서 선형대수와 관련이 있는 내용을 다룰 때 추가적으로 포스트할 예정입니다. 질문이나 오류 있으면 댓글 남겨주세요! 감사합니다!

profile
데이터 분석가 새싹

0개의 댓글