r = 0.95를 어떻게 읽을까: 상관과 인과 사이

지난 글의 마지막에 이런 질문을 던졌어요.

득실차가 승률을 결정하는 것인가, 아니면 같이 움직이는 것뿐인가?

5시즌, 150개 팀으로 r = 0.95를 확인했어요. 숫자 자체는 더 흔들리지 않아요. 그런데 이 숫자가 무슨 뜻인지는 또 다른 문제예요.

r = 0.95를 보고 "득실차가 승률을 만든다"라고 말해도 될까요?


한 번쯤 들어본 그 말

데이터 분석을 조금이라도 들여다봤다면 한 번쯤 들어봤을 문장이 있어요.

상관관계는 인과관계가 아니다. (Correlation is not causation.)

너무 자주 인용돼서 구호처럼 들리지만, 뜻은 분명해요. 두 변수가 같이 움직인다고 해서, 한쪽이 다른 쪽을 만들었다는 뜻은 아니라는 거예요.

자주 드는 예시가 있어요.

  • 아이스크림 판매량과 익사 사고 건수는 강한 양의 상관관계를 보여요. 그렇다고 아이스크림이 익사를 일으키지는 않아요. 둘 다 여름이라는 숨은 원인 때문에 같이 올라가요.
  • 신발 사이즈와 어휘력도 강한 양의 상관관계를 보여요. 어른이 어린이보다 발도 크고 아는 단어도 많기 때문이에요. 나이라는 숨은 변수가 둘 다 끌어올려요.

이런 숨은 변수를 잠복 변수(lurking variable) 라고 불러요. 두 변수가 서로 영향을 주고받는 것처럼 보이지만, 실제로는 둘 다 보이지 않는 제3의 변수를 따라 움직이는 경우예요.

그러면 우리 데이터로 돌아와 볼게요.

득실차와 승률에도 잠복 변수가 있을 수 있을까요?


"팀 실력"이라는 후보

가장 자연스러운 후보가 하나 있어요. 팀 실력이에요.

어떤 팀이 잘하는 팀이라면, 즉 좋은 타자와 좋은 투수가 많고 수비도 좋다면, 두 가지가 같이 올라가요.

  • 득점은 늘고, 실점은 줄어요 → 득실차가 커져요
  • 경기를 많이 이겨요 → 승률이 올라가요

이 그림에서 화살표는 이렇게 생겨요.

TEXT
       팀 실력
       ↙    ↘
   득실차    승률

이 그림에서는 득실차와 승률 둘 다 "팀 실력"이라는 공통 원인에서 나와요. 그렇다면 r = 0.95는 둘이 같은 원인을 두고 있어서 같이 움직이는 것일 수도 있어요.

이렇게 보면 0.95라는 숫자가 좀 다르게 보여요. "같이 움직인다"는 사실만 말해 줄 뿐, "한쪽이 다른 쪽을 만든다"는 얘기는 아닌 것 같아요.

그런데 정말 그게 전부일까요?


야구에서는 조금 달라요

위의 잠복 변수 논리는 대부분의 데이터에 잘 들어맞아요. 하지만 득실차와 승률에는 한 가지 특수한 사실이 있어요.

야구에서 한 경기를 이긴다는 건 정의상 무엇일까요?

9이닝 동안 상대 팀보다 점수를 한 점이라도 더 내는 것.

즉 한 경기에서 득점 > 실점이면 이겨요. 이건 야구의 규칙이에요.

이걸 시즌 단위로 올려 볼게요.

  • 한 시즌은 162경기예요.
  • 162경기 각각에서 "그날 득점 > 그날 실점"이면 1승, 아니면 1패가 쌓여요.
  • 시즌이 끝나고 그 162경기의 득점과 실점을 다 더한 게 시즌 득점(RS), 시즌 실점(RA)이에요.
  • 시즌 득실차(Diff) = RS − RA = "162경기 동안 상대보다 얼마나 더 냈는가"예요.

그러면 시즌 승률과 시즌 득실차는 서로 무관한 두 변수일 수가 없어요. 매 경기에서 둘은 정의상 묶여 있고, 그게 162번 쌓인 것뿐이에요.

이 점이 아이스크림과 익사 사례와 달라요. 아이스크림 판매와 익사는 서로 별개의 사건이고, 같은 계절에 함께 늘어날 뿐이에요. 득점과 승리는 같은 사건의 두 측면이에요.


