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


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

 

요즘 야구팬이라면 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 야구고물상

댓글을 달아 주세요

킹 펠릭스도 Opponent Batting Stat으로 계산한 경우 wRC보다 기록한 실점이 대체적으로 많은 대표적인 투수입니다.


모든 스탯은 Baseball-ReferenceFangraphs에서 얻었습니다.


1. 도입

 

제가 이전에 쓴 글에서 볼 수 있듯이, 리그의 득점 환경이 동일하다는 점에서 저는 투수의 타자들과의 상대성적을 통해 투수가 기록한 wOBA를 이용하면 투수가 기록한 실점을 대략적으로 예상 가능하다는 생각을 했다고 썼습니다. 하지만 그 작업을 하기 위해서는 wOBA를 득점 스케일로 변환하는 작업이 필요합니다. 지금까지 알려진 그 스탯은 wRC, 어쩌면 wOBA에서 나오는 아주 당연한 귀결일 수도 있는 스탯이기도 합니다..

 

2. wRC

 

보통은 wOBA를 설명할 때 wRAA를 같이 설명합니다. wRCwRAA나 사실상 거의 같은 의미인데, 다른 것이라면 wRAA+의 득점을 의미한다면, wRC는 득점 그 자체를 의미한다고 설명할 수 있겠습니다. 전의 글에서 보시면 아시겠지만, Run ValueWeight는 각각 wOBA SCALE만큼의 차이(곱입니다. !!)를 가집니다. 그렇기 때문에 wOBA에서 wRAA를 만들기 위해서는, 즉 득점 스케일로 환산하기 위해서는 wOBAwOBA SCALE로 나누는 과정이 필요하다는 것을 단박에 알 수 있을 겁니다. 다만, 이는 득점 스케일로 환산하기 위한 것으로 만약 선수의 wOBA 자체를 wOBA Scale로 나눌 경우 R/PA와는 다를 수 있기 때문에 타자의 wOBA에서 리그 wOBA를 뺀 값을 wOBA Scale로 나누면 됩니다. 그리고 이 값은 1타석당 값이 될 것이므로, 이 값에 타석을 곱하면 정확한 득점 스케일로 환산할 수 있을 겁니다. 그리고 wRCwRAA에서 LgR/PA값을 더하면 바로 나옵니다. 식은 아래와 같겠군요.

 

 


3. wRC 조정의 당위성

 

wRC 식만 봐도 다음과 같은 사실을 알 수 있을 겁니다.

 

1. 만약 선수의 wOBA가 리그 wOBA와 정확히 같다면 그 선수가 가지는 득점적 가치는 리그 평균과 같은 것다.

2. wRC는 선형적인 식이다.

3. 득점의 양 끝값이 고정되어 있지 않다.

 

3번은 말이 좀 애매한데, 풀어서 쓰자면 wRC값이 음수값이 나올 수도 있다는 것입니다. 2014시즌을 예로 들자면, 가장 낮은 wRC값은 R/PA 스케일로 대략 0.13점이 나옵니다. A라는 선수로만 이루어진 팀이 있는데, 이 선수는 생산적인 타구를 만들어내지 못하는 타자라고 가정해 봅시다. (wOBA0이라는 이야기입니다.) 그렇다면 wRC/PA0.13 정도 되니까 27타석 나오면 3.5점 정도...?? 뭔가 이상한 걸 눈치 채셨을 겁니다. 득점이 음수라니요. wOBA0인 팀이라도 득점이 음수일 수는 없지 않습니까? 우선 wRC를 타자에게 적용한다면 그것이 문제는 아닙니다. 분명 Run Value가 음수인 이벤트들이 있거든요. 그러니까, 타자의 경우 팀에 대해 음수의 득점 기여도를 가질 수 있다고 정의할 수 있습니다.

근데 이게 투수한테 적용하면 좀 골치가 아파집니다. 그럼 안 하면 되지 않느냐? 하고 반문하실 수도 있습니다. 근데 그게 좀 짜증나서요.(너무 개인적인 이유인가요?) 분명 득점 환경은 똑같은데 타자한테는 되고 투수의 타자 상대 기록에는 적용할 수 없다니! 이게 무슨 개뼈다귀같은 소리랍니까!

그래서 투수에게, 혹은 팀기록은 wRC를 조금 다르게 적용하자는 겁니다. 적어도, 그 기록에서는 음수가 나올 수 없을 테니까요.

 

4. 식을 만들기 전 정리하기

 

우리가 원하는 것은 끝점이 고정되는 것입니다. 그러니까, wOBA0일 때는 타석당 기대득점이 0으로, wOBAwHR과 같을 때는 타석당 기대득점이 1로 말입니다. wOBAwHR과 같을 경우가 가장 큰 값인 이유는 가장 큰 득점을 가지는 이벤트가 홈런이니 모든 타석에서 홈런을 친 경우의 wOBA가 가장 높을 수밖에 없다는 이유에서입니다. 그 경우 wOBAwHR과 같아집니다. 홈런을 쳤을 때 1점보다 더 많이 득점할 수 있지 않느냐고 물으실 겁니다물론 그렇습니다홈런의 Run Value 또한 1.4점이고요. 근데 그건 다른 모든 경우들과 합해서일 때입니다. 그러니까, 그 전 타석에 누군가가 루상에 출루했기 때문에 홈런 타석에서 1점보다 많이 딸 수 있는 것입니다. 만약 첫 타자가 안타, 두 번째 타자가 삼진, 세 번째 타자가 홈런을 쳤다면 그 때의 타석당 득점은 2/3으로 정의하기로 합니다. 만약 세 타자가 홈런을 쳤다면? 그건 그거대로 1입니다. 세 타석에서 세 점이니까요. 그리고, 이런 경우 최대 득점은 타석당 1점인 것이죠. (다분히 타자에게 적용할 때와는 다른 정의입니다.) 끝점이 선형식보다 높거나 낮게 고정되는 식이기 때문에, 우리는 투수에게 적용될 wRC/PA의 식이 선형이 아닌 아래와 같은 커브일 것이라고 예상할 수 있습니다. 


예시 그래프


이제 커브를 만들 차례입니다. 제가 쓰기로 사용한 것은 자연상수 e를 밑으로 한 지수함수입니다. 왜냐구요? 우선 먼저 이미 우리가 알고 있는 wRC식과의 연계성도 고려해 wOBALgwOBA보다 높을 때와 낮을 때를 나눠서 식을 만들어야 할 필요성이 있습니다. LgwOBA인 지점에서의 기대득점 기울기는 wRC의 기울기와 같아야 하거든요. 그리고 그 두 경우를 나눠서 생각해보면 곡선이 대충 2, 3, 등등등의 지수를 가진 다항식으로 표현될 것이고 이는 결과적으로는 자연함수가 밑인 지수함수로 표현될 것이거든요.[각주:1]

그리고 다른 이유는, 지금까지의 경험으로 봐서는 자연이 자연로그를 좋아하기 때문입니다... 또한 계산하기 편하다는 장점도 있습니다.

무엇보다 이 글에서 보듯이, wOBA가 그 자체로도 어느정도의 exponential 함수와 같은 모습을 보여주기 때문에 자연상수를 밑으로 한 함수로 만드는 것은 꽤 괜찮은 아이디어로 보입니다.

 

그렇다면 한 번 우리가 원하는 것들을 정리해 봅시다.(가정)

 

(1) wOBA=0일 때의 wRC/PA=0이 될 것이다.

(2) wOBA=wHR일 때의 wRC/PA=1이 될 것이다.

(3) wOBA=LgwOBA일 때의 wRC/PA=LgR/PA이다.

