우리는 그 동안 타자의 생산성을 평가하기 위한 보다 발전된 스탯으로 wOBA, wRAA 등을 살펴보았고, 타자를 종합적으로 평가하기 위한 WAR의 계산 방법도 살펴본 바 있다.

그런데, OPS 대신 wOBA나 wRAA를 사용할 수 있다고 하더라도, 이 블로그에 wOBA를 소개하는 글을 쓸 당시 OPS+를 대체할 개량 스탯은 아직 없었다. OPS+는 비록 OPS가 갖는 단점을 그대로 가지고 있기는 하지만, 계산 과정에서 파크 팩터를 적용하여 홈구장으로 인한 왜곡을 보정하고, 리그 평균에 대한 상대적인 값을 계산함으로써 리그에 대해서도 보정해 주는 효과를 가진다. 또한 항상 100이 평균이 되므로, 특정 타자가 리그 평균에 비해 얼마나 좋은(혹은 나쁜) 활약을 했는지를 한 눈에 쉽게 알 수 있다는 장점이 있다.

그러던 중, Fangraphs에 wRC+가 소개되었다. 이는 한 마디로 wOBA의 OPS+ 버전이라고 할 수 있는데... 이제부터 자세히 살펴보고자 한다.

설명을 위해, 이전에 WAR 계산 설명 때 사용하였던 2009년 Chase Utley와 Joe Mauer의 스탯을 다시 이용하기로 하였다. 계산에 사용된 엑셀파일을 첨부하니 참고하시기 바란다.


1. wRC

wRC는 weighted RC이다. Bill James의 RC와 유사한 것 같지만 계산 방법은 매우 다르다. wRC는 앞의 w에서 알 수 있듯이, wOBA를 기반으로 계산된 것이다.

RAR이나 WAR 같은 스탯은 "Above Replacement Level"이므로, 비교 대상이 Replacement Level 플레이어이다. 즉, WAR=0이면 Replacement Level 플레이어라는 이야기이다. 또한 wRAA는 "Above Average"이므로, 비교 대상은 리그 평균이다. 즉, wRAA=0이면 타격 기여 수준이 딱 리그 평균 수준이라는 이야기가 된다.

반면, wRC는 비교 대상이 "0"이다. 타석에 마네킹을 그냥 세워두어서 마네킹이 .000/.000/.000을 기록했을 때와 비교해서 해당 타자의 득점 기여 수준을 평가하는 것이다. (마네킹이 볼넷이나 HBP로 출루하는 어이없는 경우는 없다고 치자. -_-;;; )

이러한 wRC의 개념을 생각하면, wRAA로부터 쉽게 계산이 가능하다. 해당 타자의 wRAA를 알고 있으면, 해당 타자가 리그 평균보다 얼마나 더 많은 기여를 했는지 알 수 있으므로, 이제 여기에다가 마네킹과 리그 평균 사이의 차이를 더해 주면 바로 wRC가 된다. 다시 말해서 아래와 같은 식이 된다.

wRC = wRAA + 리그 평균 타자의 득점 기여 수준 = wRAA + (lgR/lgPA)*PA
lgR : 리그 전체 득점
lgPA : 리그 전체 타석

구체적인 예를 통해 계산을 해 보자.

위의 첨부 파일을 보면 2009년 Chase Utley의 스탯이 있다. 그의 wRAA는 파크팩터를 적용하여 계산하면 37.45가 나온다. (주: Fangraphs는 wRC 계산 시에는 파크팩터를 쓰지 않고, wRC+를 계산할 때 파크팩터를 사용하는데, 여기서는 그냥 wRC 계산 때부터 파크팩터를 적용하도록 하겠다.)

이제 "리그 평균 타자의 득점 기여 수준"을 계산해 보자. 2009년 NL 리그 전체 기록을 보면, 99,531 타석(PA)에서 11,482 득점이 발생하였다. 따라서, 1 타석의 평균적인 득점 기여 수준은 11482/99531 = 0.12 점 임을 알 수 있다.

Utley는 2009년에 687 PA를 기록했으므로, 그가 2009년에 기록한 wRC는 687 PA를 통해 기록한 wRAA에 687 PA를 리그 평균 타자가 기록했을 때의 득점 기여 수준을 합치면 될 것이다. 즉, 아래와 같이 계산하면 된다.

Chase Utley의 wRC
 = Utley와 마네킹의 연간 득점 기여 수준 격차
 = Utley와 리그 평균의 연간 득점 기여 수준 격차 + 리그 평균과 마네킹의 연간 득점 기여 수준 격차
 = wRAA + (0.12 * 687)
 = 116.70


Chase Utley는 687 타석에서 마네킹을 세워두는 것에 비해 팀 득점에 116.70점을 기여한 것이다.


혹은, wRAA가 아니라 wOBA로부터 계산하고자 한다면, wRAA = ((wOBA-lgwOBA)/1.15)*PA 를 wRAA 자리에 대입하면 된다.

wRC = wRAA + (lgR / lgPA) * PA
        = (wOBA - lgwOBA) / 1.15) * PA + (lgR / lgPA) * PA
        = ((wOBA - lgwOBA) / 1.15 + (lgR / lgPA)) * PA


2. wRC+

이제 이 116.70점이 같은 리그의 다른 타자들과 비교해서 얼마나 대단한 정도의 공격 기여 수준인지를 살펴보자.
wRC+는 아래와 같이 계산한다.

wRC+ = (((wRAA / PA) / (lgR / lgPA)) + 1) * 100

계산식을 보면, 1타석당 득점 기여 수준을 가지고 비교를 하게 됨을 알 수 있다.

분모를 보면, 리그 전체의 1타석당 득점 기여 수준이다. 위의 예에서는 0.12로 계산되었다.

분자를 보면, wRAA를 해당 타자의 타석으로 나누고 있으므로, 1타석당 해당 타자와 리그 평균간 득점 기여 수준의 차이가 된다. Chase Utley의 경우는 37.45/687 = 0.0545가 된다.

