상관분석이란 무엇인가 — 공분산·상관계수 2가지로 관계 읽기

상관분석은 두 변수가 같이 움직이는지를 확인하는 일이다. 하나가 커질 때 다른 하나도 커지는지, 반대로 작아지는지, 아니면 아무 상관 없이 따로 노는지를 숫자 하나로 요약한다. 회귀분석으로 예측 모델을 세우기 전에, 데이터 안의 변수들이 서로 어떻게 얽혀 있는지 먼저 훑어보는 준비 운동이라고 보면 된다.

이 글은 두 지표를 순서대로 짚는다. 먼저 두 변수가 같은 방향인지 반대 방향인지를 알려주는 공분산, 그리고 공분산이 가진 치명적인 약점(단위에 휘둘린다)을 지운 상관계수다. 마지막으로 이 숫자만 믿으면 왜 위험한지, 산점도를 왜 반드시 곁들여야 하는지까지 이야기한다. 용어는 그때그때 한 줄로 풀어두겠다.

상관분석은 무엇을 보나

현실의 데이터는 대개 변수가 여러 개다. 엑셀 파일 한 장을 떠올리면 된다. 각 행은 관측 하나이고, 열마다 서로 다른 값이 붙어 있다. 이렇게 한 관측에 변수가 둘 이상 딸려 있는 자료를 다변량 데이터라고 부른다.

F1 팀의 세팅 시트가 딱 이 모양이다. 한 번 주행할 때마다 다운포스, 타이어 온도, 직선 최고속도, 랩타임이 한꺼번에 기록된다. 이때 궁금한 건 이거다. 다운포스를 키우면 코너 속도가 같이 오르나? 반대로 직선 최고속도는 깎이나? 이렇게 두 변수가 함께 움직이는 정도를 재는 것이 상관분석이다.

공분산 — 방향은 알려주지만 크기는 못 믿는다

가장 먼저 만나는 지표가 공분산(covariance)이다. 계산은 이렇다. 두 변수 각각에서 자기 평균을 뺀 값(평균에서 얼마나 벗어났나, 즉 편차)을 구하고, 두 편차를 곱해서 전부 더한 뒤 평균 낸다.

부호만 읽으면 의미가 바로 잡힌다. 한 변수가 평균보다 클 때 다른 변수도 평균보다 크면, 두 편차의 곱은 양수다. 둘 다 평균보다 작아도 (음수)×(음수)라 역시 양수다. 즉 같은 방향으로 움직이면 공분산은 양수가 된다. 반대로 하나가 오를 때 다른 하나가 내려가면 곱이 음수라 반대 방향이면 공분산은 음수다. 서로 무관하면 0 근처에 머문다.

여기까지만 보면 훌륭한 지표 같다. 문제는 다음 장에 있다.

공분산의 함정 — 단위가 살아있다

공분산은 두 값을 그대로 곱해 만든다. 그래서 변수의 측정 단위가 결과에 그대로 눌러앉는다. 값이 큰 단위로 재면 공분산도 덩달아 커지고, 작은 단위로 재면 작아진다. 관계의 세기가 아니라 단위의 크기를 재고 있는 셈이다.

아래 수치는 개념 설명을 위한 임의의 수치입니다.

두 변수 쌍값의 대략 범위공분산겉보기
A쌍 (랩타임 계열, 기준값 100 근처)80 ~ 13022관계가 세 보임
B쌍 (연습 세션 수 계열)−10 ~ 7.53.5관계가 약해 보임

이 시나리오는 개념 설명을 위한 가상의 상황입니다. 실제 F1 팀의 전략과 다를 수 있습니다.

산점도로 그려 보면 오히려 B쌍이 더 오밀조밀 모여 강한 관계인데, 공분산 숫자만 보면 A쌍이 22로 훨씬 커서 더 강해 보인다. 단위가 큰 A쪽이 부풀려진 것이다. 이래서는 두 관계를 나란히 비교할 수가 없다. 그래서 단위를 아예 없애버려야 한다.

상관계수 — 단위를 지운 표준화 버전

단위를 지우는 방법은 간단하다. 공분산을 두 변수의 표준편차 곱으로 나눈다. 표준편차 역시 그 변수의 단위를 그대로 달고 있으므로, 나누는 순간 위아래 단위가 약분돼 사라진다. 이렇게 나온 값이 상관계수(correlation coefficient)다.

단위가 사라진 덕분에 상관계수는 항상 −1과 +1 사이에 갇힌다. 이 표준화된 눈금 위에서는 어떤 데이터든 같은 자로 잰 것처럼 비교할 수 있다.

  • +1에 가까울수록: 강하게 같은 방향(하나가 오르면 다른 하나도 또렷이 오른다)
  • −1에 가까울수록: 강하게 반대 방향
  • 0에 가까울수록: 선형적인 관계가 거의 없음