(4) wRC/PA의 기울기는 LgwOBA인 지점에서 1/(wOBA Scale)이다.

(5) LgwOBA를 중심으로 wOBA식을 나눠서 계산한다.

(6) 두 식 모두 밑이 자연상수 e인 함수식이다.

(7) wRC/PA는 연속이며, 그 식의 미분도 연속이다.

 

5. 조정식 만들기


(1) wOBA가 LgwOBA보다 작은 경우


밑이 자연상수인 식을 원하므로 로 정의하고 계산하기로 합니다. 이 때 우리에게 필요한 상수는 입니다.

그렇다면 우리가 원하는 식은 아래와 같은 식일 겁니다.



이제부터 LgwOBA, 1/(wOBA Scale), LgR/PA는 계속 쓰기 귀찮기 때문에 아래에서는 각각을 m,s,r로 표기하도록 하겠습니다.

다음에는 위에서 가정한 wRC/PA식과 가정 (1), (3), (4)를 이용하면 다음의 식을 유도할 수 있습니다.



이 식들은 다음과 같이 풀 수 있습니다.


a의 경우 로그식으로 풀 수도 있고, 또한 을 대입할 수도 있지만 위의 식이 더 깔끔한 것 같아서 위와 같이 쓰기로 하겠습니다.


(2) wOBA가 LgwOBA보다 큰 경우


이 때는 식의 기본형이 조금 다른데, 왜냐하면 wHR에서의 wRC/PA가 특정되며 wOBA가 작은 경우와는 기울기의 모양이 다를 것이기 때문입니다. 우리가 원하는 기울기를 가진 지수함수는 의 모양인 것을 같이 생각해 본다면 아래와 같은 식도 괜찮을 것 같습니다. 



오케이, 위와 같은 식을 기본형으로 가진 식을 wRC/PA로 쓰기로 합시다.

우리에게 필요한 상수는 입니다. 


wHR/PA의 기본형도 정했으니 우리에게 필요한 식은 다음과 같습니다. wHR의 경우 h로 표기하도록 하겠습니다.



앞에서와 같이 m,r,s를 사용할 것이며 가정 (2), (3), (4)를 이용하면 아래의 식을 도출할 수 있습니다.



이 식들은 다음과 같이 풀 수 있습니다.



6. 정리


위의 식들을 정리하면 wRC를 다음과 같이 정의할 수 있습니다.



(1) wOBA가 LgwOBA보다 작거나 같은 경우



로 상수를 구한 후



와 같이 계산할 수 있다.



(2) wOBA가 LgwOBA보다 큰 경우



로 상수를 구한 후



와 같이 계산할 수 있다.

 


이 식을 원래의 wRC/PA식과 비교하면 아래와 같은 그래프를 얻을 수 있습니다. (2014시즌 기준)


이전 wRC/PA식과 조정된 wRC/PA 그래프


원래의 wRC와 조정된 wRC 그래프같의 오차율이 5% 이내인 경우에만 함수값을 1로 넣을 경우 아래와 같은 Step Function 모양의 그래프가 그려지며, 그 구간은 대략 wOBA 0.260~0.620 정도의 구간입니다. 즉, 보통의 타자들이나 팀들이 속해 있는 구간입니다. 그러므로, 조정식은 나쁘지 않은 선택이라고 생각됩니다.


두 wRC/PA식같의 오차율이 5% 이내인 구간의 함수값이 1인 그래프-일명 오차율 계단



7. 적용


먼저 2010~2014시즌까지의 투수들을(각각 시즌 나눠서, 모두!!) 대상으로 한 wRC의 원래 버전과 조정 버전 계산 파일이며, 그 위의 그래프는 2014시즌의 Correlation 그래프입니다.


실제 득점(이 경우 실점)과 계산된 원래의 wRC의 상관관계



실제 득점(이 경우 실점)과 계산된 조정 wRC의 상관관계



2010~2014 Pitchers.xlsx


위의 파일과 그래프에서 알 수 있듯이 조정된 wRC 그래프의 상관관계가 조금 더 높음을 알 수 있습니다. 또한, RMSE[각주:2]값도 작다는 것을 파일을 통해서 확인하실 수 있습니다.


다음은 2010시즌부터 모든 팀들의 팀득점과 wRC, 조정된 wRC를 계산한 파일입니다.


Teams Runs.xlsx


이 경우 상관관계는 조정된 wRC에서 조금 더 낮게 나왔습니다. 그에 비해 RMSE는 정말 아주 미세하게 작음을 확인하실 수 있을 겁니다. 팀득점의 경우 wOBA가 리그 평균에 수렴하는 팀들이 많을 것이기 때문에 조정된 wRC로 계산하는 것이나 원래 wRC로 계산한 것이나 큰 차이가 없어서 그런 것으로 생각됩니다. 또한 5년간의 기록이래봤자 150팀뿐이기 때문에 조사기간을 더 전으로 확대해 보면 더 차이가 없을 것이라고 생각됩니다.


8. 결론


결과적으로, 생각보다는 괜찮은 wRC의 조정이 가능하지 않았나 생각이 듭니다. 무엇보다 극단적인 상황까지를 고정한 값으로 정의하였기 때문에 이제부터는 wRC를 조정하여 투수들의 Opponent Batting Stat에 적용하여 계산할 수 있을 것이고, 여기에서 더 나아가 기대되는 LOB%를 계산하는 등의 활동이 가능하게 될 것이라고 생각합니다. 물론, 아직은 좀 더 해야할 일이 남아 있겠지만 말입니다. 나중에 기회와 시간이 있다면, 투수들의 BABIP과 관련해서도 조금의 조정식을 거친 후 (xBABIP이 있기는 하지만 그리 마음에 들지 않습니다. 특히나 투수들에게 타자의 BABIP식을 쓸 수 있을 거라고 생각하지는 않거든요.) 어느 정도 FIP를 대체하는 새로운 ERA System을 만들어 볼 생각입니다.(물론 기회와 시간이 있다면!!말입니다.) 마지막으로 끝까지 이 글을 읽어주셔서 감사합니다.

  1. 테일러 전개에 의해 e^x 함수는 x에 대한 다항식으로 표현할 수 있습니다. [본문으로]
  2. Root Mean Square Error. 만약 n개의 샘플이 있고 예상된 값을 y', 실제값을 y라고 할 경우 모든 (y'-y)^2을 더하고 n으로 나눈 값을 Mean Square Error(MSE)라고 하고 RMSE는 MSE에 제곱근을 씌워서 계산한다. 첨부파일에서 계산된 RMSE는 전부 평균에 대비한 RMSE의 값이다. [본문으로]
Posted by 야구고물상

