Cardinals의 드라마틱한 플레이오프 진출 기념으로, 오래간만에 세이버메트릭스 포스팅을 해 본다.

Bill James는 이미 오래 전에 팀과 팀 간의 단기전 승률을 계산하는 "Log5 System"을 만들어 놓고 있었는데, "Baseball Abstarct 1981"에 처음 발표되었고, 이후 좀 더 일반적인 형태로 확장되었다. 그의 설명에 의하면 이런 이름을 붙인 것은 이 식이 각각의 팀을 승률 5할짜리 팀과 비교했을 때의 상대적인 값으로부터 계산하는 대수 체계(Logarithmic System)이기 때문이라고 한다.

로그 어쩌구 하는 이름도 그렇고, Bill James의 설명도 그렇고, 뭔가 엄청 복잡한 수식이 등장할 것 같지만, 실제 계산식은 무척 단순하고, 로그함수를 계산하는 일도 없다.

예를 들어, 팀 A와 팀 B가 1게임짜리 단판 승부를 벌인다고 치자. 종목은 꼭 야구가 아니더라도 상관은 없는데, 어쨌든 야구라고 치고, 이 둘은 같은 리그에 속해 있다. 해당 리그에서, 팀 A는 현재 6할의 승률을 거두고 있는 반면, B는 4할의 승률을 기록하고 있다. A와 B가 1게임을 했을 때 A가 이길 확률은 얼마일까?

이 계산을 위해서는, 먼저 A팀과 B팀의 log5 값을 구해야 한다. 이를 각각 log5a, log5b 라고 하자.

Bill James가 생각한 log5 값은, 해당 팀의 "Talent" 를 리그 평균에 비해서 상대적으로 나타낸 값이었다. A팀이 리그 전체(리그 평균 승률은 당연히 5할이고, 리그 평균 탤런트 수준도 0.5 이다)를 상대로 6할의 승률을 거두고 있다면, A팀의 상대적인 재능 수준(Talent Level)은 리그 평균에 비해 어느 정도일까? 아래와 같이 계산할 수 있다.


여기에서 0.5는 리그의 평균적인 재능 수준이고, 우변의 0.6은 이 팀의 승률이다.
역으로 이야기하면, 이 식을 만족하는 값을 A팀의 재능 수준, 즉 A팀의 log5 값으로 Bill James가 정의했다 라고 표현할 수 있을 것이다.

위의 식을 log5a에 대해 풀면,


즉, 리그 평균을 0.5라고 했을 때, A팀의 재능 수준은 0.750이다. 뒤집어 이야기하면, 재능 0.750짜리 팀이 재능 0.5짜리 팀(혹은 평균이 0.5인 리그 전체)을 상대로 경기를 하면 승률은 0.6, 즉 60%라는 것이다.

같은 방법으로, Log5b도 구해 보면,




동일한 식을 이용하여, 이제 A팀과 B팀이 단판 승부를 벌였을 때 각각의 승률을 예측할 수 있다.

A팀이 B팀에게 이길 확률을 Pab라고 하면,



처음의 식과 동일한 식에서, 리그 평균을 의미하던 0.500 대신 log5b, 즉 B팀의 재능 수준을 대입한 것이다. 계산 결과는 A팀이 이길 확률이 69.2%임을 보여준다.

같은 방법으로, B팀이 A팀에게 이길 확률을 계산하면, 30.8%이다.



보다 간단하게 계산할 수 있는 방법은 없을까?

리그 내에서 A팀의 승률을 Pa, B팀의 승률을 Pb라고 하여 식을 정리해 보자.

처음에 log5a를 구하던 식은 아래의 식이었다.


이 식을 log5a에 대하여 정리하면,


마찬가지로, log5b에 대하여 정리하면,


이제, 이 식들을 넣어서 Pab에 대하여 정리하면 아래와 같이 된다.


log5 등 불편한 항들이 사라지고 A, B팀의 승률만 남았다. 즉, 두 팀의 리그 내 승률만 알면 두 팀간 대결에서의 기대 승률을 계산할 수 있음을 알 수 있다.


이제 위의 식을 가지고 실습을 해 보자.

메이저리그는 내일부터 Division Series에 돌입한다. 8개 팀이 2팀씩 5전 3선승제의 단기전을 벌이게 되는 것이다.

페넌트레이스에서의 승패에는 운이 많이 개입하므로, 보다 실제 재능 수준에 가깝게 추정하기 위해, 시즌 득점/실점 자료를 바탕으로 Pythagenpat에 의한 Pythagorean Expectation을 계산하여 해당 팀의 리그 내 승률로 사용하였다.  (Pythagorean Expectation은 여기를 참조)

이렇게 계산한 Division Series 예측 결과는 아래와 같다.


Div. Series 기대승률은 3-0, 3-1, 3-2 승리 확률을 합산한 것이다.
3-0, 3-1, 3-2는 각각 어떻게 구할까? 고등학교 수학에서 배우는 조합을 이용하여 계산하면 된다.

위쪽의 예와 동일하게, 한 번의 대결에서 A팀이 B팀을 이길 확률을 Pab,  B팀이 이길 확률을 Pba라고 하면, n차전에서 시리즈가 A팀의 승리로 끝날 확률은 아래와 같다.


예를 들어, Cardinals가 Phillies에게 4경기만에 3-1로 승리하고 NLCS에 진출할 확률을 계산하면


이렇게 되는 것이다.

참고 : 위 식에서 "(n-1)C2"가 되는 이유는? 마지막 게임은 무조건 해당 팀이 이기게 되므로, 나머지 경기 중에서 두 게임을 이기는 경우의 수를 구하면 되는 것이다.

물론, 플레이오프에서는 5선발을 사용하지 않는 등 정규시즌과는 다른 로스터 운용을 하게 되므로, 실제로는 각 팀의 기대승률 자체가 변하게 되어, 위의 결과에서 오차가 생기게 된다. 하지만, 대략적인 전력상의 우열을 살펴보는 데에는 이정도로도 충분할 것이다.


P.S. 혹시 Bill James가 직접 출판했던 시절의 Baseball Abstract (1977년부터 81년까지)를 구할 수 있는 방법을 아시면 알려 주시길... 가끔 이베이에 올라오는 것 같기는 한데...



Today's Music : Tori Amos - Winter (Live 1992)



중고등학교때 헤비메틀을 많이 듣긴 했지만(팝음악을 들으면 나약한 음악이라고 구박을 받던 시절이었다), 사실 돌이켜보면, 사춘기 소년의 감성을 지배했던 음악은, 이런 곡들이었다. 십 몇 년을 들어도 질리지 않는 곡이다. 그다지 이쁘다고 할 수는 없는 Tori Amos의 얼굴이 너무 크게 잡혀서 약간 부담스럽긴 하지만... -_-;;;

Posted by FreeRedbird
:

야구는 사람이 하는 게임이다. 사람이 하다 보니 예상치 못한 다양한 현상들이 일어나곤 한다. 타율이 .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
: