baseball data with r (@tech ver.) 공개본

Post on 23-Jan-2018

2.472 Views

Category:

Data & Analytics

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Baseball Data with R

김 경 민

Customer Clustering, Recommendation

DS 개발팀

DMP 개발자

야구는 기록의 스포츠

타율, 타점, 다승, 홈런 ...

성적은 Money 순일까?

기록을 계속 신뢰해도 되는가?

타율, 타점, 승수 ...

기록이 가치를 제대로 나타내는가?

야구의 목적은?

높은 타율? 많은 홈런?

이기기 위해서는?

좋은 선수란?

팀의 승리에 기여하는 선수

득점을 하고 실점을 하지 않는 선수

모든 플레이는 점수와 관련하여 평가해야 한다.

야구는 이벤트의 집합

득점에 도움이 되느냐

어떻게 이벤트의 가치를 평가할 것인가?

Before State → Event → After State

야구에서의 상태(State)란?

무사 만루에서 점수를 못내다니.. 이런 XX..

State의 기대득점을 알 수 있다면?

Event Value = After State - Before State

상태(State)의 가치

득점 기대치(Run Expectancy)

이벤트의 가치(Run Value)

RV = After RE - Before RE

홈런의 가치

Before : 0 아웃에 주자없는 상황 (0.555)

Event : 홈런 (+1)

After : 0 아웃에 주자없는 상황 (0.555)

홈런의 가치 = (1 + 0.555) - 0.555 = 1

홈런의 가치

2 아웃에 주자 1,3루 상황 (0.538)

홈런 (+3)

2 아웃에 주자없는 상황 (0.117)

홈런의 가치 = (3 + 0.117) - 0.538 = 2.579

이벤트 별 가치

이벤트 점수

홈런 1.397

안타 0.475

3루타 1.070

아웃 - 0.299

Runs Above Replacement = (RV)(득점 기여도)

득점과 승리 사이의 관계?

팀 데이터 가져오기- Data Frame은 RDB의 테이블과 비슷- 팀 데이터 : 팀의 연도별 기록 (경기수, 승리 횟수, 패배 횟수, 순위)

필요한 데이터 추출- subset으로 조건에 맞는 데이터를 검색- ‘[ ]’를 사용하여 원하는 row와 column을 정의

득실점 차이와 승률 구하기- $ : column에 접근- with : data에 대한 expression을 수행

득실점 차이와 승률의 관계> plot(myteams$RD, myteams$Wpct, xlab="run differential", ylab="winning percentage")

선형 회귀 (Linear Regression)- 경향을 설명할 수 있는 직선 그래프 얻기

득실점 차이와 승률의 관계Wpct = 0.499992 + 0.000623 * RD (직선 그래프 함수)> abline(a=coef(linfit)[1], b=coef(linfit)[2], lwd=2)

추정값에 대한 오차 확인

오차 분포 확인> plot(myteams$RD, myteams$linResiduals, xlab="run differential", ylab="residual")

평균 오차이정도 오차 수준이면 나쁘지 않은 듯

선형회귀 결과를 정말 믿을 수 있을까가정)1년(162 경기)에득점 : 1620점실점 : 810점

득실점 차이 : 810점

0.499992 + 0.000623 * 810 = 1.004622

승률 : 100.4622 % (?!?!?)

피타고라스 정리를 통한 추정

피타고라스 방정식은?가정)1년(162 games)에득점 : 1620점실점 : 810점

득실점 차이 : 810점

승률 : 약 80%

1승 = ?득점

1승을 위해서 필요한 득점은?

1승을 위해서 필요한 점수는?

1점 낼때마다, 얼마나 승리에 가까워질까?

1승을 위해 필요한 점수는?

가정) 3점 ~ 6점 나는 경기

1승을 위해 필요한 점수

1승을 위해 필요한 점수

1승 = 10득점

1년에 90승을 거두기 위해서 필요한 점수는 900점

Runs Above Replacement = (RV)(득점 기여도)

Wins Above Replacement = RAR / 10(승리 기여도)

세이버메트릭스

야구계의 데이터 사이언티스트

세이버메트리션

야구를

진실을 찾아내려는 노력

Shin-Soo Choo Carlos Gonzalez

타율 .276 .271

홈런 22 40

타점 82 97<출처 : Fangraphs

2015년 성적

Shin-Soo Choo Carlos Gonzalez

WAR 3.5 2.4

Value $ 28M $ 18M

Salary $ 14M $ 17M

출처 : Fangraphs

>

2015년 가치

보이는 것이 전부가 아니다.

Thank You

top related