ADsP NOTE검색

데이터 분석 / 8분 읽기

PCA 주성분분석, 새 축과 설명분산 75%를 읽는 법

PCA는 원래 열을 고르는 대신 변수의 선형결합으로 새 축을 만들며, 설명분산 75%는 전체 분산 중 남긴 비율입니다. 첫 축만 보존한 좌표를 원래 축으로 되돌려 보면 어떤 차이가 사라졌는지 직접 확인할 수 있습니다.

열을 버리는 방법과 새 좌표를 만드는 방법은 다릅니다

PCA는 원래 변수 중 일부를 고르는 방법이 아닙니다. 방문 횟수, 읽은 글 수, 머문 시간처럼 여러 변수를 섞어 새로운 요약 변수를 만듭니다.

PCA는 주어진 수치 변수들의 선형결합으로 새 축을 만들고, 자료가 많이 퍼지는 방향부터 그 축을 정렬합니다. 선형결합은 각 변수에 계수를 곱한 뒤 더하는 계산입니다. 새 축에서 각 관측값이 어디에 놓이는지를 주성분 점수라고 합니다. 첫 번째 주성분이 원래 첫 번째 열이라는 뜻도, 가장 중요한 원래 변수 하나라는 뜻도 아닙니다.

이 글은 통상적인 중심화 PCA를 기준으로 설명합니다. 정답 레이블을 사용하지 않는 비지도학습이며 자료의 분산을 요약하는 것이 목적입니다. 이후에 분류나 회귀의 입력으로 사용할 수는 있지만, PCA 자체가 어떤 변수가 목표값을 잘 예측하는지 판단해 주지는 않습니다. 차원을 줄이는 기준과 예측 성능을 평가하는 기준은 다릅니다.

중심을 옮긴 뒤 단위를 맞출지 결정합니다

중심화는 각 변수에서 그 변수의 평균을 빼는 작업입니다. 두 변수의 평균이 각각 10과 20이고 어떤 관측값이 (12, 20)이면 중심화한 값은 (2, 0)입니다. 평균 위치를 원점으로 옮겼을 뿐, 각 변수의 퍼짐을 같게 만든 것은 아닙니다. 중심화 뒤에도 한 변수의 값이 다른 변수보다 훨씬 넓게 퍼질 수 있습니다.

표준화는 보통 평균을 뺀 값을 표준편차로 나누는 방식으로 단위 차이를 조정합니다. 방문 횟수와 초 단위 체류 시간을 그대로 사용하면 규모가 큰 변수의 분산이 분석을 지배할 수 있습니다. 두 변수를 비슷한 비중에서 비교하려면 표준화를 검토합니다. 반대로 원래 단위의 분산 차이가 분석 목적상 중요한 경우라면 그 차이를 남기는 편이 적절할 수 있습니다.

PCA 전에 무조건 표준화한다거나 중심화했으니 표준화도 끝났다고 말할 수는 없습니다. 무엇을 요약하려는지와 변수의 단위를 보고 결정합니다. 변환 뒤의 공분산행렬을 사용하는지, 표준화로 상관행렬에 대응하는 분석을 하는지도 결과를 읽을 때 중요합니다. 서로 다른 전처리를 한 분석의 설명분산을 그대로 비교하지 않습니다.

R의 prcomp는 기본 설정에서 중심화하지만 단위분산으로 맞추려면 표준화를 별도로 지정합니다. scikit-learn의 PCA도 입력을 중심화하며 각 특성의 척도를 자동으로 같게 만들지는 않습니다. 도구 이름만 보고 처리 과정을 추측하지 말고 사용한 설정을 기록합니다. 표준편차가 영인 상수 변수는 그대로 나눌 수 없으므로 별도로 처리해야 합니다.

가장 길게 퍼지는 방향으로 새 축을 잡습니다

중심화한 두 변수 x₁과 x₂의 분산이 각각 2이고 공분산이 1인 예를 보겠습니다. 공분산행렬은 대각선에 2와 2, 나머지 두 칸에 1과 1이 놓입니다. 두 변수가 같은 쪽으로 움직이는 경향이 있으므로 두 값을 더하는 대각선 방향으로 더 넓게 퍼질 수 있습니다.

