본문 바로가기
diegobaseball
ANALYSIS

[승패]를 결정하는 4가지 요인: 타격,투수,수비,상황 - WFA(Win-Factor Analysis)

by 토아일당 2015. 6. 22.


올 시즌 KBO리그는 6월22일 기준 672경기를 치뤘고 이는 전체 경기 중 47%에 해당합니다.  이 시점에서 7위 SK는 32승32패1무로 정확히 5할 승률을 맞추고 있고 1위 NC와는 로 정확히 SK는 6경기 뒤져 있습니다.   NC가 5할 승률에 비해 더 이긴 6번의 승리가 평범한 팀과 리그 1위팀 사이의 격차입니다.


그렇다면 이 6번의 승리는 무엇으로 만들어졌을까요?  야구라는 경기는 더 많은 득점과 더 적은 실점으로 승부를 가립니다.  팀승률과 그 팀의 득점과 실점 데이터 사이에는 상당히 강한 연관성이 있습니다.  한 경기만 놓고 보면 10점차가 넘는 경기도 있고 1점차의 아슬아슬한 승부도 있지만 한 시즌 100경기 이상을 치르고 나면 팀의 전체 득점과 실점 기록은 승률과 거의 일치하게 됩니다.  이를 이용해서 만들어진 것이 (이제는 많이 알려진) 피타고리안 기대승률입니다. 


그런데 또 야구라는 경기는 공격과 수비를 이닝마다 번갈아 하는 경기입니다.  따라서 득점과 실점이 어디로부터 왔는지 구분해낼 수도 있습니다.  득점을 만드는 것은 타격과 주루이고, 실점을 결정하는 것은 투수와 수비입니다.  (다만 이중 주루는 상대적으로 비중에 작고 평가기준이 불분명한 면이 있기 때문에 이 분석에서는 잠정적으로 제외합니다.  언젠가 주루요인을 정확히 측정할 수 있게 된다면 그때 다시)  


몇가지 세이버메트릭스의 지표 및 이론들과 통계적으로 측정된 가중치들을 이용해서 [승리]를 구성하고 있는 팀전력 요인들을 분석하려 합니다.  이를 WFA(Wins-Factor Analysis)라고 부르겠습니다.  예를들어 현재 리그1위팀 NC가 5할대비 거둔 +6승이 어디로부터 왔는지 분석하는 것입니다. 


1.전력요인과 상황요인


야구는 확율의 경기라는 말은 두가지 양면적 의미를 함께 가집니다.  


하나의 플레이는 행운과 불운이 뒤섞인 우연에 좌우되기도 하지만 수많은 플레이가 모여 만들어진 한 경기의 승부, 또 그런 경기들이 한시즌 전체 144경기동안 반복되면 모여진 순위는 결국 객관적 전력에 가깝게 수렴하게 됩니다.  그렇기 때문에 팀의 객관적 전력을 더 정확히 드러내는 팀득점, 팀실점 데이터를 이용해서 기대승률을 계산하는 것이 가능해집니다.  


동전을 던질 때 일시적으로는 앞면이나 뒷면이 연속에서 나올 수도 있지만 많은 횟수를 시행할 경우 결국 1/2에 수렴하게 되는 것처럼, 야구의 승패 역시 그렇게 된다는 것이 “야구는 확률게임”이란 말의 첫번째 의미입니다.


그러나 동시에, “야구는 확률게임”이기 때문에 객관적 전력과 승패가 완전히 일치할 수는 없습니다.  최고의 투수를 상대로 최악의 타자가 친 타구가 빗맞은 내야안타가 되면서 끝내기 승리가 되는 경우도 있는게 야구입니다.  무엇이 이런 플레이를 가능하게 하는지 단정짓기는  어렵습니다.  단순한 행운일 수도 있고 선수들의 집중력일 수도 있으며 또 그런 상황을 만들어가는 팀플레이 또는 벤치의 역량일 수도 있습니다.  


결과적인 팀의 승패 중에서 팀득점과 팀실점으로 드러난 [객관적 전력]으로 설명되는 부분을 [전력요인]으로, 나머지 부분을  [상황요인]으로 구분할 수 있습니다.   이는 피타고리안 승률식으로 계산할 수 있습니다.


전력요인 승리(0.500+ 기준) = 경기수 * ( 득점^2 / (득점^2 + 실점^2) ) - 0.500*경기수 