여기에 리그 평균을 100으로 만들어주기 위해 1을 더하고 100을 곱해서 계산한다.

Chase Utley의 wRC+는 이렇게 해서 147이 된다. 첨부파일을 참고하시기 바란다.


Joe Mauer의 경우에는 AL에 속해 있으므로 lgR과 lgPA 자리에 AL의 데이터를 넣어 주어야 한다.
이렇게 해서 계산하면 wRC는 133.23, wRC+는 176이 나온다. 엄청난 시즌을 보냈음을 알 수 있다.
(Fangraphs에서는 Mauer의 wRC+를 174로 계산하고 있다. 파크팩터의 적용 방법, 소숫점 반올림 등에 따른 약간의 오차가 발생함을 감안하시기 바란다.)

OPS+와 비교하면 어떨까? 2009년 Utley의 OPS+는 136이었고, Mauer의 OPS+는 170이었다.
이것은 OPS+가 특히 Utley를 저평가하고 있음을 의미한다.


2009 시즌 wRC+와 OPS+의 메이저리그 TOP 10 비교이다.
OPS+는 Baseball-Reference에서 가져왔고, wRC+는 아직 시즌별 비교데이터가 제공되지 않아 Fangraphs에서 선수별 데이터를 직접 일일이 클릭해서 만들었다. -_-;;

wRC+
Albert Pujols 184
Joe Mauer 174
Prince Fielder 163
Adrian Gonzalez 158
Joey Votto 157
Hanley Ramirez 155
Ben Zobrist 154
Ryan Braun 153
Derrek Lee 153
Kevin Youkilis 153

OPS+
Albert Pujols 188
Joe Mauer 170
Prince Fielder 168
Adrian Golzalez 166
Joey Votto 155
Mark Teixeira 149
Hanley Ramirez 148
Ryan Braun 148
Alex Rodriguez 147
Ben Zobrist 146


참고 : 왜 wOBA+나 wRAA+를 쓰지 않고 wRC+를 쓰는 것일까?

Chase Utley의 wOBA+를 계산해 보자.
Utley의 2009년 wOBA는 0.390이고, NL 평균 wOBA는 0.328이었으므로,

((0.390 / 0.328) * 100 = 119

이렇게 하면 OPS+나 wRC+에 비해 훨씬 좁은 범위에 결과값이 분포하는 스탯이 만들어진다. 우리에게 익숙한 OPS+와 유사한 스케일인 wRC+를 사용하는 것이 이해도 빠르고 한 눈에 알아보기도 쉬울 것이다.

한편, wRAA+는 계산이 불가능하다. 리그 평균이 0이기 때문에, 분모가 0이 되어 버리는 것이다.

Today's Music : David Bowie - Five Years (Live)



이런 게 "음악"이다.
Posted by FreeRedbird
:

(주: 이 글의 내용 및 첨부된 계산 파일은 일부 오류를 포함하고 있으므로, 내용을 수정하여 다시 올린 새 글을 참고하시기 바란다.)

 


Chase Utley : 2008년 NL MVP 투표에서는 고작 15위에 머물렀지만, WAR로 보면 Pujols에 이어 메이저리그 전체 2위였다. 올 시즌 타자 WAR 리스트에서도 Pujols와 Hanley Ramirez에 이어 3위를 달리고 있지만, MVP 투표에서는 또 10위권 밖으로 밀려날 것이다. 항상 실력에 비해 충분한 인정을 받지 못하고 있는, 심각하게 저평가된 플레이어이다.


타자가 팀의 득점에 기여하는 방법은 크게 보아 공격(타격), 수비, 주루가 있을 것이다. 그래서 좋은 타자를 이야기할 때 "공, 수, 주 3박자를 두루 갖췄다"는 표현을 사용하기도 한다.

각각의 타자에 대해서 이러한 득점 기여의 정도가 어느 정도인지를 측정하기 위해, 지금까지 공격, 수비, 주루의 측면을 차례로 검토해 왔다. 또한 비교 대상으로서 절대적 기준이 되는 Replacement Level 및 수비 포지션에 따른 조정 수준에 대해서도 살펴본 바 있다. 이 글을 쓸 때까지 다소 시간 간격이 있었으므로... 다시 한번씩 훑어 보시면 이해에 도움이 되시리라고 생각하여 링크를 걸어 본다.

1. 타격 기여 수준 : wOBA 및 wRAA
2. 비교의 절대적 기준 : Replacement Level
3. 수비 기여 수준 : UZR, TZ
4. 포지션별 차이 : Positional Adjustment
5. 주루 기여 수준 : 도루 성공과 실패

이를 종합하면 특정 타자의 전체 기여 수준, 혹은 그의 가치(Value)를 계산할 수 있는데, 이것이 바로 RAR(Runs Above Replacement level) 및 WAR(Wins Above Replacement level) 이다.

먼저 RAR을 구해 보면... 위의 다섯 가지를 차례로 더해 주면 된다.

RAR = wRAA + Replacement Level + UZR + Positional Adjusment + SB/CS Runs

이제 RAR을 WAR로 환산해야 하는데... 원칙적으로는 팀 전체 득점과 실점에 대해 해당 플레이이어의 RAR이 미치는 점수 변화 정도를 가지고 Pythagorean Expectation의 식에 넣어서 계산하는 것이 맞지만... Pythagorean 관련 포스팅에서 언급한 바와 같이, "10점 득점 = 1승"의 단순한 계산 방법이 의외로 높은 정확도를 가지므로, 계산의 편의를 위해 이를 활용하는 것이 좋을 것이다. 즉, 아래와 같이 쉽게 계산할 수 있다.

WAR = RAR/10

이제부터 실제 예를 통해서 자세히 살펴보자.
계산에 필요한 Raw Data는 Retrosheet, Baseball-Reference, Fangraphs의 세 사이트에서 얻었으며, 이후의 모든 계산은 직접 하였다. 계산에 사용한 엑셀 sheet를 첨부하였으므로, 계산 결과를 쉽게 확인하실 수 있을 것이다.


아래는 Chase Utley의 2008년 성적이다.

공격 : 159 G, 607 AB, 707 PA, 99 1B, 41 2B, 4 3B, 33 HR, 50 NIBB, 14 IBB, 27 HBP, 5 RBOE
수비 : 20.2 UZR
주루 : 14 SB, 2 CS


(NIBB : 고의사구가 아닌 볼넷, IBB : 고의사구, RBOE : 에러로 인해 타자가 출루한 경우)

순서에 따라 차례차례 계산해 보면...

1-1. Park Adjust

먼저 wOBA를 계산하기에 앞서서, 구장으로 인한 효과를 보정해 주는 것이 계산의 신뢰도를 높이는 데 도움이 될 것이다. Park Factor를 계산하는 방법은 여러 가지가 있고, 개인적으로는 어떤 방법이 가장 좋은지 아직 결론을 내리지 못하고 있다. 일단 여기서는 Fantasy411의 2006-08년 Park Factor를 빌려와서 사용하도록 하겠다. (단, RBOE의 Park Factor는 어디에서도 얻을 수가 없었다. 어차피 Utley의 RBOE가 5에 불과하여 Park Factor가 있더라도 그다지 영향은 없었겠지만...)



정밀한 조정을 위해서는 Utley의 경기별 홈구장을 일일이 찾아서 계산해야겠지만... 너무 품이 많이 들므로, 다음과 같은 간단한 방법을 사용하였다. 1) 타석의 절반은 홈, 절반은 원정에서 기록한 것으로 본다. 2) 원정구장들의 평균 Park Factor는 100이다. (실제로는 홈구장을 뺀 15개 NL 구장의 평균이므로 100에 근접한 값일 것이나, 큰 오차는 없으리라고 본다) 3) 따라서, 홈 구장 Park Factor의 50%를 Raw Stat에 적용하여 보정한다.

