Jon Lester의 2009년 시즌 기록을 예로 하여 WAR을 구해 보자.


투수에 대한 이전 포스팅
에서 우리는 투수의 퍼포먼스를 평가하는 여러 가지 스탯을 살펴본 바 있다. 이 스탯들은 모두 해당 투수가 얼마나 실점을 하는지를 9이닝당 비율로 표시한 것이다. 댓글을 통해 ERA와 FIP, BABIP에 대해 camomile님과 매우 유익한 토론이 진행되었으므로 투수의 평가에 대해 관심이 있으신 분들은 꼭 위의 링크를 눌러 댓글을 읽어보시기 바란다. 원래 세이버메트릭스는 열린 개념이므로 정해진 결론은 없으며, 선택은 물론 여러분 각자의 몫이다...

어쨌거나, ERA나 FIP, tRA 등과 같은 스탯은 9이닝당 실점 수준을 보여 주지만, 여기에는 실제로 해당 투수가 그 시즌에 몇 이닝을 던졌는지는 반영되지 않는다. 9이닝당 1실점을 하는 압도적인 선발투수라고 해도, 50이닝만을 던지고 부상으로 시즌아웃 되었다면, 결코 좋은 평가를 하기는 어려울 것이다. 즉, 투수의 가치(Value)를 평가하기 위해서는 그가 얼마나 많은 이닝을 책임져 주었는지가 반드시 고려되어야 한다.

여기에서는, Fangraphs의 투수 WAR(Wins Above Replacement Level)를 계산하는 방식을 모델로 하여 투수의 가치를 구하는 방법을 살펴볼 것이다. 늘 강조하듯이 이것은 절대적인 단 하나의 방법은 아니며, 현재 나와 있는 여러 가지 방법 중 (내가 보기에) 가장 그럴 듯하여 소개하는 것이다. 또한 Fangraphs가 꽤 양질의 데이터를 모두 공짜로 보여주고 있어서 누구나 쉽게 찾아볼 수 있다는 장점도 있다.

(참고: 타자의 WAR 계산은 이전 포스팅을 참고.)

이 글에서는 우선 선발투수만을 대상으로 하고자 하며, 구원투수는 다음 포스팅에서 다루게 될 것이다. 구원투수를 따로 다루는 이유는 구원투수의 WAR 계산시 LI를 반영하는 단계가 중간에 포함되므로 별도의 설명이 필요하기 때문이다. 안그래도 항상 글이 긴 편인데, 구원투수의 LI 이야기까지 하면 아무도 읽고싶지 않은 엄청난 길이가 되어버릴 듯하여 글을 분리하기로 하였다.

이제부터 2009년 Jon Lester의 기록을 가지고, 투수의 WAR를 구하는 방법을 차례차례 살펴보도록 하겠다.
Fangraphs는 이 과정을 무려 일곱 개의 글에 걸쳐 설명하고 있는데, 내가 이걸 이해하는 데에는 무척 오랜 시간이 걸렸다. 나는 어떻게든 이 포스팅 하나로 몽땅 설명을 해 보고자 한다. 그것도 일곱 개의 원문보다 더 쉽게 말이다. 이게 가능한 목표일지는 모르겠지만... -_-;;;;


1. 투수가 속해 있는 리그의 평균 RA를 산출

우선 구하고자 하는 것이 ERA가 아니라 RA임에 유의해야 한다. 모든 종류의 실점을 아우르는 것이다.

Lester는 AL에서 뛰고 있다. 2009년 AL 전체 기록을 보면, 20173 1/3 이닝에서 10793점을 득점 혹은 실점하였음을 알 수 있다. (이런 기록은 Baseball-Reference에서 쉽게 얻을 수 있다.) 우리가 원하는 것은 경기당 평균 실점, 좀 더 정확히 이야기하면 9이닝당 평균 실점이다. 아래와 같이 간단히 계산할 수 있다.

AL avg RA = 10793 / 20173.333333 * 9 = 4.82


2. 투수의 조정 RA 산출

