'Run Value'에 해당되는 글 1건

  1. 2015.03.08 Run Value와 wOBA 구하기

뭐, 이 글을 나 때문에 썼다고?


모든 스탯은 Fangraphs에서 얻었습니다.


1. 득점 창출


wOBA를 소개하기 이전에 세이버매트릭스의 전체적인 흐름 정도는 소개할 필요가 있을 것 같습니다. 세이버매트릭스가 태동한 이후 많은 세이버매트리션들은 득점이 어떻게 만들어지는지에 대하여 여러 연구를 수행하였습니다. 물론 만들어지는 과정 자체는 여러 루트가 있겠지만, 많이 루상에 나가고(출루율), 많은 장타를 쳐 내면(장타율) 많은 득점을 창출할 수 있다는 사실을 우리는 많은 경기를 보아온 바 알고 있습니다. 그런 이유에서 탄생한 것이 바로 세이버매트릭스계의 기본이자 혁명이라고 할 수 있는 OPS(On Base Plus Slugging)입니다. 하지만, 우리가 알고 있듯이 단타를 친 후 창출되는 득점이 꼭 2루타를 친 후 창출되는 득점의 1/2는 아닙니다. 볼넷을 얻어내서 창출되는 득점이 단타에 의해서 창출되는 득점과 같은 것은 아니지요. 그래서 빌 제임스는 RC(Runs Created)와 같은 스탯을 만들었고, 짐 푸르타도는 XR(Extrapolated Runs)곽 같은 스탯을 만들어냈습니다. 그래도, 뭔가가 부족했습니다. 그래서 누군가는 생각해 냈죠. 해당하는 이벤트가 만들어내는 득점을 PBP(Play by Play) 데이터를 이용해 계산해 보기로 하자! 그리고 그 결과를 이용해 계수를 구한 후 득점력을 설명해 보자! 그런 생각에서 세상에 나온 개념이 Run Value입니다.


2. Run Value를 구하기 전에 잠시...


먼저 runValue를 구하기 위해서는 RE(Runs Expectancy, 기대득점)를 구해야 합니다. 왜냐구요? 모든 득점이 같은 상황에서 똑같은 방식으로 나오지는 않기 때문에 각 아웃 카운트에 해당하는 상황마다 평균적으로 기대되는 득점을 구해야만 각 이벤트가 가지는 순수한득점의 가치를 구할 수 있기 때문일 것이기 때문입니다.

먼저 RE를 구하기 위해서는 모든 아웃 카운트에 해당하는 상황을 생각해 보아야 합니다. 먼저 아웃카운트를 생각해 봅시다. 우리가 야구경기를 보면서 볼 수 있는 아웃 카운트는 0,1,2가 있습니다. 3아웃 체인지 아니냐고 묻는다면, ‘3아웃이면 이닝이 끝나기 때문에 우리가 상관할 바가 아니다라고 할 수 있겠습니다. 다음에 우리가 생각할 수 있는 상황은 루상에 주자가 있느냐, 아니냐입니다. , 주자 있음과 주자 없음에 대한 각각의 상황이 1, 2, 3루에 다 존재합니다. , 주자가 루상에 채워져 있는 상황은 2^3=8가지 상황이 있는 것입니다. 그러므로, 아웃 카운트까지 생각해 타자가 겪을 수 있는 상황은 3*8=24가지입니다.

우리가 원하는 것은 기대되는 득점의 값이므로, A라는 상황(예를 들자면 무사 1루 상황 같은 어느 특정한 상황)의 수를 그 해당하는 상황이 일어난 해당 이닝이 끝날 때까지 득점한 득점의 수를 나눈 값이 각 해당 상황(Event)RE가 되는 겁니다. 1999~2002시즌의 RE는 아래 링크를 들어가 보시면 보실 수 있습니다.

1999~2002시즌 기록으로 계산한 RE

 

3. Run Value 구하기


먼저 몇 가지 생각을 해 봅시다. 위의 링크에 나온 표를 참조하시면 이해가 더 빠르실 겁니다.

어떤 선수가 나와서 무사 주자 없는 상황에서 홈런을 첬다고 생각해 봅시다. 원래의 무사 마루 상황에서 기대되는 득점은 0.555점입니다. 이 때 홈런을 쳤다면 이는 솔로 홈런이고, 이후의 상황은 무사에 주자가 없으므로 더 기대되는 점수는 0.555점이므로 기대득점은 1.555점이 됩니다. 그리고 이 홈런의 득점가치는 기대득점 1.555점에서 원래 기대되는 득점 0.555점을 빼서 1점이 됩니다.

