데이터 생존 로그

[야구] 타율이 높으면 득점을 잘한다? (with. 상관관계 분석) 본문

📊 분석 한 스푼 🥄

[야구] 타율이 높으면 득점을 잘한다? (with. 상관관계 분석)

분석가 베어그릴스 2023. 6. 18. 14:52

 

해당 게시글에서는 득점과 상관성이 높은 특성을 찾아내는 과정을 담았습니다.

 

야구에서 공격하는 팀의 최종 목적은 최대한 많은 득점을 내는 것이다.

 

홈런을 많이 때려내서 득점을 만들던, 많은 안타와 도루를 통해 득점을 만들던

상대 팀보다만 많은 득점을 하는 팀이 승리한다.

 

야구는 기록의 스포츠인 만큼, 다양한 지표를 가지고 있다.

그래서 해당 게시글에서는 다양한 지표 중, 득점과 가장 높은 상관성을 가지는 특성이 무엇이 있는지 찾아보고자 한다.

 

저번 게시글에서 크롤링했던 지표를 활용해서 분석해보자.

저번 게시글 - https://analyst-ggom-chi-kim.tistory.com/9

 

야구 데이터셋 크롤링하기 (with. 스탯티즈, BeautifulSoup)

해당 게시글은 스탯티즈(링크)에서 야구(KBO) 데이터셋을 크롤링(BeautifulSoup)하여 csv로 만드는 과정을 다룹니다. 개요 MLB는 데이터셋을 api로 제공해주지만, KBO는 그렇지 않다. 그래서 스탯티즈라

analyst-ggom-chi-kim.tistory.com


전처리

저번 게시글에서 뽑은 데이터는 연도 및 팀별 타격지표이다.

데이터의 컬럼 목록은 다음과 같다.

컬럼명 데이터 타입
팀이름 string
연도 int
WAR float
타석 int
타수 int
득점 int
안타 int
2루타 int
3루타 int
홈런 int
루타 int
타점 int
도루 int
도루실패 int
볼넷 int
사구 int
고의사구 int
삼진 int
병살 int
희생타 int
희생플라이 int
타율 float
출루율 float
장타율 float
OPS float
wOBA float
wRC+ float

 

그리고 다음과 같은 전처리를 차례대로 수행했다.

 

1. 지표 덜어내기

복잡한 의미를 내포하거나, 큰 의미가 없을 것 같은 지표는 덜어내었다.

덜어낸 지표는 다음과 같다.

- WAR, wOBA, wRC+, 타석, 타수

 

2. 2023년 지표 제거

2023년은 시즌이 진행 중이므로, 다른 지표들과 형평성에 어긋나므로 제거한다.

 

3. 누적 스탯 보정

위 지표들을 자세히 보면, 누적 스탯비율 스탯으로 나눌 수 있다.

 

누적 스탯을 쉽게 말하면,

게임 수와 비례해서 높아지기 쉬운 스탯이다.

 

안타 수를 예시로 보자.

10게임을 치룬 팀과 100게임을 치룬 팀 중, 어떤 팀이 더 많은 안타를 뽑아내었을까?

대부분의 사람이 100게임을 치룬 팀이 더 많은 안타를 뽑아내었을 것이라 예상한다.

 

하지만 반대로 비율 스탯인 타율을 예시로 들어보자.

타율은 안타 수를 타수로 나눈 지표이다.

즉, 게임 수가 많아진다고 해서 더 높아지기 쉽지는 않다.

 

해당 게시글에서 다루고자 하는 데이터는 연도 및 팀별 타격 지표이기 때문에

누적 스탯을 경기 수로 나누어서 보정해보고자 한다.

(경기 수는 위 데이터에는 없지만, 직접 찾아서 수기로 입력 후 위 데이터에 join 해주었다.)

 

즉, 안타 수 → 경기당 안타 수 등으로 바꿔줄 것이다.

 

위 전처리를 수행하고 난 이후의 데이터는 다음과 같다.

컬럼명 데이터 타입
팀이름 string
연도 float
경기당득점 float
경기당안타 float
경기당2루타 float
경기당3루타 float
경기당홈런 float
경기당루타 float
경기당타점 float
경기당도루 float
경기당도루실패 float
경기당볼넷 float
경기당사구 float
경기당고의사구 float
경기당삼진 float
경기당병살 float
경기당희생타 float
경기당희생플라이 float
타율 float
출루율 float
장타율 float
OPS float

분석

전처리를 마쳤으니 분석을 해보자.

 

일단 분석의 목적을 다시 언급하면, 

득점과 상관성이 높은 특성을 찾기였다.

 

득점은 누적 스탯이므로, 전처리된 데이터에서는 '경기당득점'으로 변환되어 존재한다.

 

경기당득점과 다른 특성들 간의 상관성을 보기 위해 scatter plot을 활용하여 시각화해보자.

 

위 그림에서 경기당득점과 상관성이 높아보이는지 여부에 따라 다음과 같이 나누어볼 수 있다.

- 상관성이 높아보이는 특성(9개의 특성): 타율, 출루, 장타, OPS, 경기당안타, 경기당2루타, 경기당홈런, 경기당루타, 경기당타점

- 상관성이 높아보이지 않은 특성(5개의 특성): 경기당3루타, 경기당도루, 경기당볼넷, 경기당삼진, 경기당병살, 경기당희생타

 

여기서 의외인 점이 몇 가지 발견되었다.

- 3루타는 득점과 큰 상관관계가 없다.

- 경기당 도루는 득점과 큰 상관관계가 없다.

- 병살, 삼진, 희생타는 득점에 크게 악영향을 끼치진 않는다.

 

조금 더 정확한 비교를 위해 상관계수를 찍어보자.

위 그림은 피어슨 상관계수를 기준으로 한 히트맵이다.

 

일단 경기당타점이 가장 큰 상관계수를 가지고 있다.

사실 득점을 올리는 방법 중 가장 일반적인 방법이 타점이기에, 별로 놀랍지는 않은 수치다.

 

그 다음으로 OPS, 루타, 장타, 출루 등이 뒤를 잇는다.

(OPS = 장타 + 출루)


마무리

야구에서는 '스몰볼'과 '빅볼'의 논쟁이 치열하다.

 

대체로 '스몰볼'이란, 단타(1루타)와 도루를 최대화하여 점수를 쥐어짜내는 야구를 의미한다.

또한 '빅볼'이란, 장타(홈런, 2루타 등)를 최대화하며 점수를 크게크게 내는 야구를 의미한다.

(필자의 개인적인 견해이므로, 다른 의견이 존재할 수 있음)

 

위에서 분석했던 '득점'에 빗대어서 볼 때, '빅볼'이 '스몰볼'보다 득점을 올리는데 상관성이 더 높아보인다.

(빅볼의 대표적인 지표가 OPS이다.)

 

즉, 득점을 기대하기 위해서는 출루율과 장타율의 합인 OPS를 최대화하는게 좋은 선택일 것이다.

 

다음 분석글에서는 '실점'과 상관성이 높은 특성을 찾아보도록 하겠다.

 

 

반응형
Comments