주성분 분석 (PCA)
1. 개요
1. 개요
주성분 분석(PCA)은 고차원 데이터의 차원을 축소하는 통계적 기법이다. 데이터의 분산을 최대한 보존하면서 서로 상관관계가 없는 새로운 변수인 주성분(PC)들을 찾아내는 것이 핵심 목표이다. 이 기법은 다변량 분석과 기계 학습 분야에서 널리 활용된다.
PCA는 데이터의 공분산 구조를 분석하여, 데이터가 가장 널리 퍼져 있는 방향, 즉 분산이 가장 큰 방향을 순차적으로 찾는다. 첫 번째 주성분은 분산을 최대화하는 방향이며, 두 번째 주성분은 첫 번째와 직교하면서 남은 분산을 최대화하는 방향으로 정의된다. 이 과정을 데이터의 원래 차원 수만큼 반복할 수 있다.
이 방법의 결과로 얻어지는 주성분들은 서로 직교하며 상관관계가 없다. 사용자는 분산 설명 비율에 따라 상위 몇 개의 주성분만을 선택함으로써 고차원 데이터를 저차원 공간으로 효과적으로 투영할 수 있다. 이는 차원의 저주 문제를 완화하고 계산 효율성을 높인다.
PCA는 데이터 전처리, 시각화, 노이즈 제거, 특징 추출 등 다양한 목적으로 사용된다. 예를 들어, 얼굴 인식에서 고유 얼굴(Eigenface) 기법의 기초가 되거나, 금융에서 위험 요인을 분석하는 데 적용된다.
2. 수학적 배경
2. 수학적 배경
공분산 행렬은 데이터의 각 변수(특징) 간 선형 관계를 나타내는 행렬이다. 주성분 분석의 핵심은 이 공분산 행렬의 고유값 분해에 있다. 데이터를 표준화(평균 0, 분산 1)한 후, 공분산 행렬을 계산하고, 이를 고유값과 고유벡터로 분해한다. 이때 얻어지는 고유벡터가 주성분의 방향을, 고유값은 해당 주성분이 설명하는 데이터 분산의 크기를 나타낸다. 고유값이 큰 순서대로 정렬된 고유벡터가 첫 번째, 두 번째 주성분이 된다.
주성분 분석은 두 가지 동등한 수학적 관점으로 해석할 수 있다. 첫 번째는 분산 최대화 관점이다. 이 관점에서는 원본 데이터를 새로운 좌표축(주성분)에 투영했을 때 그 분산이 최대가 되는 축을 순차적으로 찾는다. 첫 번째 주성분은 데이터의 분산을 가장 많이 설명하는 방향이며, 두 번째 주성분은 첫 번째와 직교하는 조건 하에서 남은 분산을 최대화하는 방향이다.
관점 | 목표 | 수학적 표현 (요약) |
|---|---|---|
분산 최대화 | 투영된 데이터의 분산을 최대화하는 축 찾기 | $\arg\max_{\ |
오차 최소화 | 원본 데이터와 재구성된 데이터 간 거리 최소화 | $\arg\min \ |
두 번째는 오차 최소화 또는 재구성 오차 최소화 관점이다. 이 관점에서는 데이터를 k개의 주성분으로 구성된 저차원 공간에 투영한 후 다시 원래의 고차원 공간으로 재구성했을 때, 원본 데이터와 재구성된 데이터 사이의 평균 제곱 오차가 최소가 되도록 하는 축을 찾는다. 놀랍게도 이 두 관점(분산 최대화와 오차 최소화)은 동일한 해, 즉 공분산 행렬의 고유벡터를 주성분으로 제공한다는 것이 수학적으로 증명되어 있다[1].
2.1. 공분산 행렬과 고유값 분해
2.1. 공분산 행렬과 고유값 분해
공분산 행렬은 주성분 분석의 핵심 수학적 도구이다. 데이터의 각 변수(특징) 쌍 간의 선형 관계를 나타내는 행렬로, 데이터의 구조를 요약한다. 표준화된 데이터 행렬을 X라고 할 때, 공분산 행렬 C는 C = (1/(n-1)) * X^T * X로 계산된다[2]. 이 행렬은 대칭적이며, 대각선 요소는 각 변수의 분산을, 비대각선 요소는 공분산을 나타낸다.
주성분 분석의 목표는 이 공분산 행렬을 고유값 분해하는 것이다. 고유값 분해는 행렬을 고유벡터와 고유값의 곱으로 분해하는 과정이다. 공분산 행렬 C에 대해, C * v = λ * v를 만족하는 0이 아닌 벡터 v(고유벡터)와 스칼라 λ(고유값)를 찾는다. 이때, 고유벡터는 새로운 좌표축인 주성분의 방향을, 고유값은 해당 주성분 축 상의 데이터 분산 크기를 의미한다.
개념 | 수학적 의미 | PCA에서의 역할 |
|---|---|---|
고유벡터 (v) | 변환 방향을 나타내는 단위 벡터 | 주성분의 축 방향 |
고유값 (λ) | 해당 고유벡터 방향의 스케일(크기) | 주성분이 설명하는 분산의 양 |
공분산 행렬 (C) | 변수 간 선형 관계를 요약한 행렬 | 고유값 분해의 대상 |
고유값 분해 결과, 고유값이 큰 순서대로 정렬된 고유벡터들이 순차적으로 가장 큰 분산을 가지는 새로운 직교 좌표계를 구성한다. 첫 번째 주성분은 가장 큰 고유값에 대응하는 고유벡터 방향이며, 데이터의 변동성을 가장 많이 설명한다. 이 과정을 통해 원본 데이터의 상관관계가 제거된 새로운 표현을 얻을 수 있다.
2.2. 분산 최대화 관점
2.2. 분산 최대화 관점
주성분 분석의 핵심 목표는 원본 데이터의 분산을 최대한 보존하는 새로운 직교 좌표계를 찾는 것이다. 이 관점에서는 데이터의 분산을 최대화하는 방향을 순차적으로 찾아 주성분을 정의한다. 첫 번째 주성분은 데이터의 분산을 가장 크게 만드는 투영 방향의 단위 벡터이다. 두 번째 주성분은 첫 번째 주성분과 직교하는 조건 하에서 남은 분산을 최대화하는 방향으로 정의되며, 이 과정을 반복한다.
수학적으로, 데이터 행렬 X(각 행이 관측치, 각 열이 변수, 평균이 0으로 조정되었다고 가정)가 주어졌을 때, 단위 벡터 w 방향으로 투영된 데이터의 분산은 w^T Σ w로 계산된다. 여기서 Σ는 데이터의 공분산 행렬이다. 따라서 첫 번째 주성분을 찾는 문제는 제약 조건 ||w||=1 하에서 w^T Σ w를 최대화하는 w를 찾는 최적화 문제가 된다. 이 문제의 해는 공분산 행렬 Σ의 가장 큰 고유값에 해당하는 고유벡터임이 알려져 있다.
주성분 순서 | 최적화 목표 | 수학적 해 |
|---|---|---|
제1 주성분 | 분산 w^T Σ w 최대화 | Σ의 최대 고유값에 대응하는 고유벡터 |
제2 주성분 | 분산 최대화 (단, 제1 주성분과 직교) | Σ의 두 번째 고유값에 대응하는 고유벡터 |
제k 주성분 | 분산 최대화 (단, 기존 모든 주성분과 직교) | Σ의 k번째 고유값에 대응하는 고유벡터 |
이렇게 얻은 고유벡터들은 서로 직교하며, 대응하는 고유값의 크기는 각 주성분 방향으로 설명되는 분산의 양을 나타낸다. 따라서 고유값의 크기를 분석하면 각 주성분의 상대적 중요도를 파악할 수 있다. 분산 최대화 관점은 PCA의 직관적인 이해를 제공하며, 데이터의 변동성이 가장 큰 방향을 찾아 정보를 집약한다는 원리를 명확히 보여준다.
2.3. 오차 최소화 관점
2.3. 오차 최소화 관점
주성분 분석의 오차 최소화 관점은 데이터를 저차원 부분공간에 투영했을 때 발생하는 복원 오차를 최소화하는 문제로 해석한다. 이 관점은 원본 데이터와 저차원 투영 후 다시 복원된 데이터 사이의 거리(보통 유클리드 거리의 제곱합)를 최소화하는 직교 투영을 찾는 것과 동일하다.
구체적으로, 데이터 행렬 X의 각 샘플을 새로운 주성분 축으로 이루어진 k차원 부분공간에 투영하고, 이를 다시 원래의 공간으로 복원했을 때의 오차를 고려한다. 이 재구성 오차의 제곱합을 최소화하는 최적의 부분공간은, 데이터의 공분산 행렬의 가장 큰 k개의 고유값에 대응하는 고유벡터로 이루어진 공간이다. 이는 분산 최대화 관점과 수학적으로 동치인 결과를 제공한다.
다음 표는 두 관점의 대비를 보여준다.
관점 | 최적화 목표 | 해결 방법 |
|---|---|---|
분산 최대화 | 투영된 데이터의 분산 최대화 | 공분산 행렬의 최대 고유값에 해당하는 고유벡터 선택 |
오차 최소화 | 원본과 복원 데이터 간의 거리 최소화 | 공분산 행렬의 최소 고유값을 버리는 고유벡터 선택 |
이 관점은 PCA가 데이터를 저차원으로 압축하는 과정에서 정보 손실을 최소화하는 선형 변환임을 명확히 보여준다. 따라서 PCA는 데이터의 본질적인 구조를 가장 잘 보존하면서 차원을 줄이는 효율적인 코딩(coding) 방식으로 이해될 수 있다.
3. PCA 알고리즘
3. PCA 알고리즘
주성분 분석 알고리즘은 표준화된 데이터를 바탕으로 주성분을 찾아 차원을 축소하는 체계적인 과정을 포함한다. 핵심은 데이터의 공분산 구조를 분석하여 분산이 가장 큰 방향의 새로운 축을 순차적으로 구성하는 것이다.
알고리즘의 단계별 계산 과정은 다음과 같다.
1. 데이터 표준화: 각 특성 변수의 평균을 0, 분산을 1로 조정한다. 이 단계는 척도 차이로 인한 편향을 방지한다.
2. 공분산 행렬 계산: 표준화된 데이터 행렬 \(X\)에 대해 공분산 행렬 \(C = \frac{1}{n-1} X^T X\)를 구한다. 이 행렬은 변수들 간의 선형 관계를 요약한다.
3. 고유값 분해: 공분산 행렬 \(C\)를 고유값 분해하여 고유값과 고유벡터를 얻는다. 고유벡터는 새로운 좌표축인 주성분의 방향을, 고유값은 해당 주성분 방향으로의 데이터 분산 크기를 나타낸다.
4. 주성분 선택 및 변환: 고유값이 큰 순서대로 고유벡터(주성분)를 정렬한 후, 선택할 주성분 개수 \(k\)만큼 상위 \(k\)개의 고유벡터를 추출한다. 이 벡터들로 구성된 투영 행렬 \(W\)를 사용해 원본 데이터를 새로운 공간으로 변환한다: \(Z = X W\).
주성분 개수 \(k\)를 선택하는 방법은 여러 가지가 있다. 가장 일반적인 방법은 설명된 분산 비율을 기준으로 하는 것이다. 누적 설명 분산 비율이 일정 기준(예: 95%) 이상이 되도록 하는 최소의 \(k\)를 선택한다. 다른 방법으로는 스크리 그림을 사용하는 것이 있다. 고유값을 크기순으로 그래프로 그렸을 때, 고유값이 급격히 감소하다가 완만해지는 지점(팔꿈치 지점) 이전의 성분들을 선택한다. 또한, 교차 검증을 통해 재구성 오차를 최소화하는 \(k\)를 찾거나, 특정 응용 분야의 요구사항에 따라 사전에 고정된 개수를 설정하기도 한다.
선택 방법 | 설명 | 기준/특징 |
|---|---|---|
설명 분산 비율 | 선택한 주성분이 원본 데이터 분산의 어느 정도를 설명하는지 누적 비율로 확인 | 일반적으로 70~95% 수준을 목표로 함 |
스크리 그림 | 고유값의 크기를 그래프로 시각화하여 급격한 변화가 줄어드는 지점(팔꿈치) 선택 | 주관적 판단이 개입될 수 있음 |
교차 검증 | 일부 데이터를 가려놓고 재구성 오차를 측정하여 최적의 k 탐색 | 계산 비용이 높지만 데이터 중심의 객관적 선택 가능 |
3.1. 단계별 계산 과정
3.1. 단계별 계산 과정
주성분 분석의 알고리즘은 데이터를 표준화하는 단계부터 시작하여 새로운 주성분 좌표계로 변환하는 과정까지 체계적으로 진행된다. 다음은 그 단계별 계산 과정이다.
1. 데이터 표준화 (Standardization)
주성분 분석은 변수의 분산에 크게 영향을 받기 때문에, 서로 다른 척도(scale)를 가진 변수들을 비교 가능하도록 만드는 것이 중요하다. 각 변수(특징)에 대해 평균을 0, 표준편차를 1로 조정하는 표준화를 수행한다. *j*번째 변수의 평균이 μ_j이고 표준편차가 σ_j일 때, *i*번째 샘플의 값 x_ij는 다음과 같이 변환된다.
z_ij = (x_ij - μ_j) / σ_j
2. 공분산 행렬 계산 (Covariance Matrix Computation)
표준화된 데이터 행렬 Z (n개의 샘플과 p개의 변수)가 주어졌을 때, 변수들 간의 관계를 나타내는 공분산 행렬 C를 계산한다. 표준화된 데이터의 경우, 이 공분산 행렬은 상관관계 행렬과 동일하다. 공분산 행렬은 p x p 크기의 대칭 행렬이며, (j, k) 요소는 j번째 변수와 k번째 변수 간의 공분산을 나타낸다.
3. 고유값 분해 수행 (Eigen Decomposition)
계산된 공분산 행렬 C에 대해 고유값 분해를 수행한다. 이는 다음 방정식을 만족하는 고유벡터 v와 고유값 λ를 찾는 과정이다.
Cv = λv
이 과정에서 p개의 고유값(λ_1, λ_2, ..., λ_p)과 이에 대응하는 p개의 고유벡터(v_1, v_2, ..., v_p)를 얻는다. 고유값은 각 주성분이 설명하는 분산의 양을, 고유벡터는 그 주성분의 방향(축)을 나타낸다.
4. 주성분 선택 및 투영 (Selection and Projection)
고유값을 내림차순으로 정렬하고, 그에 해당하는 고유벡터(주성분 축)의 순서도 동일하게 재배열한다. 설명된 분산의 비율이나 누적 기여도를 기준으로 유지할 주성분의 개수 k (k ≤ p)를 선택한다. 최종적으로, 원본 표준화 데이터 Z를 선택된 k개의 고유벡터로 구성된 투영 행렬 W (p x k)에 곱하여 새로운 저차원 데이터 Y (n x k)를 얻는다. 이 변환은 Y = ZW 공식으로 수행된다.
3.2. 주성분 개수 선택 방법
3.2. 주성분 개수 선택 방법
주성분 개수 선택은 주성분 분석 모델의 복잡도와 설명력을 결정하는 핵심 단계이다. 너무 적은 주성분을 선택하면 원본 데이터의 정보를 과도하게 손실하게 되고, 너무 많은 주성분을 선택하면 차원 축소의 의미가 퇴색하며 과적합의 위험이 생긴다. 따라서 분석 목적에 따라 적절한 기준을 적용하여 주성분의 수를 결정해야 한다.
가장 일반적인 방법은 누적 설명 분산 비율을 사용하는 것이다. 각 주성분은 데이터의 총 분산 중 일부를 설명하며, 그 비율은 해당 고유값의 크기에 비례한다. 분석자는 보통 누적 설명 분산 비율이 80~95%에 도달하는 지점까지의 주성분 개수를 선택한다. 예를 들어, 첫 k개의 주성분이 총 분산의 90%를 설명한다면, 나머지 성분은 대부분 노이즈로 간주하고 k개만을 선택한다.
선택 방법 | 설명 | 기준 |
|---|---|---|
스크리 그림 | 고유값을 크기순으로 그래프로 나타내어 기울기가 급격히 꺾이는 지점(팔꿈치)을 선택 | 그래프의 꺾이는 지점 |
누적 설명 분산 비율 | 주성분을 순서대로 더해가며 설명하는 분산의 누적 비율이 목표치(예: 95%)를 넘는 최소 개수 선택 | 미리 설정한 임계값(예: 0.95) |
카이저 기준 | 평균 고유값보다 큰 고유값에 대응하는 주성분만을 선택 | 고유값 > 1 (표준화된 데이터의 경우) |
또 다른 직관적인 방법은 스크리 그림을 이용하는 것이다. 이는 각 주성분에 대응하는 고유값을 내림차순으로 그래프에 나타낸 것이다. 그래프에서 고유값이 급격히 감소하다가 완만해지는 지점, 즉 "팔꿈치"가 나타나는 부분까지의 주성분을 유의미한 것으로 판단하고 선택한다. 한편, 카이저 기준은 표준화된 데이터에 대해 고유값이 1 이상인 성분만을 유지하는 간단한 규칙이다. 그러나 이 방법은 주성분 개수를 과대평가할 수 있다는 비판도 있다. 최근에는 교차 검증을 통해 재구성 오차를 최소화하는 주성분 수를 선택하는 방법도 사용된다[3].
4. 특징 및 장단점
4. 특징 및 장단점
주성분 분석은 데이터의 공분산 행렬을 분석하여 통계적 특성을 보존하는 선형 변환을 수행한다. 이 과정에서 원본 데이터의 상관관계를 제거하고, 서로 직교하는 새로운 기저 벡터인 주성분을 생성한다. 첫 번째 주성분은 데이터의 분산을 가장 크게 설명하는 방향이며, 이후 성분들은 남은 분산을 순차적으로 최대화하는 방향으로 정의된다.
주성분 분석의 주요 장점은 다음과 같다. 첫째, 고차원 데이터의 차원을 효과적으로 축소하여 계산 효율성을 높이고 차원의 저주 문제를 완화한다. 둘째, 변환된 주성분들은 서로 직교하므로 다중공선성 문제가 제거된다. 셋째, 데이터의 전체 분산 중 대부분을 소수의 주성분으로 설명할 수 있어 데이터 압축 및 노이즈 제거에 유용하다. 넷째, 알고리즘이 비교적 직관적이고 구현이 용이하다.
반면, 주성분 분석에는 몇 가지 한계점도 존재한다. 가장 큰 단점은 선형 변환에 기반하기 때문에 비선형 구조를 가진 데이터에는 효과적이지 않을 수 있다는 점이다. 또한, 주성분의 해석이 원본 변수보다 어려울 수 있으며, 데이터의 스케일에 민감하기 때문에 표준화나 정규화 전처리가 필수적이다. 마지막으로, 분산이 큰 방향을 우선시하기 때문에 클래스 분리와 같은 특정 목적에는 최적이 아닐 수 있다.
장점 | 단점 |
|---|---|
차원 축소를 통한 계산 효율성 향상 | 선형 가정으로 인한 비선형 데이터 한계 |
다중공선성 제거 | 주성분의 해석 용이성 저하 |
데이터 압축 및 노이즈 제거 가능 | 데이터 스케일에 민감 (전처리 필요) |
알고리즘의 직관성과 구현 용이성 | 분산 최대화가 항상 목적에 부합하지는 않음 |
이러한 특징들로 인해 주성분 분석은 탐색적 데이터 분석, 시각화, 전처리 단계에서 널리 활용되지만, 문제의 특성과 목적에 따라 다른 차원 축소 기법과 비교하여 적용 여부를 결정해야 한다.
5. 응용 분야
5. 응용 분야
주성분 분석은 고차원 데이터를 저차원으로 변환하면서 데이터의 주요 구조를 보존하는 기법이다. 주요 응용 분야는 다음과 같다.
차원 축소와 시각화
PCA의 가장 기본적인 응용은 고차원 데이터의 차원을 축소하는 것이다. 예를 들어, 수백 개의 특징을 가진 데이터셋을 첫 번째와 두 번째 주성분만 사용하여 2차원 또는 3차원으로 축소할 수 있다. 이렇게 축소된 데이터는 산점도로 시각화하여 데이터 포인트들의 군집 구조나 분포 패턴을 직관적으로 파악하는 데 활용된다. 생물정보학에서 유전자 발현 데이터를 시각화하거나, 자연어 처리에서 문서 벡터의 분포를 살펴보는 경우에 널리 사용된다.
노이즈 제거
PCA는 데이터의 분산이 큰 방향, 즉 주요 성분을 찾아내고 분산이 작은 방향의 성분은 무시한다. 이 원리를 이용하여 노이즈를 제거할 수 있다. 일반적으로 노이즈는 분산이 작은 성분에 많이 포함되어 있다고 가정한다. 따라서 전체 주성분 중에서 상위 k개의 주요 성분만을 선택하여 데이터를 재구성하면, 원본 데이터의 신호는 대부분 유지하면서 노이즈 성분을 효과적으로 걸러낼 수 있다. 이미지 처리나 신호 처리 분야에서 이 기법이 자주 적용된다.
특징 추출
기계 학습 모델의 입력으로 사용하기 위한 특징 추출 과정에서 PCA가 활용된다. 원본 특징 공간이 매우 크거나 특징들 간에 높은 상관관계가 있을 경우, PCA를 통해 서로 직교하며 분산이 큰 새로운 특징 집합(주성분)을 생성할 수 있다. 이렇게 생성된 새로운 특징들은 차원이 낮고 서로 독립적이어서, 이후의 분류나 회귀 모델의 계산 효율성을 높이고 과적합 위험을 줄이는 데 기여한다. 얼굴 인식 시스템에서의 Eigenface는 PCA를 특징 추출에 적용한 대표적인 사례이다.
응용 분야 | 핵심 목적 | 주요 활용 예시 |
|---|---|---|
차원 축소와 시각화 | 고차원 데이터를 2-3차원으로 줄여 직관적 이해 | 유전자 데이터, 문서 군집 시각화 |
노이즈 제거 | 분산이 작은 성분 제거로 데이터 정제 | 이미지 복원, 신호 처리 |
특징 추출 | 상관관계 높은 원본 특징을 독립적 저차원 특징으로 변환 | 얼굴 인식(Eigenface), 기계 학습 전처리 |
5.1. 차원 축소와 시각화
5.1. 차원 축소와 시각화
주성분 분석의 가장 기본적이고 널리 알려진 응용은 고차원 데이터의 차원 축소이다. 원본 데이터를 주요 변동 방향인 주성분으로 투영하여, 정보 손실을 최소화하면서도 데이터를 저차원 공간으로 표현할 수 있다. 이는 계산 비용 절감, 과적합 방지, 데이터 압축 등 다양한 목적으로 활용된다.
차원 축소의 직접적인 결과물은 데이터의 시각화에 활용된다. 인간은 3차원 이상의 공간을 직관적으로 이해하기 어렵기 때문에, 데이터를 가장 분산이 큰 첫 번째와 두 번째 주성분으로 투영하여 2차원 산점도로 나타내는 것이 일반적이다. 이를 통해 고차원 데이터의 군집 구조, 이상치, 또는 전체적인 분포 형태를 육안으로 확인할 수 있다.
응용 분야 | 설명 | 활용 예 |
|---|---|---|
데이터 탐색 | 고차원 데이터의 구조를 빠르게 파악 | 군집 분석 전의 예비 분석, 특징 간 상관관계 파악 |
시각적 분석 | 복잡한 데이터 패턴을 직관적으로 이해 | 유전자 발현 데이터에서 샘플 그룹 분리 확인, 문서 주제 분포 시각화 |
전처리 단계 | 후속 분석을 위한 차원 감소 |
이러한 시각화는 단순히 그래프를 그리는 것을 넘어, 데이터에 내재된 잠재 구조를 발견하는 탐색적 데이터 분석의 강력한 도구 역할을 한다. 예를 들어, 수백 개의 특징을 가진 고객 데이터를 2차원으로 축소하면, 서로 다른 세그먼트의 고객들이 시각적으로 구분되는 군집을 형성하는 것을 관찰할 수 있다.
5.2. 노이즈 제거
5.2. 노이즈 제거
주성분 분석은 데이터의 주요 변동 방향을 포착하여 노이즈를 효과적으로 분리하고 제거하는 데 활용된다. 이 과정은 데이터의 공분산 행렬을 분석하여 분산이 큰 방향(주성분)과 분산이 작은 방향을 구분하는 원리에 기반한다. 일반적으로 후자의 방향은 무작위 오차나 측정 오류와 같은 노이즈 성분에 해당할 가능성이 높다.
노이즈 제거 절차는 다음과 같다. 먼저, 원본 데이터에 대해 PCA를 수행하여 주성분을 추출한다. 그런 다음, 중요도가 낮은 주성분(즉, 작은 고유값에 대응하는 성분)을 제외하고 주요 주성분만을 선택하여 데이터를 재구성한다. 이 재구성 과정에서 데이터의 본질적인 구조는 보존되지만, 중요하지 않은 변동 성분은 걸러져 제거된다. 예를 들어, 100차원 데이터에서 상위 10개의 주성분만 사용하여 재구성하면, 나머지 90차원에 해당하는 변동은 대부분 노이즈로 간주되어 제거된다.
이 기법은 이미지 처리, 신호 처리, 금융 데이터 분석 등 다양한 분야에서 적용된다. 예를 들어, 흐릿하거나 그레인 노이즈가 있는 이미지에서 PCA를 통해 주요 패턴(예: 가장자리, 질감)을 나타내는 성분만을 남기고 세부적인 노이즈 성분을 제거하면 이미지 품질을 개선할 수 있다. 마찬가지로, 센서 신호에서 배경 잡음을 제거하거나 유전자 발현 데이터에서 실험 오차를 줄이는 데에도 사용된다.
PCA 기반 노이즈 제거의 효과는 주성분 개수 선택에 크게 의존한다. 너무 적은 주성분을 사용하면 유용한 정보까지 손실될 위험이 있고, 너무 많은 주성분을 사용하면 노이즈가 충분히 제거되지 않을 수 있다. 따라서 스크리 그림이나 설명된 분산 비율과 같은 기준을 통해 적절한 주성분 개수를 결정하는 것이 중요하다.
5.3. 특징 추출
5.3. 특징 추출
주성분 분석은 데이터의 내재된 구조를 파악하여 새로운 특징 공간을 구성하는 특징 추출 기법으로 널리 활용된다. 이 과정에서 원본 변수들의 선형 조합으로 생성된 주성분들은 데이터의 분산을 최대한 보존하면서도 서로 상관관계가 없도록 설계된다. 따라서 고차원 데이터에서 정보 손실을 최소화하며 효과적인 저차원 표현을 얻을 수 있다.
기계 학습 모델의 입력으로 사용하기 위해 특징 공간을 변환하는 데 PCA가 자주 적용된다. 원본 특징들 사이에 존재하는 다중공선성을 제거하여 모델의 안정성을 높이고, 학습 속도를 개선하며, 과적합 위험을 줄이는 효과가 있다. 또한, 추출된 주성분들은 데이터의 본질적인 구조를 반영하므로, 변환된 공간에서 수행되는 분류나 회귀 분석 작업의 성능을 향상시킬 수 있다.
응용 분야 | PCA의 역할 | 기대 효과 |
|---|---|---|
얼굴 인식(Eigenface) 등에서 픽셀 데이터 압축 | 계산 효율성 향상, 잡음 제거 | |
멜-주파수 켑스트럼 계수 등의 고차원 특징 압축 | 인식 정확도 유지 및 모델 복잡도 감소 | |
유전자 발현 데이터 분석 | 주요 발현 패턴을 지닌 유전자 군 발견 | |
다양한 금융 자산 수익률 데이터 분석 | 위험 요인(팩터) 추출 및 포트폴리오 구성 |
이러한 특징 추출 과정은 지도 학습과 비지도 학습 모두에서 유용하게 사용된다. 데이터의 라벨 정보 없이도 데이터 자체의 구조를 바탕으로 의미 있는 특징을 도출할 수 있기 때문이다. 결과적으로 PCA는 원본 데이터의 복잡성을 줄이면서도 가장 중요한 정보를 담고 있는 새로운 특징 집합을 제공하는 강력한 도구이다.
6. 실습 예제
6. 실습 예제
주성분 분석의 동작 방식을 이해하기 위해 Python의 scikit-learn 라이브러리를 사용한 간단한 실습 예제를 살펴본다. 이 예제는 붓꽃 데이터셋을 사용하여 4차원의 특성을 2차원으로 축소하고 그 결과를 시각화한다.
먼저 필요한 라이브러리를 임포트하고 데이터를 준비한다.
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# 붓꽃 데이터셋 로드
iris = datasets.load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names
# 데이터 표준화 (평균 0, 분산 1)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
```
다음으로 PCA 모델을 생성하고 주성분 2개를 기준으로 데이터를 변환한다. 변환된 데이터는 각 샘플의 2개의 주성분 점수에 해당한다.
```python
# PCA 모델 생성 및 학습 (주성분 2개)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
# 설명된 분산 비율 출력
print("설명된 분산 비율 (주성분 2개):", pca.explained_variance_ratio_)
print("총 설명된 분산 비율:", sum(pca.explained_variance_ratio_))
```
결과를 2차원 산점도로 시각화하여, 원래의 클래스(품종)별로 데이터가 어떻게 분포하는지 확인한다.
```python
# 2차원 시각화
plt.figure(figsize=(8, 6))
colors = ['navy', 'turquoise', 'darkorange']
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
plt.scatter(X_pca[y == i, 0], X_pca[y == i, 1],
color=color, alpha=.8, lw=2,
label=target_name)
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('PCA of IRIS dataset')
plt.xlabel('첫 번째 주성분')
plt.ylabel('두 번째 주성분')
plt.show()
```
코드 실행 결과, 첫 번째와 두 번째 주성분이 데이터 전체 분산의 약 73%와 23%를 각각 설명한다는 것을 알 수 있다[4]. 시각화된 그래프를 보면, 세 개의 붓꽃 품종이 두 개의 주축 상에서 비교적 잘 구분된다. 특히 Setosa 품종은 다른 두 품종과 뚜렷이 분리된다. 이는 4차원 데이터의 정보를 2차원으로 압축하면서도 클래스 간 구조를 상당 부분 보존했음을 의미한다. 이렇게 축소된 데이터는 시각화뿐만 아니라 계산 효율성을 요구하는 후속 분류 모델의 입력으로도 활용될 수 있다.
6.1. Python 구현 코드
6.1. Python 구현 코드
주성분 분석은 넘파이와 사이킷런 같은 파이썬 라이브러리를 사용하여 비교적 간단하게 구현할 수 있다. 다음은 표준적인 단계를 따라 붓꽃 데이터셋에 PCA를 적용하는 예제 코드이다.
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# 데이터 로드 및 표준화
iris = load_iris()
X = iris.data
y = iris.target
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# PCA 적용 (주성분 2개로 축소)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
# 결과 시각화
plt.figure(figsize=(8, 6))
colors = ['navy', 'turquoise', 'darkorange']
target_names = iris.target_names
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
plt.scatter(X_pca[y == i, 0], X_pca[y == i, 1],
color=color, alpha=.8, lw=2, label=target_name)
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('PCA of IRIS dataset')
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.show()
# 설명된 분산 비율 출력
print("설명된 분산 비율 (주성분 2개):", pca.explained_variance_ratio_)
print("총 설명된 분산 비율:", sum(pca.explained_variance_ratio_))
```
코드는 크게 데이터 전처리, PCA 모델 적합, 결과 변환 및 시각화 단계로 나뉜다. StandardScaler를 사용한 표준화는 모든 특성이 동일한 스케일을 갖도록 하여 PCA의 결과가 특정 변수의 분산 크기에 지배받지 않도록 한다. PCA 객체의 fit_transform 메서드는 데이터를 적합하고 동시에 변환하여 새로운 주성분 공간의 좌표를 반환한다. explained_variance_ratio_ 속성은 각 주성분이 원본 데이터의 분산을 얼마나 설명하는지 나타내는 지표이다.
결과 해석 시, 시각화된 산점도는 4차원 데이터가 2개의 주성분으로 축소된 후의 분포를 보여준다. 서로 다른 품종의 데이터 포인트들이 주성분 축 상에서 어느 정도 구분되는지를 확인할 수 있다. 설명된 분산 비율을 분석하면 정보 손실을 정량적으로 평가할 수 있다. 예를 들어, 출력값이 [0.729, 0.228]이라면 첫 번째 주성분이 전체 분산의 약 72.9%를, 두 번째 주성분이 약 22.8%를 설명하며, 두 성분이 누적하여 약 95.7%의 분산을 보존한다는 의미이다. 이 비율이 낮으면 중요한 정보가 누락되었을 가능성이 있다.
6.2. 결과 해석
6.2. 결과 해석
PCA를 적용한 후의 결과는 주로 스크리 플롯, 주성분 점수, 주성분 로딩을 통해 해석한다. 스크리 플롯은 각 주성분이 설명하는 분산의 양을 보여주며, 주성분 개수를 선택하는 데 핵심적인 역할을 한다. 일반적으로 '팔꿈치 지점' 이후의 성분은 설명 분산이 급격히 감소하여 중요한 정보를 덜 담고 있다고 판단한다.
주성분 로딩은 원본 변수와 각 주성분 간의 관계를 나타낸다. 로딩 값의 크기와 부호를 분석하여 해당 주성분이 어떤 변수들의 조합으로 이루어졌는지 이해할 수 있다. 예를 들어, 첫 번째 주성분이 여러 변수에 대해 비슷한 양의 로딩을 가진다면, 이는 데이터의 전체적인 규모를 반영하는 '크기' 요인으로 해석될 수 있다.
주성분 점수는 원본 데이터를 새로운 좌표계(주성분 공간)에 투영한 값이다. 이 점수를 2차원 또는 3차원으로 시각화하면 데이터 포인트들의 군집 구조나 이상치를 관찰할 수 있다. 또한, 이 점수는 차원 축소된 데이터로서 후속 분석(예: 군집 분석, 회귀 분석)의 입력으로 사용된다.
결과 해석 시 주의할 점은 주성분 자체가 물리적 의미를 항상 가지는 것은 아니라는 것이다. 이는 원본 변수의 선형 결합으로 만들어진 수학적 구성체이며, 해석은 해당 분야의 지식과 로딩 패턴을 결합하여 신중하게 이루어져야 한다. 예를 들어, 금융 데이터에서 첫 번째 주성분이 시장 전체의 움직임을, 두 번째 주성분이 산업별 차이를 나타낼 수 있다[5].
7. 확장 및 변형
7. 확장 및 변형
주성분 분석은 선형 변환에 기반한 방법이지만, 비선형 데이터 구조를 다루거나 해석 가능성을 높이기 위한 여러 변형 기법이 개발되었다.
커널 PCA
커널 PCA는 커널 트릭을 적용하여 주성분 분석을 비선형으로 확장한 방법이다. 원본 데이터를 고차원 특징 공간으로 비선형 매핑한 후, 그 공간에서 선형 주성분 분석을 수행한다. 실제로 고차원 공간으로의 변환을 계산하지 않고, 커널 함수를 통해 내적만을 계산하여 효율성을 유지한다. 이는 서포트 벡터 머신에서 사용되는 아이디어와 유사하다. 커널 PCA는 나선형이나 원형 구조처럼 선형 주성분으로 설명하기 어려운 데이터의 차원 축소에 효과적이다. 자주 사용되는 커널에는 방사 기저 함수 커널, 다항식 커널, 시그모이드 커널 등이 있다.
희소 PCA
희소 PCA는 주성분의 희소성, 즉 많은 계수가 0이 되도록 제약을 가하여 해석 가능성을 높이는 변형이다. 기존 주성분 분석에서 구한 주성분은 일반적으로 모든 원본 변수에 대한 비중(로딩)이 0이 아닌 값을 가지므로, 어떤 변수가 중요한지 해석하기 어려울 수 있다. 희소 PCA는 L1 정규화와 같은 제약을 목적함수에 추가하여, 각 주성분이 소수의 변수에만 의존하도록 만든다. 이는 유전자 발현 데이터나 텍스트 데이터처럼 변수 수가 매우 많고, 의미 있는 소수 특징을 찾아내야 하는 영역에서 유용하다.
변형 기법 | 핵심 아이디어 | 주요 목적/장점 | 대표적 사용 사례 |
|---|---|---|---|
커널 트릭을 통한 비선형 매핑 후 선형 PCA 적용 | 비선형 데이터 구조 처리 | 나선형 데이터, 패턴 인식 | |
주성분 로딩 벡터에 희소성 제약(L1 정규화 등) 부과 | 해석 가능성 향상, 특징 선택 | 고차원 생정보학 데이터, 이미지 분석 |
이 외에도 로버스트 PCA(이상치에 강건), 점진적 PCA(대용량 데이터 온라인 처리), 복수 PCA(여러 데이터 집합 통합 분석) 등 다양한 확장 기법이 존재하며, 데이터의 특성과 분석 목적에 따라 선택하여 적용한다.
7.1. 커널 PCA
7.1. 커널 PCA
커널 PCA는 주성분 분석의 비선형 확장 버전이다. 표준 PCA는 선형 변환만을 통해 주성분을 찾기 때문에, 데이터가 복잡한 비선형 구조를 가질 때는 효과적인 특징 추출이 어려울 수 있다. 커널 PCA는 커널 트릭을 적용하여 원본 데이터를 고차원의 특성 공간으로 비선형 매핑한 후, 그 공간에서 선형 PCA를 수행하는 방식으로 이 문제를 해결한다.
커널 PCA의 핵심은 데이터 포인트들 간의 커널 함수 계산에 있다. 실제로 고차원 공간으로의 명시적인 변환과 그 공간에서의 공분산 행렬 계산은 계산 비용이 매우 크다. 그러나 커널 트릭을 사용하면, 오직 커널 함수 값(데이터 쌍의 내적)만으로 고차원 공간에서의 PCA 결과를 얻을 수 있다. 대표적인 커널 함수로는 다항식 커널, 방사 기저 함수 커널(RBF 커널 또는 가우시안 커널), 시그모이드 커널 등이 있다.
커널 PCA의 일반적인 알고리즘은 다음과 같은 단계로 이루어진다.
1. 주어진 데이터에 대해 커널 행렬 K를 계산한다. 여기서 K_ij는 커널 함수 k(x_i, x_j)의 값이다.
2. 계산된 커널 행렬을 중앙화하여, 고차원 특성 공간에서 데이터가 평균 0을 갖도록 조정한다.
3. 중앙화된 커널 행렬의 고유값과 고유벡터를 구한다.
4. 상위 고유값에 해당하는 고유벡터를 정규화하여 주성분 축을 얻는다.
커널 PCA는 서포트 벡터 머신과 같은 커널 기반 방법론과 잘 결합되며, 특히 패턴 인식, 이미지 처리, 생정보학 등에서 복잡한 데이터 구조를 분석하는 데 유용하게 적용된다. 그러나 표준 PCA에 비해 계산 복잡도가 높으며, 변환된 공간에서의 주성분이 원본 공간에서 직관적으로 해석하기 어려울 수 있다는 단점도 있다.
7.2. 희소 PCA
7.2. 희소 PCA
희소 PCA는 주성분 분석의 변형으로, 주성분 벡터의 요소 중 많은 부분을 정확히 0으로 만들어 희소성을 부여하는 기법이다. 기존 PCA가 모든 원본 변수들의 선형 결합으로 주성분을 생성하는 반면, 희소 PCA는 각 주성분이 소수의 원본 변수만을 사용하도록 제약을 가한다. 이는 결과의 해석 가능성을 크게 향상시킨다.
주요 목적은 복잡한 고차원 데이터에서 의미 있는 저차원 구조를 발견하면서도, 그 구조가 어떤 원본 변수들에 기인하는지 명확히 파악하는 것이다. 예를 들어, 유전자 발현 데이터에서 특정 주성분이 수백 개의 유전자 중 극히 일부의 유전자만으로 설명된다면, 해당 생물학적 과정을 이해하는 데 훨씬 용이해진다. 이를 달성하기 위해 Lasso 회귀와 유사한 L1 정규화 항을 목적 함수에 추가하여 최적화 문제를 푼다.
기법 | 주성분 벡터 특성 | 해석 가능성 | 계산 복잡도 |
|---|---|---|---|
일반 PCA | 대부분의 요소가 0이 아님 | 낮음 | 상대적으로 낮음 |
희소 PCA | 많은 요소가 정확히 0임 | 높음 | 상대적으로 높음 |
이 방법은 특징 선택의 이점과 PCA의 분산 보존 장점을 결합한다. 그러나 최적화 문제가 비볼록(non-convex)하여 계산이 더 복잡하고, 전역 최적해를 보장하기 어려울 수 있다. 또한, 희소성을 조절하는 정규화 매개변수를 적절히 선택해야 하는 추가적인 과제가 존재한다.
8. 관련 개념
8. 관련 개념
주성분 분석은 특이값 분해와 밀접한 관계를 가진다. 데이터 행렬 $X$ (평균이 0으로 조정된)에 대한 공분산 행렬 $C = \frac{1}{n-1} X^T X$의 고유값 분해는 주성분을 구하는 표준적인 방법이다. 그러나 실제 계산에서는 $X$ 자체에 대한 특이값 분해 $X = U \Sigma V^T$를 수행하는 것이 더 수치적으로 안정적이다. 이때, 오른쪽 특이벡터 행렬 $V$의 열벡터가 바로 주성분 벡터(고유벡터)에 해당하며, 특이값 $\sigma_i$와 고유값 $\lambda_i$ 사이에는 $\lambda_i = \sigma_i^2 / (n-1)$의 관계가 성립한다[6].
다른 차원 축소 기법과 비교했을 때, PCA의 가장 큰 특징은 비지도 학습 방법이며 선형 변환에 기반한다는 점이다. 다음 표는 주요 차원 축소 기법과의 비교를 보여준다.
기법 | 학습 유형 | 변환 특성 | 주요 목적 |
|---|---|---|---|
비지도 학습 | 선형 | 분산 보존, 차원 축소 | |
지도 학습 | 선형 | 클래스 분리 최대화 | |
비지도 학습 | 비선형 | 고차원 데이터의 2/3차원 시각화 | |
비지도 학습(신경망) | 비선형 가능 | 데이터의 효율적 표현 학습 |
선형 판별 분석은 클래스 레이블 정보를 사용하여 클래스 간 분산은 최대화하고 클래스 내 분산은 최소화하는 선형 축을 찾는 지도 학습 방법이다. 반면, t-SNE는 고차원 공간에서의 데이터 점 간 유사도를 저차원 공간에서의 확률 분포로 모델링하여 국소적인 구조를 보존하는 데 강점이 있는 비선형 기법이다. 오토인코더는 인공 신경망을 사용하여 입력 데이터를 압축한 후 재구성하는 방식으로 특징을 학습하며, 은닉층의 구조에 따라 선형 또는 비선형 변환을 학습할 수 있다.
따라서 PCA는 레이블이 없고 선형 관계가 주를 이루는 데이터의 압축, 노이즈 제거, 초기 시각화에 가장 널리 적용된다. 복잡한 비선형 구조를 가진 데이터에는 커널 PCA나 t-SNE와 같은 방법이 더 적합할 수 있다.
8.1. 특이값 분해(SVD)와의 관계
8.1. 특이값 분해(SVD)와의 관계
주성분 분석과 특이값 분해는 밀접한 수학적 관계를 가진다. 데이터 행렬의 공분산 행렬을 통한 고유값 분해 대신, 데이터 행렬 자체에 특이값 분해를 직접 적용하여 주성분을 계산할 수 있다. 이는 수치 계산상 더 안정적이고 효율적인 방법으로 널리 사용된다.
중심화된 데이터 행렬 \( X \) (각 열의 평균이 0)에 대해, 특이값 분해는 \( X = U \Sigma V^T \) 형태로 표현된다. 여기서 \( V \)의 각 열은 주성분 방향(즉, 공분산 행렬 \( X^T X \)의 고유벡터)에 해당한다. \( \Sigma \)의 대각 원소인 특이값은 해당 주성분 방향으로의 데이터 분산의 제곱근에 비례한다. 따라서 특이값 분해를 통해 고유값 분해와 동일한 주성분 정보를 직접 얻을 수 있다.
방법 | 계산 대상 | 결과물 (주성분 관련) |
|---|---|---|
공분산 고유값 분해 | 공분산 행렬 \( \frac{1}{n-1} X^T X \) | 고유벡터 = 주성분 방향, 고유값 = 분산 |
특이값 분해 (SVD) | 데이터 행렬 \( X \) 자체 | \( V \)의 열 = 주성분 방향, \( \Sigma^2/(n-1) \)의 대각원소 = 분산 |
실제 구현에서는 데이터의 샘플 수와 특성 수에 따라 효율적인 알고리즘이 선택된다. 일반적으로 많은 머신러닝 라이브러리(예: scikit-learn)의 PCA 구현은 내부적으로 특이값 분해를 사용한다. 이 접근법은 공분산 행렬을 명시적으로 계산하지 않아도 되므로, 특히 특성 수가 매우 많은 고차원 데이터를 다룰 때 계산상의 이점을 제공한다.
8.2. 다른 차원 축소 기법 비교
8.2. 다른 차원 축소 기법 비교
주성분 분석은 가장 널리 사용되는 선형 차원 축소 기법이지만, 데이터의 특성과 목적에 따라 다른 방법들이 적합할 수 있다. 주요 대안 기법으로는 선형 판별 분석, t-SNE, UMAP, 자기조직화지도 등이 있으며, 각각 고유한 원리와 적용 영역을 가진다.
기법 | 유형 | 주요 목적 | 주요 특징 |
|---|---|---|---|
선형, 비지도 | 분산 보존, 차원 축소 | 데이터의 공분산 구조를 기반으로 직교하는 주성분을 찾는다. | |
선형, 지도 | 클래스 분리 최대화 | 클래스 레이블 정보를 활용하여 클래스 간 분산은 최대화, 클래스 내 분산은 최소화하는 축을 찾는다. | |
비선형, 비지도 | 고차원 데이터 시각화 | 국소적인 거리 구조를 보존하는 데 중점을 두어 2차원 또는 3차원으로 매핑한다. 계산 비용이 높은 편이다. | |
비선형, 비지도 | 시각화 및 일반 차원 축소 | t-SNE보다 전역 구조를 더 잘 보존하며 계산 효율성이 상대적으로 높다는 장점이 있다. | |
비선형, 비지도 | 시각화 및 클러스터링 | 격자형 뉴런 맵을 사용하여 위상적 구조를 보존하면서 차원을 축소한다. |
선형 기법인 선형 판별 분석은 분류 문제에서 레이블 정보를 활용할 수 있다는 점에서 주성분 분석과 차별점을 가진다. 반면, t-SNE와 UMAP는 복잡한 비선형 매니폴드를 가진 데이터의 시각화에 특히 강력한 성능을 보인다. 자기조직화지도는 차원 축소와 동시에 클러스터링 결과를 격자 형태의 지도로 제공한다는 특징이 있다. 방법 선택은 데이터의 선형성, 레이블 유무, 시각화 필요성, 계산 자원 등 여러 요소를 종합적으로 고려하여 결정해야 한다.
9. 여담
9. 여담
주성분 분석은 칼 피어슨이 1901년에 편차의 제곱합을 최소화하는 직선을 찾는 문제로 처음 제시했으며, 이후 해럴드 호텔링이 1930년대에 현대적인 형태로 발전시켰다[7]. 이는 인공지능과 머신러닝이 본격화되기 훨씬 이전의 통계학적 발견이다.
용어 '주성분(Principal Component)'은 때때로 '주요 구성 요소'로 직역되기도 하지만, 데이터의 변동성을 가장 잘 설명하는 '핵심 축'이라는 의미를 담고 있다. PCA는 선형대수학의 고유값과 고유벡터 개념에 기반을 두고 있어, 수학적 배경 지식이 없으면 그 동작 원리를 이해하기 어려울 수 있다.
실제 응용에서는 스케일링이 매우 중요하다. 모든 변수의 단위를 표준화하지 않으면, 분산이 큰 변수가 주성분 선택에 과도하게 영향을 미쳐 잘못된 결과를 초래할 수 있다. 또한 PCA는 선형 관계만을 포착하므로, 복잡한 비선형 구조를 가진 데이터에는 커널 PCA 같은 변형 기법이 더 적합하다.
흥미롭게도, PCA는 얼굴 인식 분야에서 '고유 얼굴(Eigenface)'이라는 방법으로 적용되며, 금융 분야에서는 위험 요인을 분석하는 데 널리 사용된다. 이처럼 하나의 수학적 도구가 다양한 학문과 산업 영역에서 핵심적인 역할을 수행하는 대표적인 사례이다.
