courses
데이터 분석에서는 변수들이 서로 어떻게 관련되는지 이해하기 위해 끊임없이 노력합니다. 이 목적을 위해 흔히 쓰이는 두 가지 통계량을 접해 보셨을 겁니다. 바로 공분산과 상관관계입니다. 이 두 지표는 비슷하게 들리고 자주 혼동됩니다. 하지만 둘의 차이는 무엇이며, 어떻게 사용해야 할까요?
둘 다 변수가 함께 어떻게 움직이는지를 설명합니다. 그러나 유사성에도 불구하고 공분산과 상관관계는 약간 다른 질문에 답하며 데이터 작업 흐름에서 서로 다른 역할을 합니다. 공분산은 특성 간의 원시적인 공동 변동성을 포착하고, 상관관계는 그 관계를 표준화하여 더 쉽게 비교할 수 있도록 합니다.
이 미묘한 차이가 상황에 따라 어떤 지표를 선택하게 만드는지 살펴보겠습니다.
공분산이란?
공분산은 두 변수가 함께 어떻게 움직이는지를 측정합니다. 한 변수가 증가할 때 다른 변수가 증가하는 경향이 있는지, 아니면 감소하는 경향이 있는지를 알려줍니다. 공분산에는 세 가지 유형이 있습니다.
- 양의 공분산: 한 변수가 증가할 때 다른 변수도 증가하는 경우.
- 음의 공분산: 한 변수가 증가할 때 다른 변수는 감소하는 경우.
- 0에 가까운 공분산: 일관된 방향성 관계가 없는 경우.


이 특성 덕분에 공분산은 변수들이 서로 어떻게 움직이는지 탐지하는 데 유용합니다.
하지만 관계의 방향은 유용한 반면, 공분산의 크기를 해석하는 일은 그리 간단하지 않습니다. 크기는 측정 단위와 변수의 스케일에 따라 달라집니다. 예를 들어 센티미터를 미터로 단위를 바꾸면, 근본적인 관계는 변하지 않더라도 공분산의 크기는 크게 달라질 수 있습니다.
이러한 이유로 공분산은 단독 요약 통계량이라기보다 내부 계산용 구성 요소로 더 자주 사용됩니다.
상관관계란?
상관관계는 두 변수 사이 관계의 방향뿐 아니라 강도를 측정합니다. 단위의 영향을 받지 않도록 크기를 표준화한다는 점에서 공분산을 바탕으로 합니다.
상관계수는 +1(완전한 양의 관계)과 -1(완전한 음의 관계) 사이의 고정된 범위에 놓입니다. 0은 선형 관계가 없음을 의미합니다.


이 표준화된 스케일 덕분에 상관관계는 공분산보다 해석이 쉽습니다. 값이 0.8이라면, 원래 측정 단위와 상관없이 두 변수 간에 강한 관계가 있음을 즉시 알 수 있습니다.
이 표준화는 데이터셋, 특성, 도메인 간의 의미 있는 비교도 가능하게 합니다. 그래서 상관관계가 탐색적 데이터 분석과 특성 조사에서 자주 사용됩니다.
공분산 vs. 상관관계: 핵심 차이
공분산과 상관관계는 변수 관계의 관련 속성을 설명하지만, 분석 목적은 다릅니다.
실무적으로 공분산은 원시적인 공동 변동성을, 상관관계는 그와 같은 관계를 표준화된 형태로 반영합니다. 이 구분을 이해하면 주어진 분석 작업에 더 적합한 지표를 고르는 데 도움이 됩니다.
|
공분산 |
상관관계 |
|
|
측정 대상 |
선형 관계(비표준화) |
선형 관계(표준화) |
|
스케일 민감도 |
단위에 의해 스케일이 결정됨 |
고정 범위(−1에서 +1) |
|
단위 |
단위가 있음 |
무단위 |
|
해석 용이성 |
크기 해석이 어렵다 |
방향과 크기 해석이 쉽다 |
|
비교 가능성 |
데이터셋 간 비교가 제한적 |
데이터셋 간 직접 비교 가능 |
|
일반적 용도 |
모델링 및 행렬 구성 |
탐색 및 커뮤니케이션 |
|
장점 |
원래 스케일을 보존 |
비교를 위해 표준화 |
공분산 vs. 상관관계 예시
두 변수, 키와 몸무게에 대한 데이터를 수집했다고 가정해 보겠습니다. 일반적으로 키가 큰 사람이 몸무게가 더 많이 나가는 경향이 있으므로 둘은 관련이 있을 것으로 예상합니다. 키(센티미터)와 몸무게(킬로그램)를 산점도로 그리면 뚜렷한 상승 추세가 보입니다. 키가 증가하면 몸무게도 증가하는 경향이 있습니다.
공분산을 계산하면 양의 값 48.08이 나옵니다. 값이 양수라는 사실은 두 변수가 같은 방향으로 움직인다는 것을 알려줍니다. 키가 평균보다 크면 몸무게도 보통 평균보다 큽니다.
이제 흥미로운 부분입니다. 정확히 같은 데이터를 사용하되 단위를 바꿔 봅시다. 키는 센티미터에서 미터로, 몸무게는 킬로그램에서 파운드로 변환합니다. 사람은 바뀌지 않았고, 관계도 바뀌지 않았습니다. 산점도의 패턴도 동일해 보입니다. 그러나 공분산을 다시 계산하면 숫자가 달라집니다. 1.06입니다. 여전히 양수이지만 크기는 매우 다릅니다. 바뀐 것은 오직 단위뿐입니다.


