책 소개
소스 코드 파일은 여기에서 확인하실 수 있습니다.
요약
페이스북, 트위터, 아마존과 같은 디지털 플랫폼이 생활 깊숙이 들어오면서 데이터 활용가치는 높아지지만, 수학과 통계 때문에 데이터 분석을 본격적으로 시작하지 못 하고 있다. 최근에는 정형화된 숫자 데이터를 넘어 문자 데이터에서 지금껏 포착할 수 없었던 새로운 의미를 추출해야 하는 어려움 때문에 빅데이터 분석 진입장벽은 또 한 단계 올라가는 중이다. 한국에서 가장 인기 있는 프로 스포츠인 야구로 빅데이터 분석을 다룬다면, 데이터가 새롭게 보일 수 있다. 메이저리그에서 지난 140년 동안 통계원의 손으로 시작해, 90년대 퀘스텍(QuesTec), 2000년대 PITCHf/x, 2010년대 아마존과 파트너쉽을 통한 트랙맨 플랫폼까지 상상 이상의 야구 데이터가 수집돼 왔다. 장구한 메이저리그 데이터의 힘을 빌려 전통적 분석인 상관관계 분석, 분산분석, 회귀분석, 로지스틱 회귀분석, 계량경제학 패널데이터 분석과 최근 머신러닝으로 다시 관심을 받고 있는 군집분석, 요인분석, 지도학습, 딥러닝 기반 자연어처리를 통해 야구 이야기를 모델링하고 직접 테스트한다. 모든 작업에는 학계와 산업계 분석 작업에 이미 중심이 된 오픈소스 통계 프로그램 R을 사용한다.
데이터 분석 목적은 데이터를 통해 현실을 모델링하고 예측하며, 데이터에 담긴 정보와 의미를 추출해 인간의 인지적 한계를 극복한 합리적 의사결정을 하는 것이다. 분석 목적을 달성하는 데 반드시 거쳐야 하는 전처리(preprocessing) 전략은 데이터 분석보다 더 중요하고 많은 아이디어를 요구한다. 1판에서는 경험 부족으로 놓쳤지만, 이후 논문을 출판하고 ‘마케팅과 경영전략을 위한 데이터 분석’을 강의하면서 중요하다고 느끼게 된 전처리 전략을 2판 곳곳에 추가했다. 또한 1판에서 부족했던 그래픽 분석 방법을 새롭게 업데이트했다. 2판에서의 가장 큰 변화는 정형화되지 않은 문자 데이터까지도 분석에 활용할 수 있도록 머신러닝을 추가한 점이다. 비지니스 환경은 정형화된 숫자 데이터로는 이해할 수 없는 한계를 경험하고 있으며, 사람들이 남긴 디지털 커뮤니케이션에서 의미 있는 신호를 포착하는 데 주목하고 있다. 핵심 기술은 머신러닝이며 그 시작을 야구데이터와 함께 할 수 있다.
이 책에서 다루는 내용
■ 야구 이야기와 통계 프로그램 R 코드가 동시에 진행되는 이해하기 쉬운 설명
■ 다양한 목적의 분석 툴을 야구에서 발생하는 특수 상황에 맞게 적용
■ 연구질의에 따른 적합한 데이터와 분석방법 선택을 위한 제안
■ 실제 메이저리그 대형 데이터인 라만(Lahman) 데이터베이스 활용
■ 대형 데이터를 분석 목적에 맞게 전처리하는 전략 제시
■ 예측모델에서 발생하는 소음을 제거하는 모델링 방법 소개
■ 머신러닝을 이용한 자연어처리 방법 소개
이 책의 대상 독자
■ R에 관심은 있지만 특별한 동기가 없어서 본격적으로 시작하지 못했던 R 초보자
■ 학위 과정을 준비하고 있거나 학위 과정에서 통계분석을 알고 있어야 하는 독자
■ 직장에서 매일 다루는 데이터를 의미 있게 분석하고, 해석하고 싶은 직장인
■ 야구를 통해 데이터과학을 배우고 싶은 스포츠 팬
이 책의 구성
이 책은 총 7개 장으로 구성됐다. 데이터와 분석 목적이 일치하는가, 측정하려는 개념을 측정하고 있는가, 과학적 예측은 어떻게 하는가, 다름과 같음을 구분할 수 있는가, 분석결과를 호도할 수 있는 소음은 잡아낼 수 있는가에 대해 R에서 메이저리그 경기 데이터를 사용해 직접 실험한 결과를 바탕으로 설명하고 각 장에서 코드를 제시한다.
1장, ‘변수를 알면 분석모델을 디자인할 수 있다’에서는 분석 목적에 맞는 맞춤형 데이터를 만들기 위해 반드시 알아야 하는 데이터 구조와 그 중심에 있는 변수를 메이저리그 데이터베이스를 통해 이해한다. 더불어 데이터 생성, 가공, 분석 활동이 동시에 이뤄져야 하는 비즈니스 환경에서 분석 플랫폼 역할을 하는 R과 오픈소스 R 활용이 궁극적으로 도달해야 하는 데이터 가치 사슬(data value chain)에 대해 설명한다.
2장, ‘메이저리그 데이터 마이닝’에서는 메이저리그팀과 선수들의 데이터를 활용해 빅데이터로부터 특정 데이터를 추출하거나 데이터의 형태를 변형해 분석 목적에 맞게 준비하는 마이닝 기법을 배운다. 특히 원본 데이터에 어떠한 영향도 주지 않고 코드를 통해 변수를 자유자재로 변형하고 2개 이상의 테이블을 공통 변수로 결합함으로써 제기된 문제에 유연하게 답할 수 있는 방법을 제시한다.
3장, ‘선수의 능력은 어떻게 측정할 것인가?’에서는 데이터 시각화의 시작이자 추정통계의 기반이 되는 상관관계 분석을 활용해 신뢰성과 타당성을 보유한 야구지표의 조건을 파악한다. 또한 장타력과 득점의 상관성을 보여주는 산포도의 다양한 시각화 방법, 감독과 선수의 상관 정도인 인맥을 보여주는 네트워크 분석, 산포도 개념을 활용한 메이저리그 구장 위치 정보 소개 그리고 조건에 따라 변하는 다양한 상관 정도를 한 번에 보여주는 패널차트 등 분석을 실행하는 데 필요한 데이터 구조와 코딩방법을 소개한다.
4장, ‘상관관계는 인과관계가 아니다’에서는 인과관계를 모델링하는 대표적인 분석방법인 선형회귀 분석을 실행하기 위해 빅데이터에서 필요한 양의 표본을 임의로 추출해 분석결과를 해석하고 예측하는 방법을 팀타율과 팀득점을 이용해 자세히 설명한다. 특히 예측에서 반드시 발생할 수밖에 없는 다양한 오류를 소개하고, 예측능력이 좋은 모델을 구별하는 기준이 되는 표준오차가 팀득점 예측에 활용되는 과정을 코드를 통해 이해한다.
5장, ‘비교와 구분’에서는 머신러닝이 주목받으면서 가치가 높아지고 있는 분석을 소개한다. 전통적인 t 검증과 분산분석(ANOVA)뿐만 아니라 비지도학습법인 판별분석, 요인분석, 군집분석, 신경망분석과 지도학습법인 로지스틱 회귀분석을 메이저리그팀들이 소속된 리그 구분 및 지구(디비전) 우승 여부와 연계해서 학습한다. 이 과정에서 이상치의 확인과 모델에 미치는 영향, 프로 스포츠에서 선수성적 표준편차가 갖는 의미 그리고 구글 트렌드 데이터를 R에서 활용하는 방법을 소개한다.
6장, ‘모델링’에서는 개념적 관계를 수학적 모델로 전환하는 과정인 모델링에서 관측값이 충분히 많은 빅데이터로 인과관계를 검증한다고 해도 활용할 수 있는 변수가 충분치 않아 측정되지 않은 제3의 변수 때문에 관계는 항상 의심을 받는다는 사실에 주목한다. 메이저리그팀들의 공격능력과 팀성적 간의 인과관계를 입증하기 위해 통제 변수를 개발하고 눈에 보이지 않는 교란 변수를 통제하는 패널모델 및 다수준혼합모델을 적용해 인과관계를 테스트하고 모델 적합성을 평가하는 방법을 코드를 통해 배운다. 어려운 개념인 모델링을 야구와 결합함으로써 일반화된 이론모델, 검증할 수 있는 수학모델, 그리고 현실의 데이터를 R에서 결합하는 방법을 쉽게 이해할 수 있다.
7장, ‘머신러닝’은 2판에서 새로 추가된 장이다. 기존 대부분의 분석들이 행과 열에 맞춰진 구조화된(structured) 데이터라서 사용하기에는 편했지만 그 적용 범위가 좁았다. 머신러닝의 발전으로 글이나 그림 같은 구조화되지 않은(unstructured) 데이터가 눈에 보이지 않아서 숫자 데이터만으로 설명할 수 없는 현상들을 포착할 수 있게 됐다. 야구도 마찬가지다. 트랙맨 시스템이 생성하는 선수들의 기록은 운동장에서 만들어진 결과물이다. 하지만 운동장 밖에서 존재하는 선수들 개개인의 역사도 팀성적과 팀 인기도에 미칠 수 있는 예측력이 있지만, 야구 경험이 없는 분석가들은 그 역사가 무엇인지 모르며 분석에 익숙하지 않은 야구 전문가들은 그 역사를 데이터로 모을 수 있는지 모른다. 이제는 야구 전문가의 경험과 분석가의 분석 역량을 머신러닝으로 연결해서 어느 팀이나 할 줄 아는 데이터 야구를 벗어나 팀 특유의 머신러닝 역량을 만들어낼 때다.
목차
목차
- 1장. 변수를 알면 분석모델을 디자인할 수 있다
- 데이터과학에서 왜 야구인가?
- 분석 공부 중도에 포기하지 않는 방법: 나만의 데이터 만들기
- 변수를 알아야 분석이 보인다
- 연속 변수
- 이산 변수
- 명목 변수
- 서열 변수
- 데이터 구조를 파악하다
- 여러분이 가지고 있는 변수의 특징
- 데이터 중심화 경향
- 데이터의 분포범위
- 데이터는 조작되지 않아야 한다
- 데이터 분석의 완성: 데이터 가치 사슬
- R 스튜디오와 친구들
- R 스크립트
- R 노트북
- R 마크다운
- 샤이니웹앱
- 패키지 없는 R은 앱 없는 스마트폰
- 정리하며
- 2장. 메이저리그 데이터 마이닝
- 마이닝의 개념
- 간단한 데이터 내 손으로 직접 만들기
- 데이터를 R로 불러올 때 알아두면 좋은 정보
- 인터넷에서 만난 팬그래프닷컴 데이터를 R로 불러오기
- 빅데이터에서 필요한 데이터 분리하기
- 작업했던 코딩과 데이터 정보 저장하기
- 순서가 같은 테이블 합치기: cbind( ) 그리고 rbind( )
- 순서가 다른 테이블 합치기: merge( )
- 양적 변수를 명목 변수로 바꾸기
- 괄호 사용법
- 소괄호 ( )
- 중괄호 { }
- 대괄호 [ ]
- 결측값 제거하기
- 조건문 사용하기
- 계속 사용할 테이블 고정하기
- 추가로 공유하고 싶은 마이닝 기법들
- 정리하며
- 3장. 선수의 능력은 어떻게 측정할 것인가?
- 과학적 측정
- 측정의 신뢰도
- 영화 <머니볼>에서 보는 신뢰도가 높은 지표의 활용 케이스
- 측정의 타당도
- 능력과 운의 결과물: 시즌 성적
- 공격지표들을 이용한 상관관계
- 데이터에서 룰을 찾다: 연관성 분석
- 선수와 감독의 인적 상관성: 네트워크 분석
- 기술통계와 추정통계의 매개: 히스토그램은 막대그래프가 아니다
- 정리하며
- 4장. 상관관계는 인과관계가 아니다
- 인과관계의 필수조건
- 확률로 따지면 말이야
- 오류는 모델링의 꽃
- 진실이 존재하는 신의 영역
- 예측모델과 데이터가 있는 현실계
- 확률과 우도
- 출루의 조건: 최대우도추정법
- 정규분포: 얼마나 칠 것인가?
- 중심극한정리란?
- 회귀분석에서는 왜 정규분포를 사용하지 않고 스튜던트 t 분포를 사용하는가?
- 좋은 예측모델 구별법: 표준오차
- 팀타율 1푼의 가치는 2천 4백만 달러?
- 팀득점 예측을 위해 만든 추정모델 해석하기
- 조절된 설명력
- 모델 전체의 의미: F 통곗값
- 계수의 p 값: 긍정오류의 가능성 유의확률
- 게임당 팀득점 신뢰성 있게 예측하기
- 신뢰구간
- 예측구간
- 정리하며
- 5장. 비교와 구분
- 다른가?
- 시각적 비교
- 모델에 영향을 주는 이상치를 찾아라
- 메이저리그 140년 역사의 원동력: 표준편차의 힘
- 시즌타율 3할의 효과 40년간의 관찰: 패키지 plyr
- 시즌타율 표준편차가 적을수록 야구장에 관중들이 더 모인다?
- 실험군은 아메리칸리그, 대조군은 내셔널리그
- 그룹 간 비교 시각화 방법: 패널차트구글 트렌드와 분산분석(ANOVA) 연계
- 데이터를 분리해 필요한 부분만 취하다: 스트링 변수
- 비모수 시대의 그룹 간 비교
- 긍정오류와 부정오류
- 긍정오류, 부정오류, 그리고 판별분석
- 내셔널리그, 아메리칸리그, 그리고 판별분석
- 지구에서 우승할 가능성, 우승하지 못할 가능성: 로지스틱 회귀분석
- 지구에서 우승할 팀, 우승하지 못할 팀, 그리고 딥러닝
- 자율학습을 활용한 군집분석
- 정리하며
- 6장. 모델링
- 복잡한 현실을 수학으로 모형화하고 통계로 증명하다
- 2차함수 사고하기
- 고차함수 사고하기
- 논리와 데이터를 연결하다: 모델 선택
- 단순선형회귀분석모델(simple linear regression)에 기반한 주장
- 다중선형회귀분석모델(multiple regression)에 기반한 주장
- 고정효과모델(fixed effects model)에 기반한 주장
- 다수준혼합모델(multilevel mixed effects model)에 기반한 주장
- 시차 변수를 보유하는 다수준혼합모델에 기반한 주장
- 시차 변수와 자기상관을 보유하는 다수준혼합모델에 기반한 주장
- 조건이 포함되는 모델링: 조절 변수
- 리그별 홈런의 관중 동원 효과: 리그의 조절효과
- 다수준혼합모델로 메이저리그 팀승수 추정하기
- 실험실 없이 실험환경 통제하기: 통제 변수
- 눈에 보이지 않는 교란요인들 잡아내기
- 단순선형모델, 임의효과모델, 고정효과모델의 비교
- 단순선형모델
- 임의효과모델
- 고정효과모델
- 정리하며
- 7장. 머신러닝
- 머신러닝: 기계에 답을 주고 인간은 로직을 얻는다
- 최적의 타순 정하기
- 케이스 스터디
- 기계가 학습을 하려면 몇 가지 사전 작업이 필요하다
- 베이즈 룰
- 머신러닝: 데이터, 정답지, 그리고 베이즈 방식
- 머신러닝의 종류
- 자연어 처리와 머신러닝
- 지도학습으로 문서 분류하기
- 지도학습으로 분류모델 개발하기
- 분류결과
- 기계는 글의 의미를 이해하는가
- 글과 머신러닝의 역사
- 주변에 흔한 일반 문서는 어떻게 처리할까
- 맺음말
- 데이터과학을 대하는 자세.
- R을 대하면서 확장되는 생각의 범위
- 라만 데이터 적용 부분
도서 오류 신고
정오표
정오표