2021-02-23 00:50:25

지난 시간에 예고해드린 대로 오늘은 "타율 vs OPS"에 대해 다뤄보도록 하겠습니다. 야구계는 전통적으로 타율을 굉장히 중요시했습니다. 안타를 많이 쳐내는 선수들이 많이 있으면 점수를 낼 가능성이 그만큼 커지기 때문에 당연한 생각입니다. 그런데, 야구 데이터 분석이 시작되면서 타율이 높은 타자보다 OPS가 높은 타자가 훨씬 더 팀의 승리에 기여한다는 분석 결과들이 나왔습니다. 참고로 OPS는 on-base plus slugging의 축약어이고, 출루율 + 장타율로 계산합니다. 야구 중계 중에 캐스터와 해설자가 OPS에 대한 이야기를 많이 하는 것을 들으셨을 것입니다. 

 

실제로 OPS가 높은 팀이 타율이 높은 팀보다 강한 팀인지, 저는 작년(2020년) KBO 리그의 정규시즌 데이터를 가지고 확인해보도록 하겠습니다. 

 

팀 순위와 팀 타율 간의 상관관계

먼저 팀 순위와 팀 타율의 상관관계를 살펴보겠습니다. 상관관계라는 것은 한 변수의 값이 커질 때, 다른 변수의 값도 커지느냐(또는 작아지느냐)를 알아볼 수 있는 지표입니다. 이에 대한 보다 자세한 설명은 이전 글을 참고해주세요. 간단히 말해서 팀 타율이 높은 팀이 실제로 팀 순위가 높았는지를 우리는 상관계수를 통해 알 수 있습니다. 

 

 

팀 순위 1위부터 10위까지의 팀 타율을 쭉 둘러보면, 대체로 팀 타율이 높은 팀이 높은 순위에 위치한 것을 알 수 있습니다. 그러나 팀 타율이 높다고 무조건 팀 순위가 높은 것은 아니라는 것도 발견할 수 있습니다. 팀 타율만 봤을 때는 두산이 1위였습니다. 그러나 두산은 정규시즌에서 3위를 차지했습니다. 반면 팀 타율이 2위였던 NC가 1위를 차지했습니다. 또한 팀 타율에서는 7위였던 키움이 5위로 포스트시즌에 참가할 수 있었습니다. 반면 팀 타율 5위였던 롯데는 7위에 머물렀고요. 

 

그러면 좀 더 정확하게 분석하기 위해 팀 순위와 팀 타율 간의 스피어만 상관계수(SROCC)를 계산해보겠습니다. 스피어만 상관계수는 두 변수 간의 단조 상관관계를 나타내는 지표입니다. 절대값이 1에 가까울수록 강한 상관관계를 갖는다고 보시면 됩니다. 저는 다음과 같은 파이썬 코드를 이용해서 스피어만 상관계수를 구해봤습니다. 파이썬 코딩 경험이 없으신 분들은 아래 결과만 보셔도 됩니다. 

 

1
2
3
4
5
6
7
import numpy as np
from scipy import stats
 
rank = np.array([12345678910])
ops = np.array([0.2910.2840.2930.2770.2690.2740.2760.2680.2500.245])
 
stats.spearmanr(rank, ops)
cs

 

위 코드를 실행한 결과 SROCC = -0.9152 가 나왔습니다.

 

 

스피어만 상관계수가 -0.9152라는 것은 상당히 큰 상관성을 지닌다는 뜻입니다. 팀 타율이 높은 팀이 높은 순위에 위치할 가능성이 상당히 크다는 것입니다. 

 

팀 순위와 팀 OPS 간의 상관관계

이번에는 팀 순위와 팀 OPS와의 상관관계를 살펴보겠습니다. 과연 정말로 팀 순위와 팀 타율 간의 상관관계의 절대값(0.9152)보다 클까요?

 

 

팀 OPS를 보시면 1위부터 10위까지 매우 단조롭게(monotonically) 감소하는 것을 확인하실 수 있습니다. 6위와 7위만 바뀌었을 뿐 나머지는 OPS 순위와 정규 시즌 순위가 동일합니다. 느낌이 좋습니다. 그러면 한번 스피어만 상관계수를 구해보겠습니다. 필요한 파이썬 코드는 다음과 같습니다. 

 