댓글을 달아 주세요

  1. 토아일당 2015.03.18 20:58 신고  댓글주소  수정/삭제  댓글쓰기

    앞의 글에서 말씀하신 커쇼의 경우를 잘 이해 못했습니다. 저는 wRAA와 wRC 를 투수입장 스탯으로 사용할 수 있다고 생각하는데,
    특히 앞의 글에서,
    "이를 다른 상황으로 적용해 보자면, 커쇼가 기록한 피wOBA와 같은 wOBA를 기록한 타자가 모든 타석에 다 나왔다고 상상을 해 볼 때, 우리가 아는 wRC를 이용하여 계산한 예상되는 득점이 커쇼가 실제로 기록한 실점보다 꾸준하게 더 적다는 굉장히 괴랄한 상황이 발생하게 됩니다"
    라고 하셨는데, 이런 상황이 잘 그려지지 않네요.

    단순히, 피woba가 아주 낮은 투수의 경우, 피woba가 실제 실점억제능력에 비해 과대평가된다 (실제실점 >> wOBA기준 기대실점) 라는 뜻입니까? 하지만 RC 같은것과 달리 woba는 선형식이라 그런식의 문제가 잘 생길것 같지는 않을것 같아서 말입니다.

    http://baseball-in-play.com/101 <-- 이 글은 wOBA는 아니지만 마찬가지로 투수입장XR로 투수의 zero-run을 대체레벨로 하는 피칭런을 사용해서 썼던 글입니다.

    그런데, 저 방법을 사용하면서 왠지 뭔가 잘못된게 있거나 제가 빠트린게 있나 좀 고심을 했었습니다.

    혹시 제가 뭔가 빠트린걸까요?

    • 야구고물상 2015.03.18 21:06 신고  댓글주소  수정/삭제

      맨 처음 생각한 거랑 지금 나온 버전은 조금 다른 건데요 이게 처음 wOBA 글을 쓸 때는 타자까지 다 바꿔야 하지 않을까 하는 생각이었는데(...) 생각해 보니 타자 입장에서는 팀을 중심으로 봐서 음의 득점기여가 가능하다는 생각이 들더라고요. 요지는 제 실수라는 거죠..
      그 때의 생각으로 다시 돌아가 본다면, 커쇼가 기록한 wOBA와 같은 wOBA를 기록한 타자가 9명인 팀이 기록할 득점이 커쇼보다 적다는 것은 커쇼의 실점이 wRC로 측정되는 것보다 많다는 것이고, 만약 wRC가 맞다면 커쇼가 타자를 상대하는 위력에 비해 실점률이 많다는 이상한 해석이 가능하다는 뜻이었습니다... 글을 쓰다가 글이 꼬였나 봅니다. 그리 크게 생각하실 건 없어요.

      아 댓글에 달린 거로 쓰자면 피wOBA가 아주 낮은 투수의 경우 피 wOBA의 예상보다 실점이 많을 거란 얘기입니다. 정확하게 캐치하셨네요.

      사실 이거 만든 것도 wOBA에 대한 사랑 때문에 나온 거라서요. 회귀식보다는 실제 상황을 분석해서 나온 Run Value라는 것에서 파생된 피 wOBA가 좀 더 명확하지 않냐는 생각에서 말이죠.

    • 야구고물상 2015.03.18 21:53 신고  댓글주소  수정/삭제

      사실 진짜 보정을 가하자면 wOBA 자체를 보정하는 게 더 맞는 방법이라고 생각합니다. wOBA는 선형식이지만, 득점 창출의 과정 자체는 완벽하게 선형이라고 생각하지는 않거든요. 실제로 위에 링크된 하드볼 기사에서는 wOBA가 분석하려고 드는 득점의 창출의 경우 exponential함수의 형식을 가지는 게 좀 더 좋다고 말하고 있고요. 근데 처음 생각한 거 자체가 wRC를 어떻게 조정해 보자는 거였고, wOBA식을 조금 다르게 하는 걸 생각하기에는 생각보다 시간이 없을 것 같아서 우선 미봉책으로나마 wRC 조정을 가한 겁니다.
      그리고 피칭런 글에서 빠진 건 없어 보입니다.ㅎㅎ

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


모든 스탯은 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 야구고물상

댓글을 달아 주세요


2013시즌 공포의 출루 듀오.. 안타깝게도 이번 시즌은 둘다 부진하네요,



오랜만에 돌아왔습니다. (3개월 이상 들어오지 않았다고 휴면계정이었다네요.ㅋㅋ) 하하;;근데 하필 돌아오니까 정말 필요 없는 거 하나 만드네요...

 

이 포스팅에서 다룰 것은 제가 만든 APD, Adjusted Plate Discipline으로 조정된 선구안이라는 개념으로 만든 겁니다. (근데 사실 선구안을 보고 싶으면 팬그래프에서 Plate Discipline란을 보는 게 나을 겁니다..)

 

1. 개념

 

말 그대로 Plate Discipline의 조정으로 한국말로 하자면 조정 선구안(...)쯤 되는 개념으로 만들었습니다. 저는 선구안을 주로 보고 싶기 때문에 고의4구를 제외한 4구를 취급할 것입니다. 그리고 사구의 경우 선구안이라기보다는 타석에서의 approach와 관련된 것이라고 생각하여 사구를 제외한 타석에 대하여 LIBB%를 구한 후 이것을 투수 이외의 선수들 평균에 대하여 계산할 것입니다. 이 때 타격이 좋은 선수들은 원래 선구안이 좋은 것도 있겠지만 타격이 좋기 때문에 투수들이 선수들을 피할 것이기 때문에 이에 대하여도 조정을 가할 것입니다.

 

2. 타격 조정

 

타격에 대하여 조정을 가하는 이유는 배리 본즈와 같이 홈런을 칠 수 있는 슈퍼스타들을 상대하는 투수들은 최대한 홈런을 맞지 않기 위해 피하는 방식의 피칭을 하여 많은 고의4, 혹은 그에 준하는 4구를 기록할 것이지만 에디 요스트(통산 0.254/0.394/0.371, 1614볼넷으로 별명이 Walking Man이었음) 같은 타자들은 투수들이 최대한 출루를 시키지 않기 위한 피칭을 할 것이므로 4구가 파워히터에 비해 적을 것이기 때문입니다. 즉 순수한 능력의 선구안 이상의 볼넷 기록을 배리 본즈 같은 유형의 타자들은 얻을 것이고, 그에 비해 에디 요스트 유형의 타자들은 그와는 반대의 상황에 직면할 것이므로 타격에 대하여 조정을 해야 한다는 것이 저의 생각입니다.

 

-약간의 연구(?)

다음과 같은 스탯들에 대하여 LIBB%와의 상관관계를 조사할 것입니다. 이 때 타자마다 선구능력이 다르기 때문에 약한 상관관계를 찾을 것입니다. (r=0.3~0.5,R^2=0.09~0.25) 아래는 제가 조사한 스탯들에 대한 목록입니다. 모든 리그 스탯은 투수들을 제외한 스탯이며, 조사할 때는 AL, NL을 분리하여 계산하였습니다. 샘플은 AL에서 지명타자 제도를 도입한 1973시즌부터 40시즌간의(1973~2012) 정규타석을 채운 선수들에 대하여 모았습니다.

 

LIBB%: (4-고의4)/(타석-고의4-사구)

BA+: 타율/리그 타율

SLG+: 장타율/리그 장타율

ISOP+: 순수장타율/리그 순수장타율

ISOPHR+: 홈런에 대한 경우를 제외한 순수장타율/리그 순수장타율(홈런 제외)

AXBH%+: (순수장타율/장타율)/(리그 순수장타율/리그 장타율)

HR%+: (홈런/타수)/(리그 홈런/리그 타수)

LIBB%+: LIBB%/리그 LIBB%

 

저는 위의 스탯들에서 BA+,SLG+,ISOP+,ISOPHR+,AXBH%+,HR%+에 대해 LIBB%가 가지는 상관관계를 엑셀의 추세선 툴을 통해 알아냈고 그로 인해 ISOP+,HR%+LIBB%에 대해 약한 상관관계를(각각 r^2=0.0927,0.1043) 가짐을 알 수 있었습니다. 하지만 저는 타격조정을 할 때 ISOP+에 대하여는 조정하지 않기로 하였습니다. 왜냐 하면, ISOP의 경우 HR이 같이 계산되는 스탯이며 만약 ISOP에서 HR을 제외하여 LIBB%와의 상관관계를 조사할 경우(ISOPHR+) r^2=0.0004로 사실상 없다는 결론이 나기 때문입니다. 그러니까 사실상 HR의 비율이 LIBB%와의 약한 상관관계를 가지며, 그러므로 HR%에 대하여 4구비율의 조정을 가하기로 하였습니다. 아래는 이와 관련된 엑셀 파일입니다.