앞의 예에서 공분산으로는 뒤집혀 보였던 두 쌍도, 상관계수로 다시 재면 B쌍이 0.875, A쌍이 0.5처럼 나와 실제 세기대로 줄이 선다. 참고로 어떤 변수를 자기 자신과 상관 내면 언제나 1이고(그림자와 떨어질 수 없듯), 여러 변수의 상관계수를 표로 채우면 대각선을 기준으로 위아래가 똑같은 대칭 행렬, 즉 상관행렬이 된다. 이 표준화 논리의 정석 정리는 NIST/SEMATECH 통계 핸드북에서 확인할 수 있다.

공분산의 단위를 지워 상관계수로 표준화하면 관계를 비교할 수 있음을 보여주는 상관분석 개념도

숫자 하나만 믿지 마라 — 산점도를 반드시 함께

상관계수에는 큰 함정이 하나 있다. 오직 직선 관계(선형 관계)만 잡아낸다는 점이다. 두 변수가 U자나 포물선처럼 휜 관계로 또렷하게 엮여 있어도, 그게 직선이 아니면 상관계수는 태연히 0을 내놓는다.

그래서 상관계수 숫자만 보고 “관계 없음”이라 결론지으면 진짜 관계를 통째로 놓칠 수 있다. 반드시 산점도(점들을 뿌려 그린 그림)를 함께 봐야 한다. 숫자는 방향과 세기를 요약해 주고, 그림은 그 요약이 놓친 곡선 관계를 보여준다. 둘은 항상 짝으로 본다.

실전에서 상관분석이 쓰이는 순간

📍 여기가 상관분석이 실제로 힘을 쓰는 지점이다. 예측 모델에 넣을 입력 변수를 고를 때, 입력 변수끼리 상관계수를 재 본다. 만약 두 입력이 서로 0.99처럼 거의 완벽하게 같이 움직인다면, 둘은 사실상 같은 이야기를 하고 있는 것이다. 이럴 땐 둘 다 넣을 필요 없이 하나만 써도 된다.

이 판단이 뒤에서 배울 다중선형회귀와 변수 선택의 밑돌이 된다. 서로 겹치는 변수를 걸러내면 모델이 가벼워지고 해석도 깨끗해진다. 그래서 다변량 데이터를 만나면, 회귀로 넘어가기 전에 상관계수 표와 산점도를 먼저 펼쳐 보는 습관이 인사이트의 출발점이 된다.

핵심 요약

  • 상관분석은 두 변수가 같은 방향으로 움직이는지(방향)와 얼마나 세게 엮였는지(세기)를 보는 준비 운동이다.
  • 공분산은 방향(양수=같은 방향, 음수=반대 방향)은 알려주지만, 단위가 그대로 살아 있어 세기 비교에는 못 쓴다.
  • 상관계수는 공분산을 표준편차 곱으로 나눠 단위를 지운 값이라 항상 −1~+1 사이에 놓이고, 서로 다른 관계도 같은 자로 비교된다.
  • 상관계수는 직선 관계만 잡는다. 0이 나와도 곡선 관계일 수 있으니 산점도를 반드시 함께 본다.
  • 입력끼리 상관이 매우 높으면 하나만 써도 된다 — 다중회귀 변수 선택의 출발점이다.

함께 읽으면 좋은 글

FAQ

둘 다 두 변수가 같은 방향인지 반대 방향인지를 알려줍니다. 차이는 단위입니다. 공분산은 변수의 측정 단위가 그대로 남아 값의 크기가 단위에 휘둘리므로 세기 비교에 못 씁니다. 상관계수는 표준편차로 나눠 단위를 지운 값이라 항상 −1~+1 사이에 놓여, 서로 다른 변수 쌍의 관계 세기를 나란히 비교할 수 있습니다.

아닙니다. 상관계수는 직선 관계만 잡아냅니다. 포물선처럼 휜 관계로 뚜렷하게 엮여 있어도, 그게 직선이 아니면 상관계수는 0에 가깝게 나올 수 있습니다. 그래서 상관계수 숫자 하나만으로 “무관”이라 단정하지 말고 반드시 산점도를 함께 봐야 합니다.

같이 움직인다는 것과 원인이라는 것은 다른 문제입니다. 상관이 높아도 인과가 아닐 수 있고, 숨은 제3의 변수가 둘을 동시에 움직이는 경우도 흔합니다. 상관은 관계의 방향과 세기를 요약할 뿐, 원인을 증명하지 않습니다. 이 구분은 함께 읽으면 좋은 글의 상관·인과 편에서 자세히 다룹니다.

관련 글 보기