[메이저리그 야구 통계학 2/e] 3장 - 선수의 능력은 어떻게 측정할 것인가?(1)

2023. 4. 24. 18:08·Minding's Reading/메이저리그 야구 통계학 2e
728x90
반응형

과학적 측정

  • 야구는 팀의 조화가 중요한 다른 스포츠(축구, 농구)보다 선수 개인 능력이 승리에 미치는 영향이 월등히 큼.
  • 야구 뿐 아니라 다양한 분야에서 평가 및 가치를 측정하는 직업들이 존재
  • 전문성의 기준은 무엇인가?
    • 전문가 집단의 진입장벽 (ex. 시험 등)
    • 경험이 쌓이며 대상을 볼 줄 아는 안목, 통찰력, 노하우 등
  • 전문적 지식이 과학적 지식은 아님
    • 경험과 노하우가 쌓이면서 모든 사건에 균등한 관심보다는 특정 사건에 집중하는 선택적 관심을 가지기 때문
    • 전통적인 스카우터가 홈런 등 기본 툴에 집중하고 출루율, 볼넷 등을 가볍게 보는게 그 예시
  • 선택적 관심의 벽을 넘어 데이터 입수 / 분석 / 해석 능력이 있다면, 비전문가도 의사결정이 가능

 

측정의 신뢰도

  • 누가 평가했느냐보다는, 모든 요인을 고려하는 균등 관심에 기반한 신뢰성과 타당성이 확보돼야 함
  • 측정도구의 신뢰도 : 능력을 측정하는 도구가 객관성을 갖고 있음을 의미
    • 측정 결과가 평가자와 시점에 관계없이 비슷해야 신뢰도가 높음
    • 측정값 = 진정한 능력 + 측정오류
    • 신뢰도를 평가하는 기준은 일관성
    • 그러나 아무리 신뢰도가 높은 지표라도 측정 오류가 있음
      • 측정오류 = 체계적 편향 + 비체계적 분산
      • 비표본오차 : 사람을 대상으로 하는 조사방법에서 관측시기, 관측담당자 등에 따라 측정결괏값이 비일치
      • 편향성 : 진정한 값을 둘러싸고 체계적으로 잘못 측정하고 있는 것
      • 분산 : 측정방식은 정상이지만 응답자의 반응이 조금씩 다른 비체계적 측정오류

측정의 분산(Vatiance)과 편향(Bias)의 차이를 나타낸 그림

  • 측정지표의 분산 정도와 편향을 확인하기 위한 방법
    • 검증 재검증(test-retest) : 한 명의 평가자가 일정 시간을 두고 같은 선수를 반복적으로 평가
      • t-1 시점과 t 시점의 상관관계를 확인하는 방식
    • 검증 재검증 방식 실습 (Lahman 데이터 활용)
library(Lahman)
a<-subset(Batting,yearID==2014)
b<-subset(Batting,yearID==2015)
c<-merge(a,b,by='playerID')
d<-c[c$AB.x>10 & c$AB.y>10,] # x(=2014)와 y(=2015)로 연도를 구분

# 상관관계 계산
with(d, cor(HR.x, HR.y)) # 홈런의 상관계수
>>> 0.6804912

with(d, cor(H.x/AB.x, H.y/AB.y)) # 타율의 상관계수
>>> 0.4868565

2014년과 2015년 홈런과 타율의 상관관계를 살펴본 결과, 홈런이 타율보다 상관관계가 높다.

즉, 개인홈런 변수보다 개인타율 변수가 신뢰성 있다고 해석할 수 있다.

 

측정의 타당도

