bskyvision RSS 태그 관리 글쓰기 방명록
2021-03-11 09:02:30
728x90

타자가 타석에 들어섰을 때 어떤 결과가 나올 수 있을까요? 

 

타석에서의 결과

타석의 결과는 크게 보면 인플레이 타구(BIP)이거나 인플레이 되지 않은 타구(BNIP)이거나 둘 중 하나입니다.

 

참고: [1]

 

인플레이 타구(BIP)는 지난 시간에 BABIP 지표에 대해 말씀드리면서 언급했었는데, 홈런을 제외하고 페어 영역에 떨어지는 타구를 의미합니다. 인플레이 타구는 안타가 될 수도 있고, 상대 실책을 유발할 수도 있고, 아웃이 될 수도 있습니다. 인플레이 타구 중 안타(HBIP)가 된 비율로 BABIP을 계산할 수 있습니다. 

 

BABIP = HBIP / BIP

 

BABIP을 고안한 맥크라켄의 주장은 인플레이 타구가 안타가 될 지, 아웃이 될 지, 실책이 될 지는 타자나 투수의 능력보다는 수비력이나 운에 의해 결정된다는 것이었습니다. 물론 이 주장은 나중에 타자와 투수의 실력이 어느 정도 영향을 미친다는 쪽으로 어느 정도 절충되긴 했습니다만 여전히 유효합니다. 

 

인플레이 되지 않은 타구(BNIP)는 홈런, 삼진, 사사구로 분류 가능합니다. 사사구는 사구(볼넷)과 몸에 맞는 공 모두를 포함하는 개념입니다. 

 

실력 or 운

타석의 결과 중 투수나 타자의 실력과 비교적 큰 영향을 받는 결과는 BNIP 쪽입니다. 어떤 투수가 삼진을 잘 잡아내고, 볼넷을 적게 주고, 홈런을 적게 맞는 것은 투수가 어느 정도 통제 가능한 영역입니다. 즉, 타석당 삼진비율, 볼넷비율, 홈런비율 등은 투수의 실력을 잘 보여주는 지표들이라고 말할 수 있습니다. 그래서 이 지표들의 경우 시즌을 거듭할 때 그렇게 크게 바뀌진 않습니다. 삼진을 잘 잡아내는 투수는 계속해서 삼진을 잘 잡아내는 경향이 있는 것입니다. 타자의 경우도 마찬가지입니다. 홈런을 잘 치는 타자는 다음 시즌에도 홈런을 잘 칠 가능성이 높습니다. 또한 삼진을 많이 당하는 타자는 다음 시즌에도 삼진을 많이 당할 가능성이 높습니다. 

 

하지만, BIP 쪽의 결과는 예측이 쉽지 않습니다. 인플레이 타구가 되었을 때 어떤 결과가 나올지 예상하기가 쉽지 않기 때문입니다. 빗맞은 안타가 나오기도 하고, 잘 맞았는데 야수 정면으로 날아가서 아웃이 되기도 합니다. 따라서, 타자의 타율, 투수의 방어율 같은 지표는 운의 영향을 비교적 크게 받습니다. 특정 시즌에는 15승 이상을 거두었지만 그 이후에는 맥을 못추는 투수도 많습니다. 물론 운도 실력이라고 말하는 사람들도 있겠지만, 한 시즌 반짝 운이 좋았던 것을 실력이라고 말하기는 어렵겠죠. 꾸준한 결과를 내는 선수가 진짜 실력, 즉 신뢰할 만한 실력을 갖추고 있는 것입니다. 

 

 

투수의 연속된 두 시즌 BABIP 간의 상관계수와 타석당 삼진비율의 상관계수 비교

이제 BABIP가 타석당 삼진비율보다 통계적으로 신뢰하기 어려운 지표인지, 즉 운의 영향을 많이 받는 지표인지 확인해보도록 하겠습니다. MLB 투수들의 연속 두 시즌 BABIP 간의 상관계수와 타석당 삼진비율의 상관계수를 비교했을 때 후자의 상관계수가 더 크게 나온다면 우리가 지금까지 이야기 해온 것이 좀 더 설득력을 갖게 될 것입니다. 1990년 이후 250타석 이상을 상대한 투수들의 기록만 분석에 사용했습니다. 또한 연속 시즌 기록이 있는 경우만 분석에 사용했습니다.  

 

 

위 분석을 위해 사용한 python 코드는 다음과 같습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import sqlite3
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
 
# 한글 폰트 사용을 위해서 세팅
font_path = "C:/Windows/Fonts/ngulim.ttf"
font = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family=font)
 
