野球のシミュレーション その1
WBCも誤審やら何やらで賑やかですね。
あまりその話題とは関係ないのですが、昔あまりにすること(したいこと?)が無くて考えたまま誰にも見せていなかった野球に関する考察があったのを思い出したので時間があるうちにまとめてみることにします。
<やったこと>
- 単純化のためのフィクションをいくつか導入することで計算機上で野球のシミュレーターのようなものを作りました。
- 具体的には9人の選手のシングルヒット率、2塁打率、3塁打率、本塁打率、四死球率、凡退率および打順を指定するとそのチームの得点力を出力するようなプログラムを書きました。
- 最終的には個人の打力や打順のチーム成績との関係について考えます。
- ちなみに類似の、それももっとしっかりした研究がインターネットや書籍で発表されているようですが、気にしません。
<行った単純化>
- 全ての打席で同一の分布の元にヒットや凡打が発生すると仮定した。(つまり相手ピッチャーの影響や打者の精神面の影響などは考えない)
- 以下のものを発生しないと仮定した。
- 盗塁
- エラー、フィルダースチョイス等のプロ野球においては稀とみなせる現象
- 送りバント
- その他9回における満塁策など局所的に見られる特殊戦略も発生しないとした。
- 2塁ランナーのシングルヒットにおける生還率やタッチアップの成功率は常に一定とし、ランナーが誰であるかは考慮しない。
モデルの有用性をチェックするために2003年度の(昔やったことなので比較データが古いです)実際のプロ野球のいくつかの球団の選手データを入力して出力される得点力と実際の得点データを比較してみることにする。
チーム名 | 得点実測値 | 得点理論値 | 95%信頼区間 |
---|---|---|---|
阪神 | 5.2 | 4.89 | (4.33 , 5.44) |
巨人 | 4.67 | 4.90 | (4.37 , 5.44) |
中日 | 4.4 | 4.04 | (3.57 , 4.51) |
ヤクルト | 4.88 | 4.59 | (4.08 , 5.10) |
広島 | 3.99 | 4.14 | (3.65 , 4.62) |
横浜 | 4.02 | 4.27 | (3.79 , 4.76) |
西武 | 4.94 | 5.18 | (4.63 , 5.72) |
近鉄 | 5.13 | 4.89 | (4.33 , 5.43) |
ホークス | 5.87 | 5.44 | (4.86 , 6.02) |
- 「得点」とは1試合9イニングあたりの平均得点。
- 得点理論値はペナントレース140試合を3000セット行ったときの平均得点。
- シーズンを通して打順が著しく一定していないチームは、スタメンとなった回数で打撃成績を加重平均してチームデータとした。
正直言って理論値と実測値があまり合ってないわけですが、何とか信頼区間内には収まりました。(収まった球団を恣意的に選んだわけではないです。パリーグが切れてるのはズボラだから)ホークスが理論値よりかなり大きな実測値となったのは他の球団と比較してずば抜けて盗塁が多かった事が原因の1つと思われますが、他の球団のズレ(中日とか)については特にそういった要因は思いつきません。お気楽な解釈をすれば正規分布ってそういうもんだろということになるのですが。(ちなみにこの程度のズレでは適合度検定で棄却はされないようです)
まあ上位チームが概ね実測値が理論値を上まわり、下位チームが下回っているという結果(すなわち勝ったチームは運が良く、負けたチームはそれなりに運が悪いという傾向)はなかなかリアルかなと。
ちなみに1イニングあたりの得点分布についても比較しようとしたのですが、実データの集計があまりに煩雑で挫折しました。
個人的意見を言えば、1シーズンであるチームが取る総得点は偶然性のみで±70〜80点程度はばらつくという主張自体はなかなか信憑性があるように思えます。
とりあえずこれくらいの確認で一応このモデルが意味のあるモデルであるということに(強引にですが)して次回は本来の目的であった個人の打力や打順がチームの得点力に与える影響について考えてみます。