상황요인 승리 (0.500+ 기준) = 경기수 * (승수 / (승수+패수)) - 0.500*경기수 - [전력요인승리]

5할대비 +승수 = 전력요인 승리 + 상황요인 승리

*무승부는 0.5승+0.5패 로 간주함

   

2. 득점요인과 실점요인 


승리숫자 중 [전력요인]에 해당하는 것은 다시 [득점요인]과 [실점요인]으로 구분됩니다.  마찬가지로 피타고리안 승률식을 이용해서 계산할 수 있습니다.  


공격기여 기대승수 =   팀득점^2 / (팀득점^2 + 리그평균 팀실점^2)

투수/수비기여 기대승수 = 리그평균 팀득점^2 / (리그평균 팀득점^2 + 팀실점^2) 

Off_Win = 공격기여기대승수 - 팀경기수*0.5

Def_Win = 투수.수비기여 기대승수 - 팀경기수*0.5


공격기여승수는 피타고리안 기대승률식에 실제 팀실점 대신 리그평균 팀실점을 대입합니다.  이렇게하면 팀실점이 리그평균수준일 때 그 팀이 거둘 수 있는 승수가 됩니다.   투수/수비기여승수는 반대로 실제 팀득점 대신 리그평균 팀득점을 대입해서 팀실점이 리그평균수준일 때 그 팀의 공격력으로 얻을 수 있는 승수를 구할 수 있습니다.  

따라서 Off_Win Def_Win 은 각각 공격력과 투수/수비력을 통해 팀이 얻은 5할+ 승수가 됩니다.  그리고 팀의 5할대 +기대승수(0.500+PW)는 Off_Win 과 Def_Win 으로 구성되는 셈입니다.


어떤 팀이 피타고리안승수 기준으로 5할 대비 6승을 거둔다고 했을 때, 만약 이 팀의 경기당 득점이 리그평균과 같다면 +6승은 전부 득점력이 아니라 실점억제력에 의해 만들어진 승리로 볼 수 있습니다.  반대로 +6승을 거둔 팀의 경기당 실점은 리그평균과 같을 경우, 이 팀의 5할대비 +6승은 투수/수비력이 아니라 타자들의 공격력에 의해 얻은 것이라고 볼 수 있을겁니다.  


3. 수비요인 실점효과 계산 


득점요인은 타격과 주루로 구분됩니다.  다만 앞서 말한대로 주루는 영향이 작고 (대체로 득점요인 중 10% 미만으로 봅니다) 또 객관적 측정이 어렵기 때문에 제외하기 때문에 WFA 모델에서는 득점요인은 전부 타격요인으로 간주합니다.


실점요인은 피칭과 수비로 구분됩니다.  그리고 팀실점을 투수책임과 수비책임으로 나누는 것은 WFA 에서 가장 중요한 과정입니다.  특히 야구통계 또는 세이버메트릭스가 많이 활용되고 있음에도 KBO리그에서 객관적이고 유용한 수비지표가 거의 없기 때문에 WFA 에서 실점을 투수의 몫과 야수의 몫으로 구분하는 것은 특별히 더 가치있는 작업일 수 있습니다.


오해하지 말아야 할 것은, WFA 모델이 야구에서 일반적으로 투수와 수비의 비중이 얼만큼이냐를 말하는 것은 아닙니다.  다른 대부분의 세이버메트릭스 분석들이 그렇듯이 이것은 실제 벌어진 경기에 대한 통계를 기반으로 어떤 결과가 만들어졌는지를 대상으로 합니다.  즉 KBO리그의 선수 수준이나 팀간 격차 안에서, “투수와 수비에 의해서 얼만큼의 승수차이가 생겨났는가” 를 말합니다.


이를 위해서 우선 팀수비력에 의해 초래된 실점의 계산이 필요합니다.  


KBO리그에서 야수 개인의 수비력 지표에 비해 팀수비력 지표에 대해서는 경우 공개되어 있는 박스스코어 스탯을 이용해서 유용하고 정확한 수준의 분석이 가능합니다.  WFA 모델 안에서는 이것을 DRAA(Defensive Run above Average) 와 DWAA(Defensive Win above Average)로 디자인합니다.


