본문 바로가기

회사생활/통계학 공부

PCA (Principal Component Analysis) / 주성분 분석

 

 

 

PCA (Principal Component Analysis) / 주성분 분석

 

 

 

지난 포스팅에서 차원을 축소하기 위한 방법으로 1) 변수선택 (Feature Selection) 과 2) 변수 추출 (Feature Extraction) 이렇게 2가지를 이야기 했었는데, 오늘은 그 중 변수 추출의 한 기법인 PCA, 주성분 분석에 대하여 포스팅 해보려고 한다.

 

 

-

(1) 주성분 분석 PCA란?

(2) 주성분을 추출하는 방법

(3) 몇 번째 주성분까지 필요할까? - Scree Plot

(4) 주성분 분석 PCA의 사용처

(5) R 코드 예제

-

 

 


(1) 주성분 분석 PCA란?

주성분 분석은 말 그대로 여러 변수가 있는 데이터 차원에서 가장 주요한 성분을 순서대로 추출하는 기법을 말한다. 여러 변수의 값을 합쳐서 그 보다 적은 수의 주요 성분을 새로운 변수로 하여 데이터를 표현하기 때문에 차원을 축소할 때 사용할 수 있는 기법이다.

 

 

 

(2) 주성분을 추출하는 방법

그럼 어떤 기준으로 가장 주요한 성분인지를 판단할까? 쉽게 2개의 변수가 있는 2차원 데이터에서 주성분 분석을 한다고 생각해보자.

 

 

 

위 그래프에서 가장 폭 넓게 데이터를 표현할 수 있는 축은 x축도, y축도 아닌 대각선으로 그려진 점선일 것이다. 가장 폭 넓다는 것을 통계량으로 표현하자면 분산이 가장 크게 되는 축이라고 말할 수 있다. (분산 = 넓게 퍼진 정도 이니까.)

 

 

이렇게 데이터를 가장 폭 넓게 설명할 수 있는 축을 PC1, 제 1 주성분 이라고 한다. 이 축은 x축도, y축도 아니고 두 변수의 값을 조합해서 만든 새로운 축 = 새로운 변수이기 때문에 PCA를 변수 추출의 한 방법이라고 하는 것이다.

 

 

그럼 제 2 주성분, PC2는 어떻게 찾을 수 있을까? 제 1 주성분의 영향을 뺀 후, PC1을 찾을 때 처럼 그 다음으로 가장 주요한 성분을 찾는 것이다. 아래와 같이 제 1 주성분을 x축이 되도록 돌리면 제 1 주성분의 영향이 0이 된다.

 


 

이 상태에서 가장 분산이 큰 축은 x축이 된 제 1 주성분과 직교하는 선일 것이다. 이 축이 PC2, 제 2 주성분이 된다. 이런 식으로 변수의 주성분을 뽑게 된다. 차원이 많은 데이터의 경우 PCA, 주성분 분석을 이용해서 적은 수의 변수로도 이 데이터를 표현할 수 있기 때문에 시각화를 위해서 많이 사용하게 된다.

 

 

 

(3) 몇 번째 주성분까지 필요할까? - Scree Plot

그럼 몇 번째의 주성분까지 추출해야 이 데이터를 적절하게 표현했다고 말할 수 있을까?

이건 분석가의 의사결정 문제인데, 이를 결정하기 위해 보통 Scree Plot 이라는 것을 사용한다. 아마 용어는 생소해도 아래와 같은 그래프를 본 적은 있을 것 같다.


 

 

꺽이는 지점 전까지는 각 주성분이 데이터에서 차지하는 비중이 큰데, 꺽이는 지점 이후에는 주성분을 포함시켜도 차지하는 비중이 현저하게 적어진다. 그래서 보통 꺽이는 지점까지만 주성분을 포함시켜서 데이터를 표현하도록 결정한다.

 

-
-

 

(4) 주성분 분석 PCA의 사용처

주성분 분석은 시각화를 편하게 할 때 사용한다. 데이터가 여러 변수로 구성되어 있지만 몇 개의 그룹으로 이루어진 경우 이 그룹별 데이터가 어떤 분포를 이루고 있는지 한 눈에 보기 위해서는 PCA가 가장 편하다. PC1과 PC2의 두 축으로 산점도를 그리고 그룹별로 색을 표시하면 이를 쉽게 파악할 수 있다.

 

아래 그래프가 바로 그 예시라고 보면 되겠다.

 

 

위 그래프를 보면 A와 B 그룹은 상태 또는 특성이 유사하고, C 그룹은 나머지 그룹과 다른 특성을 가지고 있다는 것을 알 수 있다. PC1과 PC2를 합쳐서 총 00%를 설명해주고 있기 때문이다. 여기서 말하는 00%는 각 PC가 차지하는 Variance의 누적비율을 말하는데, 이 수치로 PC가 전체 데이터의 Variance 중 얼마만큼을 설명해주는지를 표현할 수 있다.

 

 

 

(5) R 코드 예제

PCA 실행과 시각화에 대한 R 코드 예제는 별도로 포스팅 하겠다.

 

▼ 주성분 분석(PCA) 및 시각화 R 실습 해보기 ▼

2018/01/01 - [ANALYSIS/R] - R 예제 코드 - PCA / Principal Component Analysis / 주성분 분석

 

 

 

 

 #algorithm#analysis#bigdata#data#ggplot#pca#pca시각화#prcomp#r#rstudio#r코드#r샘플#r예제#screechart#빅데이터분석#주성분분석#통계#분석#통계분석