APD.xlsx

 

다음에는 각각의 HR%+에 대하여 평균 LIBB%+를 계산하고 그 그래프의 추세선을 통해 타격조정식을 만드는 것을 조사할 것입니다. 이 때 HR%+의 경우 round함수를 이용하여(안 그러면 0.01차이로 끊어서 그래프를 만들기가 제 실력으로는 힘들기 때문입니다..;;) 그에 대응하는 타자들의 LIBB%+의 평균을 계산하고 그걸로 그래프를 그린 후 추세선을 찾아서 타격조정식을 만들 것입니다.

 

그 결과 타자의 ExLIBB%+로 계산하는 것으로 하였습니다.

이 때 앞의 상수를 

으로 한 이유는 HR%+가 1인 경우 ExLIBB%+도 1이 되어야 하기 때문입니다.

 

3. 계산식

 

ExLIBB%+:

APD: LIBB%+/ExLIBB%+

이 때 리그는 AL, NL을 따로 계산하는 것으로 하였습니다. 또한 HR%+를 계산하는 경우 홈런 파크펙터를 사용하여 계산하는 것으로 합니다.

 

4. 적용

 

우선 아주 가볍게 AL, NL 구별하지 않고 계산하여 APD의 분포 그래프를 그려 보았습니다. 예상대로 평균적인 정규분포곡선을 따르는 것으로 보입니다.



 

다음으로 최근 5년간 리그 1위 리스트입니다.


 Season

 AL

NL 

 2009

Chone Figgins 

185 

Nick Johnson 

211 

 2010

Daric Barton 

207 

Jason Heyward 

172 

 2011

Bobby Abreu 

177 

Carlos Pena 

172 

 2012

Carlos Santana 

185 

Dan Uggla 

180 

 2013

Carlos Santana 

170 

Joey Votto 

209 

 

참고로 2013시즌 추신수는 204를 기록하였습니다. (리그 2위) 작년 추신수, 보토가 정말 엄청나게 볼을 골랐음을 이 허접한 스탯으로도 알 수 있습니다.


다음은 2014시즌 기록 엑셀 파일입니다. 스탯은 한국시간으로 2014826일 기준입니다.

 

2014 APD.xlsx


다음은 몇몇의 전·현역 선수들의 기록입니다. 참고로 조 모건/마이크 슈미트/리키 헨더슨/배리 본즈/블라디미르 게레로/스즈키 이치로/알버트 푸홀스/추신수/조이 보토에 대하여 계산하였습니다. (사실 에디 요스트, 베이브 루스, 테드 윌리엄스에 대해서도 계산해보고 싶었습니다만 각각 IBB가 기록되지 않는 시즌이 있었기 때문에 계산을 하지 않았습니다.) 계산 결과 각각 통산 197/135/195/145/60/57/95/145/155로 계산되었습니다. 현역 선수의 경우 위와 같은 시간 기준가지 스탯을 계산하였습니다. (참고로 홈런 파크펙터는 팬그래프에서 1974시즌부터 참고되므로 조 모건과 마이크 슈미트의 초기 스탯의 경우 휴스턴의 홈런 파크펙터는 85, 필라델피아는 105로 고정하여 계산하였습니다.) 예상 외로 푸홀스가 100이 안 되었으며 추신수와 배리 본즈가 비슷한 수준의 선구안을 가진 것으로 계산되는 군요;; 그리고 조 모건과 리키 헨더슨은 정말 엄청난 수준의 선구능력을 보여준 것으로 계산되네요.


Batters.xlsx

 

다음으로 KBO에 적용할 경우입니다. 파크펙터는 적용하지 않았습니다. 각각 시즌 출루율 1위 선수들과 이외 제가 관심이 가던 선수들을 위주로 계산하였습니다. 물론 MLB 기준으로 만든 툴로 KBO에 정확히 똑같이 적용하기는 힘들기는 하지만 한 번 해 볼만하다고 생각했기에 적용해 보았습니다. 그리고 2006시즌 100볼넷을 넘긴 양준혁은 대단하군요..(195)

 

KBO 타자들(2004~2013).xlsx


위의 계산들을 보면 정규타석을 기록한 선수들 중 약 120정도의 APD를 기록하는 경우 수준급의 선구안을 가진 것으로 생각할 수 있다고 생각할 수 있겠고(대략적으로 한 팀당 1~1.5명 정도 수준입니다.), 160 이상이면 대략적으로 시즌 1위급 정도로 생각됩니다.

 

5. 끝마치며


이상으로 이 허접한 선구 능력 스탯 글을 끝마치도록 하겠습니다. 한 가지 아쉬운 점은 위의 파일에서 확인할 수 있듯이 푸홀스나 배리 본즈 같은 경우를 보면 이 툴이 강타자들에 한해서는 APD가 실제보다 낮게 측정될 가능성도 있다고 생각된다는 점입니다. 다만 제 생각에는 exponential 식을 쓰는 게 맞다고 생각되므로(...) 저의 직관이 틀렸을 수도 있다는 생각이 듭니다.

 

 

 

MLB 스탯은 Fangraphs를 참고하였고 KBO 스탯은 Baseball-Reference한국야구위원회에서 참고하였습니다.

Posted by 야구고물상

댓글을 달아 주세요

  1. 토아일당 2015.03.18 20:40 신고  댓글주소  수정/삭제  댓글쓰기

    블로그에 재미있는 글이 많네요. 감탄했습니다.
    이런 생각은 한번도 못해봤는데요. 볼넷의 갯수로는, 장타자들에 대한 상대 투수의 도망가는 피칭으로 인한 영향이 뒤섞여서, 볼넷의 갯수 또는 타율과 출루율의 갭. 같은 걸로는, 선구안(=공을 골라서 출루하는 능력 또는 성향)을 측정할 수 없다고만 생각했는데,,, 이런 방법이 있었네요.

    그런데, LIBB%를 구할때,(4구-고의4구)/(타석-고의4구-사구) 가 아니라
    타격하지 않은 타석에서의 볼넷출루 SIBB = (4구-고의사구) / (타석 - 안타 - 볼넷 - HBP - 고의사구) 로 하는게 더 낫진 않을까요?

    선구안이라는 개념이 좀더 어울리려면, 가운데 들어오는 공을 친 경우 거꾸로 LIBB%가 낮아지는 부분이 약간 안어울린다는 느낌입니다.

    직관적으로는, 투수의 고의적이지 않은 고의사구 (거포들에 대한 피칭전략때문에 생기는 볼넷)에 가장 크게 영향을 주는 요인은, 홈런의 갯수보다는, 약간 조정된 SLG+ 일거 같은데요.

    ISOP의 경우는 타율이 낮은 선풍기형 타자들이 노이즈를 만들것 같고,
    SLG의 경우는 고타율의 똑딱이들이 노이즈를 만들테니,
    회귀식을, SIBB에 대한 (BA+ 곱하기 ISOP+) 로 할 경우 혹시 높은 R^2 를 얻을 수도 있지 않을까 하는 생각도 해봤습니다. 필요하다면 BA+ * ISOP+ 중에서 ISOP 쪽에 좀더 가중치를 주거나 아니면 승수를 주거나 라든가의 조작을 포함해서요.

    글에 쓰신 exLIBB% 라는게 굉장히 재미있는 아이디어인데, HR%에 대한 R^2가 좀 낮은거 같아 아쉽습니다.

    • 야구고물상 2015.03.18 21:12 신고  댓글주소  수정/삭제

      와, 그게 훨씬 더 맞는 방법이겠네요. 사실 이건 만들어 놓고 나중에 '아 이건 좀 아닌 것 같다' 하고 버려논 자식 같은 스탯이라서요..사실 진짜 선구안을 알려고 한다면 관련 스탯들을 다 요모조모 따져 보는 게 훨씬 좋다는 생각입니다. 근데 그렇게 하기에는 직관적으로 받아들이기 힘들 때도 있으니까, 하나로 통합하자면 조금 더 직관적으로 생각이 가능하지 않을까 하는 생각에서 출발한 거라서요.

      그리고 상관관계와 같은 경우에는, 사실 이 스탯이 낮은 건 맞는데 낮을 수밖에 없다고 생각한 게 선구안이란 것도 차이가 있으니까 r=0.3만 넘게 된다면(r^2=0.09) 괜찮을 거라는 생각을 한 겁니다. 사회과학을 하는 분들은 r=0.3을 기준으로 한다는 얘기를 들은 적이 있어어요.