먼저 투수의 평균 실점 수준을 나타내는 스탯을 하나 골라서 가져온다. Fangraphs는 FIP를 이용하고 있고, 나도 FIP를 선호하므로, 여기에서는 FIP를 사용하도록 하겠다. (ERA나 tRA 등을 이용하고자 하는 경우에 대해서는 조금 아래에서 설명을 따로 드리도록 하겠다.) Lester의 2009년 FIP는 3.15이다.

FIP는 ERA Scale의 스탯이므로, 이를 RA Scale로 바꾸어 주어야 한다. ERA와 RA 사이에는 0.92:1의 관계가 경험적으로 존재하므로, 3.15를 0.92로 나눠 주면 RA Scale이 된다.

다음은 구장 효과인데... 구장 효과는 계산 방법이 여러가지이고 계산 방법에 따라 결과도 조금씩 다르다. 일단은 Fangraphs에서 제시하는 2004-2008년 5년간의 득점 Park Factor를 이용하도록 하겠다. Red Sox의 경우는 1.03으로 되어 있다. (이것은 홈에서 절반을 플레이하고 원정에서 절반을 플레이한다는 것을 이미 반영한 Adjusted Park Factor이다.) 즉, Lester는 Red Sox에서 뛰게 됨으로 인해 1.03배 더 실점하는 페널티를 가지고 있는 것이므로, 이를 보정해 주기 위해 다시 1.03으로 나눠 주어야 한다.

이 두가지 단계를 계산해 주면...

Adjusted RA = 3.15 / 0.92 / 1.03 = 3.32

이 3.32라는 숫자의 의미는... 중립적인 구장에서 평균 수준의 팀 동료들이 수비를 하고 있고, 상대 타선 역시 평균 수준의 선수들로 채워져 있을 경우, Lester가 9이닝을 던지면 3.32점 실점할 것이라는 뜻이다.

* 주 : FIP보다 ERA를 더 선호하는 경우, 위의 계산에서 FIP 대신 ERA를 사용하여 동일한 방법으로 Adjusted RA를 얻으면 된다. tRA를 사용하고자 하는 경우, tRA는 이미 RA Scale의 스탯이므로 0.92로 나눠 줄 필요가 없다. tRA에 구장 효과만 반영해 주면 된다.


3. 게임 당 평균 투구 이닝 계산

Lester는 32게임에 나와 203 1/3 이닝을 던졌으므로, 게임당 평균 투구 이닝은 다음과 같다.

IP/G = 203.333333 / 32 = 6.35


4. Runs per Win 계산

이 부분이 가장 어려운 부분일 것 같은데... 보통의 상황에서는 10점 = 1승으로 대충 계산하면 별로 오차가 발생하지 않는다. 하지만, 투수는 팀의 실점에 미치는 영향이 워낙 크기 때문에, 어떤 투수가 마운드에 있는지에 따라 Run Scoring Environment가 바뀌고, 이에 따라 점수와 승수의 관계도 바뀌게 된다.

조금 더 쉽게 생각하면... Lester와 같은 좋은 투수는 실점을 덜 하게 되므로, 보통 투수가 마운드에 있을 때에 비해 득점을 덜 해도 승리를 할 수 있게 되는 것이다. 반대로 3류 투수가 마운드에 있다면, 소속팀이 승리를 하기 위해서는 더욱 많은 득점을 해야 할 것이다. 이러한 변화를 반영하는 것이다.

투수의 퍼포먼스에 따른 점수와 승수의 관계를 계산하는 방법은 역시 여러가지가 있으며, 대부분은 Pythagenpat과 같은 득점/실점과 승률의 관계로부터 계산식을 이끌어내게 된다. 그러나, Pythagenpat을 직접 사용할 경우 제곱근을 구해야 하는 등 계산식이 복잡해지므로, 다음과 같은 근사식을 사용한다.

[((상대 팀 이닝*상대 팀 실점수준)+(소속 팀 이닝*소속 팀 실점수준)/(상대 팀 이닝+소속 팀 이닝))+2] * 1.5

근사식도 너무 복잡해 보이지만... 예를 통해 보면 조금 쉬울 것이다. 이닝 및 실점수준은 모두 9이닝을 기준으로 한다는 것을 기억하자.