이렇게 조정한 Utley의 성적은 아래와 같다.
707 PA, 98 1B, 41 2B, 4 3B, 29 HR, 51 NIBB, 13 IBB, 27 HBP, 5 RBOE

홈런이 줄어든 것이 눈에 띈다. 나머지 기록은 거의 변화 없음을 알 수 있다.

1-2. wOBA 및 wRAA 계산

이전의 포스팅에서 wOBA를 소개할 때에 비하여, 지금은 wOBA를 더욱 신뢰하게 되었다. 최근 THT의 Colin Wyers가 수행한 연구에 의하면, 90년대 및 2000년대의 메이저리그 기록을 가지고 분석할 경우 wOBA가 EqA보다도 정확도가 좀 더 높은 것으로 나타났기 때문이다. 현재 세이버메트릭스 진영에서 득점 기여 수준을 측정하는 가장 우수한 스탯으로 여겨지는 wOBA와 EqA의 승부(둘 다 실제 득점과의 correlation이 0.97로 매우 높으므로, 정말 뛰어난 스탯들이다)에서 wOBA가 근소하게나마 더 우수한 것으로 판명되었기 때문에, 타자의 공격 기여도를 측정함에 있어 wOBA를 근간으로 삼는 것은 현재로서는 최선의 방법이라고 생각된다. 또한, wOBA가 EqA보다 훨씬 계산식이 간단하고 이해하기 쉽다는 것도 큰 장점이다.

계산식 및 이론적 근거는 이전의 포스팅을 참고하시고... Park Factor를 적용한 기록을 가지고 Utley의 wOBA를 계산한 결과는 다음과 같다. (앞에 첨부한 엑셀 sheet 참조)

(Park Adjusted) wOBA = 0.382

한편, 2008년 NL 전체 타격 기록을 가지고 구한 리그 평균 wOBA는 0.330이므로, 이를 이용하여 Utley의 wRAA를 구하면 다음과 같다. (엑셀 sheet 참조)

wRAA = 32.05 Runs

즉, 2008년 시즌의 Chase Utley는 NL 평균 타자에 비해 팀 득점에 32.05점 더 기여했다는 의미가 된다.


2. wRAA를 Batting RAR로 : Replacement Level의 설정

wRAA는 Runs Above Average라는 단어의 의미에서도 알 수 있듯이 리그 평균과 비교하는 스탯이므로, 이를 Replacement Level과의 비교로 조정하여 RAR(Runs Above Replacement leve)로 만들 필요가 있다. 이전부터 한 시즌을 기준으로 리그 평균 수준의 주전 선수와 Replacement Level의 땜빵 선수 차이에는 20점 혹은 2승 정도의 차이가 난다는 경험적 분석 결과들이 있었는데, 작년 말에 THT에 게재된 Sean Smith의 뛰어난 연구는 이를 다시 한 번 확인시켜 주었다. 즉, 600 PA를 기준으로 리그 평균과 Replacement Level의 사이에는 20점(20 Runs)의 기여 수준 격차가 있다는 것이다. 이러한 격차를 wRAA 값에 더해주면, RAR로 쉽게 환산된다.

Utley의 경우로 돌아가면, Utley는 707 PA를 기록했으므로, 707 PA에서 평균과 Replacement Level의 격차를 계산해 보면...

600/20 x 707 = 23.57 Runs

이 값이 Utley의 Replacenemt Level 값이 된다.


3. 수비 기여 수준 : UZR

이전의 포스팅에서 ZR을 개선한 합리적인 스탯으로 UZR, TZ(TZR), +/-를 소개한 바 있다. 그 포스팅에서 언급한 바와 같이, +/-는 유료 정보이며 연말에 발표되고, TZ의 경우 현역 메이저리거들에 대한 데이터는 아직 작업중인 상태여서 조회가 되지 않으므로, 현재로서는 UZR이 거의 유일한 선택이라고 할 수 있다. UZR은 Fangraphs에 거의 실시간으로 계속 업데이트 되므로, 지난 시즌의 결과물 뿐 아니라 현재 진행중인 시즌에 대해서도 누구가 쉽고 빠르게 정보를 얻을 수 있다. 뿐만 아니라, TZ의 창시자인 Sean Smith조차 UZR이 가장 뛰어난 수비 스탯이라고 인정하고 있으므로, TZ나 +/- 대신 UZR을 쓰는 것이 그다지 나쁜 선택은 아닐 것 같다.

