← 다변량통계
PART 2 · 05 다변량통계 · 05

주성분분석 (PCA)

여러 변수의 정보를 적은 수의 새 변수로 요약

선형결합설명분산스크리 플롯표준화PCA vs EFA

PC1: 가장 넓게 퍼진 방향PC2흩어진 점들을 가장 잘 담는 새 축을 찾는다

여러 변수를 분석하다 보면 서로 비슷한 정보를 담고 있는 변수가 많을 수 있습니다. 예를 들어 고객 설문에서 가격 만족도, 품질 만족도, 서비스 만족도, 전반적인 만족도를 함께 측정했다면 변수마다 정보를 따로 살펴보는 것이 복잡할 수 있습니다. 이럴 때 쓰는 방법 중 하나가 주성분분석(PCA, Principal Component Analysis)입니다. 여러 변수의 정보를 최대한 유지하면서 더 적은 수의 새로운 변수로 요약합니다. PCA는 변수를 지우는 방법이 아니라, 원래 변수들을 조합해 데이터의 변동을 잘 설명하는 새로운 축을 만드는 방법입니다.

SECTION 01

주성분분석은 왜 필요할까?

한 기업이 고객 경험을 평가하려고 제품 품질, 사용 편의성, 서비스 만족도, 가격 만족도, 재구매 의향의 다섯 항목을 측정했다고 하겠습니다. 이 변수들이 서로 관련되어 있다면 일부는 비슷한 정보를 담고 있습니다. 예를 들어 제품 품질과 사용 편의성은 함께 높게 평가되는 경향이 있을 수 있습니다.

분석 전분석 후품질편의성서비스가격재구매PCA주성분 1변동의 큰 부분주성분 2추가 변동여러 변수를 각각 본다조합한 새 변수로 요약
그림 1. 주성분분석 전과 후

PCA는 그림 1처럼 이런 여러 변수를 조합해 데이터의 주요 변동을 설명하는 소수의 주성분을 만듭니다. 다만 주성분은 원래 변수의 이름을 그대로 갖지 않습니다. 여러 변수를 가중합한 새 변수이므로, 무엇을 의미하는지는 각 변수의 기여도를 보고 해석해야 합니다(7절).

SECTION 02

주성분은 어떻게 만들어질까?

PCA의 핵심은 원래 변수들을 선형결합해 새 변수를 만드는 것입니다. 변수 X₁, X₂, X₃이 있다면 주성분은 다음과 같습니다.

PC₁ = a₁₁X₁ + a₁₂X₂ + a₁₃X₃   ·   PC₂ = a₂₁X₁ + a₂₂X₂ + a₂₃X₃
aij: 각 원래 변수가 주성분에 반영되는 가중치
404060608080100100수학 점수과학 점수PC1 (91%)PC2 (9%)
그림 2. 수학 · 과학 점수의 두 주성분 방향 (모의 학생 80명)

그림 2는 학생 80명의 수학 · 과학 점수입니다. 두 과목이 함께 높아지는 경향이 강해서, 점들이 오른쪽 위로 길게 퍼져 있습니다. PC1(빨강)은 점들이 가장 넓게 퍼진 이 방향이고 전체 분산의 91%를 설명합니다. PC2(파랑)는 PC1과 직각인 방향으로, 남은 9%를 설명합니다. 변수가 p개면 최대 p개의 주성분을 얻을 수 있지만, 데이터의 실제 차원에 따라 유효한 주성분은 더 적을 수 있습니다. 주성분의 순서는 설명하는 분산의 크기로 정해집니다.

SECTION 03

직관적인 예: 두 변수를 하나의 축으로 요약하기

그림 2처럼 두 과목 점수가 함께 높아지는 경향이 강하다면, 두 변수를 따로 보기보다 전반적인 성취 수준을 나타내는 축 하나로 요약할 수 있습니다. 각 학생을 PC1 축 위로 내려 찍으면(투영) 두 점수를 숫자 하나로 나타낼 수 있습니다. 이때 PC1 축에 수직인 방향, 즉 PC2 방향의 정보(이 예에서 9%)는 버려지므로 정보 손실이 생깁니다.

반대로 두 점수가 서로 다른 패턴으로 움직인다면 주성분 하나로는 데이터를 충분히 설명하기 어렵습니다.

강하게 함께 움직임서로 다른 패턴PC1이 설명: 96%PC1이 설명: 62%
그림 3. 상관이 강할수록 첫 주성분 하나로 잘 요약된다