이 예의 첫 번째 주성분은 (x₁ + x₂)/√2, 두 번째 주성분은 (x₁ − x₂)/√2로 잡을 수 있습니다. √2로 나누는 이유는 축을 나타내는 계수 벡터의 길이를 1로 맞추기 위해서입니다. 그 제약이 없으면 계수를 계속 크게 곱하는 것만으로 분산을 키울 수 있어 방향을 비교하는 문제가 되지 않습니다.

첫 번째 주성분의 분산은 (2 + 2 + 2 × 1)/2 = 3입니다. 두 번째 주성분의 분산은 (2 + 2 − 2 × 1)/2 = 1입니다. 더하는 방향은 두 변수가 함께 움직이는 부분을 모으고, 빼는 방향은 두 변수의 차이를 담습니다. 이 예의 숫자를 외우기보다 공분산 항의 부호가 왜 달라지는지 확인합니다.

원래 자료가 평균에서 (2, 0)만큼 떨어진 관측값이라면 두 주성분 점수는 모두 √2입니다. 관측값을 없앤 것이 아니라 같은 점을 다른 축으로 표현한 것입니다. 두 축을 모두 남기면 그 점의 중심화된 좌표로 다시 돌아갈 수 있습니다. 첫 축만 남기면 두 변수가 함께 움직이는 위치만 보존하고 둘 사이의 차이를 나타내는 두 번째 좌표는 생략합니다.

빠진 정보도 이 점에서 계산할 수 있습니다. 중심화된 (2, 0)의 첫 주성분 점수 √2에 첫 축 (1/√2, 1/√2)를 곱해 원래 축으로 되돌리면 (1, 1)입니다. 두 번째 성분까지 쓰면 (1, −1)이 더해져 원래의 (2, 0)을 복원합니다. 첫 성분만 남겼을 때 이 점의 제곱 복원오차는 (2−1)²+(0−1)² = 2입니다. 첫 축의 설명분산비 75%는 전체 자료의 분산 비율이며, 개별 점의 두 좌표가 각각 75%씩 복원된다는 뜻은 아닙니다.

고유값 3과 1이면 첫 축의 설명분산은 75%입니다

공분산행렬의 고유벡터는 주성분 축의 방향을 나타내며, 그에 대응하는 고유값은 해당 주성분의 분산을 나타냅니다. 고유값을 큰 순서로 정렬하면 앞에서 계산한 3과 1이 됩니다. 전체 분산은 3 + 1 = 4이며, 첫 번째 주성분의 설명분산비는 3/4 = 0.75입니다. 두 번째는 1/4 = 0.25입니다.

남기는 주성분보존하는 분산누적 설명분산비
첫 번째만375%
첫 번째와 두 번째3 + 1 = 4100%

이 조건에서 적어도 80%의 분산을 남기려면 주성분 두 개가 필요합니다. 첫 번째의 75%는 80%보다 작기 때문입니다. ‘대략 비슷하다’며 기준을 충족했다고 처리하지 않습니다. 실제 분석에서 몇 퍼센트를 남길지는 목적과 해석, 이후 작업의 성능을 함께 보고 정하며 모든 자료에 같은 기준이 정답으로 정해져 있지는 않습니다.

설명분산 75%는 관측값 75%를 남긴다는 말도, 분류 정답률이 75%라는 말도 아닙니다. 선택한 전처리 아래 입력 자료의 전체 분산 중 새 좌표에 보존한 비율입니다. 첫 축만 사용해도 관측값의 개수는 그대로이며 각 관측값이 가진 좌표의 수가 줄어듭니다. 무엇이 줄었는지를 행 수와 열 수로 구분하면 해석이 분명해집니다.

분산이 작은 방향에 예측에 필요한 정보가 있을 수도 있습니다. 예를 들어 큰 변동이 단순한 측정 환경 차이이고 작은 변동이 목표와 관련되어 있다면, 분산이 큰 축만 남기는 선택이 예측에 불리할 수 있습니다. 많은 분산을 보존했다는 사실만으로 잡음이 제거됐거나 중요한 정보가 모두 남았다고 결론 내리지 않습니다.