여담이지만, 2000년대 초중반에 Cardinals는 UZR의 창시자인 MGL(Mitchel Lichtman)에게 상당히 큰 돈을 주고 UZR 데이터를 독점한 바 있다. UZR이 Fangraphs에 공개될 수 있었던 것은 이러한 독점 계약이 종료되었기 때문이다. 이런 것으로 보면 Cardinals도 이전부터 세이버메트릭스에 상당한 관심과 이해가 있었던 것 같다.

다시 본론으로 돌아가서... Utley는 2루에서 20.2 Runs, 1루에서 0.4 Runs를 기록하였으므로, 이를 간단히 더해주면 된다.

UZR = 20.6 Runs

이는 Utley가 2008년 시즌에 수비를 통해 실점을 20.6점 방지하는 정도의 기여를 했음을 의미한다.


4. Positional Adjustment

이전의 포스팅에도 있지만, 다시 한 번 포지션별 조정 점수를 정리해 보면 아래와 같다.

포수 : +12.5 Runs
유격수 : +7.5 Runs
중견수, 2루수, 3루수 : +2.5 Runs
좌익수, 우익수 : -7.5 Runs
1루수 : -12.5 Runs
지명타자 : -17.5 Runs


이 조정 점수는 162게임의 풀 시즌을 기준으로 만들어진 것임에 유의해야 한다. 162게임을 이닝으로 환산하면 1,458 이닝이 되므로, 실제 수비에 참가한 이닝을 1458로 나눠서 위의 조정 점수를 곱해 주면 실제 해당 시즌의 조정 점수가 될 것이다.

Utley는 2008년에 2루에서 1395 2/3 이닝, 1루에서 14이닝을 뛰었다. 따라서...

((2.5x1392.67) + (-12.5x14)) / 1458 = 2.27 Runs

이 점수가 Utley의 수비 포지션에 따른 최종 조정 점수가 된다.


5. 주루플레이의 기여 수준: 도루 성공과 실패

이전의 포스팅에서 밝힌 바와 같이, 도루 성공은 0.175, 도루 실패는 -0.467점의 가치를 지닌다. 개인적으로 그 밖의 주루 스탯에 대해 아직 신뢰하지 않고 있는 관계로, 단지 도루 성공과 실패만을 계산할 것이다.

Utley는 2008년에 14 SB, 2 CS를 기록하였으므로...

14x0.175 - 2x0.467 = 1.52 Runs

도루를 통해 1.52점 만큼 팀 득점에 기여하였다는 결론을 얻을 수 있다.


6. RAR 및 WAR의 산출

이제 모든 구성 요소의 계산을 다 했으므로, 지금까지 나온 값을 모두 더하면 타자의 총 기여 수준, 혹은 그의 가치(Value)가 된다.

RAR = 32.05(타격) + 23.57(Replacement Level) + 20.6(수비) + 2.27(포지션 조정) + 1.52(도루)
      = 80.01


득점 10점은 1승과 동일하므로,

WAR = RAR/10 = 8.0

즉, 거칠게 표현하자면, 2008년 Chase Utley는 8승짜리 플레이어였다는 것이다.

2008년 Phillies는 92승 70패를 기록하였는데, 만약 Utley 대신 1년 내내 Tadahito Iguchi나 Eric Brunett과 같은 Replacement Level 플레이어들로 2루를 돌려막기 했다면, Phillies는 아마도 84승 78패를 기록했을 것이라는 이야기이다. 이런 성적으로는 플레이오프에 나갈 수 없었을 것이고, 따라서 월드시리즈 우승도 할 수 없었을 것이다. 이것이 바로 진정한 스타 플레이어 한 명의 위력이다.

Fangraphs의 Utley 페이지를 보면, 2008년 그의 WAR를 8.1로 계산하고 있다. Fangraphs의 로직은 이 글에서 내가 설명해 온 바와 동일하다고 보면 된다. 0.1의 오차는 타격 기여도 계산에서 생겨난 것인데, 아마도 wOBA 계산 방법이 약간 다르고, Park Factor의 적용에도 차이가 있을 것으로 추정된다. 또한, Fangraphs는 주루를 따로 표시하지 않고, 타격에 합산하여 놓고 있다.


한편, 첨부된 엑셀 파일에는 작년 AL MVP였던 Dustin Pedroia의 WAR도 계산되어 있다. 다만, 이쪽은 Fangraphs가 6.6 WAR로 계산했는데 반해 엑셀 sheet에서는 5.8이 되어서, 차이가 0.8로 제법 크게 나타나고 있다. 실제 계산된 값을 보시면 알 수 있듯이 타격 기여 수준을 빼고는 값이 완전히 동일하므로... 역시 Park Factor의 차이가 작용하고 있는 것으로 추정된다. (Fangraphs는 어떤 Park Factor를 적용하고 있는지 명시하지 않고 있다.) 또한, schedule의 차이를 고려한 플러스 점수가 있는 것 같기도 하다. AL 동부에 속해 있는 Red Sox는 아무래도 Phillies보다는 강한 팀들을 상대로 게임을 하게 되므로, 이를 보정해 주었을 가능성이 있다. 이러한 schedule에 의한 보정이 어떻게 이루어지는지 파악이 될 경우에는, 여기에 추가로 업데이트를 하고자 한다.

Posted by FreeRedbird
:

이 블로그에서 트레이드의 이해득실을 계산할 때나 특정 플레이어의 기여도를 비교할 때에 주로 사용한 비교 툴은 WAR(Wins Above Replacement) 였다. 그런데, 생각해보면 세이버메트릭스의 개념에 대해서 자세히 설명한 것은 FIP와 BABIP 정도밖에 없었던 것 같다. 이래가지고서야 WAR를 가지고 아무리 이야기해봤자 결국 잘난척에 불과하지 않을까...라는 생각이 들었다.