그러면 인과관계일까요?

여기서 조심해야 해요. "정의상 묶여 있다"는 말이 곧 "득실차가 승률의 원인이다"라는 뜻은 아니에요.

더 정확히 말하면 이래요. 시즌 득실차와 시즌 승률은 둘 다 "162경기 동안 매 경기 어떻게 점수를 냈는가"라는 더 근본적인 사실을 요약한 두 가지 값이에요.

  • 승률은 그 162경기를 승/패라는 이분법으로 요약해요. 6:5 승리도 1승, 15:0 승리도 1승이에요.
  • 득실차는 그 162경기를 점수 차의 합으로 요약해요. 6:5 승리는 +1, 15:0 승리는 +15예요.

같은 경기들을 두 가지 방식으로 요약한 거라서, 둘은 강하게 묶여 있어요. 그런데 두 요약은 조금 다른 정보를 담아요.

  • 어떤 팀이 이길 때는 늘 1점 차로 이기고 질 때는 늘 10점 차로 진다면, 승률은 평균인데 득실차는 아주 낮아요.
  • 반대로 질 때는 늘 1점 차로 지고 이길 때는 늘 10점 차로 이긴다면, 승률은 평균인데 득실차는 아주 높아요.

이런 팀들에서는 두 요약이 다른 답을 내요. 그래서 r이 1.0에 못 미쳐요. 그 모자란 부분은 "승률은 점수가 경기마다 어떻게 나뉘었는지에 민감하고, 득실차는 덜 민감하다"는 사실에서 나와요.


다시, 0.95의 의미

정리해 볼게요. r = 0.95를 어떻게 읽어야 할까요?

틀린 해석: "득실차가 승률을 만든다. 득실차를 1 올리면 승률이 얼마 올라간다."

이것도 틀린 해석: "그냥 우연히 같이 움직이는 두 숫자다."

맞는 해석: "득실차와 승률은 같은 경기 결과를 요약한 두 값이다. 한쪽을 알면 다른 쪽을 꽤 정확히 추측할 수 있다. 다만 완전히 맞지 않는 부분은, 같은 점수를 경기마다 어떻게 나눠서 냈는지에 따라 갈린다."

이 차이가 사소해 보여도, 분석할 때는 꽤 중요해요. 누가 "득실차를 늘리는 작전을 짜자"라고 한다면 이상한 처방이에요. 득실차는 좋은 야구를 한 결과로 따라오는 숫자이기 때문이에요.


데이터가 말해 주지 않는 것

여기서 데이터 분석의 한계를 한 번 짚고 갈게요.

5시즌 150개 점으로 r을 구했어요. 그 숫자는 정확해요. 하지만 그 숫자만으로는 "왜" 그 관계가 생기는지 알 수 없어요. "왜"를 알려면 야구가 어떤 경기인지, 한 경기가 어떻게 결정되는지를 따로 알아야 해요.

  • 데이터는 "무엇이 같이 움직이는가"를 알려 줘요.
  • 도메인 지식은 "왜 그게 같이 움직이는가"를 알려 줘요.

둘 중 하나만 있으면 위험해요. 데이터만 있고 도메인 지식이 없으면 아이스크림이 익사를 일으킨다는 결론을 낼 수 있어요. 도메인 지식만 있고 데이터가 없으면 "내 느낌상…"으로 끝나요.


다음 질문

지금까지 득실차와 승률을 이 두 숫자만 놓고 봤어요. 그런데 위에서 봤듯이, 둘이 완전히 맞지는 않아요.

  • 같은 득실차여도 승률이 다른 팀들이 있어요.
  • 그 차이는 같은 점수를 경기마다 어떻게 나눠서 냈는가에서 와요.

그래서 다음 질문이 생겨요.

득실차만으로는 부족하다면, 승률을 더 잘 설명하는 공식이 있을까?

야구 통계 쪽에는 이 질문에 답하는 공식이 이미 하나 있어요. 피타고라스 기댓값(Pythagorean Expectation) 이에요. 다음 글에서는 그 공식이 우리 데이터에서 얼마나 잘 들어맞는지 직접 확인해 볼게요.


이 분석은 직접 만든 도구 just-mlb로 했어요. 5시즌 산점도에서 r = 0.95를 직접 보고, 추세에서 벗어난 점들이 어떤 팀인지 찾아보세요.