모든 기록은 팬그래프베이스볼 레퍼런스에서 얻었습니다.

아래 식에 나오는 sta는 선발을 뜻하고 rel은 불펜투수를 뜻합니다. IPDEC은 선발투수가 디시전이 되는 비율을 뜻하며 '선발이닝/선발투수 디시전 횟수'로 구합니다. 아래 나오는 계산결과는 다운 받으셔서 확인하셔도 됩니다.


사실상 이거 하는 가장 큰 이유-이브랜드 LUCK 구하기...


소개

 

작년에 쓴 글 중에 간단히 해보는 선발투수 운(Luck)의 계량이란 글이 있었습니다. 그 글에서 저는 다음과 같이 LUCK 툴의 네 가지 문제점을 말한 바 있습니다.

 

1. 아직 커리어를 대상으로 적용해본 사례가 없기 때문에 커리어의 경우 운의 요소가 많이 줄어드는지를 확인해본 적이 없다.

2. RS,RA가 독립변수로써 투수의 디시전 결과 예측에서도 통계적 유의미성을 지녔는지에 대한 증명이 생략되어 그 근거가 미약하다.

3. 실제 전체 선발투수의 승률은 0.500보다 약간 낮게 나타나지만 이 툴을 이용하면 0.500 부근으로 형성될 것이다.

4. 1999년 페드로 마르티네즈와 같이 엄청난 FIP를 기록한 경우 페드로가 나온 경기에서 팀이 이길 수 있다고 계산되는 승수보다 페드로가 기록할 것이라고 생각되는 기대승수가 더 크게 나오는 문제점을 가지고 있다.(이는 후에 다시 한 번 생각해볼 문제입니다.)

 

위의 문제점을 보면 제가 4번에 후에 대시 생각해볼 문제라고 쓴 걸 보실 수 있을 겁니다. 1999년 페드로의 경우 FIP가 무지 낮아서 (선발 한정 1.33) 위와 같은 괴상한 문제점이 발생하게 됩니다. 그리고 이는, 결국 LUCK의 첫 번째 버전이 선발투수의 퍼포먼스에 해당하는 적정한 승수를 과대평가하거나, 혹은 과소평가한다는 뜻이기도 합니다. 그래서, 저는 아예 방향을 달리해서 기대승수를 계산하기로 했습니다. , 선발투수가 나온 경기에서 승리한 횟수에서 선발투수의 기대승수를 생각하는 방식으로 계산하는 것입니다. 그리고 잘 던지는 선수들의 경우 어느 정도 경기에 나와서 디시전이 될 확률이 적어질 것이라고 생각해서 이전에 사용한 IPDEC항목도 수정을 가하기로 하였습니다. 그러니까, 선발투수마다 IPDEC을 달리 적용하는 방식을 사용하기로 한 것입니다.

 

과정

 

1. 가설

 

(1) 선발투수의 실점률이 낮아질수록 그 투수 이후 나온 중간계투들의 승률이 좋아질 것이고, 꽤나 높은 신뢰도를 가질 것이다.

(2) 이닝과 디시전의 비율인 IPDEC()은 선발투수의 경기당 평균이닝(IPAVG)가 높을수록 커질 것이고 선발투수의 실점률이 높아질수록 낮아질 것이다. 그리고 그것을 통해 IPDEC의 식을 계산할 수 있을 것이다. 이를 BWPCT(Bullpen WPCT)라고 부르기로 합시다.

 

2. 가설 증명

(?..이걸 증명이라 할 수 있나...??)

 

(1) BWPCT의 경우 2002년 이후 선발투수 중 선발로만 규정이닝 이상 투구한 선수들에 대하여 조사하였습니다.

 

선발투수 ERA에 대한 BWPCT의 그래프


이를 통해서 보면, 선발투수의 실점률이 낮아질수록(계산은 ERA로 했습니다. 예전에 아무 생각 없이 했던 거라;;) 그 경기에 나온 중간계투들의 그 경기 승률이 좋아진다거나 나빠지는 경향성은 사실상 없는 것으로 보입니다. 위에서 보듯이 R^2이 0.0029가 될 정도로 너무나 낮기 때문에 그 신뢰도가 낮다는 것이죠.


(2)IPDEC의 경우 2002년 이후 선발로 나온 모든 선수들에 대해서 조사하였습니다.

 

IPDEC.xlsx


IPAVG에 대한 IPDEC의 그래프


RA에 대한 IPDEC의 그래프


위의 그래프와 엑셀 파일에서 확인할 수 있듯이, IPAVGRAIPDEC과 꽤나 상관 있어 보입니다. 각각 R^2이 0.2107과 0.1222나 되니 적어도 R0.3은 넘는다는 걸 알 수 있습니다. 그래서 전, 두 항목을 IPDEC 계산하는 데 사용할 것입니다. 이 때 계산된 IPDEC을 IPDEC_raw라고 하고 LgIPDECsta(선발들의 IPDEC)을 IPDEC_raw로 나눈 것을 상수 C로 정의하겠습니다.

(참고: 위의 IPDEC 엑셀파일에서는 2002시즌부터 2013시즌까지의 IPDEC과 관련된 그래프와 계산된 IPDEC(IPDECEXP로 표기함)와 실제 IPDEC의 그래프도 있습니다.)

 

3. 계산식 만들기

 

우선 위에서 보듯이 선발투수의 실점률과 그 경기에 나온 중간계투들의 승률과의 관계는 없는 것으로 보입니다. 그래서, 사실상 모든 선발투수에게 선발투수 디시전이 기록되지 않은 경기에서 그 시즌 중간계투가 기록한 승률을 대입하여 선발투수가 나온 경기의 총 승리에서 빼도 되겠다는 확신이 들었습니다.

그러니까, (선발투수의 전체경기-선발투수의 디시전이 기록되지 않은 경기)*전체 중간계투의 승률을 선발투수가 나온 경기에서의 승에서 빼면 선발투수가 기록할 기대승수를 계산할 수 있다는 생각입니다.

IPDEC의 경우 그래프에서 IPDEC=1.4543IPAVG-0.0335, IPDEC=-0.3122RA+9.6393의 식이 나왔습니다. 그래서, 우선 각각의 기울기의 비율을 구하였습니다. 대략적으로 (Slope of IPAVG)=-4.66(Slope of RA)가 나왔습니다. 그리고 이 기울기의 비율의 합이 1이 되도록 만들었습니다. 이것을 통해 IPAVG와 RA에 대한 weight를 구했는데, 대략 0.82와 0.18이 나왔습니다. 그리고 그 외에 절편들에 weight를 곱하여 더한 결과 다음과 같은 계산식이 완성되었습니다.

IPDEC_raw=1.19IPAVG-0.056RA+1.71

 