그래서 WAR의 개념과 계산 방법을 설명하기로 결심했지만... 문제는 도대체 어디까지 거슬러 올라가야 하는가였다. 이 블로그를 방문하시는 분들께서 스탯에 대해 얼만큼의 지식을 가지고 있는지 알 수도 없고... 결국 이런저런 고민 끝에, OPS와 그 변종들로부터 출발하기로 했다. 나는 Fangraphs와 같이 wRAA를 WAR 계산시 공격력의 척도로 삼고 있으므로, 이 글에서는 wRAA의 계산 방법까지 다뤄 보고자 한다.


요즘도 야구 중계를 보면 사실 타자에 대해 주로 언급되는 스탯은 타율(AVG), 홈런(HR), 타점(RBI)이 고작이다. 우리나라 중계는 물론이거니와 메이저리그 중계라고 해서 크게 다르지는 않은 것 같다. 그나마 OPS가 널리 퍼진 덕에, 출루율(OBP)과 장타율(SLG) 정도를 덤으로 들을 수 있는 정도이다.

타율이나 타점과 같은 석기시대의 스탯들로 타자를 평가하면 문제가 많다는 이유에 대해서는 자세한 설명을 생략하고자 한다. 이전의 FIP나 BABIP에 대한 글 뿐 아니라, 기회가 있을 때마다 같은 말을 반복해왔기 때문이다. 타율은 타자 본인의 능력과 상관없는 많은 요소들, 이를테면 상대팀의 수비 능력과 같은 외부 요인들이 많은 영향을 끼치므로, 타자의 능력을 평가하는 잣대로 쓰기에는 불완전한 부분이 많다는 정도로만 정리하고 넘어 가겠다. 타점은 팀 동료들이 해당 타자 앞에서 얼마나 출루를 해 주느냐에 더욱 크게 좌우되므로, 개인 스탯이라기보다는 팀 스탯에 가까운 숫자라고 할 수 있다. 타자의 생산성을 평가하는 지표로는 역시 낙제점을 면키 어렵다.


1. OPS

세이버메트릭스 최초의 히트작이라고도 할 수 있는 OPS 부터 살펴보자.

OPS는 On base percentage(OBP, 출루율) Plus Slugging percentage(SLG, 장타율)의 약어이다. 따라서 OBP와 SLG만 구할 수 있다면 쉽계 계산된다. 이 둘을 구하는 식은 아래와 같다.

OBP = (H + BB + HBP) / (AB + BB + SF + HBP)
SLG = TB / AB = (1B + 2*2B + 3*3B + 4*HR) / AB


이 둘을 그대로 더한 것이 OPS이다. 즉,

OPS = OBP + SLG

이렇게 된다. OPS가 히트하게 된 데에는 타자의 출루 능력과 장타력을 골고루 평가한다는 내용상의 우수함 뿐 아니라, 계산식이 단순하여 누구나 쉽게 이해하고 계산할 수 있다는 장점도 크게 작용하였다. 이후 보다 정밀한 스탯이 무수히 많이 개발되었지만, 한 눈에 타자의 생산성을 훑어보는 데에는 여전히 요긴하게 쓰이고 있다.


2. OPS+

이후 구장마다 타자에게 유리한 구장이 있고 불리한 구장이 있다는 것을 감안하여, 조정 OPS(OPS+, Adjusted OPS)가 등장하게 된다. OPS+는 구장 효과(Park Factor)를 반영할 뿐 아니라, 100을 평균으로 하여 스케일도 조정되기 때문에, 특정 시즌에 특정 타자가 리그 평균에 비해 얼마나 좋은 활약을 펼쳤는지 알 수 있다. (100보다 큰 숫자는 리그 평균보다 좋은 활약을 했음을 의미하며, 100보다 작으면 그 반대이다. 또한 100에서 멀어질수록 평균과의 차이가 크다.)

계산식은 다음과 같다.

OPS+ = 100 * ((OBP/lgOBP + SLG/lgSLG) - 1)

혹은 구장 효과를 적용하였음을 나타내기 위해 아래와 같이 표현하기도 한다.

OPS+ = 100 * ((OBP/lgOBP + SLG/lgSLG) - 1) / BPF

여기서 BPF는 타자의 Park Factor를 의미한다.


이렇게 되면 꽤 많이 발전한 것 같지만... OPS의 개념 자체에 대한 비판이 이어졌다. OPS이든 OPS+이든 기본적으로 가중치 없이 OBP와 SLG를 더해서 만들어지는 식이라는 점에서는 동일하다. 즉 출루율과 장타율을 동일한 가치로 취급하고 있는 것이다.

이러한 접근에 문제가 있음은 쉽게 알 수 있는데... 리그 평균 OBP와 리그 평균 SLG가 거의 1할 가까이 차이가 나는 데다가, 그 분포도 다른 것이다. 세이버메트리션들은 여기서 좀 더 나아가서, 득점과의 상관 관계를 통계적으로 구해 보았다. (타자가 타격을 하는 목적은 결국 팀이 득점하는 것이며, 그 외의 것은 모두 부수적인 것일 뿐이라는 사실을 기억할 필요가 있다.) 그 결과, 어떤 연구에서도 출루율과 득점과의 상관 관계(correlation)가 장타율과 득점과의 상관 관계보다 높게 나왔다. 이는 OPS와 같은 스탯을 계산할 때 출루율에 대해 얼마간의 가중치를 부여해야 한다는 의미가 된다.


3. GPA

이에 따라, GPA(Gross Production Average)가 발명되었다. 이 스탯은 출루율에 1.8의 가중치를 부여한 것이다.

GPA = (1.8*OBP + SLG) / 4

물론 이 식을 그대로 쓰지 않고 Park Factor를 적용, 조정하여 사용한다. 4로 나누는 이유는 AVG와 비슷한 정도의 scale을 얻도록 하기 위해서이다. 마치 타율과 비슷하게, GPA가 2할대 초반이 나오면 형편없는 타자이고, 3할이 나오면 아주 뛰어난 공격력을 지닌 타자라고 볼 수 있는 것이다.

