제가 남자 아나운서 올스타 투표를 진행할 때마다 1위를 차지하시는 정우영 SBS스포츠 아나운서께서 자기 소셜네트워크서비스(SNS) 계정에 아주 재미있는 글을 남기셨습니다.
한마디로 2015년 이후 한국 프로야구에서는 타율/출루율/장타력 가운데 타율 변화가 득점 변화를 가장 잘 설명한다는 뜻입니다.
엄청나게 반(反)직관적입니다.
적어도 제가 2006년, 2014년, 2016년에 계산했을 때는 이런 결과가 나오지 않았습니다. 그리고 그게 직관에 맞는 결과이기도 했습니다.
기본적으로 '출루율 = 타율 + 순수 출루율(IsoD)', '장타력 = 타율 + 순수 장타력(IsoP)'으로 풀어 쓸 수 있습니다.
그런데 저 결과를 있는 그대로 받아들이자면 안타가 아닌 수단으로 출루하거나(순수 출루율), 단타가 아닌 장타를 치는(순수 장타력) 게 득점 변화에 부정적인 영향을 끼치기 때문입니다.
게다가 "단타의 힘이 장타를 이길 수도 있다"는 해석에는 더욱 동의하기 어려웠습니다.
홈런을 쳐도 타율이 올라가고, 단타를 쳐도 장타력이 올라가거든요. 물론 그 어떤 안타도 출루율을 끌어올립니다.
저는 이 글을 '세이버메트릭스 실험실'이라는 페이스북 페이지에서 처음 접했습니다. 그리고 이렇게 댓글을 남겼습니다.
아, 이런 재미있는 논의가 오가고 있었군요. 그런데 r제곱값은 x가 변할 때 y도 같이 따라서 잘 변한다는 거지 x가 변할 때 y가 더 많이 변한다는 뜻은 아니니까, 그러니까 출루율이나 장타력보다 타율이 변할 때 평균 득점이 같이 움직이는 정도가 더 많다는 뜻이지 타율 변화가 출루율, 장타력 변화보다 평균 득점을 더 크게 변화시킨다는 뜻은 아니니까 “단타의 힘이 장타를 이길 수도 있다”고 결론을 내리려면 다중 분석이 필요하겠네요.
이 댓글에서 제가 'r제곱값'(r²)이라고 쓴 건 정 아나운서가 결정계수라고 표현하신 것과 같은 개념입니다. 그렇다면 r²란 무엇일까요? 지금부터 차근차근 알아보겠습니다.
결정계수 r²이란 무엇인가?
변수 두 개 (이상) 사이에 어떤 선형 상관 관계가 나타나는지 모델링하는 통계 기법을 '선형 회귀(線型回歸·Linear Regression)'라고 부릅니다.
선형이라는 말은 이 변수 사이 관계를 '직선'으로 표현할 수 있기 때문에 붙은 이름입니다.
회귀는 (기본적으로) '평균으로 돌아가는 경향이 있다'는 뜻이라고 이해하시면 됩니다.
실제로 2015년부터 2018년 상반기까지 타율과 평균 득점 사이에 어떤 선형 관계가 있는지 그려 보면 아래 그림과 같은 결과가 나옵니다.
타율과 평균 득점 사이 관계는 그림에 있는 것처럼 '\(y = 40.758x-6.203\)'이라는 직선을 통해 설명할 수 있습니다.
직선 하나로 타율과 평균 득점 사이 관계를 모두 설명하는 건 당연히 한계가 있습니다.
예를 들어 저 이 공식에 팀 타율 .275를 기록한 지난해 KT를 넣으면 경기당 평균 5.01점이 나오지만 실제로는 4.55점을 내는 데 그쳤습니다.
그러면 실제값(4.55점)과 예측값(5.01점)과 사이에 -0.46점 차이가 발생한 게 됩니다.
이렇게 실제값과 예측값이 차이가 나는 걸 잔차(殘差·resudial)라고 부릅니다.
그렇다면 실제값($y_i$)과 예측값($\hat{y}_i$) 차이를 모두 더했을 때 더 적은 값이 나올수록 이 직선이 모든 자료를 더 잘 설명한다고 할 수 있겠죠?
이때 필요한 건 거리니까 제곱을 해서 더합니다. (정의에 따라 잔차를 모두 더하면 0입니다. 이 경우에도 그냥 더하면 당연히 0이 나옵니다.)
이 값을 잔차제곱합(RSS·Residiul Sum of Squares)이라고 부르고, $RSS = \sum_{i=1}^{n}(y_i-\hat{y}_i)^2$ 이런 식으로 표현합니다.
만약 우리가 기울기(여기서는 40.758)와 y절편(-6.203)을 전혀 알지 못한다면 우리는 각 관측치를 어떤 값과 비교할까요?
예, 짐작하시는 것처럼 '평균'이 맞습니다.
앞에서 잔차를 계산한 것처럼 평균값($\bar{y})$에서 실제 관측치를 뺀 값은 편차(偏差)라고 부릅니다.
편차도 모두 더하면 0이 나오니까 편차제곱합(SSD·Sum of Squares of Deviations)을 계산합니다. $SSD = \sum_{i=1}^{n}(y_i-\bar{y}_i)^2$
위에 있는 그림에서 왼쪽 그래프에 있는 빨강 네모 넓이 합이 바로 SSD, 오른쪽 그래프에 있는 파랑 네모 넓이 합이 RSS입니다.
여기서 하나 더. 편차제곱을 모두 더한 숫자 그러니까 SSD를 관측 개수(n)로 나누면 분산(分散)이 됩니다. 이때 분산은 당연히 이 관측값 전체 분산입니다.
이 전체 분산 가운데 일정 비율은 위에서 우리가 구한 직선으로 설명할 수 있지만 나머지는 설명하지 못할 겁니다.
네, 이 직선으로 설명할 수 없는 부분이 잔차이고 이를 분산을 계산할 때처럼 제곱해서 더한 값이 바로 RSS입니다.
따라서 SSD에서 RSS를 뺀 다음 이 값을 다시 SSD로 나누면 우리는 이 직선을 통해 전체 분산 가운데 몇 %를 설명하는지 알 수 있게 됩니다.
이 값을 바로 결정계수(r²)이라고 부르고 수식으로는 아래처럼 쓸 수 있습니다.
$r^2$ = $\frac{SSD - RSS}{SSD}$ = $1- \frac{RSS}{SSD}$
다시 타율-평균 득점으로 돌아가서 RSS를 계산하면 2.769491이 나옵니다. SSD는 12.53057입니다.
이를 토대로 $1- \frac{2.769491}{12.53057}$를 계산하면 .778981이 나옵니다. 반올림하면 .779 정도라고 할 수 있습니다.
(정 아나운서 분석 결과는 .774였습니다. 시작은 2015년으로 같지만 '현재' 그러니까 종료 시점이 달라서 차이가 났을 겁니다.)
같은 방식으로 평균 득점과 기록 사이 r²를 계산하면 출루율은 .7774, 장타력은 .7373이 나옵니다. OPS(출루율+장타력)는 .8947.
그렇다면 이를 토대로 '타율, 출루율, 장타력 가운데서는 타율이 제일 중요한 기록이다'라고 결론내릴 수 있을까요?
어느 정도 차이가 차이를 만드나
수식까지 써가면서 이렇게 지루하게 설명했다는 건 '그렇지 않다'는 뜻이겠죠?
설명을 자세히 읽으신 분은 아시겠지만 r²가 높다는 건 이 직선을 통해 설명할 수 있는 '분산' 비율이 높다는 뜻입니다.
이를 다른 말로 설명하면 제가 댓글에서 쓴 것처럼 x가 변할 때 y도 잘 따라 변한다는 뜻이 됩니다.
대신 x가 변할 때 y가 얼마나 얼마나 변하는지는 알려주지 않습니다.
예를 들어 A{x(1, 2, 3, 4, 5), y(1, 2, 3, 4, 5)}라는 자료가 있을 때 x와 y 사이 r²는 1입니다.
B{x(1, 2, 3, 4, 5), y(0.8, 2.4, 5.75, 7.75, 12)}는 .9886이 나옵니다.
A에서는 x가 1에서 5가 될 때 y는 1에서 5로 변하는 반면 B에서는 0.8에서 12로 더 크게 변하지만 r²만 보고는 이를 알 수가 없습니다.
그러니까 저 결과는 출루율이나 장타력을 알고 있을 때보다 타율을 알고 있을 때 평균 득점을 더 정확하게 예측할 수 있다는 뜻인 건 맞습니다.
대신 이 결론만으로 '단타의 힘이 장타를 이길 수도 있다'고 이야기하는 건 너무 섣부른 일이라고 할 수 있습니다.
게다가 r² 차이가 얼마나 나야 더 정확하게 예측한다고 볼 수 있는지도 애매합니다.
출루율(.7774)과 비교하면 타율(.7790)은 r²가 .0016 앞설 뿐입니다.
OPS .779인 타자는 .777인 타자보다 얼마나 훌륭한 타자인가요?
장타력(.7373)과 타율을 비교하면 .0417 차이인데 이건 또 얼마나 차이가 나는 걸까요?
이럴 때는 호텔링 T제곱 검정을 활용하면 도움이 됩니다.
이때는 r²이 아니라 r(피어슨 상관계수)를 쓴다는 차이는 있습니다. 이 상관계수 제곱이 r²입니다.
호텔링 검정은 상관관계가 통계적으로 유의미하게 다른지 유의 확률(p값)을 통해 알려줍니다.
(여러 문제가 있지만) 일반적으로는 p값이 특정값(.05 또는 .01) 이하일 때 유의미한 차이가 있다고 간주합니다.
구분 | 최근 | 전체 |
출루율 | .979 | .275 |
장타력 | .575 | .000 |
OPS | .002 | .000 |
이렇게 상관계수 차이를 검증하면 표와 같은 결과가 나타납니다.
표에서 최근은 2015년부터, 전체는 프로야구 원년(1982년)부터 올해 상반기까지를 뜻합니다.
한마디로 최근 3년 반 동안에는 타율이 출루율 또는 장타력보다 경기당 평균 득점과 상관관계가 더 크다고 말하기가 곤란합니다.
대신 OPS는 유의 확률 5%에서 '통계적으로 유의미하게' 타율보다 경기당 평균 득점을 더 잘 설명한다고 이야기할 수 있습니다.
(OPS는 참 위대한 기록이라는 게 여기서 또 한 번 드러납니다. 그저 둘을 더했을 뿐인데 이렇게 다른 결과를 낳습니다.)
프로야구 전체 기록으로는 출루율이 문제(?)입니다.
상관관계를 보면 출루율(.8998)이 타율(.8880)보다 높지만 이를 토대로 출루율이 타율보다 경기당 평균 득점을 더 잘 설명한다고 보기 어렵습니다.
반면 장타력(.9332)이나 OPS(.9616)는 확실히 타율보다 설명력이 뛰어납니다.
모든 건 SK 때문이다
아무리 그래도 이상한 건 이상합니다.
(출루율은 몰라도) 최근에 장타력이 이렇게 득점과 거리를 두게 된 이유는 뭘까요?
간단합니다. 장타력이 좋은데 출루에는 소질이 없는 팀이 있기 때문입니다. (출루율은 이미 우리 손을 떠났습니다.)
제가 정 아나운서 글을 처음 본 페이스북 페이지 게시물에 사실 정답이 들어 있습니다.
아래는 이 페이지 관리자 토아일당 님(신동윤 한국야구학회 데이터분과장)이 올리신 내용입니다.
좀 치우친 팀 하나가 보이는데 17SK입니다. 회귀선에서 저렇게 이탈했다는 것은 높은 장타율에 비해 득점이 유독 적었다는 뜻이죠. 장난삼아 해당 분석 중 17SK만 빼고 해봤습니다.
이젠, 15-17년 kbo에 대해 17SK를 포함시킨 샘플의 타출장-득점설명력과, 17SK를 제외한 샘플의 타출장-득점설명력을 비교해봅니다.
17SK를 포함한 경우
타 0.740 출 0.768 장 0.756
17SK를 제외한 경우
타 0.764 출 0.796 장 0.813
mlb만큼은 아니라도, 장타율 쪽의 R^2가 타율보다는 확실히 높아집니다. (제 생각엔, 정우영님 분석엔 있었고 제 분석엔 빠진 18년 데이터를 포함시킨다해도 대세가 달라질거 같진 않습니다.)
그렇다면 이건 무슨 뜻일까요? 예. 이게 다 SK와이번즈 때문일 수 있다는겁니다. 높은 장타율-낮은 출루율의 극단적 언밸런스로 인해 --- 높은 장타율을 득점으로 연결시키지 못하는 SK와이번즈라는 아웃라이어.로 인해 위와 같은 착시가 생겼을 가능성이 있다는거죠.
와이번즈의 괴랄한 공격력 밸런스는 17년에 이어 18년에도 나타나고 있는 상태이기 때문에, 18년 데이터를 포함시켰을 때 타율-장타율 설명력 역전 현상이 더 두드러지게 나타난건 아닐까 하는 추측도 해보고요
올해 SK라고 크게 다를 게 없습니다. 게다가 올 시즌에는 롯데와 KT 역시 이 대열에 합류한 것처럼 보입니다.
그런데 엄밀하게 회귀분석을 진행할 때는 그저 '내가 보기에 그렇다'고 아웃라이어로 결론 내릴 수 있는 건 아닙니다.
표준화 잔차와 영향치(leverage), 쿡 거리(Cook's distance) 같은 개념을 토대로 아웃라이어 후보군을 선출합니다.
장타력-출루율 분포에서는 이 셋을 아웃라이어로 의심할 수 있습니다.
이 정도면 '빼박'이라고 해도 과언이 아닙니다.
역시 지난해와 올해 SK가 문제였습니다.
올해(2018) NC는 위에 있는 그래프에서 맨 왼쪽 아래 구석에 있는 점입니다.
같은 방식으로 평균 득점 - 장타력 사이를 알아봐도 역시 이 세 팀이 문제였습니다.
사실 지난해 SK는 퍽 재미있는 팀입니다. 앞 타자가 안타를 치고 나갔을 때 SK 타선은 OPS .860을 기록했습니다.
같은 상황에서 리그 평균이 .803이었으니 SK 타선이 기회를 이어가는 힘이 부족했다고 보기는 어렵습니다.
문제는 이런 상황이 852번밖에 없었다는 점. 10개 구단 전체 평균은 990 타석이었습니다.
(당연히) 장타가 단타를 이긴다
지금까지는 평균 점수-타율, 장타력-출루율처럼 변수 두 개 사이 상관관계만 다뤘습니다.
꼭 이렇게 변수를 일대일로 비교해야만 하는 건 아닙니다.
설명변수(독립변수)가 두 개 이상일 떄는 다중회귀분석을 실시하면 어떤 변수가 종속변수에 영향을 가장 많이 주는지 알 수 있습니다.
우리가 알고 싶어하는 건 어떤 기록이 평균 득점에 영향을 가장 많이 주는 것이냐 하는 점이겠죠?
그래서 종속변수에 경기당 평균 득점을 넣고 독립변수에 △단타 비율(단타÷타석) △(홈런을 제외한) 장타 비율 △홈런 비율 △사사구(볼넷+몸에 맞는 공) 비율 △삼진 비율을 투입해 선형 모델을 만들었습니다. (삼진 비율은 유의 확률 문제로 나중에 제거했습니다.)
그다음 더빈왓슨(Durbin-Watson) 검정을 실시했습니다.
해가 바뀐다고 구단별 타격 성향도 손바닥 뒤집듯 바뀌는 건 아니니 이 영향을 알아보려는 목적이었습니다.
2018년 SK가 이런 타격 스타일을 구사하는 건 2017년으로부터 영향을 받았을 테니까요.
단, 전체적으로는 이런 영향을 받았다고 하기 어렵다는 결과가 나왔습니다.
분산팽창요인(VIF) 확인 결과 다중공선성 문제로부터도 자유로웠습니다.
이런 결과를 바탕으로 회귀분석을 진행한 결과 아래 같은 표를 얻었습니다.
독립변수 | 추정량 | 표준오차 | t | 유의확률 |
상수 | -7.637 | 0.681 | -11.22 | .000 |
단타 | 32.306 | 3.295 | 9.81 | .000 |
장타 | 57.790 | 6.235 | 9.27 | .000 |
홈런 | 58.130 | 5.570 | 10.44 | .000 |
볼넷 | 29.637 | 2.711 | 10.93 | .000 |
따라서 이 기간 한국 프로야구 경기당 평균 득점은 아래 식을 통해 추론할 수 있습니다.
평균 득점 = 32.306 × 단타 비율 + 57.790 × (2·3루타 비율) + 58.130 × 홈런 비율…
요컨대 단타보다 홈런이 평균 득점에 1.8배(≒58.130÷32.306) 정도 더 영향을 크게 끼칩니다.
2·3루타 역시 비슷한 결과나 나오리라는 사실을 짐작할 수 있습니다.
타율이 경기당 평균득점을 더 잘 설명한다고 해서 단타가 장타를 이기는 일이 벌어지지는 않았던 겁니다.
가위바위보에서 언제나 바위가 가위를 이기는 것과 마찬가지로 야구에서 장타는 단타를 이깁니다.
장타만 치려다 못 쳐서 지는 일은 있겠지만 말입니다.
그러니 리그 수준이 떨어져서 타율이 득점을 제일 잘 설명한다는 걱정은 접어두세요.
공갈포를 사랑하기에도 부족한 시간이니까요.
이건 이항분포 이야기처럼 야구보다 통계학 이야기에 가깝지만 kini's Sportugese에서 쓰기 시작한 죄로 이 블로그에 그냥 남겨 놓습니다.