그래서, 결과적으로 계산식은 다음과 같아졌습니다.


(1)팀 승리 관련



(2)IPDEC 계산



(3)디시전 관련



(4)LUCK



적용


적용은 간단하게 해봅시다. 이전에 해 본 2010~2012시즌을 한 번 해보고, 다음에 2013시즌 한 번, 그리고 몇몇 선수들(은퇴했거나 현역인)에 대하여 적용해보기로 합니다. 사실 사진을 올리는 게 좋겠지만 귀차니즘 발동(...)으로 엑셀 파일을 올리겠습니다.

 

1.2010~2012시즌

LUCK 2010~2012.xlsx


2.2013시즌

2013 MLB_SECOND.xlsx


3.몇몇 선수들의 커리어

Players-Examples.zip


결과


이번에 LUCK을 개량하여 LUCK이 이전에 가지고 있던 몇 가지 문제점을 조금 줄일 수 있었습니다. 선발투수 승률에 조금 조정을 가할 수 있었다는 점, 일괄적으로 적용되던 IPDEC의 문제점을 해소할 수 있었다는 점, 그리고 피타고리안 승률을 이용해 계산되는 이론적 팀의 승수보다 선발투수의 디시전 승수가 적어지는 점, 과대평가되거나 과소평가되던 선발투수의 기대승률이 조정되는 점 등등이 있습니다. 아직 갈 길은 멀지만(..)그래도 2번째 버전이 이전보다 나은 툴이라는 생각이 듭니다. 물론 이 툴이 맘에 안 드시면 이전 툴로 그냥 계산하셔도 됩니다. 이전 계산방식은 여기에서 확인하실 수 있습니다.

Posted by 야구고물상

댓글을 달아 주세요

#참고: 과거 MLBNATION에 썼던 글로 다나카글을 올린 겸 같이 올립니다.


재미로 한 번 해 본 겁니다. 저는 이 글에서의 수학적 엄밀성을 보장할 수 없습니다. 재미로 봐 주시면 감사하겠습니다.

모든 데이터는 팬그래프(fangraphs.com)에서 얻은 것입니다.

한 때 윤석민상이라는 게 유행했던 적이 있습니다. 2007년 윤석민은 162이닝을 던지면서 2완투 1완봉 3.78의 평균자책점을 기록했습니다. 기록 자체는 아주 솔리드하다고 볼 수 없었지만, 이닝을 보면 준수한 2선발급의 활약은 하였다고 볼 수 있는 성적이었죠. 하지만 윤석민의 성적에는 심각한 문제가 있었습니다. 디시전이 7승 18패였던 것이죠. 이 7승 18패라는 성적에 고무된(!) 네티즌들은 그 때부터 윤석민상이라는 걸 만들어서 시상하기 시작했습니다. 최근에는 열기가 많이 식어서 그런 상이 있는지 모르는 분들이 더 많겠지만, 그 때 한국 프로야구를 봤던 분들이라면 윤석민의 불운을 기억하고 있을 겁니다. 제가 하고 싶은 계산은 바로 그 '불운'을 계산해보는 겁니다.

한 때 정말 불운했던 윤석민. 함정이라면 이 사진은 2008시즌 평균자책점 1위한 시즌의 사진이라는 것;; 실제로 이 시즌은 14승 5패로 전혀 불운하지 않았습니다.

사실 운을 계산하는 툴은 이미 나와 있습니다. 바로 베이스볼 프로스펙터스에서 개발한 툴로 2009 시즌이 끝나고 김형준 기자가 칼럼을 통해 소개한 적이 있습니다. 하지만 저와 같이 스탯 계산에 취미를 가진 사람들에게 그 툴은 중대한 문제점이 있었습니다. 너무 어렵다는 점이었죠. 영어의 압박도 압박이지만 이해하기 위해서는 처음부터 그 많은 사례들을 일일이 체크해가면서 이해해야 하는 어려움이 있었습니다. 다른 할 일이 많은 상황에서, 그리고 알고 있는 배경 지식이 적다는 점에서 매우 힘든 일이었죠. 그래서 더 쉬운 툴을 개발하기로 결심하였습니다. 오래 전에, 아마 고등학교 입학할 즈음에. 하지만 완성본은 그로부터 3년도 더 지난 오늘에서야 만들었습니다.;;(단언컨대 게으름은 인간의 가장 큰 적입니다..)


이 툴을 개발하기에 앞서 우선 이 툴을 계산할 때 사용할 데이터에 대하여 정리할 필요성이 있습니다. 먼저 이 툴은 선발투수만을 대상으로 한정한 계산법입니다. 불펜투수는 그 이닝수 자체가 적기 때문에 불운을 판단할 근거가 미약하다고 판단하였기 때문이죠. 이 툴은 운을 계산하기 위해 투수의 승패, 혹은 디시전이라 불리는 것을 사용할 것입니다. 이유는 간단합니다. 윤석민의 불운을 판단한 근거는 '나쁘지 않은 평균자책점+7승 18패라는 최악의 디시전'이었고, 작년의 류현진도, 그리고 그 류현진을 비웃고 계시는 리선생님의 불운도 그 디시전 때문에 판단된 것이라고 생각했기 때문입니다. 그리고 사용할 계산 방법으로는 피타고리안 승률을 이용하기로 하였습니다. 우선 저는 피타고리안 승률을 사랑하며(저는 가끔 피타고리안 승률로 WAR을 계산하곤 합니다. 그 방식으로 계산하면 상위권 성적의 피처들은 fWAR과 비슷한 값이 도출되는데, 하위권 성적의 피처들은 그에  비해 더 높은 WAR이 도출되곤합니다.) 팀의 성적도 피타고리안 승률로 예측할 수 있다면 선발의 디시전도 피타고리안 승률로 예측할 수 있지 않을까라는 막연한 질문에서 시작하였죠. 그래서 저는 RS^C/(RS^C+RA^C)=WPCT라는 식을 이용하기로 하였습니다.(과연 이 식으로 신뢰할 수 있는 선형적 관계를 유도할 수 있느냐의 문제가 남았습니다만, 그 과정은 아래에 설명하겠습니다.) 앞에서 말한 피타고리안 승률식에서 RS는 선발투수의 득점지원률을, RA는 선발투수의 실점률을 의미합니다. 왜냐고요? 투수의 디시전을 생각할 것이므로 경기 자체의 득점과 실점으로 승률을 예측하는 건 어렵다고 판단했기 때문입니다.(그러면 구원이 얼마나 선발의 승리와 패배를 날려먹는지에 대한 연구가 동시에 수반되어야 하죠..그러면 PBP 데이터도 얻어야 하고 여튼 복잡합니다.;;) 그리고 ERA에 해당하는 계산은 FIP로 대체하였습니다. 말 그대로 불운을 판단하기 위해서죠.(물론 FIP도 완전한 스탯은 아닙니다만, ERA에 비해서 노이즈가 적은 스탯이라는 판단 하에 사용하였습니다. xFIP를 사용할 수도 있지만 과연 모든 투수의 홈런 허용률이 리그 평균으로 고정할 수 있는지에 대해서는 좀 회의감이 들고, 무엇보다 타구에 대한 계산이 수반되어야 하므로 FIP를 사용하기로 한 겁니다.)


이 작업을 위해 가장 중요한 과정은 RS/9와 RA/9를 이용하여 피타고리안 승률의 계산식을 얻어내는 것입니다. 저는 이 작업을 수행하기 위하여 2002~2012년 규정이닝 이상 투구한 선발투수(선발경기 한정)의 피칭 데이터를 사용하였습니다. 우선 피타고리안 승률을 계산하기 위한 C가 필요합니다. 각각 경우에 대한 C의 계산은 다음과 같습니다.


 


