SCOUTING REPORT · 2025 SEASON

헛스윙은 구위가
아니라 위치에서
나온다 오타니 쇼헤이의 2025시즌 투구 1,089개를 전처리하고,
스윙 542개로 헛스윙 예측 모델을 만들어 검증한 결과

SUBJECT Shohei Ohtani (#660271)
SOURCE MLB Statcast
MODEL 2-Stage Classifier
CV AUC
Appearance log — 18 starts · 파랑 = 팀 승리 · 노랑 테두리 = 포스트시즌
Interactive · Model output

모델이 예측한 헛스윙 지도

"스윙했다면 헛스윙일 확률"만 보면 존에서 멀수록 100%에 수렴합니다 — 타자가 아예 스윙하지 않으니 쓸모없는 답입니다. 그래서 스윙 확률 모델을 하나 더 만들어 곱했습니다. 두 값을 합친 "투구당 헛스윙 확률"이 실제로 던질 곳을 알려줍니다. 실제 투구가 거의 없던 구역은 예측하지 않고 빗금으로 비워 뒀습니다.

0%
80%+
포수 시점 · 검은 사각형 = 스트라이크존 · 흰 원 = 예측 최고 지점 · 셀에 마우스를 올리면 값이 표시됩니다
빗금 = 학습 데이터가 부족해(주변 스윙 4개 미만) 예측하지 않은 구역 — 모델의 외삽을 막기 위한 처리입니다
구종
타자
볼카운트
표시할 값
최적 로케이션의 예측 헛스윙 확률
Data engineering

원자료 6개 파일에서 학습 데이터까지

Statcast 원자료는 119개 컬럼에 상대 타자 이름조차 없는 상태였습니다. 분석 가능한 형태로 만들기까지 네 단계를 거쳤습니다.

STEP 01

범위 결정

2018–2025 전체 9,050투구 중 2025시즌만 채택. 상대 타자 이름 매칭률이 2018년 24%에서 2025년 100%로 갈리기 때문. 2024년은 팔꿈치 수술로 등판 자체가 없음.

STEP 02

키 조인

game_pkgame_id로 경기 결과를 붙여 18경기 승패 확보. batterplayer_id로 상대 타자 128명 실명 복원 — 결측 0건.

STEP 03

피처 설계

원본 컬럼을 그대로 쓰지 않고 26개 피처를 설계. 타자마다 다른 존 높이를 정규화한 plate_z_norm, 거기서 파생한 dist_from_center가 최종 최중요 변수가 됨.

STEP 04

대상 한정

헛스윙은 스윙한 공에서만 정의 가능. 라벨 누수를 막기 위해 스윙 542개로 좁혀 학습하고, 버려진 나머지 547개는 스윙 예측 모델(Stage A)에 그대로 활용.

투구 (원자료 행)
2025 SEASON
스윙 (학습 대상)
MODEL INPUT
상대 타자 (실명 복원)
100% MATCHED
설계 피처
ENGINEERED
Model architecture

모델을 두 단계로 나눈 이유

처음에는 "스윙했다면 헛스윙일 확률" 하나만 만들었습니다. 그런데 이 모델은 존에서 멀어질수록 100%를 내놨습니다 — 맞는 말이지만, 타자가 스윙조차 하지 않는 공이라 쓸 수 없는 답이었습니다. 그래서 스윙 여부를 예측하는 모델을 하나 더 만들어 곱했습니다.

STAGE A

타자가 스윙할 것인가

전체 1,089투구로 학습. 라벨은 스윙 여부(49.8%).
AUC · 랜덤 포레스트

STAGE B

스윙했다면 헛칠 것인가

스윙한 542개로 학습. 라벨은 헛스윙 여부(30.1%).
AUC · 로지스틱 회귀

A × B

투구당 헛스윙 확률

두 확률의 곱. 존 안에서는 컨택당해서, 존 밖에서는 스윙을 안 해서 확률이 떨어집니다.
AUC · 전체 1,089투구 기준

ROC 곡선 — Stage B

5-Fold 교차검증 · 학습에 쓰이지 않은 예측만 사용

캘리브레이션 — Stage B

예측 확률이 실제 발생률과 일치하는지 — 점이 대각선에 붙을수록 정확

후보 모델 비교

각 단계마다 세 가지 모델을 5-Fold 교차검증으로 비교했습니다. 표본이 542개뿐인 Stage B에서는 가장 단순한 로지스틱 회귀가 이겼고, 1,089개인 Stage A에서는 랜덤 포레스트가 근소하게 앞섰습니다.

무엇이 헛스윙을 결정하는가 — 피처 중요도 (Stage B)

Permutation importance · 해당 변수를 무작위로 섞었을 때 AUC가 떨어지는 정도
What the data says

구단에 보고할 다섯 가지

"구속이 아니라 로케이션이 5배 중요하다."
존 중심 거리(AUC 기여 0.167) vs 구속(0.032) — 모델이 뽑아낸 가장 강한 신호
FINDING 01

존을 벗어날수록 헛스윙이 급증한다

한복판에서는 열 번 중 한 번만 헛스윙이지만, 존 경계를 넘어서면 세 번 중 한 번으로 뛰고, 완전히 벗어나면 거의 전부 헛스윙입니다. 존 밖(55.9%)이 존 안(20.0%)의 2.8배.

FINDING 02

가장 좋은 결정구가 가장 적게 쓰인다

스플리터와 커브가 헛스윙률 1·2위인데 구사 비중은 각각 5.7%, 10.5%에 불과합니다. 반대로 전체의 39.8%를 차지하는 포심은 헛스윙률이 21.0%로 낮습니다. 포심을 셋업으로 쓰는 전략은 합리적이지만, 결정구 사용을 늘릴 여지는 분명합니다.

FINDING 03

좌타자와 우타자에게 쓰는 무기가 다르다

좌타자에게는 커브(57.7%)와 스플리터(55.0%)가, 우타자에게는 스위퍼(36.7%)가 통합니다. 스위퍼는 우타자에게 98번 스윙을 유도한 반면 좌타자에게는 24번뿐 — 사실상 다른 투수라고 봐도 됩니다.

vs 좌타자
vs 우타자
FINDING 04

승부처는 0-2가 아니라 1-1이다

가장 유리해 보이는 0-2 카운트에서 헛스윙률은 20.5%로 오히려 낮습니다. 타자가 존을 넓게 잡고 신중해지기 때문입니다. 반면 균형 잡힌 1-1에서 43.1%로 가장 높습니다. 결정구를 아껴둘 카운트가 따로 있다는 뜻입니다.

볼카운트별 헛스윙률
FINDING 05

타자는 같은 경기 안에서 적응한다 — 교체 타이밍의 근거

첫 대결에서 34.0%였던 헛스윙률이 두 번째 대결에서 25.3%로 떨어집니다. 타순이 한 바퀴 돌면 효과가 눈에 띄게 줄어든다는 뜻이고, 이는 3순회 이전 교체를 뒷받침하는 데이터입니다. 반면 이닝이 진행돼도 포심 구속은 98마일대를 유지했습니다 — 적응은 피로가 아니라 학습에서 옵니다.

같은 경기 내 대결 순서별 헛스윙률
이닝별 포심 평균 구속 (mph)
구속 저하 없음 — 헛스윙률 하락은 체력 문제가 아님
Matchup profiles

타자별 맞대결 기록

상대 타자 128명 전원의 이름을 복원했기 때문에 개인 단위 리포트가 가능합니다. 2타석 이상 상대한 타자만 표시하며, 열 이름을 누르면 정렬됩니다.

타자 타석 안타 홈런 삼진 피안타율 스윙 헛스윙 헛스윙률 평균타구속도
기본 정렬은 타석 수 기준입니다. 헛스윙률로 정렬하면 스윙 2~3개짜리 표본이 100%로 올라오니 스윙 열을 함께 보세요.
피안타율은 타수 기준 · 평균 타구속도는 인플레이 타구만
Honest limits

이 모델이 답할 수 없는 것

구단에 넘기는 자료라면 한계를 먼저 적어야 합니다. 아래는 이 분석을 실무에 쓸 때 반드시 감안해야 할 조건입니다.

표본 542개

한 시즌 18경기 분량입니다. 구종별로 쪼개면 스플리터는 스윙 22개뿐이라 59.1%라는 수치의 신뢰구간이 넓습니다. 시즌이 쌓이기 전까지는 방향성 참고용입니다.

볼넷 비용은 아직 없다

2단계 모델로 "스윙하지 않는 공" 문제는 풀었지만, 존 밖 승부가 볼카운트를 불리하게 만드는 비용은 반영하지 못했습니다. 체이스 존을 노리다 볼넷이 늘면 손해일 수 있습니다.

헛스윙이 목표는 아니다

투수의 목적은 실점 억제입니다. 다음 단계는 약한 타구 유도 (xwOBA 회귀)와 볼넷 리스크를 결합해 기대 실점 기준으로 구종 선택을 최적화하는 것입니다.