DRAA와 DWAA는 팀의 종합적인 수비력에 의해 얻은 그팀의 리그평균대비 추가득점과 추가승리를 뜻합니다. 여기에 반영되는 팀수비스탯은 수비효율성DER, 도루허용(SB), 도루저지(CS), 견제아웃(Pickoff), 패스트볼(PB), 와일드치피(WP), 실책(ROB) 이렇게 7가지입니다.  


계산방법은 각각의 팀스탯에 해당 플레이의 득점가치(Run Value)를 적용하는 것입니다.  각 플레이의 득점/실점 효과를 구하기 위해 사용하는 가중치(득점가치RunValue)는 기본적으로 KBO05_11 7시즌 동안의 데이터를 기반으로 계산한 것이고 샘플사이즈의 한계로 정확한 값을 구하기 어려운 WP, PB, PKO 의 경우는 톰탱고가 MLB 데이터를 기초로 계산한 값을 사용했습니다.  

 

1) 수비효율성 Run (DER_R+) 


DER은 홈런, 삼진, 볼넷, 사구를 제외하고 인플레이된 타구 중 아웃시킨 비율입니다.  선수 개인의 수비지표에 대한 데이터가 충분치 않은 KBO에서 그래도 꽤 믿을만하게 팀 수비수준을 측정할 수 있는 방법입니다. 

DER 기준의 득점/실점 효과의 크기는, (팀DER - 리그평균DER) * 안타 한개의 득점가치 로 계산할 수 있습니다.  


KBO 05_11 7시즌 통계를 기준으로 안타 1개의 가치는 1H 2H 3H HR 득점가치에서 발생빈도를 고려한 가중평균값과 아웃되지 않은 것에 대한 가치를 합쳐서 0.656점입니다.  DER_R+ 항목의 값은 그래서 리그평균보다 좀더 높거나 낮은 수비효율성으로 인해 초래된 추가실점이나 실점억제의 크기입니다.


일반적인 경우 DER은 실책에 의한 출루허용(ROE)를 포함시켜 계산하지만 이 분석에서는 좀더 정확한 계산을 위해 ROE에 의한 실점효과를 따로 계산하기 위해 DER 계산에서는 제외합니다.


2) 배터리 수비 Run (PC R+) 


여기에 해당되는 항목은 와일드피치, 패스트볼, 도루저지, 도루허용, 견제아웃PKO 5가지 입니다. WP와 PB는 톰탱고가 계산한 득점가치 0.285점을 적용했고 도루저지와 도루허용은 XR 계산에서 사용하는 SB 0.18 CS -0.32 를 사용했습니다.  

PKO 역시 톰탱고의 득점가치 -0.256 을 사용합니다. 리그평균 대비 값이며 플러스는 배터리 수비로 얻은 이익(실점억제) 마이너스는 손실(실점허용) 입니다. . 


3) 실책 Run (Err R+) 


팀별 수비실책의 갯수에 (실책의 득점가치 0.546 + 아웃되지 않은 가치 0.0966) 에 해당하는 0.6426 을 곱해서 구합니다.  0.6426은 그러니까 수비수가 실책 하나를 했을 때의 실점효과입니다.  ROE의 득점가치는 KBO05_11 데이터로 계산되었습니다.


4) DRAA 와 DWAA


DRAA(Defensive Run above Average) 는 위의 7가지 수비스탯에 의한 실점효과를 종합해서 득점스케일로 나타낸 값입니다.  즉 “수비에 의해 초래된 실점”을 뜻하며 이를 경기수로 나누면 경기당 수비실점이 됩니다.


단 7가지 수비스탯 중 DER에 의한 실점효과는 한가지 고려사항이 더 필요합니다.  DER은 인플레이된 타구 중에서 수비의 결과로 아웃시킨 빈도의 비율입니다.  즉 수비 입장에서 본 BABIP 이 됩니다.  


따랏서 BABIP에 투수의 책임부분이 있는 것처럼 DER도 마찬가지입니다.  보통의 경우는 이를 따로 구분하지 않지만 WFA 모델이 경우, 투수의 실점책임과 야수의 실점책임을 구분하기 위한 것이기 때문에 좀더 정확한 측정을 위해 DER 안에 포함된 투수의 책임 부분을 걸러낼 필요가 있습니다.


2013년 베이스볼프로스펙터스에 의하면 BABIP 중 투수의 책임은 28% 정도입니다.  그리고 이것이 BABIP에 대해 참고할 수 있는 가장 최근의, 가장 정확한 분석결과이기 때문에 이를 기준으로 삼습니다.  해서 수비효율성(DER)의 실점효과의 72%를 수비실점요인으로 반영하고 28%는 투수실점요인으로 반영합니다.  