측정지표의 타당성 : 이론의 개념과 그 개념을 측정하는 지표의 일치 정도

  • 타자의 능력을 '타율'이라는 지표로 사용할 수 있는 근거
    • 타율(안타)은 타자의 능력을 'Run'을 연장하는 응력이라는 개념으로 정의했기 때문
    • 'Run'을 가장 쉽게 연장할 수 있는 대표적인 방법이 안타이며, 타석 대비 표준화한 타율은 목적에 맞게 측정
    • 여기서 'Run'은 베이스와 베이스 간 개념적 거리, 장타율의 개념을 생각하면 된다. (1루타는 1, 홈런은 4)
  • 과학적 방식의 연구는 개념의 측정이 가능해야 한다.
  • 구성개념을 명료하게 정의하는 작업이 연구 전 필요함

측정을 시작하기 전에 스스로에게 해야하는 질문 3가지

1. 구성개념이 다르게 해석될 여지는 없는가?

2. 의도된 구성개념을 측정할 수는 있는가?

3. 측정도구는 구성개념을 정확히 반영하는가?

  • (구성개념은 과학적 연구방법이나 논리적인 이론에 근거하여 이를 설명하기 위하여 조작적으로 만들어 낸 개념)

 

능력과 운의 결과물 : 시즌 성적

좋은 능력을 가진 선수를 정확하게 측정해내는 구단은 저비용으로 승리를 구입할 수 있지만, 좋은 능력이 반드시 좋은 성적으로 연결되는 것은 아님.

  • 성적(Performance) = 설명되는 능력(Ability) + 설명되지 않는 운(Luck)
  • 여기서 '운'은 선수의 능력과 별개로 성적에 영향을 미치는 요소.
  • 즉, 분석자 입장에서는 패턴 파악에 도움이 되지 않는 노이즈다.

정확도가 100%가 아니기 때문에, 해당 예측 모델은 실패한 것일까? 그렇다고 볼 수는 없다.

하지만 노이즈를 최대한 줄이고 신호(signal) 부분을 높이는 노력이 필요하다.

 

노이즈를 줄이면서 신호를 높일 수 있는 두 가지 방법

1. 신뢰성과 타당성이 높은 지표를 사용해야 한다.

  • 신뢰성이 좋아 내년에도 반복될 확률이 높은 지표 중 성적과 구성타당도가 높아 성적에 직접적으로 영향을 주는 지표
  • 일반적으로 타율, 타점, 득점 등으로 선수의 능력을 평가. 그러나 하위개념(타율)과 겹치는 부분이 많아 한계가 있음
  • 결국 타점과 득점을 올리려면 안타를 쳐야하고, 진루에 도움이 된 안타는 기록될 수 없다는 한계도 있음
  • 이 한계점을 극복하기 위해 출루율이나 OPS를 사용하기 시작

2. 세상의 모든 현상은 다 측정할 수 있다는 헛된 생각에서 벗어나기

  • 타율, 출루율 등과 달리 심리적 상태, 성향, 자아효능감, 팀과의 관계 등은 측정할 수 없음
  • 측정할 수는 없지만 분명히 성적에 영향을 미치는 요소
  • 측정가능한 모든 변수를 모델에 집어넣는 것도 좋은 것만은 아님 -> 오버피팅 문제 발생 가능

공격지표를 이용한 상관관계

변수 간 관계를 보여주는 대표적인 분석 방법

1. 상관관계 분석

  • 다른 변수 간의 연관성을 보여준다.
  • 기호는 r, 상관계수라고 부름
  • 상관계수는 두 변수가 같이 만들어내는 공통된 분산을 분자로,변수의 표준편차의 전체범위를 분모로 둠
  • 상관계수가 1에 가까울수록 정비례 / -1에 가까울수록 반비례관계

2. 인과관계 분석

 

새로운 구단으로 옮기기 전과 옮긴 후의 타점 간의 상관관계 비교

 

전처리

