야구는 사람이 하는 게임이다. 사람이 하다 보니 예상치 못한 다양한 현상들이 일어나곤 한다. 타율이 .180인 타자가 어느 날 갑자기 5타수 5안타를 기록할 수도 있고, 방어율이 5.50인 투수가 어느날 완봉승을 거둘 수도 있다. 이러한 예측불허의 상황이야말로 야구를 더욱 재미있게 만드는 요소라고 할 수 있다.

그러나, 이러한 랜덤한 요소들은 팀이나 플레이어의 현재 상태를 냉정하게 평가하고 앞날을 예측하는 데 장애가 된다. 예를들어 어떤 플레이어와의 재계약을 검토하는 구단이 있다면, 그의 성적이 뽀록인지 진짜 실력인지 궁금할 것이다. 또한, 7월의 트레이드 마감시한이 임박해 오면, 구단은 지금 팀 성적이 진짜 팀의 실력을 반영하고 있는 것인지, 아니면 단순히 운이 좋거나 나빠서 성적이 이렇게 나오고 있는 것인지 알아보고 싶을 것이다.

세이버메트릭스가 특히 중요한 의미를 갖는 분야 중 하나가 바로 이런 부분이다. 운빨 같은 랜덤한 요소들을 최대한 제거하고 객관적인 진짜 실력을 측정하는 데 도움을 주는 것이다. 이전에 소개한 FIP나 BABIP 같은 것들이 주로 선수 개개인에 대한 그러한 노력의 일환이라면, 오늘 소개할 Pythagorean Record은 팀 성적에 대한 냉정한 검토라고 할 수 있다.


메이저리그의 팀 순위(Season Standings)를 자세히 보면 "Expected Wins"와 같은 항목을 발견할 수 있다.
아래 화면은 ESPN에서 캡쳐한 것이다.

사용자 삽입 이미지


빨간 색 부분이 바로 Expected W-L 이다. 예를 들어 LA Angels의 경우, 실제 기록은 42승 32패인데 Expected W-L은 39승 35패이다. 이것은 무슨 의미일까? Expected W-L은 어떻게 계산되는 것일까? 지금부터 자세히 살펴보자.


피타고라스의 법칙을 기억하시는지?

a2+b2=c2

바로 이런 공식이었다.

그런데, 야구에도 이와 비슷한 형태를 가진 공식이 있다.

Exp. Win% = RS2 / (RS2+RA2)

여기서 Exp. Win%는 기대 승률, RS는 팀의 총 득점(Runs Scored), RA는 팀의 총 실점(Runs Allowed)을 의미한다. 즉, 어떤 팀의 총 득점과 총 실점을 알게 되면 그 팀의 현재 승률을 예측할 수 있는 것이다. 이 식은 Bill James에 의해 고안되었으며, 형태가 피타고라스 법칙과 유사하다고 하여 Pythagorean Record 혹은 Pythagorean Expectation이라고 부른다.

위에서 예를 들었던 LA Angels의 경우, 오늘 현재까지 74게임에서 총 득점은 376점, 총 실점은 355점이다. 이를 위의 공식에 넣으면 376^2/(376^2+355^2) = 52.9%가 나온다. 이 기대 승률을 이용하여 74게임에서의 예상되는 승수를 계산하면 74*0.529 = 39승이 되는 것이다. 74게임이므로 패는 당연히 74-39 = 35패가 된다.

이것은 어떤 의미를 가지는 것일까? 어떤 팀이 74게임에서 376득점, 355실점 했다면 이 팀은 아마도 39승 35패를 했을 것으로 예상되는데, LA Angels의 경우는 42승 32패로 현실이 기대치보다 좋게 나타나고 있다. 이는 그만큼 Angels가 운이 좋았다는 뜻으로 해석된다.


이 공식은 선풍적인 인기를 끌었고, Bill James가 제창한 수많은 세이버메트릭스 이론과 계산식들 중에서도 최대 히트작 중 하나가 되었다. 그러나 이후의 지속적인 연구에서, 이 공식이 득점과 실점의 차이가 커질 수록 오차가 생긴다는 문제점이 도출되었다. 즉, 득점을 아주 많이 한 경우의 기대 승률이 실제 기록보다 낮게 나타나는 현상이 지속적으로 발생하는 것이다. 한두 개가 그렇다면 해당 팀/해당 시즌에 운이 좋았다는 정도이겠지만 지속적으로 나타난다면 이것은 오차라고 보는 것이 맞다.