이는 공분산의 중요한 속성을 보여줍니다. 공분산은 방향은 포착하지만, 크기는 스케일에 좌우됩니다. 단위를 바꿔 한 변수를 늘이거나 줄이면, 공분산도 함께 늘어나거나 줄어듭니다.
이제 같은 데이터를 단위 변환 전후로 사용해 상관관계를 살펴보겠습니다. 센티미터와 킬로그램을 사용한 상관계수는 0.76입니다. 미터와 파운드로 변환한 후에도 0.76입니다.
공분산과 달리 상관관계는 관계를 측정하기 전에 각 변수의 변동성을 보정합니다. 이 보정 덕분에 단위를 바꿔도 값은 변하지 않습니다. 점들이 얼마나 선형 패턴을 밀접하게 따르는지와 그 패턴이 위로 기울어지는지 아래로 기울어지는지에만 초점을 맞춥니다.
이 간단한 예시는 두 지표의 주요 차이를 부각합니다. 공분산은 방향과 스케일을 모두 반영하는 반면, 상관관계는 스케일과 무관하게 관계의 강도를 반영합니다. 실무에서는 서로 다른 스케일로 측정된 변수 간의 관계를 비교할 때 상관관계가 더 신뢰할 만하고, 변동성의 크기가 중요한 모델링과 같은 맥락에서는 공분산이 더 적합합니다.
공분산은 해석이 어려울 수 있음
이미 살펴본 것처럼, 공분산은 두 변수가 같은 방향으로 움직이는지 알려주지만 크기를 해석하기는 어렵습니다.
주된 문제는 공분산이 변수들 간의 관계뿐 아니라 스케일에도 의존한다는 점입니다. 한 변수 또는 두 변수의 값이 더 크거나 더 넓게 퍼져 있으면 공분산도 더 크게 나오는 경향이 있습니다.
이 민감도는 두 가지 원천에서 비롯됩니다. 첫째는 데이터의 단위입니다. 단위를 바꾸면 공분산도 바뀝니다. 소득을 달러로 측정하느냐 천 달러 단위로 측정하느냐에 따라 공분산 값은 크게 달라지지만, 관계 자체는 동일합니다.
둘째는 변수의 변동성 크기입니다. 단위가 같더라도 범위가 넓거나 분산이 큰 데이터셋은, 동일한 근본적 관계를 가지는 더 타이트한 데이터셋보다 일반적으로 더 큰 공분산을 만듭니다. 큰 공분산이 반드시 강한 관계를 의미하는 것은 아닙니다. 단지 데이터의 스케일이 더 크거나 변동성이 더 크다는 사실을 반영할 수도 있습니다.
이처럼 스케일에 민감하기 때문에 공분산은 직접 보고하기보다는 모델 적합 등 내부적으로 사용되는 경우가 많습니다.
상관관계가 더 자주 쓰이는 이유
상관관계는 변수 간 관계를 표준화함으로써 공분산의 해석 어려움을 상당 부분 해소합니다. 상관계수는 항상 −1과 +1 사이이므로 크기가 즉시 의미를 갖습니다. 1 또는 −1에 가까우면 강한 선형 관계, 0에 가까우면 약하거나 없는 선형 관계를 뜻합니다. 이 표준화 덕분에 변수나 데이터셋 간 직접 비교가 가능해져, 상관관계는 커뮤니케이션과 해석이 용이합니다.
이러한 특성 때문에 상관관계는 탐색적 데이터 분석, 특성 간 관계 점검, 중복성 또는 다중공선성 탐지, 결과 보고 등에 특히 유용합니다. 상관행렬과 히트맵은 데이터셋을 처음 살펴볼 때 유용한 1차 도구이기도 합니다.
그렇다고 상관관계가 공분산을 완전히 대체하는 것은 아닙니다. 상관관계는 스케일의 영향을 제거하므로 관계의 강도만 반영하고 원시 변동성은 반영하지 않습니다. 주성분분석(PCA)이나 다변량 통계모형 등 모델링 맥락에서는, 공분산이 담고 있는 원래 스케일이 분산 구조를 이해하고 알고리즘의 동작을 안내하는 데 중요할 수 있습니다.
선형대수 관점
지금까지는 변수 쌍 사이의 공분산을 살펴보았습니다. 선형대수는 이 아이디어를 전체 데이터셋으로 확장하는 방법을 알려줍니다. 데이터를 행렬로 배치하면 됩니다.
기본적인 데이터 행렬에서 각 행은 관측값, 각 열은 변수를 나타냅니다. 변수 간 관계를 이해하려면 먼저 각 열의 평균을 빼서 데이터를 중심화할 수 있습니다. 이 단계는 절대값이 아닌 전형적 값으로부터의 편차에 집중하도록 해 줍니다.
중심화된 데이터 행렬에 전치를 곱하면 변수들이 함께 어떻게 움직이는지를 포착하는 구조가 만들어집니다. 이 곱은 적절히 스케일링하면 공분산 행렬이 됩니다. 선형대수 관점에서 공분산 행렬은 데이터셋 차원 전반에 변동성이 어떻게 분포하는지를 요약합니다.
이러한 관점은 공분산이 데이터 과학에서 자주 등장하는 이유를 설명해 줍니다. 주성분분석(PCA)을 포함한 많은 알고리즘과 기타 차원 축소 기법은 이 행렬 표현에 의존해 데이터의 패턴과 구조를 이해합니다. 개념적으로 공분산 행렬은 데이터셋의 서로 다른 차원들이 어떻게 상호작용하는지에 대한 지도를 제공합니다.