그림 3의 왼쪽처럼 두 변수가 강하게 함께 움직이면 PC1 하나가 대부분의 분산을 설명하지만, 오른쪽처럼 따로 움직이면 PC1이 설명하는 비율이 절반을 조금 넘는 수준에 그칩니다. 요약이 잘 되는지는 변수들이 얼마나 겹치는지에 달려 있습니다.

SECTION 04

설명분산과 누적 설명분산

PCA에서 중요한 결과 중 하나는 각 주성분이 전체 분산을 얼마나 설명하는가입니다. 다섯 변수를 표준화해(상관행렬 기반) 분석한 가상 결과를 보겠습니다.

주성분고유값설명분산 비율누적 설명분산
PC12.8056%56%
PC21.2024%80%
PC30.5010%90%
PC40.306%96%
PC50.204%100%
0%20%40%60%80%100%56%PC124%PC210%PC36%PC44%PC556%80%90%96%100%80%설명분산누적
그림 4. 주성분별 설명분산과 누적 설명분산 (원고 예시)
설명분산 비율j = λj / Σλk × 100%
λj: j번째 주성분의 고유값 · 표준화한 변수 5개면 고유값의 합 = 5 · 예: PC1 = 2.80 / 5 = 56%

PC1은 전체 분산의 56%를, PC1과 PC2를 합치면 80%를, PC3까지 쓰면 90%를 설명합니다. 따라서 주성분 두 개만 써도 원래 데이터 분산의 80%를 요약할 수 있습니다. 표준화한 변수는 각각 분산이 1이므로, 고유값 2.80은 "변수 2.8개 분량의 정보"를 담고 있다는 뜻으로 읽을 수 있습니다.

하지만 설명분산 80%가 원래 정보의 80%가 모든 의미에서 보존되었다는 뜻은 아닙니다. PCA가 설명하는 것은 분산이며, 예측 성능이나 특정 결과변수에 대한 설명력이 80%라는 뜻이 아닙니다.

SECTION 05

주성분은 몇 개까지 선택해야 할까?

주성분을 많이 남기면 정보 손실은 줄지만 차원 축소의 이점도 줄고, 너무 적게 남기면 중요한 변동을 놓칩니다. 다음 기준들을 함께 봅니다.

01232.80PC11.20PC20.50PC30.30PC40.20PC5고유값 1 (Kaiser)꺾이는 지점고유값
그림 5. 스크리 플롯: 고유값이 완만해지는 지점과 Kaiser 기준

실제 분석에서는 설명분산, 스크리 플롯, 주성분의 해석 가능성, 분석 목적을 종합해 판단합니다.

SECTION 06

분석 전에 변수를 표준화해야 할까?

PCA 전에 원래 단위를 그대로 쓸지, 표준화할지 정해야 합니다. 예를 들어 연간 지출액(원 단위, 수십만~수백만)과 만족도(1~5점)를 함께 분석하면, 원래 단위에서는 분산이 압도적으로 큰 지출액이 주성분을 거의 혼자 결정합니다.

원래 단위 (공분산행렬)표준화 (상관행렬)연간 지출액1.00만족도0.00연간 지출액0.71만족도0.71분산이 큰 지출액이 PC1을 독차지두 변수가 비슷하게 기여
그림 6. PC1 계수: 단위를 그대로 쓸 때와 표준화할 때 (모의 고객 200명)

그림 6처럼 원래 단위로 분석하면 PC1 계수가 지출액 1.00, 만족도 0.00으로 지출액이 PC1을 독차지합니다. 각 변수의 평균을 0, 표준편차를 1로 맞추는 표준화를 하면 0.71, 0.71로 두 변수가 비슷하게 기여합니다.

Zj = (Xj − X̄j) / sj
표준화한 변수로 PCA를 하면 상관행렬 기반 분석과 같습니다 (02장 6절)

반면 모든 변수가 같은 단위이고 분산의 크기 자체가 중요한 의미를 가진다면 공분산행렬 기반 PCA가 적절할 수 있습니다. 표준화가 항상 정답은 아니며, 변수의 단위, 분산의 의미, 분석 목적에 따라 고릅니다.

SECTION 07

PCA 결과는 어떻게 해석할까?

설명분산만 보는 것으로는 충분하지 않고, 각 원래 변수가 주성분과 어떤 관계인지 확인해야 합니다. 다음과 같은 결과를 얻었다고 가정하겠습니다.

제품 품질0.55사용 편의성0.52서비스 만족도0.49가격 만족도0.20재구매 의향0.38품질 · 편의성 · 서비스가 크게 기여 → "제품 · 서비스 경험" 축으로 해석 (이름은 연구자가 붙임)
그림 7. PC1에 대한 원래 변수의 계수 (원고 예시)