(참고로 기대 승률의 연구라는 것은 대체로 엑셀을 이용한 반복적인 노가다이다. 수십년 간의 메이저리그 실제 기록을 넣어 보고, 여러 가지 조건으로 RS와 RA값을 변화시켜 가며 회귀분석을 수행하는 것이다.)

관심은 주로 제곱하는 숫자에 집중되었다. 즉,

Win% = RSX / (RSX+RAX)

이 식에서 X값이 얼마일 때 가장 정확한 기대 승률을 도출하느냐였다. 이를 위해 무수한 회귀분석이 이루어졌다.
Bill James 자신도 X값이 2가 아니라 1.82일 때 더 정확한 결과가 나온다고 주장하였다. 한편, David Smyth라는 사람이 아래와 같이 X값을 구하는 공식을 만들어냈다.
X = ((RS+RA) / G)0.287

여기서 왜 또 0.287을 제곱하느냐를 따지는 것은 무의미하다. 위에서 이야기했듯이 무수한 회귀분석을 통해 경험적으로 도출된 식이기 때문이다. (참고로 G는 게임 수를 의미한다. (RS+RA)/G를 RPG(Runs Per Game)이라는 용어로 표현하기도 한다.)

이 밖에도 로그함수를 이용하는 등 수많은 시도가 있었으나, 여러 사람들의 지속적인 노가다 테스트 결과 위에 소개한 David Smyth의 방식이 역대 메이저리그 기록에 가장 근접하여 가장 우수한 기대 승률을 도출하는 것으로 나타났다. 물론 여전히 0.287에서 소수점 세째자리의 7에 대해서는 아직도 의견이 분분하지만... 소수점 세째자리로 인한 오차는 어지간해서는 무시해도 되는 수준이다.

그러나... David Smyth의 공식은 다소 복잡하므로... (사실 엑셀을 이용하면 쉽게 계산되지만.. 식 자체가 별로 친숙해지기 어렵게 만들어져 있으므로...) 일반적으로는 X값을 그냥 상수로 놓고 사용하는 경우가 많다. 이를테면 ESPN은 X를 2로 하여 Bill James의 원래 식과 동일하게 계산하고 있다. MLB 공식 사이트의 경우에는 Bill James가 수정한 대로 X를 1.82로 하여 계산하고 있다. 어느 쪽을 쓰더라도 차이는 별로 크지 않다. 당신이 구단 프런트가 아닌 이상 이 정도로도 충분한 것이다.

비록 경험적으로 도출된 공식이기는 하나, 미국 Williams 대학에서 수학과 통계학을 강의하는 Steven J. Miller 교수는 이 식에서 RS와 RA가 통계적으로 독립변수이고, 각 팀의 득점이 특정 형태의 분포(Weibull Distribution)를 따른다고 가정하면, 통계적으로 충분히 유의미한 공식임을 증명한 바 있다.


이 모든 식들이 너무 복잡하다고 생각한다면... 가장 간단한 방법이 있다. 득점에서 실점을 뺀 것을 Run Differential이라고 하는데, 이 Run Differential이 10점 변할 때마다 승차가 1씩 변하는 것이다. 승차가 1씩 변할 때에는 승이 1 올라가고 패가 1 줄어든다는 점에 유의하자. (단지 1승만 올라가면 순위표에서 반 게임 차 변하는 것이므로...)  다시 말해 700점 득점하고 81승 81패 하던 팀이 있다면 이 팀이 710점 득점하면 82승 80패 할 것이라는 이야기이다. 이것은 편의상 쓰는 방법이고 정확도가 다소 떨어지지만... 빠르고 쉽다는 장점이 있다.


오늘 자 순위표를 가지고 메이저리그 30개 팀의 기대 승률 및 승 수를 직접 구해 보았다. 과연 어느 팀이 지금까지 운이 좋았고, 어느 팀이 운이 나빴을까? 계산결과가 담긴 엑셀파일을 아래에 첨부하였으므로 첨부파일을 받아서 직접 확인해 보시기 바란다.



엑셀파일에는 가상의 팀으로 실험을 해본 결과도 포함되어 있다. 한 시즌의 162게임을 모두 치른 결과 750득점 750실점으로 득점과 실점이 같고, 성적도 81승 81패로 딱 5할인 팀이 있다고 하자. 이 팀이 더 좋은 성적을 내기 위해 투자를 하려고 한다. 공격력을 강화하여 득점을 더 하거나, 투수력와 수비력을 강화하여 실점을 덜 하는 방법 중 어느 쪽이 좋을까? 단, 똑같은 비용을 들였을 때 득점이 증가하는 수준과 실점이 감소하는 수준은 동일하다고 가정하자. 아래와 같이 100점씩 변화시킬 수 있다면, 어느 쪽이 유리할까???

