⚖️
イロレーティングにおいて勝率が五分五分ではない場合の計算方法
野球での選手間のイロレーティング適用方法を考える
課題
- 勝率(対戦結果)が片方に偏っている(打率 2 割 5 分ぐらいが普通)
- 試行(試合/打席)回数が人によって異なる(年数)
- 同じレート変動率では、打者が負ける回数が多いため、試行回数が多いと好打者でもレートが下がり続ける
最適化のために試したこと その ①
感覚で係数を調整する
- 練習試合を除外する
- 四死球を除外する
- 対戦成績的にはどちらかに軍配が上がるが、純粋な投手と打者の関係性に影響されない(投手の制球力に依存するところが大きい)
- レート変動率を調整する
- 打者が負けるパターンが多いので、負けたときの変動幅を小さく、勝った時の変動幅を大きく
- 投手有利なので打者の変動幅に対する比率を抑える
//投手の勝ち
rateMap[store[row][col].player_id].battingRate =
rateMap[store[row][col].player_id].battingRate - 4 * wba;
rateMap[store[row][col].pitcher_id].pitchingRate =
rateMap[store[row][col].pitcher_id].pitchingRate + 16 * wba;
//打者の勝ち
rateMap[store[row][col].player_id].battingRate =
rateMap[store[row][col].player_id].battingRate + 32 * wba;
rateMap[store[row][col].pitcher_id].pitchingRate =
rateMap[store[row][col].pitcher_id].pitchingRate - 16 * wba;
最適化のために試したことその ②
期待値を求める
数あるデータの中から、平均付近にいる打者モデルをもとに、
その打者が平均を維持すると仮定する。
三振 | 振り逃げ | 四死球 | 安打 | ゴロ・フライ | |
---|---|---|---|---|---|
打者から見た確率 | 0.512 | 0.048 | 0.048 | 0.195 | 0.243 |
レート変動 | -2B | +A | +A | +2A | -B |
レート上昇/下降の係数を A,B とおくと、平均を維持する場合の期待値は 0 であるから、
つまり、打者に関してはこの比率でレート変動を行えばよい。
同様に、捕手の場合はこのような捕手モデルを使用し、
三振 | 振り逃げ | 四死球 | 安打 | ゴロ・フライ | PB | |
---|---|---|---|---|---|---|
捕手から見た確率 | 0.372 | 0.047 | - | - | - | 0.186 |
レート変動 | +C | -C | 0 | 0 | 0 | -2D |
が成り立つので、
と見做せる。
同様に、投手の場合はこのような投手モデルを使用し、
三振 | 振り逃げ | 四死球 | 安打 | ゴロ・フライ | |
---|---|---|---|---|---|
投手から見た確率 | 0.406 | 0.047 | 0.171 | 0.233(50%/30%/6%/12%) | 0.189 |
レート変動 | +E | 0 | -F | 1塁打のとき-F,2塁打以上は-1.5F | E |
同様に
と見做せる。
この比を用いてレート計算を行うと、
打者レートの平均: 1512、投手レートの平均: 1494、捕手レートの平均: 1515となった。
まとめ
イロレーティングにおいて、勝率の前提が五分にならない場合、構築したレート加減算モデルで平均的なモデルをもとに期待値0になるようなレート変動を行えば、ある程度確からしい結果を得ることができる。
Discussion