상대 팀의 수준은 천차만별이겠지만... 162게임의 긴 시즌을 치르다 보면 여러 상대를 만나게 되므로, 결국 리그 평균에 가까워질 것이라고 볼 수 있다. 따라서, 상대 팀은 9이닝 당 리그 평균인 4.82점을 실점할 것으로 볼 수 있다. 한편 소속 팀의 경우... Lester가 선발로 나온 경기에서 9이닝 중 Lester가 책임져 주는 이닝은 평균 6.35이닝이었다. 나머지 2.65이닝은 리그 평균 수준으로 실점한다고 보고 계산한다. (분석 대상인 투수를 제외하고는 모두 리그 평균을 가정한다. 이렇게 해서 팀 동료들의 활약으로 인해 이득이나 손해를 보는 부분을 제거하고자 하는 것이다.)

이렇게 하면, 상대 팀 9이닝 + Lester 6.35 이닝 + Lester의 동료 구원투수들 2.65이닝 = 총 18이닝이 분모가 된다. 계산을 해 보자.

Runs per Win = [(((9 * 4.82) + (6.35 * 3.32 + 2.65 * 4.82)) / 18) + 2] * 1.5 = 9.43

즉, Lester가 마운드에 있음으로 해서 9.43점 = 1승으로 바뀌는 것이다.


5. RAA/9 및 WAA/9, 기대 승률 계산

2번에서의 계산 결과 Lester는 9이닝 당 평균 3.32점을 실점하는 것으로 계산되었다. 한편, 리그 평균 투수들은 4.82점을 실점하므로, Lester는 리그 평균 투수에 비해 9이닝당 1.49점을 덜 내주는 것이 된다. (1.50이 아닌 이유는 소숫점 반올림 때문이다. 아래에 첨부한 엑셀파일 참고.) 이를 4번에서 계산한 9.43점 = 1승의 관계를 이용하여 환산하면, Lester는 리그 평균 투수에 비해 9이닝당 0.158승 소속팀에 더 기여하는 것이 된다. 리그 평균 투수는 이론적으로 승률이 5할일 것이므로, 팀 동료와 상대팀 선수들이 모두 평균 수준일 때 Lester 등판 시의 9이닝 당 기대 승률은 0.500 + 0.158 = 0.658이다.


6. Replacement Level

Replacement Level 팀은 .300 정도의 승률을 가지는 것으로 생각된다. 팀 승률이 .300이라고 해서 선수들이 모두 평균이 50%일 때 각각 30% 정도의 능력을 가지고 있는 것은 아니다. 실제로는 .300 타자, .300 투수, .300 수비의 팀은 승수효과에 의해 .300보다 훨씬 낮은 승률을 기록하게 되어 버리는 것이다.

.300의 팀 승률을 얻기 위해, 선발투수는 .380, 구원투수는 .470 정도의 능력이 요구된다. 이는 어느 정도 통계적으로도 검증된 수치이고... 이론적인 설명을 위해서는 Odds Ratio Method에 대한 배경지식이 필요한데... 이 이야기를 여기서 하게 되면 글이 완전히 산으로 가게 되므로... 이 부분은 추후 별도로 포스팅하도록 하겠다.

여기서는 일단 Tom Tango와 Fangraphs의 주장을 받아들여 Replacement Level의 투수의 승률이 .380인 것을 인정하고 넘어가도록 하자. 이것은, 소속 팀의 다른 동료들이 모두 리그 평균 수준이고, 상대 팀도 전부 리그 평균 수준의 선수들로 구성되어 있을 경우, Replacement Level 투수(예를 들어 AAAA 투수)가 선발 등판하여 9이닝을 던지면 .380의 승률을 기대할 수 있다는 의미이다.


7. WAR/9

9이닝당 Jon Lester의 기대 승률은 0.658이었다. 그리고 Replacement Level 선발투수의 기대 승률은 0.380이었다. 따라서, 9이닝을 기준으로 Lester는 Replacement Level 투수보다 0.658 - 0.380 = 0.278 더 기대 승률이 높다고 할 수 있다.


8. WAR

드디어 마지막 단계까지 왔다. 7번에서 얻은 9이닝 당 숫자를 Jon Lester가 던진 실제 이닝으로 환산하여 주면 되는 것이다. Lester는 203 1/3 이닝을 던졌으므로...

