0.95는 "원인"이라는 뜻이 아니다: 상관과 인과 사이
지난 글의 마지막에 이런 질문을 던졌다.
득실차가 승률을 결정하는 것인가, 아니면 같이 움직이는 것뿐인가?
5시즌, 150개 팀으로 r = 0.9x를 확인했다. 숫자 자체는 더 이상 흔들리지 않는다. 그런데 이 숫자가 무슨 뜻인지는 또 다른 문제다.
r = 0.95를 보고 "득실차가 승률을 만든다"라고 말해도 될까?
한 번쯤 들어본 그 말
데이터 분석을 조금이라도 들여다본 사람이라면 한 번쯤 들어봤을 문장이 있다.
상관관계는 인과관계가 아니다. (Correlation is not causation.)
너무 자주 인용돼서 슬로건처럼 느껴지지만, 의미는 진지하다. 두 변수가 같이 움직인다고 해서, 한쪽이 다른 쪽을 만들었다는 뜻은 아니라는 얘기다.
고전적인 예시들이 있다.
- 아이스크림 판매량과 익사 사고 건수는 강한 양의 상관관계를 보인다. 그렇다고 아이스크림이 익사를 일으키는 건 아니다. 둘 다 여름이라는 숨은 원인 때문에 같이 오른다.
- 신발 사이즈와 어휘력은 강한 양의 상관관계를 가진다. 발이 크면 단어를 더 많이 알아서가 아니다. 어른이 어린이보다 발도 크고 단어도 많이 알기 때문이다. 나이라는 숨은 변수가 둘 다를 끌어올린다.
이런 숨은 변수를 잠복 변수(lurking variable) 라고 부른다. 두 변수가 강하게 손을 잡고 움직이는 것처럼 보이지만, 사실은 둘 다 보이지 않는 제3의 변수에 끌려가고 있는 경우다.
자, 그러면 우리 데이터로 돌아오자.
득실차와 승률에도 잠복 변수가 있을 수 있을까?
"팀 실력"이라는 용의자
가장 자연스러운 후보가 하나 있다. 바로 팀 실력이다.
생각해보자. 어떤 팀이 잘하는 팀이라면 — 좋은 타자가 많고, 좋은 투수가 많고, 수비도 좋고 — 그 팀은 자연스럽게 두 가지가 다 올라간다.
- 득점은 늘고, 실점은 준다 → 득실차가 커진다
- 경기를 많이 이긴다 → 승률이 올라간다
이 그림에서 화살표는 이렇게 생긴다.
팀 실력
↙ ↘
득실차 승률
득실차가 승률을 "만든" 게 아니다. 둘 다 "팀 실력"이라는 공통 부모에서 갈라져 나온 자식들이다. 우리가 보는 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.9x인 것이다. 0.9 위의 0.05쯤이 바로 "승률은 점수의 분포에 민감하지만 득실차는 둔감하다"는 사실에서 나온다.
다시, 0.95의 의미
자, 정리해보자. r = 0.95를 어떻게 읽어야 하는가?
❌ 틀린 해석: "득실차가 승률을 만든다. 득실차를 1 올리면 승률이 얼마 올라간다."
❌ 이것도 틀림: "그냥 우연히 같이 움직이는 두 숫자다."
✅ 맞는 해석: "득실차와 승률은 같은 경기 결과의 두 요약이다. 한쪽을 알면 다른 쪽을 거의 정확히 추측할 수 있다. 다만 '거의'라는 5%의 틈은, 같은 점수를 어떻게 분배해서 냈는지에 따라 갈린다."
이 차이가 사소해 보이지만, 분석할 때는 꽤 중요하다. 만약 누가 "득실차를 늘리는 작전을 짜자"라고 한다면, 그건 잘못된 처방이다. 득실차는 올려야 할 목표가 아니라, 좋은 야구의 결과로 따라오는 숫자이기 때문이다.
비유하자면 r = 0.95는 "키가 크면 몸무게도 크다"와 같은 수준의 사실이다. 둘은 같이 움직이지만, 그렇다고 "키를 늘리려면 몸무게를 늘려라"는 얘기가 되지는 않는다.
데이터가 말해주지 않는 것
여기서 데이터 분석의 한계를 한 번 짚고 가는 게 좋겠다.
우리는 5시즌 150개 점으로 r을 구했다. 그 숫자는 정확하다. 하지만 그 숫자만 가지고는 "왜" 그 관계가 생기는지 알 수 없다. "왜"를 알려면 야구가 어떤 게임인지, 한 경기는 어떻게 결정되는지를 따로 알아야 한다.
이게 데이터 분석의 일반적인 모습이다.
- 데이터는 "무엇이 같이 움직이는가"를 말해준다.
- 도메인 지식은 "왜 그게 같이 움직이는가"를 말해준다.
둘 중 하나만 있으면 위험하다. 데이터만 있고 도메인 지식이 없으면 아이스크림이 익사를 일으킨다는 결론을 낸다. 도메인 지식만 있고 데이터가 없으면 "내 느낌상…"으로 끝난다. 둘을 같이 가져야 분석이 된다.
다음 질문
지금까지 우리는 득실차와 승률을 이 두 숫자만 놓고 봤다. 그런데 위에서 잠깐 흘렸듯이, 둘 사이에는 5%의 틈이 있다.
- 같은 득실차여도 승률이 다른 팀들이 있다.
- 그 차이는 "같은 점수를 얼마나 잘 분배해서 냈는가"에서 온다.
여기서 자연스럽게 다음 질문이 떠오른다.
득실차만으로는 부족하다면, 승률을 더 잘 설명하는 공식이 있을까?
이미 야구 통계 쪽에는 이 질문에 답하는 유명한 공식이 하나 있다. 피타고라스 기댓값(Pythagorean Expectation) 이라는 이름의, 약간 거창한 이름을 가진 공식이다. 다음 글에서는 그 공식이 우리 데이터에서 얼마나 잘 들어맞는지 직접 확인해보려 한다.
이 분석은 직접 만든 도구 just-mlb로 했습니다. 5시즌 scatter에서 r = 0.95를 직접 보고, "그 5%는 어디서 오는가"를 점들 사이에서 찾아보세요.