이를 통해 각 선수별 C값을 구할 수 있었습니다. RS/RA=1인 경우 자연로그값이 0이 나오기 때문에 이런 경우 C는 0으로 처리해야 했습니다. 이번에는 그 C값의 평균을 구할 차례입니다. 평균은 각 값에 확률밀도 P(continuous한 함수가 아니라 discrete한 밸류)를 곱한 값을 더함으로써 계산할 수 있습니다. P는 각 투수의 이닝을 투수들의 이닝을 합한 총이닝으로 나눈 값을 이용하였습니다. 평균은 두 가지를 이용하였습니다. 1. 그냥 원래 평균과 2. 절대값들의 평균. 원래는 2번에 RMS(Root Mean Square)로 하려고 했지만 계산을 계속 이상하게 해서 미봉책으로 사용한 계산입니다. 그리고 아래에 왜 그랬는지를 설명하겠지만 사용한 값은 1과 2의 평균값으로 사용하였습니다.


그렇다면 왜 1과 2의 평균을 사용하였는지 설명하겠습니다. 저는 위와 같은 방식의 계산으로 으로 1.C=2.06, 2.C=2.97의 결과를 얻었습니다. 그 C를 이용하여 기대승률을 예측한 후, x축에는 실제 승률을, y축에는 기대승률을 플로팅하여 그래프를 그려보았습니다. 이 그래프를 통해 제가 원하는 것은 '1.R^2>0.5일 정도의 신뢰도를 가진 추세선을 가질 것과 2. 그 추세선의 기울기가 1과 유사해야 할 것'입니다.
1번의 경우


http://i.imgur.com/Ly0k31f.jpg

와 같은 그래프를 얻을 수 있었습니다. R^2=0.7317로 충분한 신뢰도를 확보하였습니다.(즉, 피타고리안 승률로 예상해도 어느 정도 괜찮은 것 같다는 결론에 도달하였습니다.) 하지만 그 식이 y=0.8625x+0.0985로 기울기가 1에서 저 멀리 떨어져 있었기 때문에 문제가 생겼습니다. 
2번의 경우

http://i.imgur.com/bTxYyvi.jpg



와 같은 그래프를 얻을 수 있었습니다. 이번에도 R^2=0.7293으로 충분한 신뢰도를 확보하였습니다만, 식이 y=1.1593x-0.0388로 기울기가 1과 저 멀리 떨어져버린 문제가 생겨버렸습니다.
그래서 평균을 구해서 C=2.51을 사용하기로 하였죠.
그 결과


http://i.imgur.com/SN1waNP.jpg

만세입니다! R^2=0.731이면서도 기울기가 1에 매우 근접한 식(y=1.0184x+0,0263)을 얻을 수 있었습니다. 그래서 C=2.51로 사용하기로 결정하였습니다. 즉, WPCT=RS^2.51/(RS^2.51+RA^2.51)입니다.


다음은 IP/DEC(줄여서 IPDEC으로 표기하겠습니다.)의 관계를 살펴볼 차례입니다만..1974~2012년 50이닝 이상의 선발투구를 펼쳤던 모든 투수의 데이터를 이용하니 다음과 같은 이상한 그래프를 얻게 되었습니다;;(x축: 선발경기당 평균이닝 y축: 디시전 당 평균이닝)


http://i.imgur.com/MvP3hbO.jpg

FAIL입니다.ㅠㅠ R^2이 무려 0.0766의 대단한 그래프를 얻어낼 수 있었죠ㅠㅠ. 이는 규정이닝 이상 선발투구로 조건을 바꿔도 마찬가지였습니다. 그래서 IPDEC은 그냥 그 해 리그평균을 일괄적으로 적용하기로 결정하였습니다.
결과적으로 식은 다음과 같아졌습니다.(sta: 선발의 약자 rel: 구원의 약자)

 


마지막으로 우리가 원했던 운(LUCK으로 표기하도록 합시다.)은 다음과 같이 계산됩니다.



이제 식을 완성했습니다. 그 식의 적용만 남았군요. 적용은 간단합니다. 2010~2012년간 어떤 투수가 운이 좋았고, 어떤 투수가 운이 나빳는지를 LUCK으로 판별하는 작업을 하기로 한 거죠. 그 결과는 다음과 같았습니다.(규정이닝 이상 선발투구 투수 순위,*는 그 시즌 사이영상 수상자)

 

2010 AL LUCK 상위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

 Trever Cahil

2.97

4.19

18 

8

11.6

12.2

+10.6

 2

Earvin Santana

3.92

4.28

17

10

12.5

14.4

+8.8

 3

Phil Hughes

4.23

4.30 

17

8

10.7

10.4

+8.7


2010 AL LUCK 하위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

 Zack Greinke 

 4.17

3.34

10 

14

17.2 

9.8

-11.9

 2

Cliff Lee

 3.18

2.58

12

9

19.8

5.8

-11.0

 3

Doug Fister 

 4.11

3.65 

6

14 

11.5

9.1 

-10.4

 *

Felix Hernandez

2.27

3.04

13

12

19.8

10.5

-8.5


2010 NL LUCK 상위 TOP3 

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

Bronson Arroyo

3.88

4.61

18 

10

11.1 

14.7 

+10.6

 2

Tim Hudson

2.83

4.09

17

9

13.4

13.9

+8.4

 3

 Jon Garland 

3.47

4.41 

14

12 

9.4

14.4

+7.0 

Roy Halladay 

2.44 

3.01 

21 

10 

20.2 

9.7 

+0.5 


2010 NL LUCK 하위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

 Randy Wells

 4.26

3.93

14

12.5

10.7

-7.7

 2

Josh Johnson

 2.30

2.41

11

6

17.3

4.6

-7.7

 3

Tommy Hanson

3.33

3.31 

10

11 

15.1

9.1 

-7.1

 

2011 AL LUCK 상위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

 Ivan Nova

 3.66

4.01

16 

3

10.6

8.9

+11.3

 2

Derek Holland

 3.95

3.94

16

5

13.6

10.0

+7.4

 3*

Justin Verlander

2.40

2.99 

24

21.0

8.9 

+6.9


2011 AL LUCK 하위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

Doug Fister

 2.87

3.03

10 

13

17.2

8.2

-12.0

 2

Jeff Francis

4.82

4.10

6

16

11.4

10.4

-11.0

 3

Brandon McCarthy

3.32

2.86 

9

14.3

6.0 

-8.3


2011 NL LUCK 상위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

 Aaron Harang

3.64

4.17

14 

7

8.2

11.7

+10.5

 2

Ian Kennedy

2.88

3.22

21

4

16.7

9.1

+9.4

 3

Bronson Arroyo

5.07

5.71 

9

12

6.7

16.4 

+6.7

 *

Clayton Kershaw

2.28

2.47

21

5

18.8

7.2

+3.4


2011 NL LUCK 하위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

Derek Lowe

5.05

3.70

17

11.6

10.2

-9.4

 2

Madison Bumgarner

3.21

2.67

13

13

16.5

7.3

-9.2

 3

Matt Latos

3.47

3.16 

9

14 

13.1

9.5 

-8.7

 

2012 AL LUCK 상위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

Jered Weaver

2.81

3.75

20

5

13.3

10.3

+12.1

 2

Jason Vargas

3.85

4.69

14

11

11.0

16.2

+8.2

 3

Derek Holland

4.72

4.75 

12

10.2

11.3

+7.1

4 *

David Price

2.56

3.05

20

5

17.7

8.7

+6.0


2012 AL LUCK 하위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

Jon Lester

4.82

4.11

9

14

14.4

11.3

-8.1

 2

