콘텐츠로 이동
Data Prep
상세

스포츠 분석 (Sports Analytics)

1. 개요

스포츠 분석은 선수 성과, 팀 전략, 비즈니스 운영을 최적화하기 위해 경기 및 선수 데이터를 분석하는 분야.

정의

스포츠 분석 = 경기 데이터 + 의사결정 지원

목적:
- 경기력 향상
- 전술 최적화
- 부상 예방
- 선수 영입
- 팬 경험 개선

스포츠 분석의 영역

영역 질문
성과 분석 선수가 얼마나 잘했는가?
전술 분석 어떤 전략이 효과적인가?
선수 평가 선수의 가치는?
부상 분석 부상 위험은?
비즈니스 수익 최적화는?

2. 핵심 지표

2.1 야구 (Baseball)

지표 수식 설명
WAR Wins Above Replacement 대체 선수 대비 승리 기여
wOBA Weighted On-Base Average 가중 출루율
ERA+ (lgERA/ERA) × 100 조정 방어율
FIP (HR×13 + BB×3 - K×2) / IP + 상수 수비 무관 투구 성과
OPS+ (OBP/lgOBP + SLG/lgSLG - 1) × 100 조정 OPS

2.2 축구 (Soccer)

지표 설명
xG (Expected Goals) 슈팅의 기대 득점
xA (Expected Assists) 패스의 기대 어시스트
PPDA 압박 강도
Progressive Passes 전진 패스
Key Passes 슈팅 기회 창출 패스

xG 모델:

입력: 슈팅 위치, 각도, 상황, 바디파트
출력: 득점 확률

xG = P(Goal | Shot Features)

2.3 농구 (Basketball)

지표 설명
PER Player Efficiency Rating
TS% True Shooting %
BPM Box Plus/Minus
VORP Value Over Replacement Player
+/- Plus/Minus

Advanced Stats:

TS% = Points / (2 × (FGA + 0.44 × FTA))

효율적 슈팅 측정 (3점, 자유투 포함)


3. 주요 분석 방법

3.1 선수 성과 평가

포괄적 가치 지표:

WAR (Wins Above Replacement):
- 공격 기여
- 수비 기여
- 포지션 조정
- 구장 조정
- 대체 선수 기준

양적 선수 가치 비교 가능

역할별 분석:

포지션별 기대 역할 대비 성과:
- 골키퍼: 세이브율, xG 기반
- 수비수: 태클, 인터셉트
- 공격수: 득점, 기대 득점

3.2 전술 분석

스페이셜 분석:

위치 추적 데이터 활용:
- 선수 이동 패턴
- 팀 형태 (Formation)
- 공간 점유
- 압박 패턴

이벤트 분석:

개별 이벤트 분석:
- 패스 네트워크
- 슈팅 위치/효율
- 볼 점유 패턴

3.3 선수 영입/평가

Market Value 모델:

선수 가치 = f(나이, 성과, 잠재력, 계약, 시장)

피처:
- 성과 지표 (WAR, xG 등)
- 나이 및 성장 곡선
- 계약 상황
- 시장 수요

스카우팅 분석:

유망주 평가:
- 현재 성과
- 성장 가능성 예측
- 비교 선수 분석
- 위험 요소

3.4 부상 분석

부상 예측 모델:

입력:
- 훈련 부하 (GPS, 심박)
- 과거 부상 이력
- 피로 지표
- 생체역학 데이터

출력: 부상 위험 확률

Load Management:

Acute:Chronic Workload Ratio
- 급성 부하 / 만성 부하
- 1.0-1.5 범위 유지
- 급격한 변화 회피

3.5 실시간 분석

경기 중 분석:
- 라이브 통계
- 상황별 확률 (Win Probability)
- 전술 조정 권고

4. 실무 적용 사례

4.1 Moneyball (Oakland A's)

문제: 제한된 예산으로 경쟁력 확보

접근:
- OBP(출루율) 저평가 발견
- 비용 효율적 선수 영입
- 전통 지표 대신 세이버메트릭스

결과: 저예산으로 플레이오프 진출

4.2 Liverpool FC - xG 활용

데이터 기반 선수 영입:
- xG 기반 공격수 평가
- Mohamed Salah, Sadio Mane 영입
- 데이터 + 스카우팅 결합

결과: Premier League, UCL 우승

4.3 NBA - 3점 혁명

분석:
- 기대 점수 = P(득점) × 점수
- 3점 슛 기대 점수 > 중거리

전략 변화:
- 중거리 슛 감소
- 3점 슛 급증
- 포지션리스 농구

4.4 부상 관리

GPS/센서 데이터 활용:
- 선수별 부하 모니터링
- 부상 위험 예측
- 휴식 스케줄 최적화

결과: 부상 발생 감소

5. 참고 자료

핵심 서적

서적 저자 주제
"Moneyball" Michael Lewis 야구 분석
"The Numbers Game" Anderson & Sally 축구 분석
"Basketball on Paper" Dean Oliver 농구 분석
"Soccermatics" David Sumpter 수학적 축구 분석

주요 저널

저널 분야
Journal of Quantitative Analysis in Sports 스포츠 통계
MIT Sloan Sports Analytics Conference 학회
ESPN Analytics 업계 연구

6. 도구

도구 용도
StatsBomb 축구 이벤트 데이터
Opta 축구 데이터
Second Spectrum NBA 추적 데이터
Statcast MLB 추적 데이터
Python (pybaseball) 야구 데이터 분석

데이터 소스

소스 스포츠
FBref 축구 통계
Baseball Reference 야구 통계
Basketball Reference 농구 통계
Understat xG 데이터

Python 스포츠 분석 예시

# 야구 WAR 근사 계산
def calculate_batting_war(df):
    # 가중 출루율
    woba = (0.69*df['BB'] + 0.72*df['HBP'] + 0.89*df['1B'] + 
            1.27*df['2B'] + 1.62*df['3B'] + 2.10*df['HR']) / df['PA']

    # wRAA (리그 평균 대비 생산)
    woba_scale = 1.15
    wRAA = ((woba - 0.320) / woba_scale) * df['PA']

    # WAR 근사
    runs_per_win = 10
    war = wRAA / runs_per_win
    return war

# 축구 xG 모델
from sklearn.ensemble import RandomForestClassifier

def train_xg_model(shots_df):
    features = ['distance', 'angle', 'body_part', 'assist_type', 
                'game_state', 'is_counter']
    X = shots_df[features]
    y = shots_df['is_goal']

    model = RandomForestClassifier()
    model.fit(X, y)
    return model