부호와 독립성을 잘못 읽지 않습니다

앞의 첫 번째 축을 (−x₁ − x₂)/√2로 표현해도 같은 방향의 직선입니다. 방향을 나타내는 화살표만 반대로 잡은 셈이며 주성분 점수의 부호도 함께 바뀝니다. 두 표현의 분산과 설명분산비는 같습니다. 프로그램이 다른 부호를 출력했다고 한쪽이 틀렸다고 판단하지 말고 축과 점수의 대응을 확인합니다.

주성분 축은 서로 직교하며 통상적인 PCA에서 그 점수들의 표본 공분산은 영입니다. 분산이 양수인 성분끼리는 상관도 영이 됩니다. 그러나 상관이 영이라는 사실이 모든 종류의 통계적 의존 관계가 없다는 뜻은 아닙니다. 독립성은 더 강한 조건입니다. PCA의 결과를 설명하면서 ‘서로 독립인 변수를 만든다’고 무조건 바꾸어 말하지 않습니다.

계수의 크기를 해석할 때도 분석에 사용한 척도와 다른 변수와의 조합을 함께 봅니다. 계수가 양수라고 결과가 좋고 음수라고 나쁘다는 평가를 붙일 수 없습니다. 첫 축이 원래 변수들을 어떤 조합으로 묶는지 살펴 이름을 붙일 수는 있지만, 그 이름은 결과의 해석이며 원래 자료에 숨겨진 정답이 확인됐다는 증명은 아닙니다.

고유값이 같으면 해당 부분공간 안에서 축의 방향이 하나로 정해지지 않을 수도 있습니다. 이런 경우에는 축 하나의 계수만 비교하기보다 그 축들이 함께 나타내는 공간을 보는 편이 적절합니다. 처음에는 부호를 맞춰 비교하는 것부터 시작하되 결과가 달라 보이는 이유를 모두 부호 하나로 설명하려 하지는 않습니다.

새 자료에도 같은 변환을 적용합니다

예측 성능을 평가하려면 학습 자료에서 평균과 표준편차, 주성분 축을 정합니다. 검증 자료도 학습 때 정한 값으로 중심화하고 척도를 조정한 뒤 같은 축에 투영합니다. 검증 자료만의 평균으로 다시 중심을 정하거나 별도로 PCA를 학습하면 좌표계가 달라집니다. 학습과 검증 자료를 합쳐 축을 구한 뒤 평가하면 검증 정보가 분석 과정에 들어가는 문제도 생깁니다.

자료를 나눠 여러 번 검증하는 교차검증에서도 전처리와 PCA를 각 학습 부분 안에서 맞추는 원칙이 필요합니다. 주성분을 몇 개 남길지 조정한다면 그 선택 역시 검증 절차 안에서 다룹니다. 최종 시험용 자료를 계속 확인하며 개수를 바꾸면 평가의 역할이 흐려집니다.

마지막으로 결측치나 이상치를 먼저 점검합니다. PCA가 모든 결측치를 자동으로 채우거나 이상치를 제거하는 기법은 아닙니다. 분산은 편차를 제곱해 계산하므로 큰 값의 영향도 살펴봅니다. 변수의 단위와 전처리 설정, 남긴 성분 수, 누적 설명분산비를 함께 기록하세요. 무상관과 관계없음의 차이는 상관계수가 0인 비선형 예제에서도 확인할 수 있습니다.

핵심 정리와 실수 점검

핵심 정리

  • PCA는 원래 변수의 선형결합으로 새 축을 만들며, 분산이 큰 방향부터 남깁니다.
  • 설명분산비는 해당 고유값을 전체 고유값 합으로 나눈 값이며 예측 정확도가 아닙니다.
  • 중심화와 표준화 기준, PCA 축은 학습 자료에서 정하고 새 자료에도 같은 변환을 적용합니다.