여기서는 네 개 변수의 데이터가 데이터 행렬로 배열되어 있습니다. 그런 다음 중심화되어 공분산 행렬을 만듭니다.
데이터 과학을 위한 선형대수를 더 깊이 배우고 싶다면 Linear Algebra for Data Science in R 과정을 확인해 보세요. 공분산처럼 행렬 기반 접근법을 이해하는 데 필요한 기초를 다룹니다.
공분산 행렬과 상관행렬
공분산 행렬은 전체 데이터셋에서 변수들이 함께 어떻게 움직이는지를 요약합니다. 실무에서는 원래 스케일을 보존할지, 결과를 표준화할지에 따라 공분산 행렬 또는 상관행렬을 사용해 이러한 관계를 살펴보곤 합니다.
공분산 행렬에는 모든 변수 쌍 사이의 공분산이 들어 있습니다. 대각 원소는 각 변수의 분산을, 비대각 원소는 변수들이 함께 어떻게 변하는지를 나타냅니다. 공분산은 데이터의 원래 스케일과 단위를 보존하므로, 행렬은 변동성의 원시 구조를 포착합니다. 이 때문에 공분산 행렬은 모델링 워크플로와 다변량 분석에서 특히 유용합니다.
상관행렬은 반대로 이러한 관계를 표준화합니다. 각 대각 원소는 1이며, 모든 변수는 자기 자신과 완벽히 상관되기 때문입니다. 모든 비대각 값은 −1과 +1 사이에 위치하며 변수 간 상관을 나타냅니다. 스케일 효과를 제거하면, 상관행렬은 사람이 해석하기 쉬워지고 변수 간 직접 비교가 가능합니다. 탐색적 데이터 분석과, 특성들 사이의 강하거나 약한 선형 관계를 빠르게 식별하는 데 특히 유용합니다.