Felix Hernandez

3.37

3.73

11

12

16.5

10.8

-6.7

 3

Jake Peavy

3.37

3.73 

11

12 

16.5

10.8 

-6.7


2012 NL LUCK 상위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

Barry Zito

4.15

4.47

15

8

8.9

13.5

+11.6

 2

Kyle Lohse

2.86

3.51

16

3

14.5

11.1

+9.6

 3

Lance Lynn

3.67

3.47 

17

11.8

8.7 

+8.9

5*

R.A. Dickey

2.67

3.22

20

6

17.2

11.0

+7.8


2012 NL LUCK 하위 TOP3

Rank 

 Name

 ERA

 FIP

 W

 L

 ExW

 ExL

 LUCK

 1

Josh Johnson

3.81

3.40

8

14

14.0

9.2

-10.9

 2

Cliff Lee

3.16

3.13

6

9

16.6

9.0

-10.7

 3

Jeff Samardzija

3.94

3.55 

9

13

12.6

8.6 

-8.1



아...아니..내가 2012시즌 최고의 불운남이 아니라니..(by 클리프 리)

결과를 대략적으로 살펴보면 의외의 선수들도 가끔 포함되어 있고(예를 들어 2010년 헛슨이나 2011년 데릭 로) 우리가 너무나도 당연히 알고 있던 선수들도 포함되어 있습니다.(클리프 리, 킹 펠릭스 등등) 특히 킹의 경우 LUCK이 최근 3년간 -8.5(2010 AL 하위 6위), -7.5(2011 AL 하위 4위), -7.6(2012 AL 하위 2위)의 극심한 불운에 시달리는 중입니다. 클리프 리도 2번이나 하위 3위 안쪽에 이름을 올렸고요. 그리고 2012년의 지토는....역시 법력 대마왕이었습니다.(지그니토!) 그리고 사이영상 수상선수들은 대체적으로 +를 기록하였군요.(킹 지못미ㅠ)

마지막으로 이 툴의 단점들을 소개해야겠습니다.

1. 아직 커리어를 대상으로 적용해본 사례가 없기 때문에 커리어의 경우 운의 요소가 많이 줄어드는지를 확인해본 적이 없다.
2. RS,RA가 독립변수로써 투수의 디시전 결과 예측에서도 통계적 유의미성을 지녔는지에 대한 증명이 생략되어 그 근거가 미약하다.
3. 실제 전체 선발투수의 승률은 0.500보다 약간 낮게 나타나지만 이 툴을 이용하면 0.500 부근으로 형성될 것이다.
4. 1999년 페드로 마르티네즈와 같이 엄청난 FIP를 기록한 경우 페드로가 나온 경기에서 팀이 이길 수 있다고 계산되는 승수보다 페드로가 기록할 것이라고 생각되는 기대승수가 더 크게 나오는 문제점을 가지고 있다.(이는 후에 다시 한 번 생각해볼 문제입니다.)


+덧붙여서

이 글은 순전히 재미를 위한 글입니다. 잘 아시겠지만 이 툴로는 절대로 투수를 평가할 수 없음을 잘 아실 겁니다.(즉, 참고용으로도 의미는 그리 크지 않다는 뜻입니다. 뭐, 윤석민상처럼 MLB에 블라일레븐상 같은 걸 만들어서 수여할 게 아니라면 말이죠...) 만약 이 툴을 계산하실 때 FIP를 이용하는 게 싫으시다면 FIP를 사용하는 부분에서 ERA, SIERA, xFIP등등의 스탯들을 이용하셔도 됩니다.


Posted by 야구고물상

댓글을 달아 주세요

MLBNATION회원들이라면 아시겠지만, 예전에 제가 쓴 글에 '간단히 해보는 선발투수 운(Luck)의 계량'이라는 글이 있었습니다. 이 포스팅은 그 분들, 그리고 그 외에도 윤석민 어워드에 관심이 많으신 분들을 위한 많은 야구팬을 위한 것으로, 제가 지금까지 독점해왔던(흠...허접하기 때문에 별 의미는 없긴 하지만서도ㅎㅎ) LUCK 지수 계산을 위한 엑셀 파일을 공유하기 위한 포스팅입니다. 아래 엑셀파일 링크를 참조하시길 바랍니다.

LUCK_공유용.xlsx


우선 간단히 어떤 식으로 사용하면 되는지 설명해드리겠습니다. 우선 위의 파일은 2013년 LUCK지수 계산을 위해 사용한 파일의 재활용(;;)입니다. 뭐 AL과 NL에 특별히 할 언급은 없고요 IP_FAN이라는 항목은 팬그래프 기록을 사용한 흔적이라고 보시면 됩니다.(팬그래프는 이닝항목이 0.1씩 나와서 엑셀로 계산하면 ERA와 FIP에 오차가 생기게 되죠.) 그리고 League 항목은 간단히 필요한 리그에 대한 기초적인 자료(다만 필요없는 것도 있기는 합니다만 저것도 팬그래프 걸 그대로 사용하다보니 그렇게 됐습니다. 그리고 맨 위의 FIP의 경우 FIPC입니다.)를 위한 시트고요, BPF는 2013년 득점 파크팩터에 대한 시트입니다. 지금까지 저는 모든 자료를 팬그래프 것을 중심으로 하였기 때문에 모든 자료는 팬그래프의 정렬방식을 따랐습니다만, 계산하실 때 너무 불필요한 것이 많다고 생각되시면 필요한 것만 취하시면 됩니다. 그리고 FIP 기반이 아니라 ERA 기반으로 계산을 진행하고 싶으시다면  ExRA의 수식에서 Z열에 해당하는 부분을 E열로 바꾸시면 됩니다. 물론 RS도 리그 RS가 아니라 리그 FIP_RS로 사용하고 싶으시다면' League!$P$()/League!$G$()'(괄호 안은 번호)에 해당하는 부분을 ;League!$Y$()*League!$P$()/League!$Q$()'로 하시면 됩니다.

그럼 이상으로 LUCK 엑셀자료 공유에 대한 설명을 마치겠습니다. 궁금하신 것이 있다면 아래에 댓글에 문의해주세요. 감사합니다.

Posted by 야구고물상

댓글을 달아 주세요

  1. Bench Wannabe 2013.09.30 20:28 신고  댓글주소  수정/삭제  댓글쓰기

    수능 끝나고 역대로 해서 노트북 한 번 터뜨려 볼까 합니다

하하..우선 잘 모릅니다 잘 모르고요..

제가 세이버매트릭스 관련 얘기를 가끔 포스팅 하려는 이유는..

그나마 제가 가장 잘 야구를 분석할 수 있는 툴이라는 이유 때문!!

내 눈과 내 감을 믿지 못하는 사람이라서 그나마 가장 믿을만한 건 통계더군요..

우선 이 개념 자체가 굉장히 논란이 많은 개념이란 건 저도 압니다..이게 정확히 답이라고 할 수 없는 것도 알고요.. 다만 이 섹션에서 싸우시지만 않으셨음 좋겠습니다.(우선 누가 이 블로그를 보실 지도 모르겠지만...) 많은 부분에서 서로 다른 시각을 견지하고 있고, 서로의 논리가 서로의 전제에 위배되는 경우도 분명 많은 부분이라서요(쉽게 말해서 종교VS비종교의 싸움이라고 보셔도 됩니다.).. 이 개념을 좋아하시지 않든 좋아하시든 서로를 이해해주시기만 하면 감사하겠습니다.

그럼 가끔씩 포스팅하도록 하겠습니다. 저 혼자 재미로 한거든...원래 있는 개념을 포스팅하든...

Posted by 야구고물상

댓글을 달아 주세요