Rでスポーツデータ解析がしたい: データを作るのって大変ですね
はじめに
R advent calendar 2014, 12月3日担当分です.
Rのコードは出てきません.
野球のデータで遊びたい
私は普段, メジャーリーグのデータで遊んでいます.
というのも, 整形されたメジャーリーグの詳細なデータが簡単に取得できるからです.
半年前に作ったスライドで申し訳ないのですが, こんな感じです.
pitchFxは, メジャーリーグの投球に関するデータ(を集めるシステム)です.
RでpitchRxパッケージを使うと簡単に取得できます.
他にも, メジャーリーグのデータは簡単に取得できます.
retrosheetという団体がデータをまとめてくれているので, ダウンロードして整形してcsvを出力してくれるスクリプト を使えば, すぐに80年分くらいの全試合全打席結果データが得られます.
後は適当に集計すれば終わりです. 簡単です. 弊ブログでも色々やっています. 楽しいです.
他のプロスポーツのデータで遊びたい
そろそろ, 他の色々なプロスポーツデータで遊びたくなってきました.
しかし, メジャーリーグのように, 都合よくデータがあるわけではありません.
何もない所から, バドミントンのデータで頑張っている友人がいます.
バドミントンの国際試合の結果を解析する準備が出来ました - バドミントン観戦記
荒野を進む感じが, とてもカッコイイです. 真似したいです.
しかし, Webスクレイピング. やったことありません.
なるほど. Rで簡単にできるらしいです. トライしてみました.
1. テニスのデータで遊びたい
男子プロテニスのデータを作ってみました.
ATP公式サイトが大会の結果をこんな感じでまとめて公開しています. トーナメント形式です.
このままだと扱えないので, 頑張ってcsv形式にまとめてみました.
結果です.
> head winLoseData.dat TOURNAMENT,GRADE,YEAR,MONTH,DAY,ROUND,PLAYER_1,PLAYER_2,WINNER Australian Open,1,1970,02,01,1,Roche_Tony,Bye,Roche_Tony Australian Open,1,1970,02,01,1,Cooper_John,Wilson_Ray,Cooper_John Australian Open,1,1970,02,01,1,Kukal_Jan,Hammond_Anthony,Kukal_Jan Australian Open,1,1970,02,01,1,Battrick_Gerald,Bye,Battrick_Gerald Australian Open,1,1970,02,01,1,Taylor_Roger,Bye,Taylor_Roger Australian Open,1,1970,02,01,1,Pollard_Geoff,Schloss_Lenny,Schloss_Lenny Australian Open,1,1970,02,01,1,Anderson_Mal,Werren_Mathias,Werren_Mathias Australian Open,1,1970,02,01,1,Lutz_Robert,Bye,Lutz_Robert Australian Open,1,1970,02,01,1,Okker_Tom,Bye,Okker_Tom
1968年から2014年まで, 3,425大会151,288試合のデータです.
どの大会の何回戦で誰と誰が戦ってどちらが勝ったか, を並べました.
整形できたので, あとは好きなように集計すればいいですね.
昨年のR advent calendarに, 素敵な記事がありました.
【R】【Python】igraphやNetworkXで手持ちのデータをネットワークに変換してみよう - 歩いたら休め
よく分かりました. ネットワークに変換してみました.
こんな感じです.
なるほど. よく分かりませんが, とりあえずそれっぽいことは出来ました.
時間があれば, この論文の追試をやってみようと思っていました.
時刻ごとの勝敗関係から作ったネットワークから, 強さランキングをつける, という話です.
2. 相撲のデータで遊びたい
大相撲のデータでも同じことが出来そうな気がしますね.
カド番力士と星のやりとり解析とか, 興味あります.
調べてみると, 最高のWebサイトがありました.
明治時代からの星取表がまとまっています. 昭和50年初場所〜大相撲星取表〜
やってみましたが,
ダメでした. ここまでは頑張ったのですが,
> head winLoseDataTable.dat H1-1,横綱,千代の富士,九重33,三杉里,W H1-1,横綱,千代の富士,九重33,琴ヶ梅,W H1-1,横綱,千代の富士,九重33,隆三杉,W H1-1,横綱,千代の富士,九重33,霧島,W H1-1,横綱,千代の富士,九重33,両国,W H1-1,横綱,千代の富士,九重33,太寿山,W H1-1,横綱,千代の富士,九重33,逆鉾,W H1-1,横綱,千代の富士,九重33,寺尾,L H1-1,横綱,千代の富士,九重33,安芸島,L H1-1,横綱,千代の富士,九重33,朝潮,W
辛かったです.
...力士って四股名を変えるんですよね. 若ノ花から若乃花とか. どう違うんだ.
全ての力士を正しく追いかけないといけません. 異なる人をちゃんと区別してidつけて整理して... って大変そうです.
よく考えると, そこまで相撲に興味がなかったので, ここで諦めます. ごめんなさい
データを作るのは大変です.
まとめと感想
自分でプロスポーツデータをまとめてみようとしました.
解析に使えるデータを作るのは凄く大変...ということが, 少しだけ分かりました.
「データサイエンティストはデータマエショリスト」と聞いたことがあります.
「データ解析は前処理が9割」とも聞いたことがあります. なるほど, と思いました.
解析屋の気持ちを汲み取って, 解析しやすい形式でデータを公開してくれる, そんな世界になってほしいな, と思いました.
以上です.