본문 바로가기

Baseball Data

WPA with MLB 2023 | Win Probability 2편

 

 

1편에서는 Win Probability에 대한 개념과 활용사례를 설명했다.

 

2편에서는 승리확률에서 파생된 개인 스탯 WPA(Win Probability Added)의 개념에 대해 설명하고, MLB Statcast 데이터를 통해 2023 MLB시즌 중 WPA이 높은 타자가 어떤 선수였는지 파악해 볼 것이다.

 

우선 WPA(Win Probability Added)는 승리 확률 기여도라 한다. 주자 상황, 아웃 카운트, 이닝, 점수차를 고려한 WP(Win Probability_를 바탕으로 타석 전, 후의 WP와 비교해 그 차이를 WPA로 산출하게 된다.

 

예를 들어 어떤 선수가 타석에 들어서기 전 WP가 0.1 이었고, 그 선수의 타석이 끝났을 때 WP가 0.2라면 그 타석에서의 WPA는 0.2-0.1인 0.1이 된다. 반대로 타석에 들어서기 전 WP가 0.2 이었고, 그 선수의 타석이 끝났을 때 WP가 0.1라면 그 타석의 WPA는 0.1-0.2인 -0.1이 된다.

타석 전 WP 타석 직후 WP WPA
0.1 0.2 +0.1
0.2 0.1 -0.1

 

WPA 개념을 정리하면 위의 표와 같다.

 

그렇다면 MLB 2023시즌 Statcast 데이터를 통해 WPA에 대해 더 깊이 알아보자.

 

 

#데이터 불러오기
df = pd.read_csv("/Users/kyengwook/Documents/Baseball/PB/csv1/mlb_pbp_2023.csv")
df = df[df.game_type=="R"]
df

 

우선 MLB 2023시즌의 Statcast 데이터를 불러온다. 데이터의 행은 717945개, 열은 93개로 MLB 2023 정규시즌 중 있었던 투수의 투구가 행의 한 단위가 되고 그에 따르는 투구/타구 추적 데이터와 경기 관련 데이터들이 행을 이룬다.

 

가장 먼저 2023시즌 중 WP의 변화가 가장 컸던 타석은 어떤 타석인지 살펴보자.

 

df.delta_home_win_exp.max() = 0.904
df.delta_home_win_exp.min() = -0.776

 

1.홈팀 입장에서 WP를 가장 크게 상승시켰을 때 WP 변화는 +90.4% 였고

2.원정팀 입장에서 WP를 가장 크게 상승시켰을 때 WP 변화는 +77.6% 였다.

(Baseball Savant)

1의 상황(https://baseballsavant.mlb.com/sporty-videos?playId=0aba431f-487c-45da-9dd8-a7d8206e02bf)은

4월 1일 볼티모어와 보스턴의 경기 9회말 2아웃 주자 1루 상황에서 8:7 1점차로 뒤지고 있던 보스턴의 Adam Duvall이 투런 홈런을 쳐내 끝내기 승리를 거둔 상황이다. 홈런이 나오기 전의 보스턴의 WP는 9.6% 였고 홈런을 통해 WP가 100%가 됐기 때문에 이 상황에서 Adam Duvall 선수의 WPA는 +0.904가 되었다.

 

두번째로 2023시즌에서 높은 WPA를 기록한 타자를 데이터를 통해 살펴보자.

df1 = df[df['inning_topbot']=="Bot"]
df2 = df1.groupby('batter').delta_home_win_exp.agg(['sum'])
df_sorted_by_values = df2.sort_values(by=['sum'] ,ascending=False)
df_sorted_by_values.to_csv("/Users/kyengwook/Documents/Baseball/PB/WP_bot.csv")

데이터 프레임에서 WP는 delta_home_win_exp 컬럼을 바탕으로 파악할 수 있다. 홈팀 기준으로 WP가 산출되기 때문에, 타자를 기준으로 홈 경기에서 쌓은 WPA와 원정 경기에서 쌓은 WPA를 구분 할 필요가 있다. 따라서 이닝(초/말)을 나누는 inning_topbot 컬럼을 통해 구분해 줬다.

df1 = df[df['inning_topbot']=="Top"]
df2 = df1.groupby('batter').delta_home_win_exp.agg(['sum'])
df_sorted_by_values = df2.sort_values(by=['sum'] ,ascending=True)
df_sorted_by_values.to_csv("/Users/kyengwook/Documents/Baseball/PB/WP_top.csv")

 

원정, 홈 WPA 각각의 데이터를 csv로 저장해 excel에서 추가 작업을 진행했다.

 

선수 원정 WPA 홈 WPA 합계
아쿠냐 주니어 3.296 3.233 6.529
브라이스 하퍼 0.237 6.078 6.315
무키 베츠 2.697 2.969 5.666
맷 올슨 2.213 3.445 5.658
카일 터커 3.329 1.605 4.934

 

결과는 다음과 같았다. 1위는 올시즌 단일시즌 최초로 40홈런 70도루를 기록하고 내셔널리그 MVP로 선정된 로날드 아쿠냐 주니어였다.

 

2위의 브라이스 하퍼는 원정 WPA가 홈 WPA 보다 매우 낮다는 점에서 특이하다. 2023 시즌 하퍼는 원정 경기에서 타/출/장(0.233/0.340/0.374)을 기록했고, 홈 경기에서 타/출/장 (0.352/0.459/0.622)를 기록했다. 클래식 스탯에서도 홈과 원정에서 성적 차이가 난 모습을 파악할 수 있다.

 

한편 WPA는 누적스탯이다. 그렇기에 얼마나 많은 타석에 들어섰는지도 고려할 사항이다.