NPBでPitch Valueと環境中立的Pitch Valueを計算する

 web上に置いてあるデータを使ってNPBのPitch Valueを計算できないかと思って書きました。

Pitch Value計算に必要なデータ

カウント別得点価値を用意する

 Pitch Value計算のためにはまずカウント別得点価値を用意します。NPB版のカウント別得点価値はGods do not answer letters.さんが載せてくれています。

https://ahoudata.hatenadiary.jp/entry/2018/01/13/000000  より引用

※ちなみにリンク先でも説明されていますが、このカウント別wOBAは、そのカウントで打席結果があった際の成績だけではなく、そのカウントを経過した全ての打席が含まれています。カウントを経過した打席を使う理由については以下のリンクが詳しいです。
http://sleepnowinthenumbers.blogspot.com/2017/12/blog-post.html

イベント別wOBAvalueを用意する

 イベント別wOBAvalueはBaseball Lab Archivesに掲載されています。

全体を1.24倍すると大きさがほぼ出塁率の平均に合うため、そうして調整すると計算式は以下のようになる。

 wOBA(NPB版)=(0.69×(四球-故意四球)+0.73×死球+0.92×失策出塁+0.87×単打+1.29×二塁打+1.74×三塁打+2.07×本塁打)/(打数+四球-故意四球+死球+犠飛)

http://archive.baseball-lab.jp/column_detail/&blog_id=8&id=97

以下、表にします。

http://archive.baseball-lab.jp/column_detail/&blog_id=8&id=97  より表作成

 打球別得点価値はBaseball Lab Archivesに掲載されています。

http://archive.baseball-lab.jp/column_detail/id=17  より引用

 この打球別の得点価値の中央値をwOBAvalueに加工します。計算手法としては 得点価値+アウトの絶対値(0.26)×wOBAscale(1.24)です。以下、計算したものを表にしました。

http://archive.baseball-lab.jp/column_detail/id=17  より計算

Pitch Value計算方法

カウント変化時

 まずカウント変化時について説明します。カウント変化時とは例えば0B2Sからボール球を投げて1B2Sになった場合などのことです。これは先程のカウント別得点価値を用います。

https://ahoudata.hatenadiary.jp/entry/2018/01/13/000000  より引用

 0B2Sからボール球を投げた場合はBallの得点価値である0.021を加算します。ストライクの場合は-0.154を加算します。これを全てのカウント変化時について行います。2Sからのファールの場合はカウント変化なしなので0です。

打球・死球発生時

 打球・死球発生時は打球・死球の結果のwOBAvalueからカウント別wOBAを引き算したものをwOBAscale(1.24)で割りイベントの得点価値を算出します。

https://ahoudata.hatenadiary.jp/entry/2018/01/13/000000  より引用
http://archive.baseball-lab.jp/column_detail/&blog_id=8&id=97  より表作成

 例えば0B2Sから単打が発生した場合、単打のwOBAvalueである0.87からカウント0B2SのwOBAvalueである.200を引き算しwOBAscale(1.24)で割ります。

(0.870-0.200)÷1.24=0.54

 これがカウント0B2Sから発生した単打の得点価値です。以下、表にします。

打者と投手で値を調整する

 以上の得点価値の変動の計算を全球種に対し行い総和を出したものがPitch Value(球種の得点価値)となります。ちなみにこの時点では打者にとっての得点価値となっています。一般的にPitch Valueはその選手にとって価値がある場合に正の値になるよう調整されるため、打者の場合はそのまま、投手の場合は算出された値に-1を掛け算してマイナスの場合は正の値になるよう変換します。

 例えばPitch Valueの総和が -10.0(平均より得点の見込みを10点減らした場合)、打者の場合はこのまま-10.0をその選手の球種の得点価値とします。
一方投手の場合は-1を掛け
-10.0×(-1.0)=10.0
10.0をその投手がその球種で防いだ価値とします。

レートスタッツ(PV/100)に変換する

 ここまでは得点価値の変動の総和について書きましたが質を見るためにレートスタッツに変換します。まずPitch Valueを総投球数で割り100を掛けます。こうすることでその球種100球あたりの得点価値に変換します。

例えばPitch Valueが2.50、その球種の総投球数が200の投手の場合、

2.50÷200×100=1.25 となります。

expected Pitch Value計算方法

