BBANALY プロ野球データ分析

NPBのデータから、野球に関する議論や迷信を検証していくブログです。

野球シミュレータの開発(3)【走塁部分】

この記事は野球シミュレータの開発(2)の続きです。

データ収集完了

 状態遷移のデータ収集が完了しました。アウトカウント、ランナー、イベントの組み合わせの数だけ状態が存在するので、遷移前の状態は、3*8*7(アウトカウントは3通り、ランナーは8通り、イベントは7通り)で168通りが存在します。全て掲載することは難しいので、

の2つの状態に関してのみ、今回は凡例として掲載します。

 1、0アウトランナー1塁からの単打

f:id:hihrois_1104o:20181111151441p:plain

0アウトランナー1塁からの単打による状態遷移と確率

 集計の結果、画像のような結果になりました。*1

   項目はそれぞれ以下のような意味です。

  • aft_outcount ... 単打の後のアウトカウント
  • aft_runner ... 単打の後のランナーの状態
  • count(*) ... 状態遷移の発生数
  • count(*) / 540 ... 全体に対する状態遷移の割合*2

 例えば、表の1行目は、「0アウトランナー1塁からの単打で、0アウトランナー1・2塁になる確率は約70.4(%)」を表しています。

 アウトカウントが増えているものは、ヒットを放ったものの、ランナーが先の塁を狙った結果、アウトになってしまったものと考えられます。

 一番下の行の遷移ですが、0アウト3塁であることから、「1点が入ってなおも0アウトランナー3塁」という状態であると考えることができます。1本のヒットからこのような状況が導かれることはまずないので、おそらくエラーが絡んでの結果でしょう。この例のように、直接エラーの数をカウントしなくても、実際の試合の状態遷移を集計したことにより、エラーによる出塁と進塁も、結果的に再現することができました。

 

 2、0アウトランナー1塁からの凡打

f:id:hihrois_1104o:20181111153324p:plain

0アウトランナー1塁からの凡打による状態遷移と確率

 同様に集計を行い、画像のような結果になりました((2018年NPB公式戦より集計(一部除く)))。表の見方は、1と変わらないため割愛します。

 

まとめ

 上記のような表を168個用意することで関数『走塁』の状態遷移を完成させることができました。思わぬ形で失策と併殺打を計算に含むことができたため、シミュレータの再現度は上がるものと思われます。次回以降で、『打者』と『走塁』を動かし、実際に試合のシミュレーションを行っていきます。

 

<<野球シミュレータの開発(2)                野球シミュレータの開発(4)>>

 

*1:2018年NPB公式戦より集計(一部除く

*2:540という数字はあらかじめ別で計算していました