오랜만입니다. 그동안 시험 준비한다는 핑계로 블로그에 소홀했었습니다. 이제 남는 시간이 좀 생겨서 몇 달 동안은 열심히 블로그 포스팅 가능할 것 같습니다. 물론 제가 글 쓰는 주제나 글 쓰는 성향 때문에 자주 쓸 수 있을 것 같지는 않지만요. 그래서 먼저 간단한 글 하나 씁니다.


모든 스탯은 팬그래프에서 얻었습니다.

 

요즘 야구팬이라면 WAR이란 소리를 지겹게 들으셨을 겁니다. Wins above Replacement, WAR에 대한 이야기는 복잡하기도 하거니와 저 말고 설명해 주실 분들이 많기 때문에 설명이 필요할 것 같지는 않습니다. 다만, 우리가 계산하는 팬그래프 방식 WAR은 득점을 이용하는 방식이기 때문에 득점을 승수 스케일로 바꾸는 무언가가 필요하다는 것은 확실합니다. 그것이 오늘 이야기할 R/W(Runs Per Wins)입니다. 근데 왜 이 얘기를 뜬금없이 하느냐? 하신다면 WAR 계산에 도움이 좀 될 수 있겠다 싶어서입니다. 정확히는 WAR 계산할 때 팬그래프 따라하기 위해 알아야 할 팁에 관한 글입니다. 몇 년간 팬그래프에서 계산하는 수준의 R/W을 계산하는 것은 저를 괴롭혔습니다.(그 시간에 공부를 더 해야 했다는 것은...) 근데 불현 듯 제 머리를 스친 것이 있었습니다. 정확히 말하자면, 인식의 전환입니다. 이제 이 방법으로 R/W을 계산하신다면 팬그래프와 가까운 방식으로 WAR 계산이 가능해질 겁니다.(진짜로, 진짜로 말입니다.)


득점을 승수 스케일로 환산하자

 

보통 WAR을 소개할 때 R/W10으로 놓거나, 혹은 10 부근이라고만 알려줍니다. 더 나아가서, 피타고리안 승률을 이용하면 R/W을 구할 수 있을 거라는 힌트 정도를 줍니다. 알쏭달쏭합니다. 그렇다면 먼저 R/W이 왜 필요한지에 대한 설명이 필요할 것 같군요.


국내에 널리 알려진 WAR을 구하는 방법이라면 단연 팬그래프 방식이라고 할 수 있습니다. 팬그래프에서 WAR을 구할 때 시작은 공헌도를 득점 스케일로 환산하는 것에서 시작합니다. 그러니 wRAA가 필요하고, UZR이 필요하고, 포지션 보정점수 등등이 필요한 겁니다. 모두가 다 득점(R)’ 스케일이죠. 하지만, 우리가 원하는 것은 Replacement보다 얼마나 더 많은 승수를 쌓게 해 주었느냐 입니다. 득점은 승수가 아니기에, 이제 득점을 승수로 환산하는 과정이 필요하게 됩니다. 그래서 Runs Per Wins라는 개념이 생기게 된 겁니다. 역시나 알기 쉽게 돌직구적 작명입니다. 마음에 드는군요.(...제 마음에 들어서 뭐 하겠습니까만...)


그렇다면 먼저 과연 R/W으로 10점이 괜찮을지에 대해서 생각해 봅시다. 아주 간단한 모델을 살펴봅시다. 매 시즌 득점수준은 달라지긴 하겠지만, 모든 시즌들을 다 더해서 계산해보면 대략 4.5점 정도니 4.5점인 리그 상황을 상상해 보기로 해 봅시다. 메이저리그에서 한 팀이 치루는 한 시즌은 162경기이니까 729점입니다. 딱 평균적인 상황인 0.500의 팀이라면 득점과 실점의 수준이 같을 것이고, 그러니 득점도 729점이고 실점도 729점일 겁니다. 이 때 승수는 81승입니다. 이제, 1승을 더 하는 팀을 생각할 때입니다. 그러니까, 82승 팀입니다. 승률은 0.506173..정도입니다. 이제, 우리의 목표는 간단해집니다. 득점을 몇 점을 더 하거나, 실점을 몇 점 덜 하는 것이 82승과 비슷할지에 대해서 맞추는 문제인 겁니다.