GPA는 OPS보다 실제 득점과의 상관관계가 더 높으면서도 여전히 계산하기가 쉽다는 장점을 가지고 있다. GPA를 Runs, 즉 점수를 내는 데 기여한 수준으로 변환하는 공식들도 개발되어 있는데, 대표적인 것은 PA*1.356*(GPA^1.77) 이다.

여담이지만, "Moneyball"에서 Paul DePodesta는 OBP가 SLG보다 3배나 중요한 스탯이라고 주장한 바 있다. OBP가 중요하긴 하지만 그정도로 극단적인 OBP 우선주의는 좀 문제가 있다. DePodesta가 LA Dodgers에서 실패한 데에는 다 이유가 있는 것 같다...


4. RC, RC/27

이번에는 세이버 진영에서 내놓은 좀 더 복잡한 스탯들을 알아보자.

Bill James의 유명한 발명품들 중 하나인 RC(Runs Created)는 일단 아래와 같은 기본 형태를 가진다. (사실 이 스탯은 위의 GPA보다 훨씬 더 오래된 것이다.)

RC = (A*B) / C

A는 출루율을 반영한 어떤 값(On Base Factor)이며, B는 앞서 출루한 주자를 진루시키는 능력을 반영한 어떤 값(Advancement Factor)이다. C는 타자가 출루 내지는 진루를 시킬 수 있는 기회(Opportunity Factor)를 의미한다.

Bill James가 처음 RC를 고안한 이래로, 이 공식은 무려 14차례나 변형되어 왔다. 이를테면... 가장 기본적인 형태의 공식은 다음과 같다.

RC = ((H + BB) * TB) / (AB + BB)
      = OBP * SLG * AB


보다 널리 쓰이는 개량 버전 중 하나는 아래와 같다.

RC = ((H + BB - CS + HBP - GIDP) * (TB + 0.26 * (BB - IBB + HBP)) + (0.52 * SH + SF + SB)) / (AB + BB + HBP + SH + SF)

어이없다는 생각이 들 지도 모르겠으나... 이건 그나마 2002년 버전에 비하면 쉬운 공식이다. 필요한 숫자들이 많긴 하지만 모두 쉽게 얻을 수 있는 기본적인 스탯들이기 때문이다.

2002년 버전은 Wikipedia를 그냥 링크하도록 하겠다. 일일이 적자니 너무 길다... -_-;;;
클릭

링크에서... 위에 소개한 버전들을 쭉 지나면 2002 version이라는 것이 나온다. 읽을 수록 한숨만 나올 것이다. 통계적인 수치와 계산식을 통한 예측치를 일치시키려는 노력이 이렇게 계속되고 있지만... 그러면 그럴수록 식은 복잡해지고... 일반 팬들이 집에서 계산하기에는 무리가 많이 따르는 식이 되어 버리고 만다. 이 식을 바탕으로 한 득점 예상치의 오차가 5% 이내일 만큼 많이 정밀해진 것도 사실이지만... 그러면 그럴수록 오히려 활용하기는 더욱 어려워지고 있다.


[주: RC/27의 설명이 필요한 듯 하여 아래 paragraph를 나중에 추가하였다. 09/11/18]

한편, 공격력 측정 지표로 빈번히 이용되는 RC/27은 무엇일까?

RC/27은 단순히 RC를 27로 나눈 값이 아님에 유의하시길...!!!

RC/27 = 27 * RC / (AB - H + CS + GIDP + SH + SF)

계산하는 사람의 이론적인 이해 또는 입장에 따라 SH와 SF를 넣기도 하고 빼기도 한다. 개인적으로는 "SF는 넣고 SH는 제외해야 하지 않을까" 라는 생각을 하고 있다.

RC 대신 RC/27을 쓰는 이유는... RC가 누적 스탯이기 때문에, 절대적인 출장 기회가 많을수록 유리하기 때문이다. 예를 들어 어떤 플레이어가 부상으로 인해 시즌의 반 밖에 소화하지 못했다면, 그를 RC로 평가하는 것은 정당하지 못하다. RC/27의 개념은, 해당 타자 아홉 명으로 1번부터 9번까지 타순을 짠 다음, 9회까지 27아웃을 뛰는 동안 그 팀이 몇 점이나 득점할 수 있을지의 예상치를 산출하는 것이다. 따라서, 타석 수에 상관없이 절대적인 비교가 가능하다.

RC는 Bill James와 그의 동료들에 의해, 지금도 계속해서 개량 중인 스탯이다. "(출루능력 * 진루능력) / 기회"라는 이론적 기반 위에서, 실제 메이저리그 게임에서 통계적으로 관측되는 결과에 맞추기 위해 계속 식을 변형해 가는 것이다. Tom Tango는 이 이론적 기반 자체에 대해 의문을 제기한 바 있으며, 또한 RC가 홈런의 가치를 정확히 반영하지 못하고 있음을 보여주었다. Tom Tango의 비판에 대해서는 그의 홈페이지를 참고.

이러한 약점에도 불구하고, RC 특히 RC/27은 오랜 기간동안 타자의 공격력을 측정하는 지표로 매우 널리 이용되었다. 적어도 아래의 EqA나 wOBA가 나오기 전까지는 말이다.

5. EqA

이번에는 Baseball Prospectus의 야심작인 EqA를 살펴보자.

EqA는 Equivalent Average의 약자이다.
단어의 의미에서 알 수 있듯이, 역시 친숙한 AVG와 비슷한 숫자를 얻을 수 있도록 scale 조정을 한 스탯이다. 게다가 Equivalent는 리그에 대한 조정도 가능함을 의미한다. 즉 AA 레벨인 Texas League에서 뛰고 있는 어떤 유망주가 있을 때, 그의 활약 정도를 메이저리그로 옮겨 보면 어느 정도가 되는지 등의 분석이 가능하게 되는 것이다.