DWAA(Defensive Win above Average)는 경기당 수비실점을 승수 스케일로 계산한 값입니다.  시즌 중에는 팀간 경기수 차이 등으로 인해 피타고리안 승률식을 이용할 경우 오히려 오차가 커질 소지가 있기 때문에 따로 계산한 회귀값(regression value)를 사용했습니다.  KBO 22시즌의 데이터를 대상으로 한 결과이고 [팀의 기대승률 = 0.1023 * (팀경기당 득점 - 팀경기당 실점) + 0.5 ,  R squre=0.8946 ] 입니다.  테스트결과 이 회귀식은 피타고리안 승률식과 거의 비슷한 수준의 정확도를 보입니다.    

참고 - 야구는 정말 투수놀음일까  http://baseball-in-play.com/11


이상의 과정을 통해 팀실점 중 수비요인에 의한 것을 구분해낼 수 있으며 그로인한 승리효과 역시 측정할 수 있습니다.


DRAA = sum( DER_R * 0.72,  PC_R+, Err_R+)

DWAA = 0.1023 * DRAA 


4. 투수요인과 수비요인, 그리고 종합


승수 중 투수요인은 실점요인 중에서 수비요인을 제외한 나머지로 계산합니다.  

최종적으로 한 팀의 5할대비 추가승수는 4가지 요인으로 구분됩니다.


WFA: 0.500+W = 상황factor W + 타격factor W + 투수factor W  + 수비factor W  


각각의 factor 의 구성요소와 계산방법은 위에서 설명한 바와 같습니다.  [상황요인]은 타이트한 경기를 이겨낸 결과가 반영되어 있는데 승부집중력, 효율성,  클러치, 운 또는 통계적인 오차로 해석될 수 있습니다.  그중 어떤 것이 더 큰 영향을 주고 있는지 판단하긴 어렵지만 결과적으로 팀득점/실점 데이터로 드러난 객관적 전력 이외의 승리요인을 말합니다.  




2014시즌 최종 팀 승수요인 분석


다음은 지난 2014시즌 최종 결과에 대한 WFA(승리요인분석) 결과입니다.




예를들어, 1위팀 삼성의 +15.5승은 상황요인 -1.3승, 공격요인 +7.7승, 투수요인 +7.8승, 수비요인 +1.6승으로 구성되어 있습니다.  4위팀 엘지트윈스의 경우 62승64패1무 라는 최종성적은 5할대비 -1승이며, 이는 상황요인 -3.4승, 공격요인 -4.8승, 투수요인 +3.9승, 수비요인 +3.3승으로 만들어졌습니다. 


청색바가 손톱만큼만 길다란 붉은바 옆에 붙어있는 팀이 넥센이고, 실점팩터인 청색, 하늘색은 전부 오른쪽으로 뻗어있고 득점팩터인 붉은바는 왼쪽으로 뻗어있는 팀이 엘지트윈스입니다.


3위 NC의 경우 타격보다는 수비와 투수의 기여도가 비중이 휠씬 크고 대신, 왼쪽의 [상황요인]이 꽤 큰 편이었습니다.  


그런데, 보는 것과 같이 상황요인(W-PW, 회색bar)는 여전히 상당한 비중으로 남아 있습니다.  한시즌 전체에 해당하는 경기수가 쌓이더라도 여전히 득실점으로 드러난 객관적 전력에 수렴하지 않는 부분이라면 이것은 운 또는 통계적 오차일 수도 있습니다.  


하지만 세이버메트릭스의 정교하고 엄격한 통계적 분석도구라 하더라도 그것이 야구의 전부, 승부의 전부를 설명할 수 없는 한에, [상황요인]으로 드러난 부분 중 일부가 그 팀이 가진 “승부능력”에서 온다는 추측을 굳이 부정할 필요는 없다고 생각합니다.


--- 글이 길고 지루해지는 것을 감수하며, 전체 계산과정과 사용된 가중치의 출처 등을 명시한 이유는 아직은 다소 실험적인 WFA 라는 모델이 좀더 수정되거나 개선될 필요가 있다고 생각하기 때문입니다.  혹시 관심있으신 분들의 지적과 의견이 있다면 늘 환영입니다.