만약 10점이 R/W이라면 739득점 729실점 팀이 0.506일 것이고, 729득점 719실점 팀이 0.506일 것입니다. 먼저 전자, 0.506411..정도입니다. 후자? 0.506474..정도입니다. , 10점이면 대략 R/W에 부합하겠군요. 간단한 계산이 보여주는 10점의 마법입니다.


득점을 승수 스케일로 사진출처-위키피디아


 

근데 매 시즌 득점수준이 달라지잖아?

 

그렇습니다. 득점 수준은 매 시즌마다 계속 변동됩니다. 높아지거나, 낮아지기도 합니다. 어느 정도 경향성이 있지만 그 안에서도 요동이 있습니다. 아놔, 그러면 R/W도 조금씩 변하겠네요? 아주 간단히 얘기해서, 평균득점이 3점인 리그에서는 10득점을 더 하면 0.50854팀이 됩니다. 평균득점이 10점인 리그에서면, 10득점을 더 해 봤자 0.503638..정도입니다. 그래서 득점 수준이 높아지면 R/W이 높아지고, 득점이 적어지면 R/W이 낮아지게 됩니다.

 

그럼 우리는 팬그래프가 떠먹여주는 것만 먹어야 하나요?

 

역시 덕후들의 성지인 팬그래프는 우리의 기대를 배반하지 않고 매년마다 R/W을 계산해서 제공해주고 있습니다. , R/W을 계산하는 방법은 여러 가지가 있습니다. 가장 좋은 방법은 역시나 피타고리안 계산입니다. 근데, 좀 이상합니다. 수비로 세이브 해 주는 득점수준, 그리고 득점으로 기여하는 부분에 대해서 어떻게 점수를 적용해야 할지, 또한 계산했다고 해도 그 점수들을 그냥 더해야할지 등등 여러 가지 정의 문제가 산재해 있습니다. 그것도 그렇지만, 피타고리안으로 점수 수준을 알아내는 것 자체가 쉬운 문제가 아닙니다. 아래 식을 봅시다. 이 때는 R/W을 득점 관점에서만 바라본 상황입니다. 편의상 R/Wx로 보고, 승률을 W로 생각합시다. 득점과 실점이 같아야 승률이 0.500인 팀이니까 득점=실점=R로 봅시다.



만약 여기에서 c2라면 계산하기 훨씬 수월할 겁니다.(평균 4.5점인 리그에서 대략 9.506점이 나오네요.) 다만, 요새 세이버매트리션들이 좋아하는 c=(경기당 득점+실점)^0.287이라면 문제가 달라집니다. 아래가 그걸 풀려고 할 때 우리가 맞딱뜨리는 어려움입니다. 원래 상황이 c=(2RPG)^0.287이니, 그냥 쉽게 쓰기 위해 c=(2RPG)^y라고 하고 y는 고정되어 있다고 생각합시다. 이 때, 달라진 상황에 의해 c=(2RPG+x)^y이 됩니다.(y=0.287)



이제 이 방정식을 풀면 됩니다. (어때요, 참 쉽죠?...)이 상태로는 풀기가 어렵기 때문에 이제 테일러 전개를 시켜보겠습니다. 이 때, x는 대략 10점 정도로 가정해 봅시다.



이게 1차항까지 계산한 겁니다. 보통 상황이라면 x10에 가깝다고 생각하고 이차항까지만 계산해도 무방할 가능성이 있습니다만, 어떤 분들에게는 심기가 불편할 수도 있습니다. 더욱이, x10과 너무나 차이가 나는 경우는 그냥 실패입니다.