꽤 파워풀한 스탯 같지만... 역시 이런 스탯을 만들기 위해서는 엄청난 작업이 필요하다.

일단 아무 조정도 되지 않은 Raw EqA를 구해보면,

RawEqA = (H + TB + 1.5 * (BB + HBP + SB) + SH + SF - IBB/2) / ( AB + BB + HBP + SH + SF + CS + SB)

벌써 질렸는가? 이것은 단지 시작일 뿐이다.
이제부터 10번 이상의 변환을 거쳐야 한다. 하나하나가 결코 만만한 작업이 아니다.
이걸 일일이 설명하다가는 밤을 새야 할 것 같으므로, 그냥 Baseball Prospectus 사이트의 링크를 걸도록 하겠다.
클릭

이건 Runs Created 2002 버전보다도 몇 배나 어이없는 공식이다. RC의 경우는 엑셀을 이용하면 그럭저럭 노가다로 구할 수는 있지만... EqA는 솔직히 엄두조차 나질 않는다. 기껏해야 링크된 글을 몇 번 읽어보고 각각의 변환이 갖는 의미를 이해하는 정도가 고작이다.

주루플레이까지 포함하고 있고, 정교한 계산을 통하여 조정 작업을 거치게 되어 있으므로, 꽤 잘 만든 스탯인 것은 사실이지만 역시 일반 팬들이 활용하기는 너무 무리한 스탯이다.


이 밖에도 여러 OPS 대체 스탯이 만들어졌으나 일단 이 정도만 소개하고 넘어가고자 한다.


6. wOBA, wRAA

사실 진짜 소개하고 싶은 스탯은 바로 이 wOBAwRAA이다.

wOBA는 weighted On Base Average의 약자로, Tom Tango 외 2인이 쓴 책인 "The Book"에 잘 소개되어 있다. 앞으로 기회가 있을 때마다 이 책의 내용을 많이 소개할 예정인데... 2007년에 출판된 책으로, 세이버메트릭스의 새로운 교과서라고 해도 과언이 아닐 만큼 알찬 내용으로 잘 쓰여진 책이다.

세이버메트리션들은 이미 타자가 타석에 들어서서 발생한 어떤 "사건(Event)"이 득점에 미치는 영향을 오랜 기간에 걸쳐 조사해 왔다. 예를 하나 들어보자.

1999년부터 2002년간의 모든 메이저리그 게임을 이닝별, 상황별로 분석한 결과... 2사 만루 상황에서의 득점 기대값(Run Expectancy)은 0.815였다. 즉 이런 상황을 1000번쯤 맞게 된다면 815점 정도 득점할 확률이라는 것이다. 그런데... 타자가 여기서 만루홈런을 쳤다고 하자. 팀은 4점을 득점하고, 상황은 2사 주자 없음으로 바뀐다. 2사 주자 없음에서의 득점 기대값은 0.117로 나타나고 있다. 그렇다면, 앞의 만루홈런의 득점 가치(Run Value)를 구해 보자.

이 홈런으로 인해 득점 기대값은 0.815에서 0.117로 떨어졌다. 하지만 그 사이에 홈런으로 인해 팀은 4점을 득점하였으므로, 실제로는 0.117이 아니라 4.117이 된 셈이다. 따라서, 아래와 같이 식을 세울 수 있을 것이다.

0.815 + 만루홈런의 Run Value = 4.117

따라서, 2사 만루에서 홈런의 가치는 득점으로 환산하면 3.302 Runs가 됨을 알 수 있다.

이런 계산을 각 사건에 대하여 아웃카운트와 주자를 변화시켜 가며 모든 상황에 대해 해 보는 것이다. 이렇게 해서 사건별로 가중평균을 얻은 값은 아래와 같다.

홈런 : 1.397 Runs
3루타 : 1.070
2루타 : 0.776
1루타 : 0.475
에러 : 0.508
몸에 맞는 공 : 0.352
볼넷(고의사구제외) : 0.323
고의사구 : 0.179
폭투 : 0.266
아웃 : -0.299
(이하 생략 : 그 밖의 상황에 대한 데이터는 책을 참조하시기 바람... -_-;;; )

그렇다면 타자의 생산성을 어떻게 평가할 수 있을까? 홈런이나 안타 등이 가지는 가치는 아웃에 대비하여 구해야 할 것이다. "아무 것도 아닌 경우"란 존재하지 않기 때문이다. 타자는 아웃 당하거나, 아니면 어떤 방법으로든 살아서 나갈 것이다. 안타가 되었든, 에러가 되었든 간에 말이다. 따라서... 아웃으로 인한 가치의 손실을 빼 주면 해당 이벤트의 진정한 가치가 된다고 말할 수 있겠다. 예를 들면...

홈런 : 1.397 + 0.299 = 1.698

이런 식으로 구하는 것이다.

그 다음, 결과값을 OBP와 비슷한 scale로 나타내기 위해서, 각각의 value에 다시 1.15를 곱해 준다. 홈런의 경우는 1.698 * 1.15 = 1.95가 된다.

위에서 본 다른 스탯들은 주로 타율(AVG)과 비슷한 scale로 나타내기 위해서 조정을 했는데, wOBA의 경우는 출루율과 비슷한 scale로 조정을 해 주고 있다. 이렇게 조정해 주는 이유는 간단하다. 타자의 생산성을 한 눈에 알게 하기 위해서이다. .400의 출루율이 아주 좋은 것처럼, .400의 wOBA도 아주 좋은 것이다. .335 정도의 출루율이 리그 보통인 것처럼, .335 정도의 wOBA도 리그 보통이라고 생각하면 되는 것이다. 편리하지 않은가??

어쨌거나... 각 이벤트에 발생 횟수에 각각의 value를 곱하고, 여기에 다시 1.15를 곱하여 모두 더한다. 이를 PA(타석)로 나눠주면 그 타자가 한 번 타석에 들어설 때 팀의 득점 기대값(Run Expectancy) 상승에 얼마나 기여하는지를 알 수 있게 되는 것이다. 이것이 바로 wOBA이다. 식으로 나타내면 아래와 같다.

