xwOBAは打球の質「だけ」を測る指標ではない。(ExcelでxwOBAを計算してみる)

MLBにはxwOBAという指標があります。日本のメディアでxwOBAを説明する際には「実際の打席結果ではなく打球の速度や角度などから打球の質を推定して評価する指標」といった打球の質を扱った指標かのように言われることが多いようです。


【MLB】苦しい時期のダルビッシュを救った数式「xwOBA-wOBA」
今季のサイ・ヤング賞は誰の手に?MLB公式が「スタットキャスト」で候補者を分析
前田健太、先発での“復調“へ好材料 指標は良好「もっといい成績でも…」

これらの説明の仕方は大きく間違っているとは言えませんが「xwOBAは打球の質のみで評価する指標」という勘違いを引き起こしかねない説明だと思います。
xwOBAは打球の質を使っていることは確かですが非打球の結果も含んでいるからです。

日本語でxwOBAを解説した記事は既にsninさんが書いているのですが
今回は実際にExcelでxwOBAを計算することでxwOBAの計算方法を理解してもらおうという趣旨で記事を書きました。

xwOBAを理解する前にはまずwOBAとは何か、ということから理解しなければなりません。wOBAについては以下のページが詳しいです。

DELTA社の1.02のwOBA解説ページ
イチからわかるwOBAのすべて

それでは実際にxwOBAをExcelで算出してみます。まずはcsvファイルを取得します。
Baseball SavantのStatcast Searchのページを開きます。

今回は例として2019年のマイク・トラウトのxwOBAを算出してみようと思います。

画像1

csvファイルを取得したらExcelでcsvファイルを開きます。
開くと大量のデータが出てくるかと思いますがxwOBAの計算に使うのはわずかなデータのみです。

画像2

BSの列に「estimated_woba_using_speedangle」という項目がありますがこれは「打球の速度と角度を使って推定したwOBA」という意味です。打球がヒットになった二塁打になった、アウトになった、といった打席結果ではなく打球の速度と角度からwOBAのvalueを推定したものです。BTの列の「woba_value」は実際の打席結果を基にしたwOBAvalueです。そしてBUの列の「woba_denom」とはwOBAの分母(denominator)の事です。

ここからxwOBAを計算しようと思いますがもしxwOBAが打球の質「だけ」を測る指標だとしたら使うのは「estimated_woba_using_speedangle」だけということになります。
実際にこれだけを使って算出したらどのような値になるでしょうか。
まずデータタブからフィルターをつけBSの列でnull(空白)のチェックを外し打球のデータだけにします。

画像3

続いてBSのデータを全てコピーし新しいシートに貼り付けます。
新しいシートに貼り付けたらAVERAGE関数で平均をとります。
これで計算されるのは
推定される打球の価値の総和/打球数 です。

画像4

すると以下のような値になります。

画像5

.540という値になりました。
Baseball Savantのマイク・トラウトのページに載っている2019年のxwOBAの値と比較してみましょう。

画像6

こちらのページに載っているトラウトのxwOBAは.461であり大きく離れています。

よくよく見るとこの数値はxwOBAの隣にあるxwOBAconという指標と近い値をしています。実はこれまでやってきた計算方法で計算していたのはxwOBAconという指標です。

xwOBAconとは打球に限定したxwOBAのことです。(conはcontactのことです)どれだけ価値のある打球を放っていたかを実際の打席結果でなく打球の角度と速度から推定した指標、といったところでしょうか。(わずかに差がある理由はわからないので詳しい方は教えてくださるとありがたいです。)

それではxwOBAの計算を行いましょう。xwOBAはxwOBAconと異なり非打球の結果を計算に含みます。
式としては

(打球の価値の総和+非故意四球×非故意四球のwOBAvalue+死球×死球のwOBAvalue)/wOBAの分母

と言った感じでしょうか。

まずフィルターでBUの列の「woba_denom」の「1」を選択します。

画像7

こうすることでxwOBAの対象になるものだけが表示されます

続いてフィルターでBSの列の「estimated_woba_using_speedangle」の「null」を選択します。

画像8

選択したらBS7のセルに「=BT7」と入力しnullだったセル(非打球結果のセル)にwOBAvalueを入力し、あとはオートフィルで下まで入力します。

画像9

nullのセルにwOBAvalueを入力してあげたらBSのフィルターをクリアします。

あとはBSに入っているデータをコピーし新しいシートに貼り付けAVERAGE関数で平均をとれば完成です。

画像10

.459という値になりました。トラウトのページにあるxwOBAの値である.461とかなり近い値になっています。(なぜわずかに差が出るのかはよくわかりません、詳しい人がいたら教えてください)


まとめ

・xwOBAは打球の質「だけ」を測る指標ではなく非打球の結果も含む。
・打球の質だけを測る指標はxwOBAconという別の指標。

最後にxwOBAはなぜ非打球の結果を含むのか、といった問いに答えているsninさんの言葉を引用して終わりたいと思います。

そもそも、xwOBAが何の略語か、ということを考えると、これらを含めることは必要なことだったと思われます。xwOBAはexpected wOBAの略であり、「本来あるべきだったwOBA」のような意味合いになっています。このため、wOBAが含んでいるイベントであり、またかなり大きい影響を持つ四球や三振を含めないと、あるべきだったwOBAとはとても言えないような指標になるはずです。

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