이에 비해 2사 만루 상황에서 만루홈런을 쳤다고 가정해 봅시다. 홈런을 쳤기 때문에 홈런을 친 후 상황은 2사 주자 없음이 되므로 그 때 기대되는 득점은 0.117점이고 얻어낸 득점은 4점이기 때문에 기대득점은 4.117점입니다. 그리고 원래 2사 만루 상황에서 기대되던 득점은 0.815점이기 때문에 2사 만루 상황에서의 만루홈런의 순수한득점가치는 0.117+4-0.815=3.302점입니다. 그리고 이런 방식으로 모든 상황에 상응하는 홈런에 대한 순수한 득점가치를 구한 후 그 가중평균을 계산하면, 그것은 곧 홈런의 runValue가 됩니다. 만약 시즌의 홈런이 1000개 나왔고(가정입니다...) 솔로홈런이 그 중 400, 만루홈런이 600개가 나왔다면(다시 한 번 말하지만 가정입니다....) 홈런의 runValue는 runValue=(1*400+3.302*600)/1000=2.381점이 됩니다. 이런 방식으로 실제 리그 기록을 이용하여 각 이벤트에 대한 runValue를 구하면 됩니다.

참고로 실제 리그 기록을 가지고 홈런의 runValue를 구해 보면 대략 1.4점 정도로 계산됩니다.


4. wOBA


이제 runValue를 어떻게 구하는지 알아보았으니 wOBA에 대해 설명할 차례입니다.(헉헉..힘들어 죽겠습니다..) wOBAWeighted On Base Average를 뜻합니다. 가중출루율 정도로 해석할 수 있을 듯 하군요. 이름에서 몇 가지 사실을 유추해 낼 수 있습니다. Weight에서 어떤 가중치가 있다는 것을 생각해 볼 수 있고, On Base Average라는 것에서 출루율 스케일로 만들어낼 것이라는 것이죠.

우리가 원하는 것은 공격적인 요소들과 runValue를 이용하여 출루율 스케일의 스탯을 만들어내는 것입니다. 우리가 원하는 것은 runValue를 이용하여 weight를 구하고, 그를 이용하여 출루율 스케일의 스탯을 구하는 것입니다. 이 때 weight을 로 정의해 봅시다. 이 때 i는 그냥 첨자를 의미합니다. 즉, 는 wBB 등을 다 포함하는 개념입니다.

우리가 위에 말한 방식대로라면 아마 식은 이런 방식이 될 것 같군요.



이 때 IBB는 투수가 일부러 상대타자를 피한 경우이기 때문에 계산에서 제외하는 것입니다.

그리고 출루율 스케일이어야 하므로, LgwOBA=LgOBP여야 합니다. 이 때 wOBA의 분모와 OBP의 분모도 같기 때문에



의 식이 성립함을 알 수 있습니다. 결과적으로 아래와 같이 쓸 수 있을 겁니다.

 (각 i는 득점을 하기 위해 필요한 타격 요소들을 의미합니다.)

또한 분모를 두 부분으로 나눠봅시다.

AB+BB-IBB+HBP+SF=X라고 할 때 X=M+P로 정의하고 M=AB-H+SF, P=H+BB-IBB+HBP로 정의하기로 합니다. 위의 정의를 보면 아시겠지만, M은 아웃을, P는 진루를 시키는 모든 요소를 더한 것임을 알 수 있을 겁니다. 위에서 저는 득점을 하기 위해 필요한 타격 요소들을 로 정의하였는데, 이는 위에서 정의한 P와 같습니다. 그러므로, 우리는 아래의 식을 풀어야 함을 알 수 있습니다.



이 때 는 Run Value들을 의미합니다. 여기서 갑자기 Run Value가 튀어나온 이유는 분모에서 득점에 실이 되는 것과 득이 되는 요소들이 각각 P,M이고 각각의 득이 되는 이벤트들(단타, 2루타 등등)은 아웃에 의한 득점가치에 대한 득점가치들을 더한 값을 이용하여 weight를 계산해내야 할 것이기 때문에 아웃에 의한 득점가치, 아웃이 아닌 것에 대한 득점가치가 필요하여 나오게 되는 것입니다. 또한 위에서 제가 쓴 아래첨자 I,j는 dummy variable로 사실상의 큰 의미는 없고 딱 계산을 잘 하기 위해 필요한 첨자 정도로만 의미가 있다고 보시면 됩니다여튼 이를 다시 풀어보면



의 식을 얻어낼 수 있습니다.

이 때 제가 정의한 rPLUS와 rMINUS, 그리고 각각의 weight는 아래의 식과 같습니다.



또, 편의상 wOBA SCALE을 아래와 같이 정의합니다.



그러므로 wOBA의 계수는 아래와 같이 구하면 됩니다.(BB의 경우)



이 때 rPLUS는 아웃이 아닌 타격에 의한 득점 가치를, rMINUS는 아웃에 의한 득점 가치를 의미합니다.

 

5. Fangraphs 방식으로 wOBA 구하기


사실 runValue를 구하기 위해서는 모든 PBP 데이터가 필요합니다. 근데, 우리의 영원한 아이돌이신 Tom Tango는 조금 다른 방식으로 runValue의 근사치를 구해내는 방법을 고안했습니다.

먼저 Runs Per Out을 구해봅시다. 이는 다른 게 아니라 을 뜻합니다. 아래에서는 이를 줄여서 RpOUT으로 쓰도록 하겠습니다.