WAR = 0.278 * 203.333333 / 9 = 6.3

결국 2009년 시즌에, Jon Lester는 Replacement Level 투수에 비해 6.3승 더 팀에 기여한 것이다.


- NL 투수 계산하기 -

NL 투수는 AL 투수와 비교하여, 매 경기마다 타석에 들어선다는 중요한 특징이 있다. 거의 대부분의 경우, 투수들은 형편없는 타자들이므로, 타석에서는 팀에 오히려 피해를 입히게 된다. 이를 반영해 주어야 제대로 된 선수 가치의 계산이 가능할 것이다.

2009년 Tim Lincecum의 경우, 투구 내용만 가지고 보면 8.9 WAR의 시즌을 보냈지만, 타석에서 0.7승 만큼 오히려 팀에 해를 끼쳤으므로, 결국 최종 WAR는 8.9 - 0.7 = 8.2 가 되는 것이다.

첨부파일을 통하여 이를 확인하시기 바란다.


- 투수의 수비 -

투수의 수비력은 이 글을 쓰는 현재 WAR에 반영되고 있지 않고 있다. 투수의 UZR 데이터가 없기 때문이다. 수비가 좋은 투수와 좋지 않은 투수의 경우 이를 적절히 감안하여 주어야 할 것이다. 특별한 근거는 없으나 투수 수비의 영향은 가장 극단적인 경우 한 시즌에 최대 +/- 5 Runs 정도 되지 않을까 싶다.


첨부: 선발투수 WAR 계산의 예 (AL, NL 각 5명)


Today's Music : Pearl Jam - Given to Fly (Live)


위대한 밴드의, 위대한 곡의, 위대한 공연.
Posted by FreeRedbird