..그러니까 차라리 R/W을 계산하기 위해 수치해석 책 1장 붙들고 열심히 프로그래밍 하는 게 나을 수 있다는 얘기입니다. 하하하...이젠 아예 팬들에게 세이버매트릭스 개념 계산하려면 공대나 수학과 가라는 얘기가 나오겠습니다. (물리학과 나와도 할 수 있습니다! 많이 안 쓰면 까먹겠지만..) 세이버매트릭스는 누구에게나 열려 있어야 하기 때문에(라기 보다는 제가 그렇게 생각하기 때문에), 좀 더 쉬울 필요성이 있습니다. 그러니 방정식 풀이라니, 당치도 않습니다. 그 때 제 뇌리에 언뜻 스친 게 있습니다.

투수 계산할 때!”

 

태초에 투수와 타자가 다 있었으니

 

탱고느님은 이미 이런 말씀을 하신 적이 있습니다.

투수 WAR을 계산할 경우 R/W((리그 득점*(18-투수가 던진 평균 이닝)+실점*투수가 던진 평균 이닝)/18+2)*1.5로 계산하라

이 때 득점수준은 9이닝당으로 계산하는 겁니다. , 이게 맞느냐고 물어보실 수 있겠지만 목표는 팬그래프 따라하기니까, 무시하기로 합시다.(여러분은 저와 같이 단순하게 생각하지 않기를 바랍니다..)

이걸 타자로 적용해보기로 합시다. 타자는 투수에 비해서 한 경기에 끼칠 수 있는 영향력이 적습니다. 그러니 모든 타자의 R/W을 같다고 가정해봅시다. 그러면, 위에 쓴 투수 R/W 모델에서 투수가 던진 평균 이닝은 9가 될 것입니다. 실점은 결국 리그 득점이 될 것입니다. 그렇다면, 4.5점인 리그에서는 아래와 같이 계산할 수 있을 것입니다.

R/W=((4.5+4.5)/2+2)*1.5=9.75

그러니까, (RPG+2)*1.5로 계산하라는 겁니다. 그렇다면 이렇게 계산하면 팬그래프와 같게 R/W을 계산했는지 맞춰보면, 우리의 팬그래프 따라하기는 성공적인 겁니다.

아래 파일은 그 계산 파일입니다.

 

WAR_FANGRAPHS_RunsPerWins.xlsx


, 거의 똑같습니다. 그러니까 위와 같이 열심히 방정식을 풀거나 수치해석 안 해도 계산할 수 있다는 것입니다. 오차들이 조금 있는데, 0.001점 차이는 아무래도 팬그래프에서 반올림을 하지 않았을까 하는 생각입니다. 그리고 0.009점 차이가 나는 시즌(1998)이 있는데, 이 오차에 대해서는 생각해 보았지만 잘 모르겠습니다.(만약 다른 방법이 생각이 나신다면 덧글로 알려주세요.)

사실상 단 한 시즌만이 오차가 나는 것으로 보이며, 그렇다면 아마도 팬그래프도 위와 같이 R/W=(RPG+2)*1.5로 계산하지 않을까 하는 것이 제 추측입니다. 그러니, 이제 우리도 좀 더 팬그래프와 비슷하게 계산해 보자구요! 그리고 지금까지 이런 단순한 사실도 깨닫지 못했던 제 굳은 돌머리에 대해서 반성하기로 합니다...

 

+덧붙여서

하하, 저는 우리나라에 이와 관련된 포스팅을 찾지 못해서 제 블로그에 올립니다만, 이미 이전에 누군가가 했을 수도 있겠다는 생각이 듭니다. 무엇보다, 이전에 이미 제가 봤던 어떤 블로그 페이지에서 톰 탱고R/W=(RPG+2)* 1.5로 근사했다는 사실을 명시해 놓았더군요. 왜 그 페이지에서 Tangotiger를 안 찾아봤는지 모르겠습니다.(...) 여튼 팬그래프는 꽤나 톰 탱고의 연구에서 영향을 받은 사이트라서 아마도 R/W=(RPG+2)*1.5일 거라는 제 예상은 거의 맞지 않을까 생각합니다.

Posted by 야구고물상

댓글을 달아 주세요