1
2
3
4
5
6
7
import numpy as np
from scipy import stats
 
rank = np.array([12345678910])
ops = np.array([0.8280.7940.7920.7770.7630.7550.7610.7320.7120.658])
 
stats.spearmanr(rank, ops)
cs

 

실행결과 SROCC = -0.9879 였습니다. 

 

 

스피어만 상관계수의 절대값이 무려 0.9879에 이릅니다. 스피어만 상관계수 값 0.9879와 0.9152는 상당히 큰 차이가 나는 것입니다. 

 

이 분석 결과를 통해서 우리가 알 수 있는 것은 팀 OPS가 높은 팀이 팀 타율이 높은 팀보다 승리할 가능성이 더 크다는 것입니다. 물론 여러 해의 데이터를 가지고 분석한다면 좀 더 정확히 판단할 수 있겠지만, 여기서는 생략하도록 하겠습니다. 

 

타율보다 OPS가 높은 팀이 왜 강할까?

그렇다면 도대체 왜 타율보다 OPS가 높은 팀이 좀 더 강한 것일까요? 타율이 높다는 것은 타자들이 안타를 많이 생산해낸다는 뜻입니다. 그런데 만약 타자들이 징검다리 형식으로 띄엄띄엄 안타를 쳐낸다면, 점수로는 연결이 안 될 수 있습니다. 타율은 높아도 점수와는 연을 못 맺을 수 있는 것이죠. 또한 한 회에 안타를 3개나 쳤지만 모두 단타로 만루가 된 상황에서 적시타가 터지지 않아서 득점을 못하는 경우도 종종 있습니다. 이런 팀의 팬을 하면 상당히 심적으로 힘듭니다. 암 유발 팀이라고도 하죠. 선두 타자가 안타를 치고 나가서 내심 기대했지만, 후속타가 터지지 않아 그대로 이닝이 종료될 때 그 상실감, 느껴보신 분들은 다 아실 것입니다. 

 

그러나 OPS가 높은 팀에서는 우선 출루가 많이 이뤄질 가능성이 큽니다. 한 선수가 볼넷을 얻어서 1루에 출루했다고 가정해봅시다. 이 상황에서 다음 선수나, 다다음 선수가 오른쪽 방향으로 장타(2루타 이상)를 쳐내면, 아주 간단히 1점을 얻을 수 있습니다. 또한 볼넷, 몸에 맞는 공, 볼넷으로 만루가 된 상황에 후속 타자가 2루타 하나만 쳐도 3점을 낼 수도 있습니다. 이처럼 출루와 장타가 잘 어울어지면 강력합니다. 

 

한마디로 OPS가 높은 팀은 득점 생산력이 좋을 가능성이 큽니다. 득점을 많이 할수록 이길 확률이 높아지는 것이 바로 야구이기에, 득점 생산력을 가진 팀이 그만큼 유리합니다. 

 

동일 포지션에 타율은 높은데 출루율과 장타율이 낮은 선수 A가 있고, 타율은 낮은데 출루율 또는 장타율이 높은 선수 B가 있다면, 선수 B를 라인업에 넣는 것이 나을 것입니다. 물론 다른 여러 요소들도 잘 고려해야겠지만, 아주 단순화시켜서 생각하면 그렇다는 것입니다. 문제가 너무 복잡할 때는 간단하게 생각하는 것이 가장 나을 때도 있습니다. 

 

마무리 인사

긴 글 끝까지 읽어주셔서 감사합니다. 다음 시간에도 유익하고 재밌는 내용으로 찾아뵙겠습니다. 야구 데이터 분석가로 취업하는 그날까지~~~!

 

bskyvision의 추천글

공분산과 상관계수의 이해

Pearson 상관계수, Spearman 상관계수, Kendall 상관계수란?  

[python] 피어슨 상관계수와 스피어만 상관계수 구하기

 

참고자료

[1] www.koreabaseball.com/Record/Team/Hitter/Basic2.aspx