【wSB】NPB(2019)セイバーメトリクス走塁指標の算出
Page content
盗塁に関しての走塁能力を評価するwSBを算出する。
追加する指標
wSB (weighted Stolen Base runs)
- 盗塁による得点貢献の相対値
- 盗塁および盗塁死に対して得点を付与し、リーグ合計の盗塁/盗塁死を、該当選手と同じ一塁への出塁≒盗塁機会へ換算した値を引く
計算式
$累積盗塁スコア\\\ - リーグ累積盗塁スコア \times \frac{簡易盗塁機会}{リーグ簡易盗塁機会}$
$累積盗塁スコア\\\ = (盗塁 \times 盗塁得点)\\\ + (盗塁死 \times 盗塁死得点)$ $簡易盗塁機会\\\ = (単打 + 四球 + 死球 - 故意四球)$
※ DELTA CREATIVEを参考に、盗塁得点は0.18、盗塁死得点は-0.32で計算する。
実装
STEAL_SCORE = Decimal('0.18')
FAILED_STEAL_SCORE = Decimal('-0.32')
def _wsb_part(record):
steal_score = Decimal(record['盗塁']) * STEAL_SCORE + Decimal(record['盗塁死']) * FAILED_STEAL_SCORE
steal_chance = single(record) + Decimal(record['四球']) + Decimal(record['死球']) - Decimal(record['故意四球'])
return steal_score, steal_chance
def wsb(hitter, league):
steal_score, steal_chance = _wsb_part(hitter)
league_steal_score, league_steal_chance = _wsb_part(league)
if not league_steal_chance:
return '0'
wsb = steal_score - league_steal_score * steal_chance / league_steal_chance
return str(wsb)
最新の成績は以下から閲覧できます。
おわり
UBR
(Ultimate Base Running)という、盗塁以外での走塁による得点貢献を評価する指標もある。
が、例によって算出が困難。