# 전처리
library(Lahman)
library(dplyr)
library(plyr)
data <- subset(Batting.yearID>2014&yearID<2017) # 2015 ~ 2016년의 데이터
data$teamID <- as.character(data$teamID)
data$playerID <- as.character(data$playerID)
a <- arrange(data,playerID,yearID) # playerID와 yearID 기준으로 정렬
# 각 데이터가 동일선상에 위치하도록 작업(sapply)
a$p_teamID <- as.character(sapply(1:nrow(a), function(x){a$teamID[x-1]}))
a$p_playerID <- as.character(sapply(1:nrow(a), function(x){a$playerID[x-1]}))
a$p_RBI <- as.numeric(sapply(1:nrow(a), function(x){a$RBI[x-1]})) # 타점
a$p_AB <- as.numeric(sapply(1:nrow(a), function(x){a$AB[x-1]})) # 타수
a$p_SF <- as.numeric(sapply(1:nrow(a), function(x){a$SF[x-1]})) # 희생플라이
a$p_SH <- as.numeric(sapply(1:nrow(a), function(x){a$SH[x-1]})) # 희생번트
a$p_H <- as.numeric(sapply(1:nrow(a), function(x){a$H[x-1]})) # 안타
a$same_person <- ifelse(a$playerID == a$p_playerID, 'same', 'different')
b <- a[a$same_person == 'same',] # same표시가 있는 동일선수만 남도록
b$moved <- ifelse(b$teamID == b$p_teamID, 'no', 'yes')
c <- b[b$moved == 'yes',] # 이적선수만 남도록
c$p_avg <- with(c,p_H/p_AB) # 2015타율
c$sac <- with(c,p_SF+p_SH) # 2015 희생타
d <- subset(c, AB>400&p_AB>400) # 400타석 이상의 선수들만 포함
d$change_rbi <- with(d, RBI/p_RBI)
# 전년도 타율과 타점 변화 간 상관관계
with(d, cor(p_avg, change_rbi))

>>>
[1] -0.4890067

전년도 타율과 타점 변화 간 상관계수는 마이너스.

전년도 타율이 높을수록 그 다음 연도 공격능력이 더 높아질 확률은 적다.

 

시각화

library(ggplot2)
ggplot(d, aes(p_avg, change_rbi, lgID))+geom_point(size=2, aes(shape=lgID))+
	annotate('text', x=0.3, y=1.6, label='r=-0.49', size=5)+
    stat_smooth(method='lm', col='black')+
    labs(x='Batting Avg of Prior Year', y='Change in RBI')

전년도 타율과 타점 변화 간 상관관계를 시각화한 결과

# 리그 별로 독립분석
ggplot(d, aes(p_avg, change_rbi))+geom_point(size=2)+
	stat_smooth(method='lm', col='black')+facet_wrap(~d$lgID)+
    labs(x='Batting Avg of Prior Year', y = 'Change in RBI')

각 리그 별 독립분석 결과

이전 시즌의 타율이 높을수록 타점은 줄어드는 현상을 볼 수 있다.

 

# 희생번트와 희생플라이를 많이 친 선수들이 이적 첫 연도에 만들어낸 타점
with(d, cor(sac, change_rbi))

>>>
[1] 0.5042151

희생번트와 희생플라이가 타점 변화에 생각보다 높은 상관계수를 나타내고 있다.

# 시각화
ggplot(d, aes(sac, change_rbi, lgID))+geom_point(size=2, aes(shape=lgID))+
	annotate('text', x=4, y=1.6, label='r=0.50', size=5)+
    stat_smooth(method='lm', col='black')+
    labs(x='Sacrifice Flies & Hits', y='Change in RBI')

전년도 희생타가 많은 선수가 새로운 팀에 이적했을 때 타점의 상승률도 높다는 것을 알 수 있다.

 

상관관계표

  • 상관관계 분석은 변수 간의 관계 강도에 대한 힌트를 줄 뿐 신뢰성의 판단 기준은 제공하지 않음
  • 추가 분석을 진행하기 위한 기초 정보로 활용하면 좋음
  • 대부분의 연구는 모든 변수 간의 상관관계를 확인할 수 있는 상관관계표가 요구됨