이 행렬들에서는 네 개 변수를 서로 비교하고 있습니다. 저는 이러한 행렬을 제시할 때 히트맵 오버레이를 추가하는 것을 좋아합니다. 각 셀의 색을 통해 공분산 또는 상관값의 상대적 크기를 한눈에 파악할 수 있기 때문입니다.
공분산을 상관관계로 변환하는 방법
개념적으로 상관관계는 변수 간 관계를 표준화하여 공분산에서 파생됩니다. 간단히 말해 공분산을 각 변수의 표준편차로 나눕니다. 이 스케일링은 단위와 변수의 크기를 제거하여 항상 −1과 +1 사이에 놓이는 표준화 지표를 만듭니다. 이 변환 덕분에 상관계수는 서로 다른 변수나 데이터셋에서도 직접 비교가 가능합니다.
실무에서는 대부분의 통계 소프트웨어가 공분산을 상관관계로 자동 변환하므로, 분석가가 수작업으로 계산할 필요는 거의 없습니다. 다만 소프트웨어가 내부에서 무엇을 하는지 이해하는 것은 늘 중요합니다. 예를 들어 공분산이 상관관계로 변환되는 방식을 이해하면, 반대 방향으로는(적어도 두 변수의 표준편차 정보 없이는) 변환할 수 없다는 점을 설명할 수 있습니다. 상관관계에는 공분산으로 되돌리는 데 필요한 단위나 크기 정보가 더 이상 포함되어 있지 않습니다.
공분산과 상관관계를 언제 사용할까
공분산은 데이터의 스케일과 단위가 의미가 있거나, 데이터의 원시 변동성 구조가 필요할 때 가장 유용합니다. 다변량 모델링, 확률 모델, 선형대수 기반 기법을 위한 공분산 행렬 구성 등에 흔히 사용됩니다. 이러한 맥락에서는 원래의 변동성을 보존해야 알고리즘이 데이터의 참된 구조를 포착하고 차원들이 함께 어떻게 변하는지 이해할 수 있습니다.
반대로 상관관계는 사람에게 해석하기 쉽고, 데이터셋 간 비교와 탐색적 분석에 더 적합합니다. 저는 히트맵 같은 시각화에 이 지표를 자주 사용하여 관계를 한눈에 보고 소통합니다. 상관관계는 관계를 표준화하므로, 모든 특성을 비교 가능한 스케일로 맞추는 게 중요한 기법을 준비할 때도 도움이 됩니다.
데이터 과학과 통계에서의 공분산 vs. 상관관계
두 지표는 종종 같은 워크플로에 함께 등장합니다. 공분산 행렬은 데이터의 원래 변동성을 유지하기 때문에 많은 다변량 기법의 수학적 토대가 됩니다. 반면 상관행렬은 모델링 전에 데이터셋의 구조를 이해하기 위한 탐색 단계에서 자주 사용됩니다.
일부 모델은 목표에 따라 두 통계량 중 어느 쪽이든 사용할 수 있습니다. 주성분분석(PCA)을 생각해 보세요. 공분산 행렬로 PCA를 수행하면, 분산이 큰 변수가 결과 성분에 더 큰 영향을 주게 됩니다. 스케일 차이가 의미 있는 변동성 차이를 반영한다면 이는 바람직할 수 있습니다. 예를 들어 일별 주식 수익률을 분석한다면, 더 변동성이 큰 주식은 그 변동성이 실제 시장 행동을 반영하므로 주성분을 적절히 형성할 수 있습니다.
대신 상관행렬을 사용하면 분해 전에 변수를 표준화합니다. 각 특성이 같은 스케일에 놓이므로 단지 단위가 크거나 수치 범위가 넓다는 이유만으로 어떤 변수가 지배하지 않습니다. 이 접근은 키(cm), 몸무게(kg), 혈압(mmHg), 콜레스테롤(mg/dL)처럼 서로 다른 단위로 측정된 변수를 다룰 때 더 적절할 수 있습니다.
보편적으로 더 좋은 방법은 없습니다. 적절한 선택은 스케일 차이가 의미 있는 구조를 반영하는지, 아니면 단지 측정의 산물인지에 달려 있습니다.
공분산과 상관관계에 대한 흔한 오해
흔한 오해 중 하나는 공분산이 크면 자동으로 강한 관계를 뜻한다는 것입니다. 그러나 큰 공분산 값은 관계의 강도라기보다 변수의 스케일이나 변동성을 반영한 것일 수 있습니다. 관계의 강도를 알고 싶다면 상관관계를 통해 표준화해서 보는 것이 필요합니다.
“상관관계는 인과관계를 의미하지 않는다”는 말을 아마 수없이 들으셨을 겁니다! 그럼에도 불구하고 제가 가장 자주 접하는 오해이기도 합니다. 강한 상관을 보면 인과적 연결이 있다고 생각하기 쉽습니다. 이는 조상들의 생존을 위해 우리 뇌가 수천 년간 사용해 온 지름길입니다. 그러나 데이터 실무자로서 우리는 이 뇌의 지름길을 경계하고, 상관관계만으로는 인과 효과를 입증하기에 충분치 않다는 점을 인식해야 합니다. 상관관계는 연관성을 측정할 뿐 인과적 영향은 측정하지 않으며, 외부 요인이 두 변수를 동시에 움직일 수도 있습니다.
또 다른 매우 흔한 오해는 공분산과 상관관계가 본질적으로 동일하다는 것입니다. 그러나 둘은 상호 대체 가능하지 않습니다. 상관관계는 공분산에서 파생되지만 관계를 표준화하기 때문에, 계산에서 공분산을 항상 대체할 수 있는 지표는 아닙니다.
마지막으로, 이 통계량들은 선형 관계만 평가한다는 점을 기억하는 것이 중요합니다. 상관과 공분산이 낮거나 0에 가까워도 비선형 패턴이 존재할 수 있으므로, 이 통계량들만 의존하면 데이터의 중요한 구조를 놓칠 수 있습니다. 통계량을 해석하기 전에 데이터를 반드시 그려서 확인하시길 권합니다. 뚜렷한 비선형 관계가 있을 때 큰 도움이 됩니다.
변수 간 관계 해석을 위한 실전 팁
첫째, 항상 측정의 스케일을 고려하세요. 단위나 변동성의 차이는 공분산 같은 원시 지표에 영향을 줄 수 있으므로, 숫자가 무엇을 의미하는지 아는 것이 중요합니다.
둘째, 데이터에서 무엇이 필요한지 파악하세요. 원시 변동성을 보존하는 것이 중요할 때 공분산이 가장 유용합니다. 이는 모델링이나 다변량 분석을 위한 공분산 행렬 구성에서 자주 해당됩니다. 이런 맥락에서는 변동성의 크기 자체가 의미 있는 정보를 담습니다. 하지만 그 원시 변동성이 필요 없다면, 표준화와 해석 용이성 측면에서 상관관계를 선호할 수 있습니다.
셋째, 반드시, 반드시, 반드시 데이터를 그려 보세요! 시각적 점검은 분석을 안내하고 통계 요약을 보완해 줍니다. 산점도를 사용해 쌍별 패턴을 파악하거나, 행렬을 사용해 한 번에 많은 변수를 빠르게 개관할 수 있습니다.
마지막으로, 측정 선택이 다운스트림에 미칠 영향도 생각하세요. 공분산처럼 원시 지표와 상관관계처럼 표준화 지표 중 무엇을 선택하느냐가 모델링 결과와 해석에 영향을 줍니다. 분석 목표와 선택을 잘 맞추시기 바랍니다.
결론
공분산과 상관관계는 변수가 함께 어떻게 움직이는지를 설명하는 밀접한 관련 지표지만, 목적은 다릅니다. 공분산은 원래 스케일을 보존하고, 상관관계는 비교를 위해 표준화합니다.
데이터를 더 깊이 탐색하는 방법에 관심이 있다면 Python 탐색적 데이터 분석 튜토리얼을 확인해 보세요. 상관관계가 정말 인과를 보여주는지 판단하는 방법을 배우려면 Hypothesis Testing in R을 참고하세요.
FAQs
공분산과 상관관계의 차이는 무엇인가요?
두 지표 모두 변수가 함께 어떻게 움직이는지 측정하지만, 공분산은 스케일과 단위를 보존하고 상관관계는 이를 표준화해 비교를 쉽게 합니다.
공분산이 크면 관계가 강하다는 뜻인가요?
반드시 그렇지는 않습니다. 공분산의 크기는 스케일과 분산에 크게 좌우됩니다. 관계의 강도를 판단하려면 상관관계를 사용하는 것이 더 적절합니다.
공분산이나 상관관계가 비선형 관계에도 적용되나요?
신뢰할 수 없습니다. 이 통계량들은 오직 선형 관계만 평가하도록 설계되었습니다.
왜 상관관계에는 단위가 없나요?
공분산을 상관관계로 변환할 때 단위가 약분되어, 상관계수는 단위가 없는 수치가 됩니다.
PCA에는 공분산과 상관관계 중 무엇을 써야 하나요?
PCA는 공분산 행렬이나 상관행렬 중 어느 쪽으로도 수행할 수 있습니다. 변수 크기 차이가 의미 있고 비교 가능하다면 공분산 행렬이 그 변이를 포착합니다. 그러나 변수 단위가 직접 비교 불가능하다면 상관행렬이 관계를 표준화합니다. 선택은 사용하는 변수와 목표에 달려 있습니다.