댓글을 달아 주세요

  1. BlogIcon aslkjdqwe 2011.10.06 20:29 신고 Address Modify/Delete Reply

    WAR 관련해서 궁금한 게 하나 있어요.
    선발투수 WAR을 구할 때 가령 A란 선발이 240이닝을 소화했을 때, WAR을 구하는 과정을 생각해보면
    빠지는 240이닝을 대체선수레벨선발로 대체하는 식으로 계산하는 것 같던데
    실제로 A란 선수가 빠졌을 때 빠지는 240이닝을 대체선수선발이 모두 메꿀 리는 없을테니 불펜소화 이닝이 늘어나게 되어 위의 계산과는 좀 다르지 않을까요? 제가 뭔가 잘못알고 있는 것 같기도 하고..;
    (표현이 잘 안되네요;)

    • BlogIcon FreeRedbird 2011.10.07 09:39 신고 Address Modify/Delete

      말씀하신 대로 한 시즌에 240이닝을 넘게 던지는 에이스 급 선발투수가 replacement level 투수로 대체된다면, 일부 이닝은 아마도 불펜이 소화하게 되겠죠. 감독이 대체선발에게 240이닝이나 던지도록 내버려 두지 않을 듯 합니다.

      다만, 이것을 반영할 수 있는 계산방법이 마땅치 않습니다. 240이닝 중에 얼만큼을 불펜이 가져갈 지도 알 수 없고, 불펜 안에서도 다시 그 이닝이 어떻게 배분되는지도 알 수 없기 때문이죠.

      딱히 방법도 없을 뿐 아니라, 그냥 계산 하시더라도 오차가 그닥 클 것 같지는 않습니다. Replacement level 선발이 상대적으로 조금 일찍 마운드에서 내려간다고 하면 아무래도 미들 릴리프 내지는 롱맨 등이 이어받게 되겠는데요. 얘네들은 보통 불펜에서 가장 못 던지는 애들이고, LI가 낮은 상황에 주로 등판하는 관계로 연간 WAR이 0에 가깝습니다. (즉, 얘네들도 어차피 거의 replacement level 투수들입니다.)

      Replacement Level은 일종의 동일한 비교 척도 라고 보시면 될 것 같습니다. 해당 선수가 던진 만큼을 대체 시켰을 때와의 차이를 서로 비교해 보고자 하는 것이지요. 일부 이닝이 불펜으로 가는 효과는 팀마다, 감독마다 다르게 나타나므로 비교가 어려울 듯 합니다.

  2. doosan 2012.05.07 20:43 Address Modify/Delete Reply

    Runs per win이란 것이 팀이 그만큼 득점을 해야 1승을 딴다. 이런 의미인건가요?
    10점 = 1승에서 그런것 같아 보이지는 않는데... 어렵네요

    • BlogIcon FreeRedbird 2012.05.08 13:17 신고 Address Modify/Delete

      투수의 퍼포먼스를 평가할 때 Runs per Win을 반영하는 이유는... 투수의 실력에 따라 Run Environment가 바뀌고, 이에 따라 승패가 갈리는 데 필요한 점수도 바뀌기 때문입니다. 에이스가 마운드에 있다면 4점만 내도 이길 확률이 높지만, 허접한 투수가 마운드에 있다면 6점을 내도 확신이 서지 않겠지요. 그런 차이를 반영해 주는 것입니다. 즉, RA9 3.5의 투수와 RA9 4.0의 투수는 단순히 9이닝당 0.5점의 차이가 나는 것이 아니라, 그보다 더 큰 차이가 나게 됩니다. 3.5 짜리 투수가 팀에게 이길 기회를 더 많이 주기 때문이죠.

  3. pitch 2012.07.23 11:22 Address Modify/Delete Reply

    수비나 운에 의해 이닝수도 달라질텐데 그런 건 어떻게 보정하고 있나요?

    • BlogIcon FreeRedbird 2012.07.23 13:12 신고 Address Modify/Delete

      수비에 의한 차이를 정확히 보정할 방법은 없습니다. 그래서 FIP와 같이 수비의 영향을 받지 않는 스탯을 베이스로 사용하는 것입니다.

      운에 의한 차이는 어떻게 할 방법이 없고요. 얼마만큼이 운에 의한 것인지 정확히 말할 수가 없습니다. 단지 투수의 입장에서는 "운"이나 마찬가지인 구장에 따른 차이를 Park Factor를 써서 보정하는 것입니다.

      이닝 수 자체를 조정하는 일은 없습니다. 특정 타구를 수비수가 처리해 줬다면 이닝이 더 빨리 종료되었을 것이라든지 하는 등의 경우가 있을 수 있지만, 이것을 계산에 반영하기는 어렵습니다.

      이닝 보다는 상대한 타자 수를 기준으로 삼는 쪽이 더 정확한 비교가 됩니다. 예를 들어 K/9 보다는 K/PA가 좀 더 좋은 스탯 입니다.

  4. yoon9298 2013.10.04 01:30 Address Modify/Delete Reply

    내셔널리그 투수들의 타격이 war에 감안되는 부분에 관해 질문이 있습니다. NL에서는 사실상 특수한 경우를 제외하면 모든 투수들이 반드시 타격에 들어서야되는데, 그렇다면 투수들의 타격 war는 대체선수 기준을 일반적인 야수의 타격이 아니라 같은 투수들의 타격에 비교하는것이 맞지 않은가 궁금합니다.

    구체적으로 예시를 들자면, 평균적인 대체선수급 NL투수들의 타석에서의 평균 득점 생산력이 1이고(산출기준은 중요치 않겠지요), 대체선수 수준의 야수들의 생산력이 2라고 가정하면 타석에서 1.5의 생산력을 가진 투수는 대체선수급 야수의 생산력보다 -0.5가 아닌 대체선수급 투수의 생산력보다 0.5가 +되므로 오히려 타격에서 평균적인 투수들보다 팀에 기여하고 있는 것이 아닌가 의문이 드네요.

  5. RENAK 2015.08.13 17:23 Address Modify/Delete Reply

    투수의 WAR 계산법을 찾던 중 이글을 우연히 보게되었습니다.

    그런데 WAA/9은 어떻게 구하는지 알수있을까요? 다른건 다 이해가 되는데 그건 이해가 난해하네요

  6. 삼팬 2015.10.14 21:02 Address Modify/Delete Reply

    스탯티즈 축하드립니다. http://www.statiz.co.kr/glossary.php