with sqlite3.connect("lahmansbaseballdb.sqlite"as con:
    cur = con.cursor()
    cur.execute('''
            SELECT playerID, yearID, 
            round( (H - HR + 0.00) / (BFP - SO - BB - SH - HR), 3) AS BABIP, 
            round( (SO + 0.00) / BFP, 3) AS K 
            FROM pitching WHERE yearID >= 1990 and BFP >= 250 ORDER BY playerID;
            ''')
    data = cur.fetchall()
 
    player = []
    year = np.zeros((len(data)))
    BABIP = np.zeros((len(data)))
    K = np.zeros((len(data)))
 
    for i in range(len(data)):
        player.append(data[i][0])
        year[i] = data[i][1]
        BABIP[i] = data[i][2]
        K[i] = data[i][3]
 
    beforeBABIP = []
    afterBABIP = []
 
    for i in range(len(data) - 1):
        if data[i + 1][0== data[i][0]:
            if data[i + 1][1== data[i][1+ 1:
                beforeBABIP.append(BABIP[i])
                afterBABIP.append(BABIP[i + 1])
 
    beforeK = []
    afterK = []
 
    for i in range(len(data) - 1):
        if data[i + 1][0== data[i][0]:
            if data[i + 1][1== data[i][1+ 1:
                beforeK.append(K[i])
                afterK.append(K[i + 1])
 
    plcc1 = round(stats.pearsonr(beforeBABIP, afterBABIP)[0], 4)
    plcc2 = round(stats.pearsonr(beforeK, afterK)[0], 4)
 
    plt.scatter(beforeBABIP, afterBABIP, c='b', s=10, alpha=0.3)
    plt.title('연속된 두 시즌 동안 기록한 BABIP 사이의 상관관계')
    plt.xlabel('특정 시즌 BABIP 비율')
    plt.ylabel('그 다음 시즌 BABIP 비율')
    plt.text(0.30.2"상관계수: " + str(plcc1), fontsize=20, color='red')
    plt.grid(True)
    plt.show()
 
    plt.scatter(beforeK, afterK, c='b', s=10, alpha=0.3)
    plt.title('연속된 두 시즌 동안 기록한 타석당 삼진 비율 사이의 상관관계')
    plt.xlabel('특정 시즌 삼진 비율')
    plt.ylabel('그 다음 시즌 삼진 비율')
    plt.text(0.30.1"상관계수: " + str(plcc2), fontsize=20, color='red')
    plt.grid(True)
    plt.show()
cs

 

보시다시피 연속된 두 시즌의 타석당 삼진비율의 상관관계가 BABIP의 그것보다 훨씬 더 강했습니다. 

 

0.1736 << 0.7754

 

데이터의 분포가 하나의 직선으로 표현되기 쉬울 수록 상관관계가 강한 것입니다. 오른쪽 산점도가 훨씬 직선에 가까운 것을 알 수 있습니다. 이 결과를 통해 알 수 있는 것은 이전 시즌에 삼진을 잘 잡았던 투수는 다음 시즌에도 삼진을 잘 잡았다는 것입니다. 반면, BABIP의 상관관계는 매우 약합니다. BABIP가 정말 투수의 실력을 잘 반영하는 지표라면, 어느 정도 연속된 두 시즌의 BABIP의 상관관계가 어느 정도 강해야 하는데 전혀 그렇지 않았습니다. 정말 뛰어난 투수들은 이 운에 영향을 많이 받는 듯한 BABIP도 일정 수준으로 유지하기도 한다고는 하는데 그 수가 많지는 않다고 합니다. 

 

결론

어떤 선수의 미래 성적을 좀 더 정확히 예측하고 싶다면, BIP쪽 지표보다는 BNIP쪽 지표들이 좀 더 신호(signal)에 가깝다는 것을 감안하고 살펴보는 것이 좋을 것입니다. BIP쪽 지표에는 신호 외에도 소음(noise)이 많이 들어가 있기 때문에 소음적 요소들을 잘 걸러내어 해석해내야 합니다. 하지만, 결코 이 일은 쉽지 않습니다. 

 

bskyvision의 추천글

[세이버메트릭스] 타자의 타율, OPS, 삼진비율, 볼넷비율 중 어떤 것을 가장 신뢰할 수 있을까?  

[세이버메트릭스] 인플레이 타구가 안타가 될 확률, BABIP

 

참고자료

[1] 벤저민 바우머, 앤드루 짐발리스트 지음, "세이버메트릭스 레볼루션"

댓글

방문해주신 모든 분들을 환영합니다.

* 글을 읽던 중에 궁금했던 부분은 질문해주세요.

* 칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.

* 최대한 답변 드리도록 노력하겠습니다.

* 욕설과 광고를 담은 댓글은 가차없이 삭제합니다.


guest@이름 ~$
guest@패스워드 ~$
guest@홈페이지주소작성 ~$

guest@댓글작성 ~$




bskyvision. Designed by bskyvision.