주성분 분석 (PCA)
개요
주성분 분석(Principal Component Analysis, PCA)은 여러 변수로 구성된 고차원 데이터를 서로 직교하는 소수의 주성분(principal component) 축으로 선형 변환하여 차원을 축소하는 통계적 기법이다. 1901년 칼 피어슨(Karl Pearson)이 기하학적 관점에서 처음 제안했고, 1933년 해럴드 호텔링(Harold Hotelling)이 현대적 형태로 정립했다. 데이터의 분산을 최대한 보존하는 방향을 찾는다는 점에서 정보 손실을 최소화하면서도 시각화·노이즈 제거·계산 효율 향상을 동시에 달성할 수 있어, 통계학·머신러닝·생물정보학·신경과학 등 거의 모든 데이터 기반 분야의 표준 도구로 자리 잡았다.
주요 내용
정의와 직관
PCA의 핵심 아이디어는 "데이터가 가장 넓게 퍼져 있는 방향이 가장 많은 정보를 담고 있다"는 것이다. 예를 들어 키와 몸무게처럼 강하게 상관된 두 변수는 사실상 하나의 정보 축으로 요약될 수 있다. PCA는 원래 변수들의 선형 결합으로 새로운 축(주성분)을 만들고, 분산이 큰 순서대로 PC1, PC2, PC3…로 나열한다. 상위 몇 개 주성분만 남기면 원본 데이터의 구조를 대부분 유지하면서 변수 개수를 크게 줄일 수 있다.
수학적 원리
1. 표준화: 변수마다 단위가 다르면 분산이 큰 변수가 결과를 지배하므로, 평균 0·표준편차 1로 정규화한다.
2. 공분산 행렬 계산: 변수 간 공분산 행렬 Σ를 구한다.
3. 고유값 분해: Σv = λv를 만족하는 고유값(eigenvalue) λ와 고유벡터(eigenvector) v를 계산한다. 고유값은 해당 주성분이 설명하는 분산의 크기, 고유벡터는 축의 방향을 의미한다.
4. 투영: 고유값이 큰 순서대로 k개의 고유벡터를 선택해 데이터를 투영하면 k차원 축소가 완료된다.
실무에서는 공분산 행렬 대신 특이값 분해(SVD)를 사용하는 경우가 많다. SVD는 수치적으로 더 안정적이고, 결측치가 있거나 변수 수가 표본 수보다 많은 경우에도 적용 가능하기 때문이다.
설명 분산과 스크리 플롯
각 주성분이 전체 분산에서 차지하는 비율을 설명 분산 비율(explained variance ratio)이라 한다. 주성분 번호를 x축, 고유값을 y축에 놓고 그린 스크리 플롯(scree plot)에서 곡선이 완만해지는 "팔꿈치(elbow)" 지점이 적절한 주성분 개수의 기준이 된다. 누적 설명 분산 80~90%를 기준으로 삼는 방법도 널리 쓰인다.
주요 활용 분야
- 차원 축소와 시각화: 수십~수백 차원 데이터를 2차원 평면에 투영해 군집 구조를 확인한다.
- 노이즈 제거: 분산이 작은 주성분은 대개 노이즈이므로 버림으로써 신호 대 잡음비를 높인다.
- 특징 추출 전처리: 회귀·분류 모델에 투입하기 전 다중공선성을 완화하고 학습 속도를 높인다.
- 생물정보학: 유전자 발현 데이터(GTEx, TCGA)에서 샘플 이질성과 배치 효과(batch effect)를 진단·보정한다.
- 얼굴 인식: 고전적 아이겐페이스(eigenface) 방법의 기반이 되었다.
장단점
장점은 구현이 단순하고 계산이 빠르며, 결과 축이 서로 직교해 해석이 명료하다는 점이다. 반면 주성분은 원래 변수의 선형 결합이므로 물리적·생물학적 의미를 부여하기 어렵고, 분산이 크다고 해서 반드시 예측에 유용한 정보라는 보장이 없다. 또한 PCA는 선형 변환에 국한되며, 이상치에 민감하고, 클래스 레이블을 고려하지 않는다는 한계가 있다.
최신 동향
2024~2025년 들어 PCA는 단독 기법보다 전처리·해석 도구로서 재조명되고 있다. 첫째, 대규모 언어모델(LLM)의 임베딩 벡터를 PCA로 축소해 의미 공간을 시각화하거나, 활성화 공간에서 특정 개념 방향을 추출하는 해석 가능성(interpretability) 연구가 활발하다. 둘째, 단일세포 RNA 시퀀싱(scRNA-seq) 분석 파이프라인(Seurat, Scanpy)에서 PCA는 여전히 UMAP·t-SNE 전 단계의 표준으로 쓰이며, 증강 PCA·확률적 PCA 같은 변형이 배치 효과 보정에 활용된다. 셋째, 커널 PCA·희소 PCA(SPCA)·로버스트 PCA 등 비선형·희소·강건 변형이 오토인코더와 결합해 고차원 금융·의료 데이터에 적용되고 있다. 넷째, 연합학습 환경에서 원시 데이터를 공유하지 않고 PCA를 수행하는 분산·프라이버시 보존 알고리즘이 주목받고 있다. 한편 데이터 규모가 커지면서 무작위화 SVD·증분 PCA(Incremental PCA) 같은 확장성 기법이 실무 표준으로 자리 잡았다.
관련 주제
- [[특이값 분해]]
- [[차원 축소]]
- [[머신러닝]]
- [[t-SNE]]
- [[요인 분석]]