Baseball Concrete Blog

主にプロ野球について、セイバーメトリクス的な考えを交えながら好きなことを書いています。

打線シミュレーション計画 その1

・はじめに

前回生意気にも野球の構造についてのことをちょっと触れましたので
これを契機として前から何か書きたいと思っていた自作の打線シミュレータを軽く取り上げようと思います。
最初に内容を紹介しちゃいますと、コンピュータ内で仮想的に野球の攻撃を行わせるものです。
仕組みは大まかに以下のように。

・事前に入力した確率に応じて打席ごとにランダム的に打撃結果を得る。全ての場面で打者の打撃能力は変化しないものとする。
・四球なら一塁に出る、走者三塁での単打なら一点入って打者は一塁へ……というように仮想的に攻撃を行う。
・単打で二塁走者が生還する確率は50%、二塁打で一塁走者が生還する確率は40%。
・アウト間の進塁や盗塁、走塁死、併殺打、相手失策、犠飛、犠打などは考慮に入れない(三振と凡打は等価値)。
・当然スリーアウトで走者状況リセット。それを9回行う。

下手な説明ですがまぁなんとなくわかっていただけるでしょうか。
中身としては人間がいちいちサイコロを転がして「これは凡退……次は二塁打……」なんてやっていくのと変わりません。

で、これは野球のごく基本的な部分を無機質に抜き出したようなものだと言えます。
そこには人間の感情だとか精神的な動きは存在しません。
「走者を進める心がけ」だとか「勝負強さ」だとか「流れ」なんてもの一切ない。コンピュータはただ単純に乱数を発生させ事前に決定した割合の通り打撃結果を生むだけです。
でもこれで案外、現実の野球と同じようなものが見られるのです。
走者の動きについては相当省いてあって、実は併殺打とかも含めた詳細バージョンもあるのですが今回やりたい試みに合わないので簡素なバージョンを使います。
これだけ省いて現実と同じような結果が得られるとなったらどうでしょうか。
物語として重視している部分は実は試合の勝敗に大した影響を持っていないのではないか?と疑うには十分だと思います。
また、シミュレータの試み自体は先例がたくさんあります。
質の高いレポートをお求めの方は探してみるとよいかも。

尚、実際にコンピュータ内で試合を行わせるシミュレーションである以上サンプル数の問題は免れません。
なるべく試行数を増やして誤差を押さえ込んではいますが(試合あたり得点で言えば多分ズレてても0.03くらい)、プログラミング初心者なため都合の良くないシステムを使っていることもあり演算処理に時間がかかるのです。以下をお読みになる際は一応注意してください。
「それなら計算モデルを用いればいいじゃないか」というご指摘もあろうかと思いますが、それにははっきりと反論します。計算の仕方がよくわからん、と。
仕組みだけ与えてコンピュータに勝手にやってもらうほうがラクです。




・動かしてみる

何はともあれ動かしてみます。
試しに2007年セリーグ野手平均成績の「平均君」を1番から9番まで置いてみましょう。
ちなみにこのような打者です。
AVG.274 SLG.416 OBP.338

結果。1試合(27アウト)あたりの得点は4.40でした。
2007年セリーグの実際の試合あたり得点は4.11、野手平均RC27は4.86。
このモデルではアウト間の進塁などは省かれているものの投手打席を含んでいないことなどで、実際の得点よりは大きく、RC27よりは小さく出た様子。
まぁ一応それっぽく機能していることはおわかりいただけるかと。
現実と同一の世界を構築しようとしているわけではないので細かい違いがあることを問題にはしません。

興味深いのは試合毎得点の標準偏差。
今回のシミュレーションでは約3点を示しました。
つまり、細かい選手の状況判断などを省いた想定ではありますが打者や相手投手などのプレーヤーの調子というものが全く存在しなかったとして、本来の得点率から3点ぐらいのブレは標準的に起こりうるものだと言うことができるのではないでしょうか。
コンピュータは常に全く同じ状態で試合をしているはずですから、このブレは単純に運によるものです。
具体的にはたまたまヒットが出るか出ないか、アウトが挟まるタイミングがどこに入るかの順番、とかですね。四球3つのあと本塁打が出るか本塁打のあと四球3つが出るかなど。