다음에는 딱 아래와 같이 구하면 됩니다.


runBB=RpOUT+0,14

runHBP=runBB+0.025

run1B=runHBP+0.13

run2B=run1B+0.3

run3B=run2B+0.27

runHR=1.4


이는 Tom Tango의 버전과는 조금 다른데, Fangraphs는 위와 같이 RunValues를 구하는 것 같더군요.

다음 wOBA의 계수를 구하는 과정은 우리가 4번에거 구한 과정을 이용하여 구하면 됩니다.

예를 들어서 2014시즌의 wOBA 계수를 구해보면 아래와 같은 결과가 나옵니다.


 RpOUT

runBB 

runHBP 

run1B 

run2B 

run3B 

runHR 

 0.151

0.291 

0.316 

0.446 

0.746

1.016 

1.400 


rMINUS=-0.238

rPLUS=0.529

wOBA SCALE=1.304


 wBB

wHBP

w1B 

w2B 

w3B 

wHR 

 0.689

0.722 

0.892 

1.283 

1.635 

 2.135


위의 계수를 Fangraphs의 Glossary 코너에서 확인해 보면 정확히 계산되었다는 사실을 알 수 있을 것입니다.


아래는 제가 구한 Fangraphs 방식의 runValuewOBA 계수 엑셀 파일입니다.

 

runValues,wOBA Coefficients.xlsx


6. 후기


우리 같은 보통 야구팬들이 모두가 PBP 데이터를 가지고 계산하기에는 여간 힘든 게 아닙니다. 이런 건 보통 데이터베이스 프로그램을 이용하여 계산해야 하는데, 모든 사람들이 다 그 방법을 아는 건 아니거든요. 그래서 5번과 같은 방식이 있다는 것은 분명 우리 같은 일반 팬에게는 혁명과도 같은 발전이라고 할 수 있겠습니다. 5번의 방식이 정말 원래의 runValue와 비슷한지 궁금하실 수 있으실 텐데, 제가 개인적으로 데이터를 다운받아 계산해 본 바에 의하면 정말 거의 비슷합니다. 그러므로 적어도 5번의 방식을 이용하여 wOBA를 계산하는 것이 큰 무리는 없다고 생각합니다.

지금까지 잘 설명해 놓고 제가 이런 말을 하면 굉장히 이상하겠지만, 사실 제가 이 글을 쓴 이유는 단순하게 wOBA를 계산하는 방식과 그 식이 어떻게 나왔는지를 설명하기 위해서 쓴 것은 아닙니다.(..아니 조금은 있습니다...) 저는 언제나 투수의 스탯에 관심이 많습니다. 그래서 투수의 Opponent Batting Stat을 통해 wRC를 계산하면 대략적으로 투수가 기록할 실점을 계산할 수 있지 않을까?’ 하는 생각에서 계산을 하곤 했습니다. 실제로 투수가 실점을 하나 상대팀이 득점을 하나 득점 환경은 똑같기 때문에 전혀 다르게 생각할 필요는 없다고 생각한 것입니다. 하지만, 저의 생각과 다른 구간이 있더군요. 바로 평균적인 wOBA에 비해 wOBA가 굉장히 낮은 경우입니다. 대략 wOBA가 0.250정도이거나 그보다 작을 때 정도입니다. 대표적인 선수가 클레이튼 커쇼입니다. 클레이튼 커쇼는 언제나 굉장히 낮은 피wOBA를 기록합니다. 하지만 그에 상응하는 wRC는 커쇼가 기록하는 실점보다 훨씬 적었습니다. 커쇼가 실점 억제를 못하는 선수일 리는 지금까지의 경험으로는 전혀 없습니다. 커쇼의 LOB%는 통산 78.3%입니다. MLB에서는 아무리 높아도 리그평균이 75%를 넘지 못합니다. , 커쇼는 적어도 실점 억제력이 나쁜 선수는 아닙니다. 이를 다른 상황으로 적용해 보자면, 커쇼가 기록한 피wOBA와 같은 wOBA를 기록한 타자가 모든 타석에 다 나왔다고 상상을 해 볼 때, 우리가 아는 wRC를 이용하여 계산한 예상되는 득점이 커쇼가 실제로 기록한 실점보다 꾸준하게 더 적다는 굉장히 괴랄한 상황이 발생하게 됩니다.(!) 그러므로, wOBA가 굉장히 작은 경우 조금 다른 식이 필요하지 않을까 하는 생각을 하게 된 겁니다. 그러니까 정리해 보자면, 제가 이 글을 쓴 이유는 제가 만든 새로운 wRC의 근사식을 소개하기 위한 추진력을 얻기 위해 쓴 것이라고 할 수 있습니다.(...) 

그러니, 만약 이 글을 보셨다면, 다음 글도 기대해 주시길 바랍니다.(...)

마지막으로 끝까지 읽어 주셔서 감사합니다.

Posted by 야구고물상

댓글을 달아 주세요