주성분분석 (PCA)
여러 변수의 정보를 적은 수의 새 변수로 요약
여러 변수를 분석하다 보면 서로 비슷한 정보를 담고 있는 변수가 많을 수 있습니다. 예를 들어 고객 설문에서 가격 만족도, 품질 만족도, 서비스 만족도, 전반적인 만족도를 함께 측정했다면 변수마다 정보를 따로 살펴보는 것이 복잡할 수 있습니다. 이럴 때 쓰는 방법 중 하나가 주성분분석(PCA, Principal Component Analysis)입니다. 여러 변수의 정보를 최대한 유지하면서 더 적은 수의 새로운 변수로 요약합니다. PCA는 변수를 지우는 방법이 아니라, 원래 변수들을 조합해 데이터의 변동을 잘 설명하는 새로운 축을 만드는 방법입니다.
주성분분석은 왜 필요할까?
한 기업이 고객 경험을 평가하려고 제품 품질, 사용 편의성, 서비스 만족도, 가격 만족도, 재구매 의향의 다섯 항목을 측정했다고 하겠습니다. 이 변수들이 서로 관련되어 있다면 일부는 비슷한 정보를 담고 있습니다. 예를 들어 제품 품질과 사용 편의성은 함께 높게 평가되는 경향이 있을 수 있습니다.
PCA는 그림 1처럼 이런 여러 변수를 조합해 데이터의 주요 변동을 설명하는 소수의 주성분을 만듭니다. 다만 주성분은 원래 변수의 이름을 그대로 갖지 않습니다. 여러 변수를 가중합한 새 변수이므로, 무엇을 의미하는지는 각 변수의 기여도를 보고 해석해야 합니다(7절).
주성분은 어떻게 만들어질까?
PCA의 핵심은 원래 변수들을 선형결합해 새 변수를 만드는 것입니다. 변수 X₁, X₂, X₃이 있다면 주성분은 다음과 같습니다.
aij: 각 원래 변수가 주성분에 반영되는 가중치
- PC1: 데이터의 분산을 가장 많이 설명하는 방향
- PC2: PC1과 직교하면서 남은 분산을 가장 많이 설명하는 방향
- PC3: 앞의 두 주성분과 직교하면서 그다음으로 많은 분산을 설명하는 방향
그림 2는 학생 80명의 수학 · 과학 점수입니다. 두 과목이 함께 높아지는 경향이 강해서, 점들이 오른쪽 위로 길게 퍼져 있습니다. PC1(빨강)은 점들이 가장 넓게 퍼진 이 방향이고 전체 분산의 91%를 설명합니다. PC2(파랑)는 PC1과 직각인 방향으로, 남은 9%를 설명합니다. 변수가 p개면 최대 p개의 주성분을 얻을 수 있지만, 데이터의 실제 차원에 따라 유효한 주성분은 더 적을 수 있습니다. 주성분의 순서는 설명하는 분산의 크기로 정해집니다.
직관적인 예: 두 변수를 하나의 축으로 요약하기
그림 2처럼 두 과목 점수가 함께 높아지는 경향이 강하다면, 두 변수를 따로 보기보다 전반적인 성취 수준을 나타내는 축 하나로 요약할 수 있습니다. 각 학생을 PC1 축 위로 내려 찍으면(투영) 두 점수를 숫자 하나로 나타낼 수 있습니다. 이때 PC1 축에 수직인 방향, 즉 PC2 방향의 정보(이 예에서 9%)는 버려지므로 정보 손실이 생깁니다.
반대로 두 점수가 서로 다른 패턴으로 움직인다면 주성분 하나로는 데이터를 충분히 설명하기 어렵습니다.
그림 3의 왼쪽처럼 두 변수가 강하게 함께 움직이면 PC1 하나가 대부분의 분산을 설명하지만, 오른쪽처럼 따로 움직이면 PC1이 설명하는 비율이 절반을 조금 넘는 수준에 그칩니다. 요약이 잘 되는지는 변수들이 얼마나 겹치는지에 달려 있습니다.
설명분산과 누적 설명분산
PCA에서 중요한 결과 중 하나는 각 주성분이 전체 분산을 얼마나 설명하는가입니다. 다섯 변수를 표준화해(상관행렬 기반) 분석한 가상 결과를 보겠습니다.
| 주성분 | 고유값 | 설명분산 비율 | 누적 설명분산 |
|---|---|---|---|
| PC1 | 2.80 | 56% | 56% |
| PC2 | 1.20 | 24% | 80% |
| PC3 | 0.50 | 10% | 90% |
| PC4 | 0.30 | 6% | 96% |
| PC5 | 0.20 | 4% | 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%라는 뜻이 아닙니다.
주성분은 몇 개까지 선택해야 할까?
주성분을 많이 남기면 정보 손실은 줄지만 차원 축소의 이점도 줄고, 너무 적게 남기면 중요한 변동을 놓칩니다. 다음 기준들을 함께 봅니다.
- 스크리 플롯: 고유값이 급격히 줄다가 완만해지는 지점을 찾습니다. 그림 5에서는 PC3부터 완만해집니다.
- 누적 설명분산: 80%나 90%를 참고할 수 있지만 절대적인 기준은 아닙니다.
- 고유값 기준(Kaiser): 상관행렬 기반 PCA에서 고유값이 1보다 큰 주성분(여기서는 PC1, PC2)을 고릅니다. 고유값 1은 "원래 변수 하나만큼의 분산"이라는 뜻입니다. 다만 이 기준만으로 정하는 것은 권장되지 않습니다.
실제 분석에서는 설명분산, 스크리 플롯, 주성분의 해석 가능성, 분석 목적을 종합해 판단합니다.
분석 전에 변수를 표준화해야 할까?
PCA 전에 원래 단위를 그대로 쓸지, 표준화할지 정해야 합니다. 예를 들어 연간 지출액(원 단위, 수십만~수백만)과 만족도(1~5점)를 함께 분석하면, 원래 단위에서는 분산이 압도적으로 큰 지출액이 주성분을 거의 혼자 결정합니다.
그림 6처럼 원래 단위로 분석하면 PC1 계수가 지출액 1.00, 만족도 0.00으로 지출액이 PC1을 독차지합니다. 각 변수의 평균을 0, 표준편차를 1로 맞추는 표준화를 하면 0.71, 0.71로 두 변수가 비슷하게 기여합니다.
표준화한 변수로 PCA를 하면 상관행렬 기반 분석과 같습니다 (02장 6절)
반면 모든 변수가 같은 단위이고 분산의 크기 자체가 중요한 의미를 가진다면 공분산행렬 기반 PCA가 적절할 수 있습니다. 표준화가 항상 정답은 아니며, 변수의 단위, 분산의 의미, 분석 목적에 따라 고릅니다.
PCA 결과는 어떻게 해석할까?
설명분산만 보는 것으로는 충분하지 않고, 각 원래 변수가 주성분과 어떤 관계인지 확인해야 합니다. 다음과 같은 결과를 얻었다고 가정하겠습니다.
PC1에서 제품 품질(0.55), 사용 편의성(0.52), 서비스 만족도(0.49)의 계수가 상대적으로 크므로, 이 주성분은 세 변수와 밀접한 방향, 예컨대 "제품 · 서비스 경험"을 나타낸다고 해석할 수 있습니다. 재구매 의향(0.38)은 중간 정도, 가격 만족도(0.20)는 작게 기여합니다. 고유벡터 계수이므로 다섯 계수의 제곱합은 1입니다(0.55² + 0.52² + 0.49² + 0.20² + 0.38² ≈ 1.00). 다만 다음을 주의해야 합니다.
- 주성분 계수는 변수의 단위와 표준화 여부에 영향을 받습니다(6절).
- 주성분 전체의 부호를 뒤집어도 같은 해이므로, 양수 · 음수 자체를 절대적인 의미로 해석하지 않습니다.
- 계수가 크다고 그 변수가 인과적으로 더 중요하다는 뜻은 아닙니다.
- 주성분의 이름은 통계적으로 자동 결정되지 않고, 변수들의 의미를 검토해 연구자가 붙입니다.
또한 주성분 계수와, 변수와 주성분 간 상관인 적재량(loadings)은 소프트웨어와 출력 방식에 따라 구분해서 봐야 합니다. 표준화 여부나 고유벡터의 정규화 방식에 따라 수치의 의미가 달라질 수 있습니다.
PCA와 요인분석(EFA)은 어떻게 다를까?
PCA와 탐색적 요인분석(EFA)은 모두 여러 변수를 더 적은 차원으로 요약하지만, 목적과 가정이 다릅니다.
그림 8처럼 PCA는 관측변수를 가중합해 성분을 만들고(변수 → 성분), EFA는 보이지 않는 요인이 관측변수를 만든다고 보며 변수마다 요인으로 설명되지 않는 고유 부분(e)을 따로 둡니다(요인 → 변수).
| 구분 | 주성분분석(PCA) | 탐색적 요인분석(EFA) |
|---|---|---|
| 주요 목적 | 데이터의 분산을 요약하고 차원을 축소 | 관측변수 간 상관을 설명하는 잠재요인 탐색 |
| 접근 방식 | 원래 변수들의 선형결합으로 주성분 생성 | 공통요인과 고유한 변동을 구분하는 모형 |
| 오차 · 고유분산 | 전체 변동을 요약에 활용 | 측정오차와 고유분산을 구분 |
| 대표적인 활용 | 데이터 압축, 시각화, 차원 축소 | 설문 문항의 잠재구조 탐색, 척도 개발 |
설문 문항 15개를 몇 개의 차원으로 줄여 이후 예측모형에 쓰려는 목적이라면 PCA가, 15개 문항이 실제로 ‘서비스 품질’, ‘신뢰’, ‘충성도’ 같은 잠재개념을 측정하는지 탐색하려는 목적이라면 EFA가 더 적절합니다. 두 방법은 결과가 비슷할 때도 있지만 같은 분석은 아닙니다(06장).
PCA의 한계와 주의점
- ① 분산이 큰 방향이 가장 중요한 방향이라는 보장은 없습니다. PCA는 결과변수와의 관계를 고려하지 않으므로, 분산이 작은 변수가 연구상 중요한 정보를 담고 있을 수 있습니다.
- ② 주성분은 해석하기 어려울 수 있습니다. 여러 변수에 비슷한 가중치가 섞이면 의미가 모호해집니다.
- ③ 이상치의 영향을 받습니다. 분산으로 축을 정하므로 극단값이 방향을 크게 바꿀 수 있습니다.
- ④ 척도와 전처리가 결과를 바꿉니다. 표준화 여부, 결측값 처리, 변수 선택에 따라 주성분과 설명분산이 달라집니다.
- ⑤ 차원 축소 과정에서 정보가 손실됩니다. 남기지 않은 주성분의 변동은 분석에 반영되지 않습니다.
그림 9의 왼쪽은 관측값 40개의 자료로, PC1이 점들을 따라 비스듬히 놓이고 분산의 90%를 설명합니다. 오른쪽처럼 패턴에서 크게 벗어난 관측값 두 개만 더해도 PC1 방향이 눈에 띄게 돌아가고 설명 비율은 62%로 떨어집니다. 분석 전에 다변량 이상치를 점검해야 하는 이유입니다(02장 7절).
여러 변수의 정보를 소수의 주성분으로 요약합니다.
- 주성분분석(PCA)은 여러 변수의 정보를 새로운 축으로 요약하여 데이터의 차원을 줄이는 방법입니다.
- 첫 번째 주성분(PC1)은 데이터의 분산을 가장 많이 설명하는 방향입니다. 이후 주성분은 앞선 주성분과 직교하면서 남은 분산을 최대한 설명합니다.
- 고유값과 설명분산 비율은 각 주성분이 전체 변동을 얼마나 설명하는지 보여줍니다.
- 주성분 개수는 누적 설명분산 비율, 스크리 플롯, 분석 목적과 해석 가능성을 종합해 결정합니다.
- 변수마다 측정 단위나 분산이 크게 다르면 표준화를 고려해야 합니다. 다만 모든 데이터에 표준화가 필요한 것은 아닙니다.
- PCA는 데이터의 변동을 요약하는 방법이며, 관측변수 사이에 공통으로 작용하는 잠재요인을 탐색하는 EFA와 목적이 다릅니다.
다음은 06 탐색적 요인분석(EFA)입니다. 여러 설문 문항 사이의 상관관계를 바탕으로 공통된 잠재요인을 찾는 방법을 알아봅니다. PCA가 데이터의 변동을 적은 수의 주성분으로 요약한다면, EFA는 관측변수 사이의 공통된 관계를 설명하는 요인을 탐색합니다.
PCA는 여러 변수의 정보를 분산이 가장 큰 방향부터 새로운 주성분으로 요약합니다. 예제에서는 첫 번째와 두 번째 주성분이 전체 분산의 80%를 설명합니다. 누적 설명분산 비율과 스크리 플롯을 참고해 주성분 개수를 결정하고, 각 변수의 계수를 살펴보며 주성분의 의미를 해석합니다. 또한 표준화 여부와 이상치가 분석 결과에 영향을 줄 수 있으므로 데이터의 특성을 함께 확인해야 합니다.