このブレが両チームに働くことを考えれば、野球で常に勝つなんてことを考えた場合には1試合で相当な差をつける実力が必要になります。
今回の五輪の際にも各所で触れられた、短期決戦がほぼ運であるという話の拠り所はこの辺りに見ることができると言えるかもしれません。

もちろんこの結果は「平均から3点程度のブレなら全て単に確率的なものである」などという主張を導くものではありませんが
野球がそういう仕組みのゲームであることは記憶されてよいと思います。
精神論の上では責任を負うのは美しいし常に原因の探求を怠らないのは大事なことですが、なんでもかんでも実力にこじつけるのは危険です。


オマケで、平均君ではなく2007年良かった打者の代表としてヤクルトの青木一人で打線を構成してシミュレーションによるRC27を出すと結果は8.34。
RC27は8.84ですからやや低く出た形です。





・シミュレーションによるXR+を求める

今度は平均君の打線で、1番だけを青木に入れ替えてみます。
この場合の得点率と平均打線との得点率の差が青木が平均的な打者に比べてチームにもたらす攻撃利益だと言うことができると思います。
意味するところはBatting Runs、XR+、RCAAに近くなりますね。
なぜそのように複数のメソッドがあるのにわざわざシミュレートするのかというと、こちらのほうが現実的に野球の仕組みを捉えていることを期待するからです。

前にも得点効率について書いた時に触れたんですが
例えばXRのような係数なんていうのは、本当は環境によって変化するんですよね。
単打の0.5っていうのも固定的に単打の価値があるわけではない。
打席に入った時ある程度走者がいること、単打のあとに後続がある程度打つことなどを期待した上での平均的な寄与が得点数で0.5ということなんだと思います。
仮にある打者以外全ての打者が全打席三振する場合、いくら一人が単打を打っても点は入りませんよね。
そのような場合は本塁打だけが絶対的な価値を持つことになります。
逆に常に走者がいて、自分が出ても必ず帰してもらえるような状況では単打でも0.5を超える得点寄与になってくると思われます。
そのぐらいだと面白いことに単打に対しての長打のアドバンテージというのは低くなってくるはずです。
要は、攻撃イベントの価値のバランスというのはチームの打撃状況によって変わってくるということです。
XRなどは平均的な環境を仮定しての係数なので、「四球と本塁打ばっかりのチームだったらどうなるか」というふうに偏った条件を想定しての試算をするのにも向かないのではないか、と思っています。
(念の為に言うとXRの有効性を否定したいわけではありません。むしろとても有用で素晴らしい指標だと思っています。また、勉強中なので的外れな点があればご指摘頂けると幸いです)

そのような中で、例えばXR+は同じような値だけど一人は長打寄り、一人は出塁寄りの二人がいるとかって場合に
あるチーム環境においてどちらが有効かっていうのはシミュレーションのほうでより適切に求められることではないかと。
そういう意味では具体的に打線を組んだほうがシミュレーションの強みが出て、平均を基準とした値はただのレーティングにしかならないかもしれませんが。

能書きが長くなりましたが青木を1番に加えた場合得点率は4.78になりました。
平均との差の144試合あたり (4.78-4.40)*144 が青木による年間での利得です。
約55点というすごい結果になりましたね。
前述の通り8番や9番もかなり打てるちょっと非現実的な仮定の中での話なんですが。
同じヤクルトの打者でも2007飯原の成績を入れてみると得点率は4.21。年間で27点のマイナスになるといった具合です。



・かるーく打順考察

一応打順というものも仕組みとして入っていますので、打順を考察するものとして機能しないこともないです。
ただ……自動的に考えられる限りの組み合わせを試すというような仕組みを持っておりませんので、現実的にはその筋での有用性は乏しく、そもそも僕のほうも先達の研究結果から「多分、多少の打順の違いでは得点に対してほとんど影響を持たないだろう」と初めから腹を括っております。
コチラのWebサイトでは打順のシミュレータを公開なさっているようです。

ここでは軽く、先ほどの青木を1番に入れたデータを利用して、4番に入れた場合と比較してみようかと思います。

青木1番……4.78点/試合
青木4番……4.71点/試合

うーん、一応、今回のような条件では1番に入れたほうがいいみたいですね。
ホームランバッターではないので走者を溜めて回すことによる利益の増加は薄く、打席を数多く回して出塁する能力を発揮してもらうほうがいいということでしょうか。
ちょっと打順の考察と言えるようなもんじゃありませんが今回はこんなもんで。

