Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

3,050 views

Published on

R을 이용하여 MLB 야구 데이터를 분석한 내용

Published in: Data & Analytics
  • Login to see the comments

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

  1. 1. Baseball Data with R 김 경 민
  2. 2. Customer Clustering, Recommendation DS 개발팀 DMP 개발자
  3. 3. 야구는 기록의 스포츠
  4. 4. 타율, 타점, 다승, 홈런 ...
  5. 5. 성적은 Money 순일까?
  6. 6. 기록을 계속 신뢰해도 되는 가?
  7. 7. 타율, 타점, 승수 ...
  8. 8. 기록이 가치를 제대로 나타 내는가?
  9. 9. 야구의 목적은?
  10. 10. 높은 타율? 많은 홈런?
  11. 11. 이기기 위해서는?
  12. 12. 좋은 선수란?
  13. 13. 팀의 승리에 기여하는 선수
  14. 14. 득점을 하고 실점을 하지 않는 선수
  15. 15. 모든 플레이는 점수와 관련 하여 평가해야 한다.
  16. 16. 야구는 이벤트의 집합
  17. 17. 득점에 도움이 되느냐
  18. 18. 어떻게 이벤트의 가치를 평가할 것인가?
  19. 19. Before State → Event → After State
  20. 20. 야구에서의 상태(State)란?
  21. 21. 무사 만루에서 점수를 못내다니.. 이런 XX..
  22. 22. State의 기대득점을 알 수 있다면?
  23. 23. Event Value = After State - Before State
  24. 24. 상태(State)의 가치
  25. 25. 득점 기대치 (Run Expectancy)
  26. 26. 이벤트의 가치 (Run Value)
  27. 27. RV = After RE - Before RE
  28. 28. 홈런의 가치 Before : 0 아웃에 주자없는 상황 (0.555) Event : 홈런 (+1) After : 0 아웃에 주자없는 상황 (0.555) 홈런의 가치 = (1 + 0.555) - 0.555 = 1
  29. 29. 홈런의 가치 2 아웃에 주자 1,3루 상황 (0.538) 홈런 (+3) 2 아웃에 주자없는 상황 (0.117) 홈런의 가치 = (3 + 0.117) - 0.538 = 2.579
  30. 30. 이벤트 별 가치 이벤트 점수 홈런 1.397 안타 0.475 3루타 1.070 아웃 - 0.299
  31. 31. Runs Above Replacement = (RV) (득점 기여도)
  32. 32. 득점과 승리 사이의 관계?
  33. 33. 팀 데이터 가져오기 - Data Frame은 RDB의 테이블과 비슷 - 팀 데이터 : 팀의 연도별 기록 (경기수, 승리 횟수, 패배 횟수, 순위)
  34. 34. 필요한 데이터 추출 - subset으로 조건에 맞는 데이터를 검색 - ‘[ ]’를 사용하여 원하는 row와 column을 정의
  35. 35. 득실점 차이와 승률 구하기 - $ : column에 접근 - with : data에 대한 expression을 수행
  36. 36. 득실점 차이와 승률의 관계 > plot(myteams$RD, myteams$Wpct, xlab="run differential", ylab="winning percentage")
  37. 37. 선형 회귀 (Linear Regression) - 경향을 설명할 수 있는 직선 그래프 얻기
  38. 38. 득실점 차이와 승률의 관계 Wpct = 0.499992 + 0.000623 * RD (직선 그래프 함수) > abline(a=coef(linfit)[1], b=coef(linfit)[2], lwd=2)
  39. 39. 추정값에 대한 오차 확인
  40. 40. 오차 분포 확인 > plot(myteams$RD, myteams$linResiduals, xlab="run differential", ylab=" residual")
  41. 41. 평균 오차 이정도 오차 수준이면 나쁘지 않은 듯
  42. 42. 선형회귀 결과를 정말 믿을 수 있을까 가정) 1년(162 경기)에 득점 : 1620점 실점 : 810점 득실점 차이 : 810점 0.499992 + 0.000623 * 810 = 1.004622 승률 : 100.4622 % (?!?!?)
  43. 43. 피타고라스 정리를 통한 추정
  44. 44. 피타고라스 방정식은? 가정) 1년(162 games)에 득점 : 1620점 실점 : 810점 득실점 차이 : 810점 승률 : 약 80%
  45. 45. 1승 = ?득점
  46. 46. 1승을 위해서 필요한 득점은?
  47. 47. 1승을 위해서 필요한 점수는?
  48. 48. 1점 낼때마다, 얼마나 승리에 가까워질까?
  49. 49. 1승을 위해 필요한 점수는?
  50. 50. 가정) 3점 ~ 6점 나는 경기
  51. 51. 1승을 위해 필요한 점수
  52. 52. 1승을 위해 필요한 점수
  53. 53. 1승 = 10득점 1년에 90승을 거두기 위해서 필요한 점수는 900 점
  54. 54. Runs Above Replacement = (RV) (득점 기여도)
  55. 55. Wins Above Replacement = RAR / 10 (승리 기여도)
  56. 56. 세이버메트릭스
  57. 57. 야구계의 데이터 사이언티스트 세이버메트리션
  58. 58. 야구를
  59. 59. 진실을 찾아내려는 노력
  60. 60. Shin-Soo Choo Carlos Gonzalez 타율 .276 .271 홈런 22 40 타점 82 97< 출처 : Fangraphs 2015년 성적
  61. 61. Shin-Soo Choo Carlos Gonzalez WAR 3.5 2.4 Value $ 28M $ 18M Salary $ 14M $ 17M 출처 : Fangraphs > 2015년 가치
  62. 62. 보이는 것이 전부가 아니다.
  63. 63. Thank You

×