【RCWIN, XRWIN】NPB(2019)セイバーメトリクス野手指標の算出⑥
得点力指標RC, XRに、リーグ平均と比較する観点を加味した、RCAA, RCWIN, XR+, XRWINを算出する。
追加する指標
RCAA/RC+ (Runs Created Above Average)
- リーグの平均的打者と比較してどれだけ多く
RCを稼いだか 
計算式
$RC - リーグRC \times \frac{打席}{リーグ打席}$
RCWIN
- リーグの平均的打者と比較して何勝多く貢献したか
 RCAAをRPW(Runs Per Win)で割ったもの
計算式
$\frac{RCAA}{RPW}$
$RPW = 10 \times \sqrt{\frac{リーグ得点 + リーグ失点}{リーグ投球回}}$
XR+ (eXtrapolated Runs Plus)
- リーグの平均的打者と比較してどれだけ多く
XRを稼いだか 
※ 関係ないですが、XRAA (eXtrapolated Runs Above Average) という呼び方はしないんですかね?そう呼んでるのを見たことないです。
計算式
$XR - リーグXR \times \frac{打席}{リーグ打席}$
XRWIN
- リーグの平均的打者と比較して何勝多く貢献したか
 XR+をRPW(Runs Per Win)で割ったもの
計算式
$\frac{XR+}{RPW}$
$RPW = 10 \times \sqrt{\frac{リーグ得点 + リーグ失点}{リーグ投球回}}$
RPWってなんぞ…?
RCWINとXRWINの計算式に出てきたRPW(Runs Per Win)。
これは、1勝積み上げるのに何点必要か、を表す値。
野球のリーグ戦においては基本的に「得失点差が10積み重なると、1勝上積みされる」という考え方(つまり、RPW=10)。ただこれはあくまで「基本的に」であって、打高投高などによって変化する。
それらを加味して、「統計学的に、該当リーグでは何点で1勝と換算するか」を表すのがRPWで、以下の式で表される。
$RPW = 10 \times \sqrt{\frac{リーグ得点 + リーグ失点}{リーグ投球回}}$
第二項の分数は、イニングあたりの得点と失点の合計(の平方根)、ということになる。点が入りやすいほど、1点が勝敗に与える影響は小さくなり、RPWは大きくなる。
ここでモヤモヤしたのは、交流戦は考慮しなくていいの?という点。
ただ、交流戦を考慮しなければ、リーグ得点とリーグ失点は一致するはず。$2 \times リーグ得点$とかにはなっていないので、交流戦も含めて正直に計算していいだろう、と判断しました。
実装
def rc_xr_plus(hitter, league, rc_xr, league_rc_xr):
    on_base = Decimal(hitter['打席'])
    league_on_base = Decimal(league['打席'])
    if not league_on_base:
        return 0, Decimal('0')
    rc_xr_plus = rc_xr - league_rc_xr / league_on_base * on_base
    return str(rc_xr_plus), raw_rc_xr_plus
def rc_xr_win(hitter, full_league, rc_xr_plus):
    league_pitcher = full_league['Pitcher'][hitter['League']]
    league_hitter = full_league['Hitter'][hitter['League']]
    outcounts = return_outcounts(Decimal(league_pitcher['投球回']))
    if not outcounts:
        return '0'
    runs_per_inning = Decimal('3') * (Decimal(
        league_hitter['得点']) + Decimal(league_pitcher['失点'])) / outcounts
    runs_per_win = Decimal('10') * math.sqrt(runs_per_inning)
    rc_xr_win = rc_xr_plus / runs_per_win
    return str(rc_xr_win)おわり
RC系の指標とXR系の指標って並べて使う必要あるんですかね?改良というならXR系だけでいいような。