ちなみに打順の考え方についてですが、伝統的な「1番は塁に出て、2番は送って、クリーンアップで走者を……」といった考え方に対して、数理統計的な見地からは大まかに言うと「強いやつから打たせろ(出塁率順)」的な意見が多いようです。
チームとしてXRを最大化するようなことを念頭に置いた場合まさしくそのような起用になるはずで、最強打者が1番を打つことになります。
しかし、最も出塁率の高い打者は長距離砲であることも多いです。
この場合走者を帰す能力の高い打者の前にランナーを溜めるということがしにくくなってしまい、だからといって最強打者の打順を下げると当初の考え方とズレます。
最強打者のジレンマとでもいいましょうか、ここの部分が難しいところですね。
まぁ、基本的には良い打者を上位に置くという原則でいけば打順で大差はつかないと思われます。
ちなみに「球を見ていく嫌らしい1番打者」が他の打者にまで影響を与えるなど付加価値的な効能については僕は懐疑的です。無いとは言わないまでも出塁率の高低の重要性の前では問題にならない程度のものなのではないかと考えています。




・4アウトだったらどうなるのか

現在の野球は3アウト・9イニング制で行われています。
だからといって別に「そうじゃなきゃいけない」とは誰も言っていないはず。
前述したように平均得点が4点なのに標準で3点ぐらいブレるっていうのはすごいことです。
それは3アウトという非常に短いタイムリミットで仕切り直しが入ってしまうためで、仕切りがなければ、あるいはもっと少なければ実力が順当に得点数に反映されることが考えられます。
「もっと実力を反映するために4アウト7イニングにしないか?」と誰かが提案したとしても全く不思議ではありません。
ってことで、もしそうしたらどのようになるのかシミュレーションで試してみます。

実際のところ、4アウトだと認識すれば打者の打ち方や守備側の守り方や戦術なんかも変わってくると思われるのですが
考慮に入れるのが難しいのでここまで使ってきたシステムでアウトの区切り方だけ「4アウトで走者状況リセット、1試合7イニング」にしてみたいと思います。

平均打線  1試合平均得点 5.32  標準偏差 3.45
青木打線  1試合平均得点 10.27  標準偏差 4.21

ふーむ、こんなもんか。
アウトあたりの得点で3アウト制と比べて17%ほど増えましたでしょうか。
また、打力の高いチームと低いチームで若干差がつきやすくなっていると言えそうです。
標準偏差に関しても大量得点の機会が増えたりした分絶対値は高くなっていますが、全体の得点に対する運の影響力はやや下がっている……と言えるのではないかと。

想像の通りですが、4アウトの(仕切りが遠い)ほうが打てるチームはのびのびと得点創出能力を発揮して得点数を伸ばすことができます。
逆に言えば3アウト制というのは能力による差のつきやすさを著しく制限しているシステムなんですよね。当然2アウト制よりはマシですが。
僕としては別にイニングあたりのアウト数を増やすことを推進したいとかそういうわけではないのですが
あえて選んでそういうゲームをやっているんだっていうことは、認識しておくのとおかないのとでは見方が変わると思います。
もちろん4アウトから5アウトにしてもシミュレーションの上では3アウトから4アウトの変化と同じベクトルの変化が起きます。





・なんとなくまとめ?

自分で書いていて結構、だから何なんだとも思うのですが、何かの参考になれば。
正直な話シミュレータといってもこの程度のもので僕の活用の頭では大した考察はできないのです。
「シミュレーションによるXR+」なんかは求め方を煮詰めれば確からしい評価方法になるような気はしますが普通のXR+と大差ないでしょうね。
まだ試したいことはチラホラ思いついたりするのですが。まぁ機会があれば追って。

 | HOME | 

プロフィール

管理者:クロスケ

野球全般好きで、プロ野球をよく見ますが特定の球団のファンではありません。
セイバーメトリクス(野球の統計的分析)の話題が多く、馴染みのない方にはわかりにくい内容があるかもしれませんがサイトに体系的にまとめています。

Baseball Concrete



RSSフィード

最近の記事

最近のコメント

カテゴリー

月別アーカイブ