A. 공격력 강화 --> 득점 100점 증가 --> 850득점 750실점
B. 투수/수비 강화 --> 실점 100점 감소 --> 750 득점 650 실점

답은 B이다. David Smyth의 공식을 기준으로 할 때, A의 기대 승 수는 91승이고 B의 기대 승 수는 92승이다. 점수를 더 내는 것보다 점수를 덜 내주는 쪽이 더 좋은 결과를 얻게 되는 것이다. 투수력와 수비력의 중요성을 알 수 있는 결과이다.

매니아를 위한 더 읽을 거리

Posted by FreeRedbird

댓글을 달아 주세요

  1. BlogIcon Hwan 2009.07.06 11:15 Address Modify/Delete Reply

    MLB 통계를 가지고 만들어낸 공식이니 우리나라 프로야구에서는 정확하지는 않겠지만, 오늘까지의 경기 내용으로 계산해보면 대부분 거의 비슷하거나 기대 승수가 더 높네요. 아마 무승부가 없는 MLB와 무승부가 패로 계산되는 우리나라의 차이 때문이 아닐까 싶기도 합니다. 흥미로운 것은 유독 롯데만 기대 승수보다 3승 정도 더 한 것으로 계산이 나오는군요. ^^

    좋은 글 잘 읽었습니다.

    • BlogIcon FreeRedbird 2009.07.08 22:27 신고 Address Modify/Delete

      아... 프로야구로 계산을 해 보셨군요. 말씀하신 바와 같이 우리나라 야구에는 무승부가 있어서 메이저리그와는 조금 다른 결과가 나올 것 같습니다. 프로야구 역사도 그럭저럭 30년을 바라보고 있어서 통계적으로 다른 공식을 도출할 수도 있을 것 같지만... 무승부 규칙 자체가 여러 번 바뀌었기 때문에 분석이 어려울 듯 합니다.

      아마 롯데가 다른 팀보다는 조금 운이 좋았던 모양이네요. ^^ 댓글 감사합니다.

  2. BlogIcon 호시 2010.06.25 01:42 Address Modify/Delete Reply

    너무 재밌게 잘 읽었습니다. 다른 세이버메트릭션에 관한 글들도 시간 날 때 조금씩 읽어야 겠네요. 알면 알수록 재미있는거 같습니다.

    이 포스팅에서 공부한 것을 바탕으로 국내프로야구 기대승률에 대한 포스팅을 썻습니다 아직 많이 부족하다 보니 FreeRedbird님의 포스팅의 정보를 많이 참조해서 썼습니다. 포스팅의 말미에 출처를 언급했습니다. 제가 실례를 범하지 않았길 바랍니다. 아래는 제 블로그 포스팅입니다
    http://hosieye.egloos.com/5344299

    • BlogIcon FreeRedbird 2010.06.25 17:15 신고 Address Modify/Delete

      감사합니다. 요즘 바빠서 세이버메트릭스 쪽은 포스팅을 거의 못하고 있는데요... 쓰고 싶은 것은 많지만 시간이 잘 나질 않네요. ^^ 그리고... 제 글은 출처만 밝혀 주시면 자유롭게 사용하셔도 상관없습니다.

      위의 댓글에도 언급이 되어 있고, 호시님의 글에도 있습니다만, 우리나라 야구는 무승부 제도가 있어서 승률이 왜곡되는 면이 있고요... 매년 조금씩 승/패/무승부 관련 규정이 바뀌어 왔기 때문에 MLB에서처럼 노가다로 분석을 하여 위 공식에서의 X값을 새로 만들기도 좀 그렇습니다. 동일한 규정으로 오래 데이터가 축적되어야 좀 더 정확한 한국형 승률 예측 공식을 얻을 수 있을 것으로 생각합니다.

  3. 위즈 2011.01.31 19:04 Address Modify/Delete Reply

    좋은 글 감사히 읽었습니다.
    사실, 야구 좀 안다고 자부했었지만 세이버 매트릭스 쪽으론 완전 잼병이었거든요.
    실제 야구를 볼때도 전통적인 스탯만 챙겨보고 OOTP 할때는 스탯보다는 툴을 중시하다보니..ㅎㅎ;;
    아무튼.. 정말 반갑고 감사하고 그렇습니다. 앞으로 틈틈이 찾아와서 글도 읽고 댓글도 남기고 하겠습니다.

  4. 삼팬 2015.09.16 20:41 Address Modify/Delete Reply

    저기 X를 구하는 공식에서 어떤 곳은 0.285로 되어 있는건데 어떤게 맞는건가요?