読者です 読者をやめる 読者になる 読者になる

300億円欲しい

メジャーリーグのデータ解析します

野球のスコアで一番多いのは何対何だと思う?

野球のスコア

こんなツイートを見つけました.

知りませんでした.
手元にMLBのデータがあるので, 調べてみました.

データの取得

http://retrosheet.orgからデータをダウンロードします.
メジャーリーグの試合の, 全てのイベントに関するデータが取得できます. 下記参照.
Rで野球データを取得したい - 300億円欲しい
とりあえず, 1921年から2013年までのデータを取得しました.
全部で2GBくらいです.

準備は整いました. 早速調査しましょう.

2013年のスコア別試合数を調べたい

結構なサイズのデータになりますので, 工夫しないと扱いづらいです.

Rのdata.tableとdplyrを使えば, 手早く簡単に処理できます.

解析に用いたコードは, ここからダウンロードできます.
analyze_mlbdata_with_R/batting_data/game_analysis at master · gghatano/analyze_mlbdata_with_R · GitHub

試しに, 2013年だけで試合結果を集計してみました.

試合数が多かった上位10試合.

  score game
1  4-3  118
2  3-2  113
3  4-2  109
4  2-1  100
5  3-1   99
6  5-4   75
7  5-2   73
8  6-2   72
9  5-1   62
10 4-1   61

2013年だけだと, 4-3の試合が最も多かったらしいです.
図がないと淋しいので, 棒グラフにしました.
f:id:gg_hatano:20140424220625p:plain
よく分かりません.

1921年から2013年までのスコア別試合数

ここからが本番です.
1921年から2013年までのすべての試合のデータでやってみます.
ちなみに, 全部で134,448試合が行われたみたいです.

どの試合結果が最も多いのでしょうか.

上位10パターンをあげます.

rank score game
1 3-2 5964
2 4-3 5575
3 2-1 4951
4 4-2 4880
5 3-1 4464
6 5-3 4320
7 5-4 4303
8 5-2 4011
9 4-1 3825
10 6-3 3293
3-2の試合が最も多いみたいですね.

...あれ?

以上です.

ソースコード

githubに全部アップロードしてあります.
dplyrとdata.tableでゴリゴリやれば速く簡単に処理できます. こんな感じです.

gist11254803

ホームチームとアウェイチームの得点

x軸にホームの得点,
y軸にアウェイの得点,
z軸に試合数, とした3次元プロットを作りました.

f:id:gg_hatano:20140428101436p:plain


3次元だと見づらいので, 2次元ヒートマップにします.
f:id:gg_hatano:20140428101525p:plain

どうですかね