놓치기 쉬운 지점

  • 첫 번째 주성분을 원래 변수 하나 또는 가장 예측력이 높은 변수로 해석하는 실수
  • 주성분 계수의 부호가 다르면 실패라고 판단하거나 무상관을 곧 독립이라고 바꾸어 말하는 실수

확인할 내용

  • 중심화와 척도 조정 여부를 각각 기록한다.
  • 설명분산비의 분모를 전체 고유값 합으로 계산한다.
  • 새 자료의 변환에 학습 자료의 평균과 척도, 주성분 축을 사용한다.

이해한 내용 확인하기

직접 작성한 학습용 문항입니다. 공식 기출문제가 아닙니다.

Q1. 고유값이 큰 순서대로 4, 2, 1입니다. 누적 설명분산비를 적어도 85%로 만들려면 앞에서부터 몇 개를 남겨야 하나요?

생각한 뒤 해설 보기

전체 합은 7입니다. 첫 성분은 4/7로 약 57.14%, 앞의 두 성분은 6/7로 약 85.71%이므로 두 개를 남깁니다. 원래 변수 두 개를 선택한다는 뜻은 아닙니다.

Q2. ‘축을 돌려 넓게 퍼진 방향부터 남긴다’를 원래 변수 중 분산이 가장 큰 열 하나를 고른다는 뜻으로 해석해도 되나요?

생각한 뒤 해설 보기

아닙니다. PCA는 원래 변수들의 선형결합으로 새 축을 만듭니다. 특정 경우에 축이 원래 변수 방향과 일치할 수는 있지만, 일반적인 정의는 변수 하나를 고르는 선택이 아닙니다.

Q3. 학습 자료의 두 변수 평균이 10과 20, 표준편차가 2와 4입니다. 표준화 후 PCA를 학습했다면 새 관측값 (14, 12)을 PCA 축에 넣기 전 어떤 값으로 바꾸나요?

생각한 뒤 해설 보기

학습 자료의 값으로 변환하므로 ((14−10)/2, (12−20)/4)=(2, −2)입니다. 새 자료의 평균과 표준편차를 별도로 구해 다른 좌표계로 바꾸지 않습니다.

Q4. 한 주성분의 계수 전체와 점수 전체의 부호를 동시에 반대로 바꾸었습니다. 설명분산비도 음수가 되거나 달라지나요?

생각한 뒤 해설 보기

아닙니다. 같은 축의 방향을 반대로 표현한 것이며 분산은 부호 반전에 영향을 받지 않습니다. 고유값과 설명분산비도 같습니다. 일부 계수만 바꾸는 작업과는 구분해야 합니다.

Q5. 주성분 둘이 무상관이고 누적 설명분산비가 95%입니다. 두 성분은 독립이고 분류 정확도도 95%라고 결론 내릴 수 있나요?

생각한 뒤 해설 보기

둘 다 결론 낼 수 없습니다. 무상관은 일반적으로 독립보다 약한 성질이며, 설명분산비는 입력 자료의 분산을 얼마나 보존했는지 나타냅니다. 분류 정확도는 정답이 있는 별도 평가 자료에서 확인해야 합니다.

객관식 유형 연습 →

더 궁금한 점

표준화를 하면 PCA의 결과가 달라질 수 있나요?

네. 변수마다 다른 비율로 척도를 바꾸면 분산과 공분산 관계가 달라져 주성분 방향과 설명분산비가 달라질 수 있습니다. 원래 단위의 변동을 보존할지, 변수들을 비슷한 척도에서 비교할지 목적에 맞춰 정합니다.

설명분산을 많이 남기면 예측 성능도 항상 좋아지나요?

아닙니다. PCA는 목표값을 이용하지 않고 입력 자료의 분산을 요약합니다. 분산이 작은 방향이 예측에 중요할 수도 있으므로 이후 모델의 성능은 별도로 평가해야 합니다.

참고 자료와 확인 범위

함께 다듬는 노트

이해되지 않는 설명이 있었나요?

틀린 계산, 어려운 표현, 다음에 읽고 싶은 주제를 알려주세요.

의견 보내기