정준상관분석(CCA)
변수 하나씩이 아니라, 변수 묶음과 묶음의 관계를 봅니다.
호수의 수질과 어류 생태계는 얼마나 밀접하게 관련되어 있을까요? 한 연구팀이 호수 120곳에서 수질을 조사하고, 같은 장소에서 어류의 종수와 개체수, 생체량을 측정했다고 가정해 보겠습니다.
연구자는 수질 지표 하나와 어류 지표 하나의 상관관계뿐 아니라 수질 지표 전체와 어류 생태 지표 전체가 어떤 관계를 맺는지 알고 싶습니다.
이때 사용할 수 있는 방법이 정준상관분석(Canonical Correlation Analysis, CCA)입니다. CCA는 두 변수 집합에서 각각 선형결합을 만들고, 두 결합 사이의 상관이 가장 커지도록 가중치를 정합니다. 첫 번째 관계를 찾은 뒤에는 앞서 찾은 관계와 중복되지 않는 다음 관계도 탐색합니다.
이번 글에서는 두 변수 집합을 구성하는 방법부터 정준변량과 정준상관계수의 계산 원리, 적재량과 가중치의 차이, 유의성 검정, 결과 해석과 분석 시 주의사항까지 살펴보겠습니다.
예제 수치는 설명을 위해 구성한 값입니다.
정준상관분석은 무엇을 분석하나요?
상관분석은 보통 두 변수 사이의 관계를 확인합니다.
예를 들어 호수의 질산염 농도와 어류 종수의 상관을 계산하거나, 탁도와 어류 생체량의 상관을 구할 수 있습니다. 하지만 지표가 여러 개라면 개별 상관계수만으로 전체적인 관계를 파악하기 어렵습니다.
CCA는 변수를 두 집합으로 나눕니다. 수질 지표를 첫 번째 집합, 어류 생태 지표를 두 번째 집합으로 설정하고, 각 집합의 변수들을 가중합하여 서로 가장 관련성이 높은 두 개의 종합점수를 찾습니다. 이 종합점수를 정준변량(canonical variate)이라고 합니다.
| 구분 | 변수 집합 | 예시 |
|---|---|---|
| 집합 X | 수질 지표 | 용존산소, 질산염, 탁도 |
| 집합 Y | 어류 생태 지표 | 어종 수, 개체 밀도, 생체량 |
| 분석 대상 | 두 집합 사이의 공통 관계 | 수질의 조합과 어류 지표의 조합 사이 상관 |
CCA는 어느 한 변수를 종속변수로 지정해 예측하는 일반적인 회귀분석과 다릅니다. 두 변수 집합 간의 대칭적인 연관구조를 탐색하는 방법이며, 분석 결과만으로 어느 집합이 다른 집합의 원인인지 판단하지 않습니다.
실제 사례: 호수 120곳의 수질과 어류 생태
연구팀은 호수 120곳에서 동일한 조사 시기에 수질과 어류 자료를 수집했다고 가정하겠습니다.
모든 지표는 분석 전에 측정 단위와 이상치, 결측 여부를 확인합니다. 특히 호수의 크기나 조사 노력의 차이가 어류 지표에 영향을 줄 수 있으므로 필요하면 변수를 적절히 표준화하거나 관련 요인을 별도로 고려해야 합니다.
| 집합 | 변수 | 측정 단위 | 의미 |
|---|---|---|---|
| X | 용존산소 | mg/L | 물에 녹아 있는 산소량 |
| X | 질산염 | mg/L | 영양염류 수준을 나타내는 지표 |
| X | 탁도 | NTU | 물이 탁한 정도 |
| Y | 어종 수 | 종 | 관찰된 어류 종의 수 |
| Y | 어류 개체 밀도 | 마리/ha | 단위 면적당 개체 수 |
| Y | 어류 생체량 | kg/ha | 단위 면적당 어류 총무게 |
연구 질문은 "호수의 수질 특성 조합은 어류 군집의 특성 조합과 얼마나 관련되어 있으며, 어떤 지표들이 그 관계를 주도하는가?"입니다.
이번 예제에서 두 집합에는 각각 변수 3개가 있으므로 최대 3쌍의 정준변량을 추출할 수 있습니다.
정준변량은 어떻게 만들어지나요?
CCA는 두 변수 집합의 선형결합을 만듭니다.
첫 번째 집합의 정준변량을 U, 두 번째 집합의 정준변량을 V라고 하면 다음과 같습니다.
U = a1X1 + a2X2 + a3X3
V = b1Y1 + b2Y2 + b3Y3
여기서 a와 b는 각 변수에 부여하는 가중치입니다. CCA는 U와 V의 상관계수 Corr(U, V)가 최대가 되도록 가중치를 결정합니다. 가중치에는 정준변량의 분산을 일정하게 맞추는 등의 정규화 제약을 적용하므로 무한정 가중치를 키워 상관을 높일 수는 없습니다.
첫 번째 정준변량 쌍은 두 집합 사이에서 가장 큰 선형 상관을 나타냅니다. 두 번째 쌍은 동일 집합 안에서 앞선 정준변량과 상관되지 않는 새로운 축을 이용해 다음으로 큰 상관을 찾습니다. 이후 가능한 쌍을 순서대로 추출합니다.
각 정준변량의 부호는 임의로 뒤집을 수 있습니다. 따라서 결과표에서 부호 하나만 보기보다 한 정준변량 안에서 변수들이 어떤 방향으로 함께 움직이는지 해석해야 합니다.
정준상관계수는 무엇을 뜻하나요?
정준상관계수(canonical correlation)는 두 정준변량 사이의 상관계수입니다.
예를 들어 첫 번째 정준상관계수가 0.78이라면 수질 지표의 최적 선형결합과 어류 지표의 최적 선형결합 사이에 강한 양의 상관이 추정되었다는 뜻입니다.
| 정준함수 | 정준상관계수 | 제곱한 값 |
|---|---|---|
| 1 | 0.78 | 0.6084 |
| 2 | 0.43 | 0.1849 |
| 3 | 0.17 | 0.0289 |
정준상관계수를 제곱한 값은 해당 정준변량 쌍 사이에서 공유하는 분산의 비율로 볼 수 있습니다. 첫 번째 함수의 0.6084는 두 정준변량의 공유 분산이 약 60.8%임을 의미합니다.
이를 '수질 지표가 어류 생태 지표 전체의 분산을 60.8% 설명한다'고 해석해서는 안 됩니다. 원래 변수 집합 전체의 설명 정도를 평가하려면 적재량과 중복성 지수 등을 별도로 확인해야 합니다.
정준함수는 몇 개까지 해석하나요?
추출 가능한 함수 수는 두 집합의 변수 수 중 작은 값으로 제한됩니다.
이번 사례에서는 각각 3개이므로 최대 3개의 함수가 나옵니다. 그러나 추출할 수 있다는 사실과 실제로 의미 있게 해석해야 한다는 것은 다릅니다.
첫 번째 함수의 상관이 크고 두 번째 함수가 중간 수준이며 세 번째 함수가 매우 작다면, 통계적 검정과 적재량, 이론적 해석 가능성을 함께 검토해 해석할 함수를 정할 수 있습니다. 특히 표본에서 정준상관이 크게 나타났더라도 우연한 최적화 때문에 새로운 자료에서 재현되지 않을 수 있습니다.
관행적으로 모든 함수를 해석하기보다 통계적 유의성, 효과 크기, 변수 집합의 내용, 교차검증에 따른 안정성을 종합적으로 고려하는 것이 좋습니다.
정준상관의 유의성은 어떻게 확인하나요?
CCA에서는 Wilks의 람다(Wilks' lambda) 등을 이용해 정준함수 전체 또는 남은 함수들의 상관이 0인지 순차적으로 검정할 수 있습니다.
표본 크기와 분포 가정에 따라 카이제곱 또는 F 근사 검정을 사용합니다. 다음은 방법을 이해하기 위한 검정 결과입니다.
| 검정 대상 | p값 | 참고 해석 |
|---|---|---|
| 함수 1~3의 전체 관계 | < .001 | 적어도 하나의 관계가 0이 아니라는 근거 |
| 함수 2~3의 남은 관계 | .018 | 첫 번째 관계를 제외한 추가 관계에 대한 근거 |
| 함수 3의 남은 관계 | .310 | 세 번째 관계에 대한 충분한 근거 없음 |
이 예시라면 첫 번째와 두 번째 정준함수를 중심으로 해석하고, 세 번째 함수는 신중하게 다룰 수 있습니다. 다만 p값은 함수의 실질적인 중요성을 알려주지 않으므로 정준상관의 크기와 적재량도 함께 확인해야 합니다.
실제 검정통계량은 같은 자료에서 추정한 정준상관계수와 일치하도록 계산해야 하며, 위 표는 소프트웨어 산출물을 재현한 결과가 아닙니다.
정준가중치와 정준적재량은 어떻게 다른가요?
정준가중치(canonical weight)는 원래 변수를 조합하여 정준변량을 만드는 회귀식의 계수입니다.
반면 정준적재량(canonical loading 또는 structure coefficient)은 원래 변수와 자기 집합의 정준변량 사이의 상관입니다.
가중치는 같은 집합의 변수들 사이에 상관이 높을 때 값과 부호가 불안정해질 수 있습니다. 따라서 어떤 변수가 정준함수의 의미를 대표하는지 설명할 때는 정준적재량을 중심으로 살펴보는 경우가 많습니다.
교차적재량(cross-loading)은 원래 변수와 반대쪽 집합의 정준변량 사이의 상관입니다. 이는 각 변수와 상대 집합의 종합점수가 얼마나 관련되어 있는지를 보여줍니다. 세 지표는 계산 방식과 해석 목적이 서로 다르므로 결과표에서 명확하게 구분해야 합니다.
첫 번째 정준함수는 어떻게 해석하나요?
첫 번째 함수에 대해 다음과 같은 정준적재량이 나타났다고 가정하겠습니다.
| 변수 | 첫 번째 함수의 정준적재량 |
|---|---|
| 용존산소(X) | +0.84 |
| 질산염(X) | -0.76 |
| 탁도(X) | -0.71 |
| 어종 수(Y) | +0.88 |
| 어류 개체 밀도(Y) | +0.64 |
| 어류 생체량(Y) | +0.80 |
수질 집합에서는 용존산소가 높은 양의 적재량을, 질산염과 탁도는 음의 적재량을 보입니다. 따라서 첫 번째 수질 정준변량은 산소가 풍부하고 질산염과 탁도가 낮은 수질 특성을 나타내는 축으로 해석할 수 있습니다.
어류 집합에서는 어종 수와 생체량이 높은 양의 적재량을 보입니다. 따라서 첫 번째 어류 정준변량은 어류 군집의 다양성과 규모가 큰 상태를 나타내는 축으로 해석할 수 있습니다.
첫 번째 정준상관이 0.78이므로 두 특성 조합은 강한 양의 관계를 보입니다. 다만 이 결과만으로 수질이 좋은 호수가 반드시 어류 다양성을 높였다는 인과적 결론을 내릴 수는 없습니다. 호수의 크기, 위치, 관리 수준 등 공통으로 영향을 미치는 다른 요인이 있을 수 있습니다.
두 번째 정준함수도 해석해야 하나요?
두 번째 함수는 첫 번째 함수에서 포착되지 않은 추가적인 선형 관계를 나타냅니다.
예를 들어 두 번째 함수의 수질 쪽에서는 탁도가, 어류 쪽에서는 개체 밀도가 상대적으로 큰 적재량을 보일 수 있습니다. 그러면 첫 번째 함수가 설명한 일반적인 수질·군집 수준과 다른 형태의 관계를 탐색할 수 있습니다.
하지만 두 번째 함수의 상관계수는 0.43으로 첫 번째보다 작습니다. 또한 함수의 통계적 유의성과 안정성이 충분하더라도 변수들의 적재량에 일관된 의미가 없다면 이름을 억지로 붙이지 않는 편이 낫습니다.
함수 해석에서는 부호가 아니라 같은 함수 안에서 상대적으로 큰 절댓값을 가진 변수의 조합을 보고, 그 조합이 현장 지식과 양립하는지 확인해야 합니다.
중복성 지수는 왜 필요한가요?
첫 번째 정준상관계수가 0.78이라고 해서 원래 어류 지표 전체를 수질 지표로 60.8% 설명할 수 있는 것은 아닙니다.
각 정준변량이 자기 집합의 원래 변수를 얼마나 대표하는지에 따라 실질적인 설명 정도가 달라지기 때문입니다.
이를 살펴보는 지표가 중복성 지수(redundancy index)입니다. 한 집합의 정준변량이 자기 집합 변수들을 평균적으로 얼마나 설명하는지 나타내는 분산추출 비율과 정준상관의 제곱을 결합해 계산합니다.
예를 들어 첫 번째 어류 정준변량의 평균 분산추출 비율이 0.61이고 첫 번째 정준상관의 제곱이 0.6084라면 0.61 × 0.6084 ≈ 0.371이 됩니다.
즉, 이 설명용 계산에서는 수질 정준변량을 이용해 어류 변수 집합의 분산을 평균 약 37.1% 재현하는 수준으로 요약할 수 있습니다. 실제 연구에서는 정준함수별 중복성 지수를 계산하고, 방향에 따라 값이 다를 수 있음을 명시해야 합니다.
위 0.61은 계산 원리를 보여주기 위한 별도의 요약값입니다.
분석 전에 어떤 점을 점검해야 하나요?
CCA는 변수 집합 내 상관관계에 민감할 수 있으므로 결측값, 이상치와 변수의 분포를 먼저 확인해야 합니다.
측정 단위가 서로 다르더라도 정준상관 자체는 적절한 선형 재척도에 불변이지만, 정준가중치의 크기를 비교하고 수치적 안정성을 확보하려면 표준화가 유용할 수 있습니다.
특히 같은 집합에 사실상 중복되는 지표가 많으면 공분산행렬이 불안정해지거나 가중치 해석이 어려워질 수 있습니다. 표본 수에 비해 변수 수가 지나치게 많아도 정준상관이 과대추정될 위험이 있습니다.
호수의 면적이나 조사 시점처럼 두 변수 집합 모두에 영향을 미칠 수 있는 요인이 있다면 통제변수 처리나 부분 정준상관분석을 검토할 수 있습니다.
한편 동일한 호수를 여러 계절에 걸쳐 측정했다면 관측값의 독립성도 다시 살펴봐야 합니다. CCA의 전통적인 유의성 검정은 다변량 정규성 등의 가정에 영향을 받을 수 있으므로 필요하면 순열검정이나 재표본화 방법을 고려합니다.
CCA는 PCA·회귀분석과 어떻게 다른가요?
같은 자료를 두고도 무엇을 묻는 방법인지가 서로 다릅니다.
| 분석 방법 | 주요 목적 | 핵심 질문 |
|---|---|---|
| CCA | 두 변수 집합의 최대 선형 상관 탐색 | 수질 지표 조합과 어류 지표 조합은 어떻게 관련되는가? |
| PCA | 한 변수 집합의 전체 분산을 효율적으로 요약 | 수질 지표를 적은 수의 성분으로 줄일 수 있는가? |
| 다중회귀 | 하나의 결과변수를 설명·예측 | 어떤 수질 지표가 어종 수와 관련되는가? |
| 다변량 다중회귀 | 여러 결과변수에 대한 설명변수 효과 추정 | 수질 지표가 여러 어류 결과와 어떤 관계를 가지는가? |
PCA는 두 집합 간 관계를 최대화하지 않습니다. 대신 한 집합 안의 변동을 잘 요약하는 축을 찾습니다. CCA는 두 집합 사이의 상관을 최대화한다는 점에서 목적이 다릅니다. 회귀분석은 결과변수를 명확하게 지정해 예측하거나 조건부 관계를 추정한다는 점에서 차이가 있습니다.
또한 통계 문헌에서 CCA가 canonical correspondence analysis(정준대응분석)를 뜻하는 경우도 있습니다.
이는 생태학에서 종 구성과 환경변수의 관계를 분석할 때 사용하는 별도의 방법으로, 이 글의 canonical correlation analysis(정준상관분석)와 혼동하지 않아야 합니다.
CCA 결과는 어떻게 보고하나요?
연구 보고서에서는 두 변수 집합의 구성, 표본 수, 분석에 사용한 변환과 결측 처리, 정준상관계수, 순차 검정 결과, 정준적재량을 제시하는 것이 좋습니다.
필요한 경우 중복성 지수와 재표본화 또는 교차검증 결과도 함께 보고할 수 있습니다.
결과 보고 예시
호수 120곳의 수질 지표와 어류 생태 지표 사이의 관계를 확인하기 위해 정준상관분석을 실시하였다. 수질 변수 집합에는 용존산소, 질산염, 탁도를 포함했으며, 어류 변수 집합에는 어종 수, 개체 밀도, 생체량을 포함하였다. 분석 결과 첫 번째 정준상관계수는 0.78, 두 번째는 0.43, 세 번째는 0.17로 추정되었다.
첫 번째 함수의 수질 집합에서는 용존산소가 양의 적재량(+0.84), 질산염(-0.76)과 탁도(-0.71)가 음의 적재량을 보였다. 어류 집합에서는 어종 수(+0.88)와 생체량(+0.80)이 높은 양의 적재량을 보였다. 이는 산소가 풍부하고 질산염 및 탁도가 낮은 수질 특성의 조합이 어류 다양성과 생체량이 높은 군집 특성과 관련되어 있음을 시사한다. 다만 정준상관은 두 변수 집합 사이의 연관성을 나타내며 인과관계를 입증하지 않는다.
실제 원고에는 소프트웨어가 산출한 검정통계량과 정확한 표본 조건을 추가해야 합니다.
CCA는 변수 하나가 아니라 변수 집합 사이의 관계를 보여줍니다.
정준상관분석은 두 변수 집합의 선형결합을 이용하여 두 집합 사이에 존재하는 주요 연관구조를 탐색하는 방법입니다.
개별 변수쌍의 상관을 하나씩 확인하는 대신 서로 관련된 변수들을 종합하여 어떤 조합이 함께 움직이는지 파악할 수 있습니다.
그러나 정준상관계수가 높다는 사실만으로 원래 변수 집합 전체를 잘 설명하거나 인과관계를 발견했다고 판단해서는 안 됩니다. 정준적재량과 중복성 지수, 순차 검정 결과, 표본 밖 안정성을 함께 살펴보아야 합니다.
CCA의 핵심은 두 변수 집합 사이에서 가장 밀접하게 연결된 패턴을 찾아내고, 그 패턴을 구성하는 변수가 무엇인지 해석하는 데 있습니다.