# 상관관계표
install.packages(tableHTML)
library(tableHTML)
e <- with(d, data.frame(change_rbi, sac, p_avg)) # d에 있는 변수 중 3개를 가져옴
colnames(e) <- c('C_RBI', 'Sac', 'AVG')
cor(e)

>>>
           C_RBI        Sac        AVG
C_RBI  1.0000000  0.5042151 -0.4890067
Sac    0.5042151  1.0000000 -0.4597213
AVG   -0.4890067 -0.4597213  1.0000000

 

728x90

'Minding's Reading > 메이저리그 야구 통계학 2e' 카테고리의 다른 글

[메이저리그 야구 통계학 2/e] 4장 - 상관관계는 인과관계가 아니다(1)  (0) 2023.05.01
[메이저리그 야구 통계학 2/e] 3장 - 선수의 능력은 어떻게 측정할 것인가?(2)  (0) 2023.04.25
[메이저리그 야구 통계학 2/e] 2장 - 메이저리그 데이터 마이닝  (2) 2023.04.20
[메이저리그 야구 통계학 2/e] R 설치, R Studio(Posit) 설치  (0) 2023.02.06
[메이저리그 야구 통계학 2/e] 책 읽기 전 변수 개념 정리  (0) 2023.02.01
'Minding's Reading/메이저리그 야구 통계학 2e' 카테고리의 다른 글
  • [메이저리그 야구 통계학 2/e] 4장 - 상관관계는 인과관계가 아니다(1)
  • [메이저리그 야구 통계학 2/e] 3장 - 선수의 능력은 어떻게 측정할 것인가?(2)
  • [메이저리그 야구 통계학 2/e] 2장 - 메이저리그 데이터 마이닝
  • [메이저리그 야구 통계학 2/e] R 설치, R Studio(Posit) 설치
Minding
Minding
  • Minding
    Today's Minding
    Minding
  • 전체
    오늘
    어제
    • 울고넘는 딥러닝 (278)
      • Minding's Baseball (57)
        • MLB Statcast (29)
        • 머신러닝으로 홈런왕 예측하기 (3)
        • 야구칼럼 (12)
        • 야구 규칙, 용어 (1)
        • 2022-23 질롱 코리아 (8)
        • 류현진 등판경기 (4)
      • Minding's Programming (185)
        • 프로그래머스 코딩테스트 (21)
        • Knowledge (44)
        • Numpy & Pandas (6)
        • Excel (3)
        • Git (1)
        • Pygame (11)
        • CV (3)
        • Tensorflow tutorial (4)
        • Kaggle and Dacon (4)
        • 에러 코드 (8)
        • FastAPI (8)
        • Airflow (29)
        • Crawling (6)
        • Django (14)
        • AWS (18)
        • Spark (5)
      • Minding's Reading (30)
        • 머신러닝 딥러닝에 필요한 기초 수학 with 파이.. (2)
        • 칼만필터는 어렵지 않아 (11)
        • 밑바닥부터 시작하는 딥러닝 (6)
        • 메이저리그 야구 통계학 2e (8)
        • 논문읽기 (2)
        • 빅데이터를 지탱하는 기술 (1)
      • Minding's Life (5)
        • 주식 (4)
        • 각종 소식 (1)
  • 블로그 메뉴

    • 홈
    • Baseball
    • Programming
    • Reading
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    머신러닝
    FastAPI
    django
    에어플로우
    야구
    KBO
    MLB
    데이터분석
    데이터 엔지니어
    프로그래머스
    파이게임
    pygame
    코딩테스트
    Airflow
    django python
    메이저리그
    칼만필터는어렵지않아python
    딥러닝
    Python
    칼만필터는어렵지않아파이썬
    칼만필터는어렵지않아
    파이썬게임개발
    게임개발
    mlb stats api
    파이썬
    칼만필터
    KalmanFilter
    AWS
    넘파이
    질롱코리아
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Minding
[메이저리그 야구 통계학 2/e] 3장 - 선수의 능력은 어떻게 측정할 것인가?(1)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.