PC1에서 제품 품질(0.55), 사용 편의성(0.52), 서비스 만족도(0.49)의 계수가 상대적으로 크므로, 이 주성분은 세 변수와 밀접한 방향, 예컨대 "제품 · 서비스 경험"을 나타낸다고 해석할 수 있습니다. 재구매 의향(0.38)은 중간 정도, 가격 만족도(0.20)는 작게 기여합니다. 고유벡터 계수이므로 다섯 계수의 제곱합은 1입니다(0.55² + 0.52² + 0.49² + 0.20² + 0.38² ≈ 1.00). 다만 다음을 주의해야 합니다.

또한 주성분 계수와, 변수와 주성분 간 상관인 적재량(loadings)은 소프트웨어와 출력 방식에 따라 구분해서 봐야 합니다. 표준화 여부나 고유벡터의 정규화 방식에 따라 수치의 의미가 달라질 수 있습니다.

SECTION 08

PCA와 요인분석(EFA)은 어떻게 다를까?

PCA와 탐색적 요인분석(EFA)은 모두 여러 변수를 더 적은 차원으로 요약하지만, 목적과 가정이 다릅니다.

PCA: 변수 → 성분EFA: 요인 → 변수 (+ 고유분산)X1X1eX2X2eX3X3eX4X4ePC1요인관측변수를 가중합해 성분을 만든다보이지 않는 요인이 변수를 만든다
그림 8. PCA와 EFA의 방향 차이

그림 8처럼 PCA는 관측변수를 가중합해 성분을 만들고(변수 → 성분), EFA는 보이지 않는 요인이 관측변수를 만든다고 보며 변수마다 요인으로 설명되지 않는 고유 부분(e)을 따로 둡니다(요인 → 변수).

구분주성분분석(PCA)탐색적 요인분석(EFA)
주요 목적데이터의 분산을 요약하고 차원을 축소관측변수 간 상관을 설명하는 잠재요인 탐색
접근 방식원래 변수들의 선형결합으로 주성분 생성공통요인과 고유한 변동을 구분하는 모형
오차 · 고유분산전체 변동을 요약에 활용측정오차와 고유분산을 구분
대표적인 활용데이터 압축, 시각화, 차원 축소설문 문항의 잠재구조 탐색, 척도 개발

설문 문항 15개를 몇 개의 차원으로 줄여 이후 예측모형에 쓰려는 목적이라면 PCA가, 15개 문항이 실제로 ‘서비스 품질’, ‘신뢰’, ‘충성도’ 같은 잠재개념을 측정하는지 탐색하려는 목적이라면 EFA가 더 적절합니다. 두 방법은 결과가 비슷할 때도 있지만 같은 분석은 아닙니다(06장).

SECTION 09

PCA의 한계와 주의점

이상치 없음이상치 2개 추가PC1 기울기 53° · 설명 90%이상치 2개PC1 기울기 77° · 설명 62%
그림 9. 극단적인 관측값 몇 개가 주성분 방향을 바꾼다 (모의 데이터 40명 + 2명)

그림 9의 왼쪽은 관측값 40개의 자료로, PC1이 점들을 따라 비스듬히 놓이고 분산의 90%를 설명합니다. 오른쪽처럼 패턴에서 크게 벗어난 관측값 두 개만 더해도 PC1 방향이 눈에 띄게 돌아가고 설명 비율은 62%로 떨어집니다. 분석 전에 다변량 이상치를 점검해야 하는 이유입니다(02장 7절).

✓ 핵심 정리

여러 변수의 정보를 소수의 주성분으로 요약합니다.


다음은 06 탐색적 요인분석(EFA)입니다. 여러 설문 문항 사이의 상관관계를 바탕으로 공통된 잠재요인을 찾는 방법을 알아봅니다. PCA가 데이터의 변동을 적은 수의 주성분으로 요약한다면, EFA는 관측변수 사이의 공통된 관계를 설명하는 요인을 탐색합니다.

KEY TAKEAWAYS

PCA는 여러 변수의 정보를 분산이 가장 큰 방향부터 새로운 주성분으로 요약합니다. 예제에서는 첫 번째와 두 번째 주성분이 전체 분산의 80%를 설명합니다. 누적 설명분산 비율과 스크리 플롯을 참고해 주성분 개수를 결정하고, 각 변수의 계수를 살펴보며 주성분의 의미를 해석합니다. 또한 표준화 여부와 이상치가 분석 결과에 영향을 줄 수 있으므로 데이터의 특성을 함께 확인해야 합니다.