打球結果を実際の打席結果でなく打球の得点価値を用いる

 ここまでは一般的なPitch Valueの計算方法について説明しました。ただ前述のPitch Valueは球種の実際の得点価値の変動をあらわせるものの、その球種本来のスキルを表したものとは言い難いです。というのも、単年のPitch Valueは打球結果への依存度が非常に強いという特徴があります。セイバーメトリクスではフィールドに飛んだ打球が安打になるか否かについて投手はほとんど関与できないとされています。また、被本塁打についてもフライを打たせるか否かまでは関与できるものの、打たれたフライが本塁打になるか否かはほとんど関与できません。そのため、前述のPitch Valueを使うと球種の価値が打球の偶然性に大きく左右されます。

 例として2021年の国吉佑樹のカットボールの100球あたりのPitch ValueをDeNA時代とロッテ時代で比較すると1.02 Essence of BaseballではDeNAは-2.56と3.94となっています。こうして見るとDeNA時代は悪かったPitch Valueがロッテで大きく改善されたように思えます。ただしその内訳を見ると大きく印象が変わります。

 国吉のカットボールを移籍前と移籍後で比較すると、比較的サンプルサイズが小さくても参考になるZone%、SwStr%、O-Swing%ではDeNA時代のが軒並み良いです。一方で偶然性に強く左右されるBABIPではロッテ時代は.227とかなり極端に良い値になっています。これにより内容的にはDeNA時代のが優れているにも関わらず、ロッテ時代の方がPitch Valueが優れているという事態が起きています。

 これを改善する方法としては打球結果については安打や凡打等の実際の打席結果を使うのではなく打球種類の得点価値を用います。

xPV計算方法

 まずカウント変化時、死球発生時は通常のPitch Valueと同様に計算します。計算を工夫するのは打球部分です。まず打球の得点価値をwOBAvalueに変換します。

http://archive.baseball-lab.jp/column_detail/id=17  より引用

 この打球別の得点価値の中央値をwOBAvalueに加工します。計算手法としては 得点価値+アウトの絶対値(0.26)×wOBAscale(1.24)です。以下、計算したものを表にしました。

http://archive.baseball-lab.jp/column_detail/id=17  より計算

 打球別wOBAvalueを出したら後は打球発生時には、(打球種類のwOBAvalue - カウントのwOBAvalue)÷1.24で得点価値を算出します。

例えば0B0Sでゴロを打った場合、
(0.244 - 0.321)÷1.24 = -0.062 
これが0B0Sから発生したゴロの得点価値となります。

以下、表にします。

 他は通常のPitch Valueと同様に野手の場合はそのまま、投手の場合は-1をかけます。そしてレートスタッツとしたい場合は出てきたvalueの総和を総投球数で割り100を掛け100球あたりの得点価値とします。

 このように、本来あるべきだったPitch Valueとして計算したPitch Valueということで仮にexpetected Pitch Value、略してxPV、xPV/100と名付けます。

打球データが手に入らない場合の代用

 NPBでは1球データが手に入らないことが考えられます。そこで代用として打球についてはその期間の打球の価値で統一する方法を考えました。方法としては集計期間の打球のwOBA value(wOBAcon)を用います。

 2021年のNPBのwOBAconは.341となっています。打球の価値をゴロ・フライ・ライナーに関わらずこのwOBAcon valueを用います。

 問題はこの方法が球種のスキルをどの程度表せるかです。翌年のPV/100をこの代用xPV/100を含めた各PV/100でどの程度推測できるか比較してみます。

 MLB2017-2021のデータを用い各投手が各年度で500球以上投げた球種についてある年の各種PV/100から翌年のPV/100を単回帰分析します。

 決定係数を見るとPV/100の予測には通常のPV/100より打球部分については工夫をした方が良さそうだということがわかります。驚くべきことに?打球部分についてxwOBA valueや打球タイプ(ゴロ・フライ・ライナー)で分けてwOBA valueを設定したxPVと比較しても、打球をその期間のwOBAconで一律に設定したxPVでも予測の精度がほとんど変わりません。球種の価値を決めるのはストライク・ボールカウントの増減が大部分を占め、打球部分は一律に価値を設定してもほとんど問題はないようです。

 年度間相関についても見てみます。

 年度間相関ではそれなりに強い相関があります。スキルの推定という意味ではむしろこちらのxPVの方が役に立つ可能性もありそうです。

 以下、valueを表にします。

 とりあえずNPBについてはこちらのxPVで代用してみて良いと思います。


この記事が気に入ったらサポートをしてみませんか?