wOBA = (0.72*NIBB + 0.75*HBP + 0.90*1B + 0.92*RBOE + 1.24*2B + 1.56*3B + 1.95*HR) / PA

여기서 NIBB는 고의사구를 제외한 볼넷을 의미하며, RBOE는 Reached Base on Error, 즉 에러로 인해 타자가 출루에 성공하는 것을 의미한다. 타자의 능력과는 전혀 상관이 없는 폭투와 같은 이벤트는 아예 제외되어 있음에 유의하자.  (** 이 식은 이 글을 쓴 뒤에 약간 수정을 하게 되었다. 글 맨 마지막 부분 참고.)


이제 다음 단계는 그 타자가 실제로 메이저리그 평균보다 얼마나 뛰어난지를 점수로 계량하는 것이다. wRAA는 weighted Runs Above Average의 약자로, 단어 그대로의 의미를 지닌다. 즉 평균 타자에 비해 얼마나 득점에 기여하느냐를 점수(Runs)로 나타내는 것이다.

일단 리그 평균 wOBA를 구한다. 위의 모든 변수(홈런 등)에 리그 평균 값을 대입하면 된다. 그 다음, 해당 타자의 wOBA에서 리그 평균 wOBA를 빼 준다. 그리고 1.15로 나눠준다. (아까 OBP와 유사한 scale을 얻기 위해 1.15를 인위적으로 곱했으므로, 다시 나눠줘야 한다.) 마지막으로 해당 타자의 PA(타석)를 곱해주면, 그 타자가 해당 시즌에서 메이저리그 평균 타자에 비해 팀 득점에 기여한 정도가 점수로 나타나게 된다. 이를 식으로 나타내면...

wRAA = ((wOBA - lgwOBA) / 1.15) * PA

예를 들어서... Ryan Ludwick이 작년에 타석에서 어느 정도로 훌륭한 활약을 했었는지 계산을 해 보자.

2008년 NL의 리그 평균 wOBA는 대략 .331이었다. 한편, 2008년 Ryan Ludwick의 wOBA는 .406이었으며, 그는 617번 타석에 들어섰다. 이제 그의 wRAA를 계산해 보면...

wRAA = ((0.406 - 0.331) / 1.15) * 617 = 40.24

즉 Ryan Ludwick은 평균적인 NL 타자들에 비해 2008 시즌 팀 득점에 타격을 통해 40.24점 정도 더 많이 기여했다는 뜻이 된다. (참고 : Fangraphs에서는 그의 wRAA가 39.5로 나타나고 있다. 아마도 리그 평균 wOBA를 구하는 과정에서의 오차로 인한 차이가 아닐까 생각된다.)


다른 스탯에 비해 wOBA가 가지는 매력은 분명하다. 우선 실제 메이저리그에서 발생했던 사건들의 기대값을 구하여 계산한 결과이므로... 계산한 이론치와 실제 발생하는 득점 사이의 상관 관계가 우수하게 나타난다. 그리고 OPS만큼은 아니더라도, 다른 세이버 스탯들에 비하면 계산이 무척 쉬운 편이다. 마지막으로, wRAA로의 환산이 아주 편리하여, 해당 플레이어가 타석에서 점수로 몇 점 만큼 팀에 기여해 주었는지를 아주 쉽고 빠르게 계산할 수가 있다. 이것은 특히 여러 플레이어를 비교할 때에 그 진가를 발휘한다.

다만 약간 아쉬운 부분이라면, wOBA는 타석에서 타자에게 벌어지는 이벤트만을 반영하므로, 도루와 같은 주루플레이가 제외되어 있다. 이 부분은 앞으로 보완이 필요하다고 본다.



나름 쉽게 설명해 보려고 애써 보았는데 잘 된 것인지 모르겠다. 다음 번 세이버메트릭스 포스팅에서는 Replacement Level과 Positional Adjustment에 대해 다루고자 한다. 거기까지 다루고 나면 타자들의 WAR에 대해서도 설명이 가능할 것 같다.



** 추가 수정 사항

이 글을 쓴 이후, WAR를 계산하기 위해 직접 wOBA를 산출하던 중, 여러 타자들의 wOBA를 계산한 결과 모두 Fangraphs나 Stat Corner 등의 사이트에 비해 계산 결과가 다소 낮게 나오는 문제점을 발견하였다. 원인이 무엇일까 고민하던 중... wOBA를 창안한 Tom Tango의 글에서 다음과 같은 부분을 발견했다.

Note: Depending on the specific analysis, the PA term (plate appearances) may exclude bunts, IBB, and a few of the more obscure plays.

빙고!
wOBA 계산시 분모에서도 IBB(고의사구)를 제외하면 되는 것이다. 논리적으로 생각해도 분자에서 NIBB, 즉 고의가 아닌 보통 볼넷만을 계산 대상으로 하였으므로, 분모에서도 NIBB만을 계산에 넣는 것이 타당하다고 본다. 따라서, 수정된 식은 아래와 같다.

wOBA = (0.72*NIBB + 0.75*HBP + 0.90*1B + 0.92*RBOE + 1.24*2B + 1.56*3B + 1.95*HR) / (PA - IBB)

이렇게 계산하면 Fangraphs 사이트에 올라와 있는 결과들과 상당히 유사한 값을 얻을 수 있다. 물론 위의 인용문에서도 알 수 있듯이 각자의 논리에 따라 계산식이 조금씩 달라지므로, 소수점 세째 자리에서 나타나는 약간의 오차는 어쩔 수 없는 것일지도 모른다. Fangraphs나 Stat Corner 모두, 자신들이 어떤 특정 스탯을 더하고 뺐는지 상세히 밝히지 않고 있다. Tom Tango의 오리지널 계산식과는 값이 다르게 나오는 것으로 보아 뭔가 변화를 줬음은 확실한데 말이다...
Posted by FreeRedbird
: