야구) 타자의 공격력을 계산하려고 합니다.

4 분 소요

  • 이 포스트의 내용은 모두 이 포스트의 내용을 읽고 이해하면서 작성된 포스트임을 먼저 밝힙니다.

처음에는 WAR을 알아보려고 했습니다만,

  • 이 아이를 계산하려면 알아야 하는 것들이 많더군요. 그래서 하나씩 파보려고 합니다.

OPS

  • 타자를 평가하기 위해 중요한 고전적인 지표는 ‘타율’과 ‘타점’으로 구성됩니다. ‘타율’이 중요하긴 하지만, 저는 ‘출루율’이 더 중요하다고 보는 편이고(어쨌든 야구는 살아남는 스포츠니까요), ‘타점’은 해당 선수의 타순과 약간의 운과 연결되어 있어서 오히려 ‘장타율’이 더 중요하다고 보는 편입니다.
  • 이렇게, 출루율(On Base Percentage) + 장타율(Slugging Percentage)가 바로 OPS를 계산하는 방법이죠. 개별 타자의 타석에서의 생산성은 이 방식으로 간단하게 계산됩니다. 해당 타자가 살아 나가느냐, 혹은 나가있는 타자들을 집으로 들어오게 하느냐, 를 평가하는 것이죠.

OPS+(Adjusted OPS)

  • 기존 OPS에는 환경적인 요소가 고려되어 있지 않습니다. 만약 홈 구장이 타자친화적 구장일 경우에 그 팀의 타자에게는 +요소가, 투수에게는 -요소가 포함되어 있습니다. 이를 고려하여 값을 조정해주는 것이 필요하죠(lg 가 붙어 있어서, 로그 스케일인 것으로 착각할 수 있지만, 아닌 것 같습니다)
    • \(lgOBP*\): 리그 평균 출루율
    • \(lgSLG*\): 리그 평균 장타율
    • \(BPF\): 타자의 파크팩터
    • \(OPS+\): 100*(\(OBP \over lgOBP\) + \(SLG \over lgSLG\) - 1.0)/ \(BPF\)
  • 즉, OPS+는 리그의 평균적인 출루율과 장타율을 고려하여 해당 타자가 해당 선수 대비 얼마나 더 뛰어난 타자인 지를 standardization하고 또한 파크팩터를 고려하여 구장 별 차이로 인한 요소를 제거한 값이라고 할 수 있습니다.

  • 하지만, 여기서 또 문제가 생깁니다. OPS는 계산하기가 쉽고 동시에 타자의 생산성을 직관적으로 보여준다 라는 것에 의미가 있습니다. 그러나, ‘출루율(On Base Percentage)’과 ‘장타율(Slugging Percentage)’이 1:1의 비율로 계산되어 합쳐지는 것이 맞을까요? 타자의 득점 생산성을 정확하게 파악하기 위해서는 weight를 어떻게 계산하여 합쳐주는 것이 적합할까요? 라는 의문이 생겨나는 것이죠.
    • 이를 위해서는 뭐, 예를 들어서, (득점력과 출루율의 상관관계), (득점력과 장타율의 상관관계)를 각각 계산한다음에 이를 weight로 계산해서 적용할 수도 있을 것 같습니다만, 정확하지 못한 방법입니다.

GPA(Gross Production Average)

  • 이 스탯은 출루율, 장타율에 각각 1.8, 1.0 이라는 가중치를 넣어 계산한 지표입니다. 아래 공식에는 포함되어 있지 않지만, 파크팩터를 고려하여 계산하고 계산된 값을 4로 나누어 타율과 비슷한 수준으로 normalization합니다. 따라서 타율과 비슷하게 0.2 정도라면 별볼일 없는 타자, 0.3 이상이라면 뛰어난 타자로 한눈에 알 수 있는 것이죠.
  • GPA는 OPS보다 득점과의 상관관계가 더 높다고 합니다(어떤 근거로 이런 것인지는 파악이 필요하겠네요)
\[GPA = (1.8*OPS + SLG) / 4.0\]

wOBA, wRAA로 가는 여정

  • 우선 wOBA를 계산하기 위해서는 RE, RV를 알아야 합니다.
  • 여기서 말하는 상황은 주자상황아웃카운트를 조합하여 총 24가지로 구성됩니다.
    • 주자상황: 없음, 1루, 2루, 3루, 12루, 13루, 23루, 123루
    • 아웃카운트: 무사, 1사, 2사)

득점 기대값(Run Expectancy)

상황별 득점 기대값

  • 보통 그냥 ‘득점 기대값’이라고 말하지만, 상황별 평균 득점 기대값이라고 생각하는 것이 더 이해하기 좋습니다.
  • 우선 타자가 타석에 들어섰을때의 상황(무사만루, 2사만루 등 아웃카운트와 루상 주자들의 상황으로 구분)별 득점 기대값을 계산해야 한다.
  • RE는 24가지 상황별로 해당 이닝이 종료될 때까지(상황이 바뀔 때가 아니라 이닝이 종료될 때까지인 것이 중요함) 획득한 득점의 평균을 말합니다.
  • 세이버메트리션들이 1999년부터 2002년까지 모든 메이저리그 게임을 상황별로 분석해본 결과 득점 기대값(Run Expectancy)은 0.85였다. KBO2014의 경우는 0.821(출처)

득점 가치(Run Value)

이벤트의 득점 가치(RV) = 이벤트 발생후 득점 기대값(RE) + 이벤트로 인해 발생한 득점 + 이벤트 발생전 득점 기대값(RE)

  • 타자의 이벤트(1루타, 2루타, 홈런, 에러, 볼넷 등)의 득점 가치를 계산해야 하는데, 예를 들기 위해서 ‘만루홈런’의 RV를 계산해보겠다. 2사만루 상황에서 ‘득점 기대값’은 0.85이며, 이 상황에서 ‘만루홈런’이 발생했다면, 4점을 득점하게 된다. 이후 상황이 바뀌어 2사 주자없음 상황으로 바뀌게 되는데, 이 때 득점 기대값은 0.117이 된다. 이를 이용하여 해당 상황에서 ‘만루홈런’의 득점 가치를 계산하면 다음과 같다.
  • (이사만루 상황에서) 만루홈런의 득점가치 = 0.117 + 4 - 0.85 = 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
  • 예를 들어, 일반적으로, 어떤 상황에서든 2루타를 치면 0.776 정도의 득점 기대값을 높인다, 라고 말할 수 있다.

  • normalization: 아웃에 대한 득점 가치는 -0.299이며, 이를 이용해 모든 이벤트에 대한 RV를 normalization하는 것이 필요하다. 또한, 결과값을 OBP(출루율)에 맞춰서 스케일링 해주기 위해서, 다시 1.15를 곱해준다.
    • 적용하면, 홈런의 경우 (1.397 - (-0.299)) * 1.15 = 1.95 로 변환된다.

wOBA(weighted On Base Average)

  • 다시 정리하자면, 타자가 득점 기대값의 상승에 얼마나 기대했는지를 평가하기 위해 개별 이벤트(1루타, 볼넷, 홈런 등)가 득점 기대값 상승에 얼마나 기여하는지를 계산하고, 이를 weight로 활용하여 wOBA를 계산한다. 이는 기존의 다른 지표들에 비해서 실제 득점과 매우 높은 상관관계를 가지기도 한다.
  • 이 결과로 나온 계산식은 다음과 같다.
\[wOBA = { (0.72 * NIBB) + (0.75 * HBP) + (0.90 * 1B) + (0.92 * RBOE) + (1.24 * 2B) + (1.56 * 3B) + ( 1.95 * HR ) } \over PA(Plate Appeareance)\]
  • NIBB = Non-intentional bases on balls
  • HBP = Hit by pitch
  • RBOE = Reached base on error

wRAA(weighted Runs Above Average)

  • 앞서 나온 wOBA의 약점은 상대적인 지표가 아니라는 것이다. 만약 해당 리그가 ‘타고투저’리그(물수능 같은것)라서 아무나 높은 wOBA를 가지고 있을 수도 있기 때문에, 리그의 평균을 고려하여 이 지표를 표준화(standardization)하는 것이 필요하다. 이를 위해서 wRAA를 계산하게 된다.
  • 앞서 말한 wOBA가 타자가 득점의 기대값 상승에 얼마나 기여하는지를 계산하고 이를 활용해 타자의 실제 득점 생산력을 계산했다면, wRAA는 리그 평균에 비해 얼마나 괜찮은 득점 생산력을 가지고 있는지를 보여준다.
\[wRAA = ((wOBA - lgwOBA) / 1.15) * PA lgwOBA = 리그 평균 wOBA\]
  • 1.15로 나누어주는 이유는, 이전에 wOBA를 계산할 때 출루율과 스케일을 맞추기 위해서 1.15를 곱했기 때문에 다시 나눠주는 것이다. 이를 활용하면, 해당 타자가 다른 타자에 비해서 몇 점의 득점이나 더 기여했는지를 알 수 있다.

wrap-up

  • 지표들을 쭉 관찰해본 결과, wOBA, wRAA 타자의 타석에서의 능력을 평가하는 방법이다. 그런데, 타자의 능력은 단지, ‘타격’에만 있는 것이 아니고, 주루와, 수비 또한 포함되어야 한다(경우에 따라서 ‘도루사’의 위험성때문에 도루 자체를 경시하는 야구분위기도 있긴 하지만).
  • 아마도 향후 지표에서는 ‘주루’가 득점 생산력에 끼치는 영향력을 포함할 수 있지 않을까 싶다. 예를 들어 아까 계산한 RE의 변화량을 계산할 수 있을 것 같은데 만약 선수 A가 주루 플레이로 무사 1루에서 무사 2루로 만들었다고 하면, 이때의 득점 기대값의 변화량, 그리고 주루 플레이 실패했을 경우에 득점 기대값의 변화량을 모두 계산하여, 해당 선수가 만들어낸 주루의 가치를 모델링할 수 있지 않을까? 라고 생각되는데.
  • 또한, ‘수비’가 상대의 득점을 억제하는데 얼마나 영향을 미쳤는가? 는 어떻게 모델링할 수 있을까?

reference

댓글남기기