2020年8月30日日曜日

平均への回帰に関する古典的な議論

平均への回帰とBABIP/被BABIP (or DIPS/FIP; 注1) とつなげるような記事は洋の東西を問わずたまに見かける気がします。僕自身はどの指標についても、全体の分散を構成要素の分散に分解するだけとしか考えていないので、そもそもイマイチなにがしたいのかが理解できない、という感じになります (注2)。僕自身の感覚は下にリンクを貼ったツイッターのスレッドである程度説明されていると思いますが、真面目に説明すると大変そうなので今回はやりません。

https://twitter.com/sleep_in_nmbrs/status/1175600076581818369

https://twitter.com/sleep_in_nmbrs/status/1208642157407375360

代わりに今回はそのあたりの基礎となる、有名な古い文献を紹介しておきます。暇な人は読んでみてくださいというだけの内容です。

Efron and Morris, Stein's Paradox in Statistics, Scientific American (1977; 注3) https://statweb.stanford.edu/~ckirby/brad/other/Article1977.pdf

ここでは望ましい推定量 estimator  (わからなければ予測値みたいなもんだと思ってください) を得るときに、観察された平均値に対して適用される平均値へと向かう "縮小" が中心的なテーマとなっています。これを説明するための材料として、当時のMLBの打率データを使って、シーズン途中の成績からシーズン終了時の成績を予測することを試みています。言うまでもなく平均値は記述統計の代表値として望ましい性質を持っています。また、少なくともいくつかの分布に従う事象について、観察された平均値は最尤推定量になり、推定量としても有用だと思われます (注4)。では、それがどういうときに (ある種の判断基準から見て) 他の縮小を含んだ推定量に比べればあまり有用でなくなるか、というような感じの話を一般向けに説明したエッセイです。一部スクリーンショットで引用します。このブログを見ている暇人なら、よく見た形の式だと思う人もいるでしょう。 


最後の方の"全ての (各打者について) 測定された打率を集めたものによって決まる"、というのは、野球のデータに関して言えば、データ生成の確率的な過程に依存するランダムな要素で生じる分散の大きさに加えて、個人差に関する分散の大きさが影響するよ、というようなことですね。その後に書かれている、輸入車の割合の推定に野球選手の打率成績を入れると推定が改善するかもとかのあたりは、そういう単純な感覚の向こう側な感じがして面白いです。

このように一般的な統計学的な概念 "縮小" の例として野球のデータは採用され (注5)、そのような考え方は現在ではfangraphsのsample sizeなどで説明されているような考え方の基礎へと繋がっていると言えるんじゃないかと思います。

https://library.fangraphs.com/principles/sample-size/

とはいえ統計学者が何もかもを見透かしていたかといえば、おそらくそうではない。投手BABIPについて投手のtalentがもたらす影響が驚くほど小さいということは、Voros McCrackenが"How Much Control Do Hurlers Have?"で扱うまでは注目されなかったらしい (注6)。

https://www.baseballprospectus.com/news/article/878/pitching-and-defense-how-much-control-do-hurlers-have/

このあたりは概念の具現化として扱おうする統計学者たちと、そのスポーツを理解したいという欲求で動いている人たちの違いが出たのかもしれません。

_______________________________________________________________________

注1

DIPS/FIPSについては、とりあえずなんの略なのかを考えてほしいなあ、と思うことが多いです。Defense-Independent Pitching StatsもFielding-Independent Pitchingも、これら考え方のコアとなるアイデアの方向性が名前によく出ていると思うのですが (細かい違いはよくわらかないまでも)。

注2

何かの指標を偶然の影響を強く代表するものであるとしたり、真値からの誤差を示すものである、と考えるような方法論からのwOBAとかの推定値と、シンプルに縮小/回帰による推定量 (年度間相関の予測値でもいい) を比較した例ってあるんでしょうかね。情報量を足している可能性はあるので、改善してもおかしくはないと思うんですが。

注3

最近出たEfron & Hastieの教科書の訳本買いましたが、キツイ。 https://www.kyoritsu-pub.co.jp/bookdetail/9784320114340

注4

最尤法によるパラメータ推定の意味と具体例, 高校数学の美しい物語

https://mathtrain.jp/mle

注5

EfronとMorrisが野球のデータを採用した経緯などは、以下のAlbertによるMorrisのインタビューなどで知ることができます。MorrisはBaseball Abstractの初版の広告を見て買った物好きの一人らしい。

Interview with Carl Morris https://chance.amstat.org/2014/09/carl-morris/

MLBの打率の例はEfron & Hastieの上の教科書でも出てきます。John K. Kruschkeによるベイズ統計学の入門書の階層モデルの説明でもMLBの最近の打率が採用されています。

http://doingbayesiandataanalysis.blogspot.com/

David Robinsonは野球のデータで経験ベイズの入門的な教科書を書いてくれています。無料でももらえますが、金は払ってあげましょう。

 Announcing the release of my e-book: Introduction to Empirical Bayes

https://www.blogger.com/blog/post/edit/5159336789481103711/7443628894981653992

注6

投手がBABIPを制御できるケースがあるらしいということはTom Pettitが大昔に詳しく書いてくれています。

Tom Tippett, Can pitchers prevent hits on balls in play? (2003) https://diamond-mind.com/blogs/baseball-articles/77333188-can-pitchers-prevent-hits-on-balls-in-play

比較の多重性やバイアスを無視した議論とか、一部だけを取り出して議論をすすめるあたりあまりできの良いものではないというところですが、ナックルに関してはよく知られていますし、自分でもある程度確認したことがあります。今の打球データを使えば、全体の傾向に関してもっとうまく説明できる可能性はありますが、いずれにせよ表面的にほとんど差がなさそうに見えることをどうやってがんばってその説明をつけるか、ということであって、効果の小ささから逃れることはできないでしょう。そうするとかなりのサンプルサイズは必要なはずで....僕はまだいいかな。

よくわかっている部分としては基本的には、投手の球種や投手の打球タイプ傾向が影響するのはある程度わかっています。球種に関しては顕著なのはナックルボーラーで、ナックルのBABIPが低いこと、ナックル以外 (より正確に言えばBABIPが高めであるFFやFTの) の投球割合が小さいこと、でBABIPが低めになると大まかには理解できます。一時これらの点に関して、田中がある種のナックルボーラー的な要素があることをJeff Surrivanが繰り返し指摘していました。

Jeff Sullivan, Masahiro Tanaka Is Beyond McCullersing (2018) https://blogs.fangraphs.com/masahiro-tanaka-is-beyond-mccullersing/

Jeff Sullivan, Masahiro Tanaka Might One Day Kill the Fastbal (2017) https://blogs.fangraphs.com/masahiro-tanaka-might-one-day-kill-the-fastball/

Jeff Sullivan,The Reality of Masahiro Tanaka’s Fastball (2015) https://blogs.fangraphs.com/the-reality-of-masahiro-tanakas-fastball/

Jeff Sullivan, Masahiro Tanaka Abandons the Fastball (2015) https://blogs.fangraphs.com/masahiro-tanaka-abandons-the-fastball/

これついては昔なにか書こうかとちょっと調べていて、彼の決め球であるSFとSLは一般的に言ってBABIPはやや低めで、田中のそれはさらに低いかもしれず、かつSF/SLの割合も通常の投手より多く、速球系の割合がかなり低い傾向があったと思います (ややあやしい記憶)。しかし、SL/SFのBABIPはガチナックルボーラーのナックルに比べれば高いし、たまに投げるFTのBABIPが高いのが致命的で、目立つほど (FIPからの差を真剣に考えなければならないほど) BABIPを下げるのは難しそうな印象でした。

ちなみに他にもBABIPが低くなりかねない属性を持った"投手"カテゴリーがあるかもしれず、それは本来打者である選手が投球を行った場合です。

https://twitter.com/tangotiger/status/1021188671490461696   

> GB rate for non-pitchers-as-pitchers only 29%, launch angle of 21.1 degrees, compared to pitchers of 45%, 11.7 degrees, respectively. 

> So if you want to keep your BABIP low, give up alot of flyballs and make sure alot of them are really hit hard

"他の条件が同じなら" BABIPが下がるのはいいことなんですが、BABIPが下がることは "他の条件が同じではない" ことを示唆している可能性を考える必要があるでしょう。

投手のBABIPの構成要素について、それぞれの影響の大きさを推定する試みもTangoらによって何度かなされています。以前ブログで紹介した記事はその一つで、ランダムな要素に加えて、投手、守備、球場あたりの影響を考えた推定になっています。

TangoによるxBABIPを利用した投手被BABIPの分解についてのメモ

https://sleepnowinthenumbers.blogspot.com/2020/04/tangoxbabipbabip.html

2020年4月26日日曜日

TangoによるxBABIPを利用した投手被BABIPの分解についてのメモ

TangoがBABIPの投手守備の責任範囲の分解について、xBABIP系の指標 (打球の角度/速度 + 一部では走力で推定された確率/価値) を利用してやってみる的な記事を書いてくれていました。

Tango, Splitting responsibility between pitchers and fielders, Sunday, April 05, 2020
http://tangotiger.com/index.php/site/article/splitting-responsibility-between-pitchers-and-fielders

今回はこれの議論を詳しくなぞってみます。どこから数字を出してきたのかも不明な点が多く、また近似的な計算ですが、面白いと思いました。訳ではないです (元記事より明らかに長い)。読んでわからなかった日本人向けの日本語の解説といったところ。現時点では結構問題もありうる議論のような気もしています。途中の数字は実測値かどうかは確認していません。

使っている計算自体は極めて単純な計算です。使っている統計学的な性質も
1. 二項分布の分散の公式 p * (1-p) * N
2. 分散 = SD^2
3. 独立変数の分散の加法性
だけです。(ただし、腑に落ちる、的な感覚としてはなかなか難しいものがあるのかもしれない。この辺は変数が分布であることを明示的に意識して、乱数なんかでモデル化してみるとわかりやすいと思う。)

議論の大枠としては以下のような話になります。
1. 実際に測定されたばらつき
が、
2. 選手の能力
3. 偶然で生じる影響
4. 球場ごとの性質
で構成されていると考えてみる。
1, 3, 4は実際のデータから計算、あるいは推定が可能であり、それらを使って2. 選手の能力を推定してみる。

このような方針で計算してみたときに、打者について見ると、打球が安打になったかどうか (BACON) の能力差は、打球の角度と速度から推定されたxBACONの能力差と一致する。投手について見ると、打球のうちHRにならなかったものの打率 (BABIP) は、打球の角度と速度から推定されたxBABIPの能力差と一致しない。投手で見られる乖離は、チームの守備 (Fielder+Fielding alignment) による効果とみなすことができるかもしれない。そのように仮定すればその効果の大きさは計算可能であり比較可能だ、というような流れになります。

# 打者BACONとxBACON

まず打者のBACON (batting average on contact) を分解していきましょう。
BACONは普段あまり使わない指標だと思います。似たような指標であるBABIP (Batting Average Balls in Playの略) では無視されるHRを含んでいる点に注意。Fangraphsからだいたいの数字を計算してみましょう。
https://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=c,4,6,11,12,13,21,-1,34,35,40,41,-1,23,37,38,50,61,-1,111,-1,203,199,58,7&season=2019&month=0&season1=2015&ind=0&team=0,ss&rost=0&age=0&filter=&players=0&startdate=&enddate=

HR数はシーズンによって違うが5000-6700で、Hの中での割合にすると12-15%となり、BABIPの計算ではこれらの値が分子でも分母でも除かれている。BABIPは0.3くらいなのでHRを無視しないで入れると0.35くらいになりそう (適当)。実際には、本文の後の方で0.343と答えを書いてくれているのだがそれに気づかずにFangraphsで見積もってしまったので、せっかくなのでそっちを使います (ほとんど影響はないと思います)。

二項分布に従う事象 (打球数 n=294, BACON = p = 0.35) の安打数の分散は公式を利用して以下で求まります (打球数はたぶん対象にした打者の打球数の調和平均?)。
0.35 * (1-0.35) * 294 = 66.885
ここで分散 = SD^2からSDは
sqrt(66.885) = 8.18
これを打球数あたりに戻すとだいたい0.028。
8.18/294 = 0.0278...
therefore we can establish that Random Variation would account for a spread of 28 points  

以下では同様に打球あたりのSDや分散を使っていきます。

ここで独立した2つの変数、例えばaとb、の分散には以下の関係が知られています。
Var(a+b) = Var(a) + Var(b)

実際の観測値 (Observed) が
1. 偶然で生じた結果の違い (Random Variation)
2. それ以外の要因 (とりあえずCatch-allとしましょう)
の無関係な2つの要素の足し合わせで構成されていると考えてみましょう。
上の分散の加法性から、
Var(Observed) = Var(Random Variation)+Var(Catch-all)
と表すことができそうです。

Var(Observed)が0.04だったとしましょう (たぶん実測値?)。
If we observe a 40 point spread
そして、SD(Random Variation)は上で計算した0.028です。

これらの数値と上の式からVar(Catch-all)が計算できます。
Var(Catch-all) = Var(Observed) - Var(Random Variation) = 0.04^2 -0.028^2
SDにするためにsqrtします。
sqrt(0.0016 - 0.000784) = 0.2856...
これがSD(Catch-all)となります。
Tangoによる本文では0.29となっているので以下は丸めてそちらを使います。

ここでさらにCatch-allを分解します。
Catch-allが能力差 (True Talent) と球場の効果 (Park) で表現してしましょう。これらの2つの要素は無関係であるとします。
SD(Park) = 0.013がTagoから与えられたのでその値を利用します (実測値?)。
ここで分散の加法性から以下のような関係が成立します。
Var(Catch-all) = Var(True Talent)+Var(Park)
変形すると
Var(True Talent) = Var(Catch-all) - Var(Park) = 0.029^2 - 0.013^2 = 0.000672
よってSD(True Talent) = 0.0259
In other words, the TRUE TALENT spread in BACON for batters is one standard deviation = 0.026.

次にxBACONで同じような手順でTrue Talentを計算します。
これはxBA (batting averageの略) 的な、打球角度と打球速度から求めた値だと思われます (現在ではx系の指標では、GBについては走力も入っているはず)。
同様にCatch-allがTalentとParkで構成されているとします。
独立変数の分散の加法性は変数を増やしても成立します。
Var(Observed)  = Var(True Talent) + Var(Random Variation) + Var(Park)

Tangoから
SD(Observed) = 0.031
SD(Random Variation) = 0.017
SD(Park) = 0.006
が与えられました。

xBACONではSD(Observed)もBACONより小さいのですが、SD(Random Variation) やSD(Park)も小さいのが重要です。SD(Random Variation)については、BACONの場合 0 or 1を取るので分散が大きくなりますが、xBACONの場合0-1の連続的な値を取れるので分散が小さくなる。SD(Park) については、球場の形状 (大きさや非対称性) が無視されるためばらつきが小さくなると理解できます。

上の数値からTrue Talentの分散はSDを計算します。
Var(True Talent) = Var(Observed) - Var(Random Variation) - Var(Parks)= 0.031^2 - 0.017^2- 0.006^2
SD(True Talent) = sqrt(0.000961 - 0.000289 - 0.000036) = 0.0252
本文の0.026とはわずかに一致していない気もしないでも無いですが、まあいいでしょう (寛容)。

ここまでが打者のBACONとxBACONのSD(True Talent) がほぼ一致している、というような議論の流れになります。いったん整理しましょう。
BACONとxBACONについて:
実測値 (Observed) のばらつき
偶然で生じた結果の違い (Random Variation) のばらつき
球場の影響 (Park) のばらつき
を利用してTrue Talentのばらつきが計算できました。結果をまとめてみます。

BACON
SD(Observed) = 0.04
SD(Random Variation) = 0.029
SD(Park) = 0.013
SD(True Talent) = 0.0259
xBACON
SD(Observed) = 0.031
SD(Random Variation) = 0.017
SD(Park) = 0.006
SD(True Talent) = 0.0252

観測値されたSDについて見ればそれなりに違いは大きい (0.04 vs 0.031) のですが、どちらの指標でもTrue Talentはそれよりは割合としてもかなり小さくなり誤差の範囲かな?ぐらいの違いになりました (0.0259 vs 0.0252)。

少し話がそれますが、これらの数値の解釈について説明しておきます。True Talentの計算には分散の加法性を利用しましたが、ここではSDでまとめています。分散もSDもいずれも変数のばらつきの大きさを示すような統計量です。分散は測定値と次元が一致していないので、その数値を見てもその意味を解釈することが難しいという問題があるのですが、SDを使うと測定値と次元が一致するため解釈が容易になります ( https://bellcurve.jp/statistics/course/5924.html )。上のまとめの数字が実際に正しことを仮定してみましょう。この場合、BACONについて見れば、全体平均より2 SDぶんだけ優れた選手がいればそのBACONは0.0518 (2 SD = 2 * 0.0259) だけ高くなるということです (他の影響を無視すると、あるいは他の影響が完全に平均的であるとすると)。仮にTrue Talentが正規分布であれば、正規分布の性質を利用することで平均より2 SD優れた選手は能力から上位約2.5%の選手と理解することもできます。また、BACONではSD(Random Variation) はSD(True Talent) よりも影響が大きく、平均より2 SDぶんだけ偶然に恵まれた選手は 0.058だけ高くなる、ということになります。一方、xBACONではSD(True Talent) は他の要素のSDより大きくなっています。能力が2 SD優れた選手は0.05程度の上昇がありますが、偶然の影響で2 SD恵まれても0.034にしかなりません。おそらく、x系の指標では偶然や球場の影響が小さくなっていることが上のまとめで表現されていると見ることができるでしょう。

# 投手BABIP vs xBABIP

次に、投手のBABIPとxBABIPについて見ていきます。ここではTrue Talentの推定結果がやや乖離があるという話になっていきます。個人的には打者でBACONを、投手でBABIPを使っているのはちょっと気になりますが、HR/打球は打者では大きく差がある、投手ではそれほど差が大きくない、という一般的な性質を考えれば、理解できるところです。つまり、打者でHRを無視すると意味のある情報をあえて捨てることになり、投手でHRを入れると偶然生じたノイズをわざわざ入れてしまうことになる (打球数がものすごく大きければ除けるのかな、たぶん)。

で、投手についてでした。SD(True Talent) について, BABIPから求めた値が0.017であり, xBABIPから求めた値が0.013であるとまず提示しています。これは割合としてみればそれなりに大きな差であり、打者でのBACONとxBACONで差が小さかったことと違いがあると指摘しています。この差に関連する大きな要因はチーム、特に守備だと思われます (打者は試合ごとに異る守備の影響を受けるので影響が平均化されやすいが、投手は基本的に同じ守備の影響を受け続ける)。そこで、残りの要素を守備 (守備力 (?) +守備位置) から由来したと仮定します (注)。

Var(True Talent for BABIP)  = Var(True Talent for xBABIP) + Var(Fielder+Field alignment)
なので
Var(Fielder+Field alignment) = Var(True Talent for BABIP) - Var(True Talent for xBABIP) = 0.017^2 - 0.013^2 = 0.00012
SDにすると
SD(Fielder+Field alignment) = sqrt(0.00012) = 0.011

BABIPに関してまとめると以下のような関係になります。ここでのSD(True Talent) はxBABIPから得られたもので、すでに説明したようにBABIPで得られた投手のBABIPを制御する能力 (True Talent) から守備の影響を除いたものと仮定しています。

BABIP
SD(Observed) = 0.036
SD(Random Variation) = 0.029 (250打球)
SD(Park) = 0.013
SD(True Talent) = 0.013
SD(Fielder+Field alignment) = 0.011

0.029^2 + 0.013^2 + 0.013^2 + 0.011^2 = 0.0013
sqrt(0.0013) = 0.03605551275

この結果は最近のMLBについて、ここまでの仮定を受け入れた場合に250打球が生じる程度のサンプルサイズでは、球場 (Park) 、投手の能力 (True Talent) 、そして守備に関する要素 (Fielder+Field alignment) がほぼ同じような大きさの影響があり、これらの要因の影響よりも偶然の影響がかなり大きい可能性を示しています。

このような投手BABIPの責任範囲の分解に対する別のアプローチとしては、以下のTangoが中心となったと思われる文献があります。
SOLVING DIPS By Erik Allen, Arvin Hsu, Tom/Tangotiger, et al, 2003
http://www.tangotiger.net/solvingdips.pdf
断っておくと、これについては理解していません (かなり昔読もうとして挫折した; 今なら理解できるかも?)。比較は各自やってみるといいんじゃないかな (打球数がかなり違うことに注意。Tangoがブログポストで書いているように、打球数の変化に伴うRandom variationの減少や増加がどこに分配されうるとみなすべきか、は注意が必要かもしれない)。

これらの内容を書く上では、これまでに読んだPhil Birnbaumのブログポストが大きな助けになっていると思います。多謝。とりあえず思いついたものを引用しておきます。

Finding a true talent level for an outcome distribution http://blog.philbirnbaum.com/2006/08/finding-true-talent-level-for-outcome.html
The Tango method of regression to the mean -- a proof http://blog.philbirnbaum.com/2011/08/tango-method-of-regression-to-mean-kind.html
Pete Palmer on luck vs. skill
http://blog.philbirnbaum.com/2017/05/pete-palmer-on-luck-vs-skill.html

_____________________________________________________________

説明できなかった効果を、何らかの特定の要素に割り当てるのは結構危険な行為で、この議論に関する大きな問題になりうる部分かもしれないと考えています (ここでは守備に関する要素に割り当てたわけですが)。よくあるのはピタゴラス勝率で説明できなかった部分を監督の貢献とみなす、というような仮定でしょうか。これは明らかに問題があり、例えばリリーフ投手陣が優れている/劣っているという場合にピタゴラス勝率から乖離することは当然予想できます (注2)。ここでの残り物を守備に割り当てるのは、それ以外の要素をあまり思いつかない、妥当な大きさのluckの効果を除いている、という複数の理由で、個人的にはある程度は正当化できるだろうと思います。

注2
そもそも優れた先発投手をリリーフに回せば、チームの失点は増えて僅差での勝率が上がるので、ピタゴラス勝率からの乖離ではなくチームの勝率の最適化を議論すべきだと思われますが。

2019年9月8日日曜日

ドーピング検査において処分を与えるタイミングについて

広島のバティスタがclomifene/clomipheneの使用によって、アンチ・ドーピング規定違反により出場停止となりました。

広島東洋カープ所属 サビエル・バティスタ選手
アンチ・ドーピング規程違反に対する制裁について
http://npb.jp/anti-doping/doc/doc_20190903.html

原因としては、サプリメントへの混入の可能性が挙げられています。広島の公式サイトによると、サプリメントへの混入が疑われたため調べたが、よくわからなかったようです。

サビエル・バティスタ選手 アンチ・ドーピング規定違反について
https://www.carp.co.jp/news19/n-295.html

広島の対応について、公式サイトから一部引用します。
サビエル・バティスタ選手の「このような物質を摂取したことはない」との主張を受け、直ちにサビエル・バティスタ選手が当時摂取していた2種類の海外製サプリメントの汚染の可能性を探りました。1種のサプリメントの検査を実施しましたが、汚染は確認されませんでした。残る1種は検査から2カ月近く経過していたため、すでに消費されており検査に至りませんでした。
ここまでは事実の確認で、本ポストとはあまり関係は無いです。これに関して、出場停止処分はB検体の結果を受けてから出されたという記事が出ていました。

バティスタが陽性反応後も試合に出続けた理由
https://headlines.yahoo.co.jp/hl?a=20190903-00000171-sph-base

この記事を読んだときの感想は、"A検体の時点で処分を出すのはあまり望ましくないのでは? "というものでした。主な理由は検査機関にA検体とB検体の結論を一致させるインセンティブが生じるためです。詳しく調べたわけでもないですが、備忘録がてら書いておきます。

断っておきますが、ドーピングとかの分野の専門家でも無い、この手の検査の専門家でもないような人間の感想です。

まず、検査によって得られた診断結果について考えましょう。"適切に得られた検査結果"が正しい確率は事前確率と検査の精度 (感度、特異度) に依存します。条件付き確率の説明でよく示される例ですね。

ベイズの定理の使い方, BellCurve
https://bellcurve.jp/statistics/course/6448.html

特に注意が必要なのは事前確率で、これが低いと検査自体がかなり良いものであっても、検査を複数組み合わせたとしても、事後の不的中率は無視できない程度にあるかもしれません。

この検査で陽性が出る事前確率は、NPBで実際に使っている選手の割合についての予想、ぐらいのイメージになるかと思います。当然はっきりとした答えはありませんが、過去の検査結果が多少の参考になるはずです。NPB公式における過去の規則違反関連の報告 (http://npb.jp/anti-doping/doc/doc_notice.html) を見る限りclomifene陽性は初のケースのようです。これを考慮すると事前確率は、それなりに低いと推定できるかもしれません (実際にはどれだけの人数を調べているかは不明ですし、偽陰性が生じている可能性もあります)。

この検査の精度については、冒頭のリンクや、NPBのサイトを見る限り、NPBからの説明はなさそうです。ドーピングしていない被験者において類似した構造の分子が存在しないような低分子の検出であれば、かなり高い精度だろうとはなんとなく推測しますが。検出する物質によってはかなり杜撰な可能性もありうるようです (文献は後で引用)。

また、取り違えなどの可能性もわずかにありえるため、A検体の検査結果の時点では十分な確信が得られていない可能性があります。ここからさらに独立した別サンプル、つまりB検体から"適切に得られた検査結果"を得て、それが陽性であれば、さらに事後の的中率は上がることが期待できます (特定の特徴を持った選手に対して、検査が誤った結論を出す傾向があるだけという可能性もありますが)。取り違えなどの可能性はほぼ否定できるでしょう。

問題はA検体が陽性でB検体が陰性だった場合です。A検体の検査結果が得られた時点における、事後の的中率が十分に高くない場合、このような状況が生じる可能性があります。この時、検査機関の体面を保つために問題のある方法を使ってでもBの結果が陽性であったと主張するインセンティブが発生します。このインセンティブはAの時点で処分を与えていた場合、おそらく高くなってしまいます。結果、B検体まで調べても実際の事後の的中率はあまり改善しなくなってしまうかもしれません。

このような懸念は検査機関が十分に信頼できるのであれば、考慮する必要性は高くありません。NPBのケースで担当している機関がどの程度信用できるのかが問題ですが、すくなくとも検査や結論を出す過程は不透明であるとは言えるのではないでしょうか。本来であれば実際のデータや検査の精度とその根拠 (さらにいえば各時点での的中率についての事後の評価) を明らかにするべきでしょう。外部から検査結果の妥当性を評価することがある程度可能になります。

なお悪いことに、これはWADAの認定機関についてですが、その不透明性、相互批判を禁じた倫理規定、批判を載せた媒体やヒアリングへの圧力、少なくとも一部の分子の検出 (外来のEPO) におけるデータの示し方/画像操作/解釈についての問題点、結果の一貫性の欠如、などについて、一部の研究者から懸念が繰り返し示されています。

Boye, E. , Skotland, T. , Østerud, B. and Nissen‐Meyer, J. (2017), Doping and drug testing. EMBO rep, 18: 351-354. doi:10.15252/embr.201643540
https://www.embopress.org/doi/full/10.15252/embr.201643540

Nissen‐Meyer, J. , Skotland, T. , Østerud, B. and Boye, E. (2019), Improving scientific practice in sports‐associated drug testing. FEBS J, 286: 2664-2669. doi:10.1111/febs.14920
https://febs.onlinelibrary.wiley.com/doi/full/10.1111/febs.14920

少なくともデータの解釈への批判についての一部では、WADA関係者によって反論も試みられているようですので、興味がある方はそちらも当たっていただければと思います (https://www.sportsintegrityinitiative.com/epo-testing-anti-doping-laboratories-no-joke/)。

というわけで個人的には、検査機関から見たAとBを一致させるインセンティブは低く保つことは重要であり、この件に関してはB検体の時点で判断したのは適切だったように思います。

A検体検査後とB検体検査後の、どの時点で判断すべきかというのは一般化は難しいかもしれません。事前確率が高い検査/スポーツとか、A検体検査とB検体検査の間に行われるイベントが極端に重要であるとかの場合は、A検体の時点で判断すべきだという考えの妥当性が高くなります。また、A検体を調べた時点での的中率がどれだけあればその時点で処分するべきかというのは、選手や観衆の価値観や規範の問題になってくるでしょう。


2018年12月31日月曜日

Analyzing Baseball Data with R 2版読んだ + ついでにデータ収集関連の話

タイトルの通りの内容です。読んだといっても、初版からあまり変わってない部分のテキストは流し読みですが。

Analyzing Baseball Data with R
https://www.crcpress.com/Analyzing-Baseball-Data-with-R-Second-Edition/Marchi-Albert-Baumer/p/book/9780815353515

初版はMax MarchiとJim Albertが著者でしたが、2版ではNYMで以前なにがしかのポジションを持っていたらしいBenjamin Baumerが加わっています。 BaumerはopenWARパッケージの開発者でもあります。

Introduction to openWAR
https://baseballwithr.wordpress.com/2014/03/17/introduction-to-openwar/

コードに関しては全体的に書き直されており、tidyverse系の関数が使われるようになっています。Baumerは同じCRC pressのデータサイエンス系の教科書を書いたりしているようで、おそらく彼がメインでコードのアップデートをしたのではないかと (注1)。
https://www.crcpress.com/Modern-Data-Science-with-R/Baumer-Kaplan-Horton/p/book/9781498724487

例えばデータの選択や取り出しは、select/filter/pullなどが使われて、[ ]とか$的なもので取り出す操作はほとんどなくなったとか、繰り返し系はmapが使われたりなど。以前はdplyrで処理されていた、データが重くなると時間がかかるものもかなり早くなっていると思います。

高水準作図はggplotで統一 。初版はlatticeと併用だったので、覚えることが減りました。ggplotの図も全体的に見やすくなったと思います。

内容に関しては、新たに以下の章が加えられています。

  1. 捕手のフレーミング
  2. Statcastデータを使った打球データ
捕手のフレーミングの効果は混合モデルを使って推定していますが、混合モデルは初版では使われていなかったような気がします。

データの収集に関しては、BaumerがRetrosheetとStatcastのデータを集めてデータベースを作るためのRパッケージを作っているらしく、 それらが新たに紹介されています。
https://github.com/beanumber/retro
https://github.com/beanumber/statcastr
この辺は特に困ってないので自分で動かしてみていないです。

baseballrの関数だとBaseballsavantの行数の制限がそのまま残っているのでそれに対応しないといけないのですが、beanumber/statcastrはそれを考えなくて良いようです。まあ、野球のデータはそれほど重くないですし、単に繰り返し用のloopか関数を書いてまとめて保存してしまえばいいだけだと思うのですが。下はstatsbylopezによるloopでのデータ取得例。
https://github.com/statsbylopez/mlb-shirking/blob/master/Code/scraping.R

注意点らしきものも一つ。教科書ではPITCHf/x、というかMLB Gamedayデータは、pitchR/Xを使ってデータを集めていますが、MLB Gamedayの仕様変更に対応していないらしく、最近のデータはエラーが出るようになっているようです。
少なくとも
start = "2018-01-01", end = "2018-12-01"
ではErrorになります。
githubのissueでもいろいろ出ているようですが手が回らないようです。
https://github.com/cpsievert/pitchRx/issues?q=is%3Aopen
日付の条件次第で落とせたり落とせなかったりするかもしれません。

同じGamedayをまとめて落とせるものとしてはkeberweinによるmlbgamedayがあり、これはstart = "2018-01-01", end = "2018-12-01"でも落とせているようです。
https://github.com/keberwein/mlbgameday
ただし補足的なテーブルが含まれておらず、以下のテーブルだけになるようです。
"action" "atbat"  "pitch"  "po"     "runner"
umpireはenhancementに入れているようなので、いずれ他のテーブルも対応してくれるかもしれません。

実際のところは、Gamedayデータがいるのかどうかがそもそも微妙かもしれません。メインの要素はStatcastで手に入りますし、Gameday特有のデータも主要なものはBill PettiがStatcastと組み合わせやすい形のcsvで置いてくれています。
https://billpetti.github.io/baseball_tools_home/

<引用>
baseballsavant
https://baseballsavant.mlb.com/statcast_search
________________________________________________________________

注1.
Baumerは野球に関連した本も書いています。
Benjamin Baumer and Andrew Zimbalist
The Sabermetric Revolution: Assessing the Growth of Analytics in Baseball, University of Pennsylvania Press, 2015
https://www.amazon.co.jp/Sabermetric-Revolution-Assessing-Analytics-Baseball/dp/081222339X

いろいろと考えさせる部分があって個人的にはいい本だと思いますが、ややテクニカルで、また少しコメントに困る本です。本文に書くべきかもしれませんが、こちらにこっそり書いておきます。

主な目的としては、2002のA'sをLewisはストーリーとして描いたわけですが、いい加減すぎるのでもっとちゃんと見てみよう的なことが掲げられています。例えば1章のタイトルが"Rivisiting Moneyball "で、書籍や映画について、選手や関係者の移籍のタイミングなどにおける事実とは異なる描写 (おそらくはストーリーの辻褄を合わせるために必要だった) や、セイバーメトリクス的な観点からの細かい問題点を指摘していきます。

大部分は打撃、投球、守備、走塁などの基本的なセイバーメトリクスの概念のレビュー的な内容で、レベルとしては基礎的ですが歴史的な経緯をある程度説明してくれており、それらについての文献をある程度引用してくれているので、文献調査としても貴重だと思います。また最後の章では、セイバーメトリクス的な指標にどれだけ傾倒したかを示すチームレベルでの指標を導入し、それが勝敗やコストとどう関連があったか検討しています (個人的には回帰分析の使い方に引っかかる感じがなくはない)。

もちろんMoneyball がデータ分析を広めた部分についても触れています。それに関連して、2015年当時MLBでどれぐらい分析が広がっているか、あるいは他のスポーツでの統計分析についてもそれぞれ一つの章を割り当てています。

Moneyball への批判だけでなく、セイバーメトリクスの指標への問題点の指摘も多く、全体的に批判精神に溢れており個人的には好ましいと思いますが、批判がやや強引と思える部分もあります。またセイバーメトリクスの指標に関する批判のうち多くは結果の不確実性の記載や見積もりが無いことや、データやコードがクローズドであることからくる再現可能性的な問題が挙げられており、いわゆるセイバーメトリシャンの視点、というよりはアカデミシャン的な視点が濃いことを感じます (BaumerはmathのPhDで大学教員なので当たり前といえば当たり前かもしれませんが)。また、そのあたりの問題意識がopenWARの開発に繋がったと思われます。(個人的にもこのへんは問題だと思うんですが、それを割り引いてもクローズドなものを使うほうがマシなことが多いだろうということも認めざるを得ない、という感じ。程度の問題ですね。)

不確実性の記載については、BPのJonathan Judgeは、フレーミングにおける誤差範囲の推定手法自体についての記事をコードも公開して出していたりとか、他の指標でも使っていたりとか、いずれこの辺も示すのが当たり前に変わっていくのかもしれません。
Jonathan Judge, BP, 2018
Bayesian Bagging to Generate Uncertainty Intervals: A Catcher Framing Story
https://www.baseballprospectus.com/news/article/38289/bayesian-bagging-generate-uncertainty-intervals-catcher-framing-story/

もはやあまり関連が無いですが上の共著者のZimbalistは、オリンピックの経済への悪影響に関する記事なんかで非常によく出てくる人で、訳本も結構出ています。
https://www.amazon.co.jp/本-アンドリュー-ジンバリスト/s?ie=UTF8&page=1&rh=n%3A465392%2Cp_27%3Aアンドリュー%20ジンバリスト
60億を投資できるMLBのからくり
サッカーで燃える国 野球で儲ける国―スポーツ文化の経済史
オリンピック経済幻想論 ~2020年東京五輪で日本が失うもの~
は読みましたが、わりと面白いです。内容は完全に門外漢なので評価できませんが。

2018年12月15日土曜日

打球の速度/角度の広がりを考慮して打者を評価する1

前回まで、打者の打球価値について、主に角度の平均値からの影響について検討し、たまにそれを速度の平均値と比較してきました。ここからは角度と速度という打球の特徴を表す2つの数値について、平均だけでなく分布の広がりを含めて評価することの重要性を見ていきます。データはStatcastから。

なぜ分布の広がりを考慮する必要があるかについては、前回書いたように、Eli Ben-Poratがよい説明を既に与えてくれています。

Eli Ben-Porat, Mike Trout, Statcast Darling, 2018
https://www.fangraphs.com/tht/mike-trout-statcast-darling/

ここでは、角度と速度の分布の広がりを考慮することは、それらの数値と打球の得点価値との関係を考える上で、重要となりうることが議論されています。図を使って大まかに見ていきましょう。下はMLB15-18で打球角度2.5°ずつに打球を分けてその価値 (wOBAcon/xwOBAcon) と打球数 (N) を示しています。これは平均的な打者の角度に沿った打球の価値と数の分布と考えることができます。 おかしなピークは、正確に測定できなかったために推定値を入れている部分でしょう。


ここで、分布の中心に注目しましょう。 価値の分布 (wOBAcon/xwOBAcon) と打球数 (N) の分布との中心は比較的近いところにあります。これは、 打者が価値の高い領域に合わせて打球角度を合わせることができている、と言えるかもしれません。

次に分布の広がりを見ると、打球数のほうが価値に比べて、裾がなだらかに広がっています。これは、打球価値分布の裾に位置する価値の低い、あまり打ちたくないような打球が、それなりに生じているということです。このため、打球角度の広がりを小さくすれば、価値の分布の裾に位置する価値の低い打球を減らし、中心近くのより価値のある打球が多くなる可能性がありそうです。

別の見方をしてみましょう。とても極端な例として、0°と40°の2つの打球を打った選手と、20°の打球を2つ打った選手がいるとします。この場合、この二人の平均は20°ですが上の打球価値の分布を見ると、打球価値は後者のほうが大きく上回っていることがわかります。平均が同じであった場合、より平均の周りに打球が集まっている方が打球価値が高そうです。

下は同じように打球速度について、価値と頻度の分布を示しています。



速度の場合では、打球数のピークは打球価値のピークとは一致していません。価値がほぼ飽和する105 mph以上と比べると、5-15 mph程度低いところに打球数のピークはあります。価値の高い部分を多くするためには、もちろん平均速度を上げることでも可能ですが、価値の分布を両側に広くすることでも実現できる可能性がありそうです。

また極端な例を考えてみましょう。110 mphと70 mphの2つの打球を打った打者と、90 mphの2つの打球を打った打者を考えてみます。この場合、平均はいずれも90 mphですが前者の打者の方がかなり打球価値が高くなります。これは、70 mphと90 mphでは打球価値あまり変わらず、110 mphでは非常に価値が高いためです。この場合は平均が同じであれば、それぞれの打球が平均から離れている傾向があった方が打球価値が高くなりそうです。

重要なことは、打球価値と、角度あるいは速度との関係は単純な比例関係にあるわけではない、ということです。このため、価値と角度/速度の関係は平均を使うだけではうまく捕らえられません。 分布の形状や極端な例から考えてみると、平均に加えて広がりを考えることで、この関係性を評価に取り込める可能性がありそうです。では、角度や速度の広がりを考慮して、各打者の評価に役立つかを簡単な方法で調べてみましょう。

# 標準偏差

まず、広がりを表現する基準が必要になりますが、以後は標準偏差 (Standard deviation: SD) を使います。これは基本的には、データの中の一つ一つの数値が、平均を中心としてどれくらいばらついているか、離れているか、を示すような数字です。細かくは教科書でも見てもらうとして、とりあえずイメージだけ見てみましょう。下の例では平均値が同じ (12.5) で、SDが異なる分布 (a = 29, b = 21) を示しています。




SDが大きいほど各データは平均から離れている傾向が強いため、分布は幅が広く、中心部分が低いような形状になります。SDは分布の広がりを表現する数値として、良い性質を持っており非常によく使われ、前述したEli Ben-Poratの記事でもSDを広がりを示す数字として採用しています。

# 年度間相関

打者の評価に役立つかどうか、ということを調べる前提として、打者間でどの程度一貫した差が見られるか、という点が重要になります。これは、仮に、打球の結果に影響があったとしても、打者の間で見られる差が偶然の結果であれば、打者の評価には使えないためです。これを調べるために最もよく使われるのは年度間相関でしょう。MLB 2015-2018で連続した年度で200打球 (BBE) 以上の打者について、年度間で相関を調べました。下は散布図で示しています。



そこそこ以上に相関はありそうです。相関係数は下のようになりました。比較のため、同じ期間でのwOBAconの相関係数も示しています。



角度と速度の平均や、角度のSDでかなり高い相関が見られました。これらの相関は打撃系の指標としてはかなり高い部類だと言っていいと思います。速度のSDはやや相関が小さいですが、それでもwOBAconと大差無い程度には相関が出ています。wOBAconについては打者からコントロールが難しい要因がある (守備や打球の細かい方向など) のに比べて、打球の速度と角度にはそれらの影響がないため、打者から見てコントロール可能な部分が大きいのかもしれません。

MLB15-18での通算で300BBE以上の打者における、それぞれの数値をヒストグラムで示しておきます。



次に、打撃結果への影響を調べてみましょう。

# 角度分布のみからwOBAconを推定する

まず、単純な方法として、角度と速度を別々に考えて、それぞれの分布だけから各打者において打球価値にどれくらい影響があったかを考えていきます。

まず速度の違いを無視して、角度だけを考えます。冒頭では2.5°ずつに打球価値の平均値を示しました。これを使います。まず、極端な具体例で考えてみます。VottoとStantonに出てきてもらいましょう。それぞれの打者の速度と角度の、平均とSDを示します。



この二人は平均角度 (angle_mean) はほとんど同じで、角度のSD (angle_sd) がかなり違います。VottoはMLB全体で見ても非常に角度のSDが小さい打者で、逆にStantonは角度のSDが大きい打者です。

角度のSDが小さいということは、各打球のそれぞれの角度の値が平均角度に近いところにあった、ということです。下はVottoとStantonの打球角度の分布を示しています。



Aは縦軸に打球数をとったヒストグラムで示しています。これでは両者の比較は難しいかもしれません。Bは密度分布を示しています。縦軸は大まかには、横軸で示した角度になる確率を示しています。Votto (青) はStanton (ピンク) に比べて角度が非常に大きい、あるいは小さい打球が少ないことがわかります。縦の赤の点線は0°あるいは37.5°を示していますが、これはこの領域である程度以上打球価値が高いため、目安としてこの部分に線を引きました。これを見ると、VottoはStantonより価値が高い部分でかなり打球の割合が多かったことがわかります。これは、もっと価値が高い10°-30°にしても同じような結果になります。SDは平均から離れている程度を示しており、平均付近は打球価値が高いわけですから、このような結果になります。

ここで、速度を無視して、打球を角度だけから評価して、二人の打者の結果を比べてみます。つまり、冒頭で示した角度ごとの価値をそれぞれの打球に当てはめて、その平均を計算するということです (注1)。



角度のみから推定されたwOBAconはVottoのほうがStantonより0.1も高くなりました。Vottoは角度の観点から見て、価値の高い打球をたくさん打っていたため、このような結果になったと考えられます。実際のwOBAconは3列目の"wOBAcon"で示しています。Vottoの推定値はwOBAconとしてはかなり優秀な0.451で、Stantonの推定値は平均以下程度の0.356となりました。これはVottoのように角度を狭く保つことの価値を示しているといえるかもしれません。MLB全体でのwOBAconの分布を示します。



Vottoの推定値0.45は、実際のwOBAconで考えると、全体で見てもかなり優秀であることがわかります。

Vottoについては実際のwOBAconと、角度から推定されたwOBAconは概ね一致しましたが、Stantonは大きく過小評価しています。これはVottoは速度の平均やSDがほぼMLB平均であり、一方Stantonは平均速度や速度SDが平均から大きく乖離しているためだと考えられます (前の項 [#標準偏差] の最後で示したヒストグラムと比較してください)。つまり、Stantonは角度の部分からは平均以下程度の価値しか得られていないのですが、速度が大きいために角度が望ましい部分での価値を更に高めたり、あるいは多少角度が悪くなってもスタンドまで持っていったりできる力があるために全体的に良い成績になっていただろう、ということです。この角度だけを使った推定値は、速度を無視している現実を無視した欠陥指標ですが、仮に全員が同じような打球速度を持っていたら? というありえない、特定の要素に注目した質問にざっくりと答えてくれます。

ここで、この角度だけから推定した価値を各選手の全打球から計算し、各選手について角度の平均値とSDとの関係を見てみましょう。



AとBを比較すると、角度のSDは平均よりも、角度だけから考えた価値に影響が大きかったように見えます。この角度SDの低下による打球価値上昇の効果は、よくある打球分類で表現してみるとおそらくLDの増加とPUの低下によって起こるようです (これは次回示します)。角度の平均値の効果が小さいのは、冒頭の図で見たように平均値は既に価値が高い部分にあるためでしょう。例えば仮に、MLB全体の角度がもっと低ければ、角度を上げる効果は高く推定されたかもしれません。

# 速度分布のみからwOBAconを推定する

同様に速度についても、速度だけを考えた場合にどうなるか見ていきましょう。まず具体例として、PuigとMelky Cabreraの速度分布を示します。この二人は平均速度 (speed_mean) は同じですが、SD (speed_sd) で大きな違いがあります。





赤の点線はかなり価値が高い基準として105 mphを示します。SDが大きいPuigのほうが、105 mph以上の打球が多そうに見えますが、同時に非常に速度が低い75 mph以下の打球も多そうです。

この二人の打球速度から、速度だけを使った推定wOBAconを計算してみます。



Puigのほうがかなり高いwOBAconが推定されました。遅い打球も多くなっていますが、既に説明したように、遅い打球は、平均的な速度の打球と比べて価値がそれほど大きく下がらないという性質があります。このため、遅い打球の増加によってもたらされるペナルティーは、ここではそれほど影響が無かったのかもしれません。速度に関してはSDが大きいこと、つまり平均速度から離れた打球が多いということ、は打球価値を高めることと関連がありそうです。

速度の分布だけから推定されたwOBAconと、速度の平均/SDとの関係を見てみます。



角度の場合と違い、こちらは平均値との関係が強いようです。これは冒頭の全体の分布で見て、平均速度が価値が高い部分よりかなり低かったことと関係があるでしょう。また、速度のSDも角度の平均値よりは影響が大きかったと見えるのではないでしょうか (注2)。ただし、速度のSDは角度平均よりは年度間相関はかなり小さく、仮にここで示された影響の大きさが正しいとしても、打者のスキルの評価として角度の平均のほうが重要である可能性はあるかもしれません (注3)。

# まとめ

打者ごとの打球の性質を表す数値としては平均値がよく語られますが、ここでは分布の広がりについて簡単に見てきました。各打者における速度/角度の分布の広がりは、平均的な打球価値や頻度の分布を見る限り、打球価値に影響を及ぼす可能性が高そうです。また、分布の広がりは選手間で一貫した違いがあり、打者のスキルとして評価できる可能性が高そうです。

ここでは角度、あるいは速度だけに注目して、その分布から価値を推定することを試みました。少なくとも、この角度/速度の一方だけを考慮した方法では、SDはそれなりに推定値に影響がありそうです。極端な具体例としてVottoを示しましたが、彼は平均的な平均角度、平均的な平均速度、平均的な速度SDを持っていますが、角度SDを非常に小さく保つことで、打球価値をMLBでも上位のレベルまで改善させている可能性がありそうです (注4)。

# 速度と角度を同時に考える

しかし、ここで計算した角度、あるいは速度からの推定値には問題があります。それは、それぞれ、速度、角度を無視している点です。両方を「同時に」考えたほうが価値の推定としては妥当性が高いのは明らかでしょう。同時に考える方法はいくつか考えることができ、その一つはStatcastで計算されているxwOBAです。この計算過程では1つ1つの打球について、角度、速度の両方を考慮して各打球の価値 (xwOBA value) を推定しています。各打者でまとめられたxwOBAでも、速度や角度の分布の広がりの違いが反映されているはずです。

上で行った角度と速度を別々に考慮して効果を見積もって、それぞれの効果を足すことで2つの要因を考慮することもできるかもしれませんが、これはやや問題がありうる方法です。この例では要素が多くわかりにくいので、例えば4シームの速度の効果と、スピンの効果を足し合わせる場合を考えてみましょう。

4シームは速度が速いほど、回転速度が多いほど、効果が高いと信じられています。回帰分析を使えば (あるいは適当に幅を区切ってその平均値を計算とかでも)、例えば、
1. 速度を5 mph上げた時に、
あるいは
2. 回転速度を100 rpm上げた時に、
平均的にどれくらい効果があるか、ということがわかるでしょう。

図で示します。

ここではMLB15-18について、4シームを1000球以上投げた投手について、平均速度、平均回転速度、そして得点価値 (PitchValue; 正の値が投手にとって望ましい; 注5) を示しています。Aは横軸に速度、Bは横軸に回転速度をとり、縦軸に各投手での100球あたりでの得点価値を示しています。これらを見ると速度と回転速度のいずれも弱いながらも、価値と正の相関があることがわかります。

ここで、これをそれぞれ計算して足し合わせようとする場合に問題となるのは、速度と回転速度には正の相関があることです (図C)。例えば、Aの図から速度を5 mph上げた効果を速度だけで調べた場合、相関の分だけ (図Cを見ると50 rpm程度でしょうか) 回転速度が上がった効果も同時に取り込んでしまいます。図Bに注目して 同様に調べてもやはり速度との相関も同時に含まれているはずです。このため、別々に調べて足し上げると、効果の一部を重複して評価してしまう可能性があります。

図Dでは横軸で速度を調整して、その予測値 (直線) からの解離の程度と回転速度 (色) と関係性がありそうかどうかがわかるので、速度の効果と独立した回転速度の効果がざっくりとですがわかります。同じ速度であれば、回転速度が大きいほうが得点価値が高そうに見えなくもないのではないでしょうか。このブログでも何度か使っている方法で、数値の正確さは無いですが、これは一応同時に2つの要素を考えていることになります。

という感じで、打球や投球の価値に影響を与える要素が複数あり、それらの要素同士に相関がある場合、個別の評価を足すとおかしな結論が出る可能性があります。上で説明した角度と速度だけから計算した結果も、お互いの相関の効果を含んでいる可能性があり、単純に足してしまうと、重複して評価する可能性があります。

次回はxwOBAとは別の方法で打者ごとの打球の角度/速度の平均値/SDを同時に考慮して、打球結果がどの程度説明できるようになるのかを見ていきます。

続く。

<参考>
Statcast data https://baseballsavant.mlb.com/about

<RPubs版>
今回ここで書いた内容はほとんど書いていませんが、冒頭の図のコードもあります。
http://rpubs.com/snin/bb_sd_values
http://rpubs.com/snin/bb_sd_values_suppl

_____________________________________________________________________
注1.
実際には、これは現実に起こった結果なので、仮に角度が大きい打球で速度が大きい打球が多かった場合、それを考慮に入れることになる。実際、打球速度が高い選手は打球角度が高い傾向にある。例えば、HRになりやすい30°あたりのピークが速度の非常に高い長距離打者が多く占めているのであれば、平均的な打球速度しか無い打者に対して過大評価を与える可能性があるはず。しかし、VottoとStantonの分布で見られるように、実のところ最大の価値を叩き出せる30°付近も、打球速度が高い打者よりも、角度SDが小さい打者の打球が多いために、平均的な速度で考えてもあまり問題にならないのかも。

注2.
Aを見ると、平均速度が大きい打者 (91.25以上ぐらい) では速度SDからの影響が小さいように見えなくもないかも。これは、実際の打球速度の分布は、
1. 潰れたピークや二峰性のピークをもつことが多い
2. 分布が高速度側に歪んでいる
という事実を考えると、理にかなっているかも。

つまり、同じ平均値を持つ正規分布よりも高速側が多かったり、平均値 (mean) よりも中位値 (median) が高めに出やすい。そのため、各打者の平均速度は最大で95程度で、100-105 mphよりはかなり小さいですが、単純に平均値から考えるよりは十分に速度が高い打球を含んでいる可能性がある。中位値を使う、価値に変換して使う、などのほうが問題は小さくなるかもしれません。

より打球速度が速いペアで、かつ平均値が近くSDに差があるOrtizとStantonに関してデータを示しておきます。






ちなみに速度に関する歪度の年度間相関は0.24程度で、打者間の差はあまり一貫性がなさそうです。


注3.
平均角度はスキルというよりはアプローチの結果と見たほうがいいだろう、というのがTangoのスタンスのようです。個人的にもそんな感じがします。
Tango, Statcast Lab: Do Successful Launch Anglers keep Angling?, 2018.
http://tangotiger.com/index.php/site/comments/statcast-lab-do-launch-anglers-keep-angling

そもそも打者から見てそれなりに好ましい位置にある時点で、全体的に見れば打者側のコントロールが強いのは明らかな感じがします。

で、強いコントロールのもとで、それぞれの打者は自分に適した角度を探していて、その結果個人差がある、的なイメージでしょうか 。角度が高いのも、低いのも、ちゃんとそれなりに理由がある。アプローチとの関係は、下で引用している記事とも関連がある話です。

注4.
Vottoに関する記事。
Zach Buchanan, Joey Votto: I want to be 'unpitchable', 2017.
https://www.cincinnati.com/story/sports/mlb/reds/2017/04/27/joey-votto-want-unpitchable/100991956/
一部引用。
He sees the swing-change benefit for some players – athletic hitters with natural power who have yet to really tap into it. J.D. Martinez, A.J. Pollock and Mitch Haniger all have enjoyed success with the “Groundballs Suck” approach. But Votto worries that it’s a fad, and that less successful players will waste their careers chasing a swing that works only for a select few.

引用とは離れますが、adaptabilityの話と、GB/FB platooningの効果 (The Book参照) と、Vottoの角度SDが低いことを合わせると一つの仮説が出てきます。つまり、角度の平均値を投手のタイプによってシフトさせて (GB投手にはFB打者っぽい角度、FB投手にはGB打者っぽい角度を取る) 打者にとって望ましい効果を得ており、その結果全体で見れば角度SDが小さくなる可能性。しかし、少なくともVottoに関しては、GB投手に対して平均値を高めにシフトしている可能性はもしかしたら少しはあるかもしれないけど、GB投手/FB投手/それ以外のどのタイプに対しても角度SDが低そう。

またそもそも、簡単なサンプリング実験で、対戦相手タイプによる平均値の変化を小さくしても全体のSDにはほとんど影響がない。これはおそらくSDの数値が対戦相手のタイプによって生じる平均値のシフトより大きすぎるため。というわけで角度のSDとGB/FB platooningの関係仮説はほぼボツ。思いついたときは、面白いかもって思ったんですけどね。。アイデアに定量性が無さ過ぎ。

GB/FBの相性はL/Rの効果に比べて、打者がアプローチ次第で制御できる部分が大きそうな気もしたんですが、なんだかんだ難しそうな感じも。

注5.
Pitch Value (PV) の計算ではイベント、及びカウントの得点価値は、基本的にはRetrosheetから計算したMLB 2005-2008のものを使っています。うちのPVはFangraphsのものと比べるとやや高めに出る傾向がある (原因はよくわからない)。また、ここでは打球部分だけxwOBA valueを得点価値に変換して使用しています (なのでxPV)。

Retrosheetから持ってくるよりStatcastの中で計算してしまったほうが、他の人が再現性を取るのが容易なので望ましいかもしれません。あるいはFangraphsからそのまま取ってきて合わせるとか。Analyzing Baseball Data with Rのchap. 12 (1st edition) でHanphreysのWizardryとFangraphsのデータを連結するために記述されている、stringdistなどを使う方法で簡単にできます。
https://github.com/maxtoki/baseball_R/blob/master/scripts/Chap12.packages.R

2版がamazonからまーだ届いてないんですが、githubページはここのようです。
https://github.com/beanumber/baseball_R




2018年9月16日日曜日

フライボールの変化が得点貢献に与える影響3: 移動平均を利用した打者の理想角度の推定の試み

もはや誰も憶えていないと思いますが 、前回までに、打球の角度を大きくすることが簡単な方法 (平均角度、あるいは平均角度の変化に関する単回帰) でみる限り、wOBAの改善という観点では、少なくとも全体的な傾向として見る限りあまり価値が無さそうなことを確認しました。

また、角度を大きくする価値が高い選手を探せる可能性がありそうな方法としてTangoによる移動平均値を利用する方法を紹介しました。つまり、打球角度に沿って打球の1/3のwOBAconの移動平均値を計算し、それを最大化する角度を理想的な角度とする、という方法です。今回はそれをいろいろと試していきます。結論から書くと、それに向かって角度を上げたり下げたりして良い結果を導くという、実用的な効果はあまり期待できないという感じですが。

まずこの移動平均で計算される結果の基本的な性質を掴むために、MLB全体の打球 (15-17; ファールと、バントの大部分を除く) に対してこの方法を使って理想角度を求めてみます (実際には理想なのかどうかはわからないので、この呼び方はやや問題がありますが)。下は移動平均値をプロットしています。


赤の点線で示した19°ほどにピークがあり、MLB全体で見るとここがこの方法で推定されるだいたいの理想的な角度、ということになります。これがどのように決まったかを見るために、打球の角度による打球をグループ分けして、その数と価値 (wOBA) を示します。


水色の点線では打球の角度を2.5°ずつにグループ化し、それらの平均wOBAを示しています。見づらいので一部を拡大して示します。


19°はこの図では中央のM字の落ち込んだ部分に相当し、理想角度はかならずしも打球価値のピークでは無いことが確認できます。平均的な打者では12°あたりの低いライナー性の打球とのピークと27°あたりのHRになるような価値の高いフライの角度のピークの高さがほぼ同等であり、また20°付近を中心にして概ね左右対称となっています。このため20°付近 (つまり19°)を中心とすると両方の大きなピークから打球を多く含むことになり 、打球価値だけでみても理に適った理想角度になっているように見えます。

ここで、上下の幅に相当する1/6という打球の数がどれくらいの角度範囲に相当するか、という問題があります。この例 (MLB全体) では実のところ計算していませんが、あとで示す各選手についての計算で試した感じでは、だいたい上下に10~15°程度の幅になっているようでした。つまり19°を中心とした場合, 10-30°あたりの打球の価値の平均を取っていることになります。

理想角度の計算では打球の数 (上の図のN) も関連します。上の図では打球の数は比較的価値の高い15°付近にピークがあり、概ね対称になっているようです。ここで仮に打球価値のピーク (19°) より上の角度で突然打球が非常に少なくなるとどうなるでしょうか。この場合、19°を中心にして上下に同じ打球数を数えると、低角度側 (左) には角度の広がりが少なく、高角度側 (右) に広い範囲になるはずです。こうなると、高角度側の遠く離れた価値の低い打球を拾いやすくなるので、理想角度は低角度側にシフトするだろうと思われます。上の平均値の例では、打球の数の分布 (N) も、価値のピークと概ね一致した上に高角度側と低角度側で概ね同程度の数の打球数があるのであまり影響は無かったと思われます。個人に適用する場合には、多少影響があるかもしれません。

ところで、打球数にしても、打球価値にしても、特定の低い角度グループで謎のピークが出ています。これはおそらく、実際の打球から角度が測定できなかったために推定値を入れている部分だと思われます。-90°あたりの価値のピークは単にサンプルが少なすぎるために起きたという可能性もありそうです。とりあえず無視して進めることにしますが、打球価値の低角度でのピークは後でそれなりに効いてきます。

同様の方法を選手ごとに適用して、理想角度を求めました (MLB15-17で200以上の打球を打った選手が対象)。



打球数と、理想角度からのずれとの関係を示しています。基本的にほとんどすべての選手が理想角度よりも低い角度となっていることがわかります。Tangoはこれについて、三振を減らすためにはある程度下げないといけないとかそういう可能性を考えているようです。また、理想角度に極端に近い選手も遠い選手も打球数が少ない傾向にありそうです。これはおそらくいわゆる、少数の法則、というやつで、推定が正確でないために、理想角度の推定値に極端な数値が出やすくなっているのだろうと思われます。

一応極端な結果になった選手などの具体例を挙げておきます。

Dae-Ho Lee (李大浩): 角度差最大.
Ryan Schimpf: 実際の平均角度最大.
Travis Jankowski: 実際の平均角度最小.
Giancarlo Stanton: なんとなく.

Aに示したShimpfは実際の打球角度が30°を超えている、はっきり言って打球を上げすぎていると思われる打者です。この移動平均値の図では、計算の都合上、打球のうち角度が高い1/6と低い1/6の部分は計算できないため、表示されません。Schimpfの場合で言うと5°より低い打球は1/6程度しか無く、55°より高い打球が1/6程度あったということになります。

Bでは李大浩を示しています。彼は理想角度はそれなりに高く20°を超えており、その範囲内でのwOBAconもなかなかのレベルですが、実際の平均角度が非常に低いケースです。

CのJankowskiは非常に理想角度が低いケースです。この方法がある程度以上正しいのであれば、野球の実況でよくある、ライナーが外野でアウトになって、「上げすぎました!」が当てはまっているケースという感じでしょうか。

DはStantonを示しています。非常に長打力があるイメージですが、計算された理想角度はリーグ平均と同程度でした。Stantonは他の注目した打者に比べて打球が多くなっています。Stanton以外は角度系の指標で極端な値を示す打者を集めてきたため、サンプルが少なく推定の甘い打者が選ばれてしまっているということだと思われます

この計算された理想角度が、打球価値を高める上で役に立つのか、ということを検討します。とりあえず、まずは選手間で見て、理想角度からのズレと、wOBAconの値に関連があるか、というのがよくある安直な方法だと思われます。問題としては、wOBAに影響を与える要素はこのズレだけでは無いはずです。とりあえず打球パラメータでは影響が大きいものである打球速度だけ調整して、角度のズレの影響を検討してみます。


この図では理想角度ごとにグループ化して図を分けて示して、x軸に平均速度をとり、y軸でwOBAconを、色で角度のズレ (理想角度 - 実際の平均角度) を示しています。角度のズレが選手間でのwOBAconでの非効率性の違いにつながっていたのであれば、同じ速度で比較した時に角度差が大きいほどwOBAは低くなっているだろうと予想されます。どの理想角度グループでもそのような傾向は見えません。下は最もサンプルが多い理想角度17.5~20について、もう少し詳しく見るために、特にズレが大きい選手15人を名前でラベルしています。ズレの大きくても全体的な傾向よりもwOBAconが高い選手もそれなりにいるようです。これらの結果から、少なくとも選手間での比較では、非効率性を予測する役には立たない可能性が高そうです。



というわけで、Tangoが示した移動平均を利用した方法を試してみましたが、その方法で推定された角度に近づけることはあまり打撃成績につながらない可能性が高そうです。この方法で出てくる角度は、MLB全体のデータから見た限りではそれなりに理に適った角度を示しているように見えるにも関わらずこのような結果になりました。その理由について少し調べてみた感じでは、
  1. 理想角度に近づけると価値が非常に低いフライが増える
  2. 理想角度に近づけると程々に価値があるゴロが減る (注目している範囲以外での価値が低下する)
  3. 実際の平均角度が低い打者は角度が低い打球の価値が高い傾向がありそう
あたりが理由かもしれません (注1にデータを示しています)。

これは逆に言えば足の遅いような打者が角度を下げすぎるとペナルティが大きいだろう、という可能性に繋がります。例えば、上で挙げた李大浩あたりはこのような打者の例にあたるでしょう。足の遅い選手が角度を下げすぎるとのが良くないというような話は、数字を計算しなくてもほとんど明らかな感じがしますが、数字を使えば効果があるかどうかだけでなく、どれくらい効果があるかを調べることもできるでしょう。ゴロの打球価値や、StatcastのSprint Speedあたりが利用できるんじゃないかと思います (やりませんけど)。李大浩でもwOBAconは0.41くらいでまあまあのレベルは維持していますし、全体的な傾向としては、長打力があれば角度が低くてもwOBAconは高めに出るので、個人的にはそこまで大きな効果は無いんじゃないかと思っています (注2)。また、李大浩の場合は狙ってその角度に打っていたというより、MLBの投手に短い期間ではうまく適応しきれなかった、というようなこともあると思うのでちょっと特殊な例かもしれません。

話を方法論に戻すと、この方法のありうる問題としては、正確に推定するためにはかなりのサンプル数が必要であり、さらに角度が変化した場合に、理想の角度も変化する可能性があるということが挙げられます。この場合、サンプルが足りなくて推定が甘いため上のように役に立たなかった可能性があります。

下は、2015, 2016年とそれぞれの次の年の各選手の理想角度をプロットしています。



平均はいずれも17, 18°程度ですが、前年度 (x) に25°であった選手の、直線回帰の予測値は21°ぐらいであり、平均からの差が50%程度回帰で失われています。また、角度が上昇した選手で、理想角度も高くなる傾向があったようです (逆よりはマシかもしれませんが)。例えば5年分ぐらいサンプルがあればある程度正確に推定できるかもしれませんが、その間レギュラークラスの打球数を打たせているレベルの選手の打撃を無理にいじるのは、多くの場合あまりいいアイデアではないかもしれません。少なくとも、試合の打球データだけでこの方法を使うのはちょっと無理がありそうです (注3)。

というわけで移動平均を利用した方法を見てきましたが、予測や個別の選手の指導方針的な部分で役に立てるのはなかなか難しそうです。一応この方法を擁護しておくと、基本的にはそれなりに理に適っているように見えます。それにもかかわらず役に立たないというのは、そもそも平均角度に注目するというアプローチ自体の効果の低さをほのめかしているように個人的には思えます。

この原因の一つは平均値だけに注目していることかもしれません。このような考え方は当然目新しいものではなく、例えばTangoは打球速度に関してですが、極端な例を持ち出して平均速度を計算することが無意味であるケースを説明しています。

Tango, Solution to calculation of “average” exit velocity?, 2016.
 http://tangotiger.com/index.php/site/article/solution-to-calculation-average-exit-velocity

この例では、それぞれ2つの打球を持つ二人の打者を考えています。一人目は、非常に早い打球である100 mphの打球と止めたバットにあたった40 mphの打球を持ち、この場合平均は70 mphです。ここでMLBでの非常に非力な打者の典型的な打球として75 mphの打球を2つもつ打者がいれば平均は75 mphです。後者のほうが速度は早いですが価値が高いと言えるでしょうか?

ここで速度から期待される価値Statcastデータから大雑把に推定すると、前者のwOBAconは約0.4 ((0.7+0.125) / 2)、後者のwOBAconは約0.25 ((0.25+0.25) / 2) なり、平均速度の小さい前者のほうがかなり価値が高いという結果になります。このような逆転現象は、単純な速度の平均が価値と速度の関係を考慮できていないために、このような結果になったと考えられるでしょう。また、価値を考えなくても平均値からの乖離の程度が異なる値、例えば (100 + 40) と (70 + 70) がデータとして同じ、と言っていいかどうかは考えるべき点があります。

図を使ってこの具体的に見てみましょう。下の図は乱数を発生させて、打球角度っぽい値を2 x 400ずつ取得し (それぞれをgroup 1, 2としています)、いろいろな方法で可視化しています。これらは平均は同じですが、上の極端な例と同様に平均値からの乖離の程度が違います。



Aはそれぞれの全打球データを概ねそのままプロットしました。グループ1と2を比べると、平均はだいたい同じですが、2は上下に広がりが大きく、かなりばらつきが多いことがわかります。この差は乱数を発生させる際のばらつきの大きさをそれぞれのグループで変えているためです (平均 = 12, 標準偏差SD = 18 vs 30; 実際には角度のSDが18は低すぎてありえなさそうですが見やすさのため)。平均値が同じでもデータではかなり差があることが見て取れます。

Bはヒストグラムで、Aを横に倒して、下の位置を揃えたイメージですが、それぞれの棒の範囲の中での区別が大雑把になっている分、Aよりも少し情報量が減っています。逆にあまり意味のない小さな差に振り回されにくくなるかもしれないので利点にもなりそうですが、範囲をどう設定するかで見え方が変わるのでやや注意が必要です。

Cは箱ひげ図で、中位値や四分範囲値などの分布の性質を捉える特徴的な値だけを示しています。情報量としてはさらに減っていますが、どの数値あたりのどれぐらいあるかということは (少なくとも見慣れている人間にとっては) よりわかりやすくなっています。

Dはよくある棒グラフとエラーバーで示しており、ここではエラーバーはSDを示しています。この例では平均に比べてSDが大きすぎるため、不格好と言うか非常に見づらいという問題もありますが、それを無視してもA-Cに比べても情報量が少ないことがわかります。 例えば、分布の歪み、外れ値からの影響の大きさ、あるいは複数のピークがあるかどうかといった情報は失われています。

という感じで、AからDに至るまでに情報量が落ちていくような図を作ってみました。こういう情報を伝える過程で情報量が落ちていっていることを認識するのはそれなりに重要だと思います。実際、科学的な分野では棒グラフとエラーバー (SD, SE, 95%CIなど) で示すのは、実際の分布の性質を表すことが難しいのでいい加減やめようとなっている分野は少なくないのではないでしょうか。

ただし、情報量が多ければいいのかと言うと微妙なところもあります。生のデータは人間の頭では理解するには複雑すぎることが多いですし、例えば分布同士を比較する場合、特徴的な値にある程度注目したほうが比較しやすいと思います。また、個人でデータを分けて効果を考えるなどの場合にも、特徴的な値を使わないと操作が困難になったりすることもあるでしょう。

話を平均角度に戻すと、この値はDの棒の高さや、Cの箱ひげ図の真ん中の棒あたりだけを見ていることになり、1と2の間に差がないと考えてしまうことになります (箱ひげ図の中央は実際には中位値ですが似たようなものとしましょう。実際には角度のデータでは結構違いがあります。)  (注4)。

角度の分布を、極端な具体例を見てみます。下はJoey VottoとCarlos Perezの15-17年のデータをヒストグラムで示しています。



ヒストグラムの上に、それぞれのデータの特徴を示す値を載せています。この二人の打球は平均 (mean) や中位値 (median) は近いですが、SDがかなり違います。ここでは歪度 (skewness) も計算していますが、これは分布がこの図でいうと左右でどれくらい歪んでいるのかを示すような値です。上の図では広がりの違いがわかりにくいので一つの図の中で比較しやすい密度分布にして、色を変えて比較してみます。


平均角度だけを使う場合、このような広がりの違いを無視することになります。平均に加えて、例えば打球の角度や速度についてのSDを使えばこの違いをある程度反映できるはずです。

打球の広がりを反映しても、打球の価値をうまく評価できるようにならないならば、あまり意味はないと考えることもできるかもしれません。この点に関してはEli Ben-Poratがいい感じの説明をしてくれています。

Eli Ben-Porat, Mike Trout, Statcast Darling, 2018
https://www.fangraphs.com/tht/mike-trout-statcast-darling/

ここでは、打球の角度と速度のSDを考慮することは、実は打球速度や角度の値と、打球の価値との関係を考える上でも重要となりうることが議論されています。

というあたりで項を改めて続く。

<参考>
Statcast data https://baseballsavant.mlb.com

前半あたりのもっと細かい話はRPubsに書いています。
https://rpubs.com/snin/mov_avg_wOBAcon_1
https://rpubs.com/snin/mov_avg_wOBAcon_2
https://rpubs.com/snin/mov_avg_wOBAcon_3
_________________________________________________________
<注>
1.
ここではその理由を調べる一つの方法として、上で注目した理想角度17.5~20のグループで、なぜwOBAconがあまり変わらなかったのか検討してみます。まず、この集団における、打球角度に沿った平均wOBAconを示します。



10°-30°あたりで非常に価値が高いことがわかります。しかし、そこから高角度側では打球価値が急激に低下し、40°以上ではほとんど打球価値が無いこともわかります。

ここで理想角度17.5~20のグループの中では理想角度が一致しているわけですから、打球の価値はある程度揃っている可能性が高いと思われます (実際には低角度部分では違うかもしれないことを後で示します)。一方、実際の平均角度に注目するとかなり個人差があるはずです。今度は、理想角度が揃ったこのグループの中で実際の打球の平均角度でさらにグループ化 (angle_group) して、打球角度の分布を見てみます。



推定値を放り込んでいると思われる不自然なピークを無視すると、実際の平均角度が高いグループほど全体的に角度が高角度側 (右) にシフトしています。ここでは特に5°-8°のグループと、14°-17°のグループに注目するので、それだけを抜粋した図も示します。これらに注目した理由は、比較的人数が多く、かつ比較的極端な角度であることです。



青の破線で示した14°-17°のグループでは、価値が特に高い打球である10°から30°の打球相対的にが多かったことがわかります。ただし、価値が非常に低い40°以上の打球も多かったようです。5°-8°のグループは10°以下の低角度領域で打球が多くなっています。

さて、ここで打球の価値が平均角度に依存しない、つまり理想角度グループ内で一定であると仮定すると、その平均価値とグループごとに特有な打球の頻度から、各平均角度グループそれぞれのwOBAconを推定することができます。下の図は角度で分けた部分ごとの推定されたwOBAconです。



特に注目している平均グループの結果を別に示します。



角度が大きい14°-17°では当然10°から30°あたりで大きく価値を稼いでいます。しかし、角度が小さい5°-8°のグループは低い角度 (0°以下) あたりで相対的に価値を稼いでおり、特によくわからない-20°のピークあたりで価値を取り返しているようです。

これらの角度ごとの値をすべて足し合わせたものが推定wOBAconとなります。


5°-8°のグループと14°-17°のグループはほとんど変わりません。実際のwOBAconと比較してみましょう。下は実際のwOBAconと打球速度の平均を示しています。



極端に高いor低い平均角度グループを除けばそれなりに悪くない推定になっているようです。推定値の足し合わせは角度が大きい14°-17°でも角度が小さい5°-8°でもほとんど変わらず、実際のwOBAconの値に差がないことと概ね一致していると言えるでしょう。これは上で説明したように、角度が小さい5°-8°は角度が低い領域の打球で価値を取り返している可能性を支持しているかもしれません。2°-5° あるいは17°-20°では予測値からかなり乖離していました。これは、これらのグループでは含まれる個人の数が少なくうまく推定できていない、あるいは他の要素としては打球価値が一定という前提があまり当てはまっていない、ということもありえます。実際の打球速度の違いも関連があるかもしれません。

上の推定wOBAconと実際のwOBAconのテーブルを比較すると、推定wOBAconの方は角度が高い選手を過大評価しているように見えます。これは、この計算のために置いた角度に沿って打球価値が一定という仮定が多少不適切であった可能性があるかもしれません。下は特に注目している14°-17°と5°-8°のグループのそれぞれの、打球価値を示しています。



主要なピーク部分である0°から30°あたりではあまり差がなさそうに見えます。これは、上でMLB全体について説明した内容と合致していると言えるでしょう。一方で、特に角度が低い-30°以下あたりでは角度が低い5°-8°のグループのほうが高そうに見えます。角度が低い選手は、角度が低い打球でも少し価値が高いという可能性がありそうです。上の推定で角度が低めのグループで推定wOBAconが低い傾向があったのは、部分的にはこのためでしょう (おそらく足が速い) 。この移動平均を利用した方法では、このような極端に角度が低い領域はピークからピークから過ぎているため、ほぼ考慮するのが困難のように見えます。上で見られた、価値一定を仮定した時に平均角度が低い選手の価値が低く出がちなのは、この低角度側の価値の違いが関わっているかも知れません。

2.
長打力がある打者が角度を上げても、それほど効果がなさそう (少なくとも長打力が高いという事実のほうがかなり影響が大きく、角度を上げることの追加的な効果はそこまで大きくなさそう)、というあたりは前回書きました。「理想角度からのズレとwOBAcon」の1つめの図で、打球速度だけに注目してもなんとなくわかるかもしれません。ついでに書いておくと、平均打球速度と平均角度を線形モデルにぶち込むと、交差項は有意ですが、結構な部分は (考慮されていない、考慮されるべき変数との) 交絡を拾っているような気がします。

移動平均を利用した方法でもうちょっとやるなら、MLB全体の傾向である理想角度に合わせて、計算された値の-5°くらいが最適として見直してみると、もしかしたらなにか見えるかも? これも「理想角度からのズレとwOBAcon」の1つめの図を見ると、無理があるかな? wOBAconじゃなくてwOBAで見ると? (やりません)

あとは、角度に関して問題になるのは打球の方向でしょうか。いわゆる逆方向の打球は、引っ張り方向にくらべて打球がかなり (20°ほど) 大きくなる傾向があるので、単に方向が変わったために角度が大きいように見えた、というケースが入ってくるのが影響を過小に評価させている可能性があるかもしれません。打球角度ではなく、スイング自体の角度を推定して影響を調べるともう少し見えかたが変わってくるかもしれないし、解釈が困難になる弊害のほうが大きいかもしれない。逆方向に打つことを前提にスイングを作っているように見える打者もいたりするので、このあたりはなかなか難しい印象を持っています。

3.
理想角度についての回帰の大きさについては、打撃指標の中で極端に回帰の影響が大きいものではないです。が、この指標は普通の打撃指標と違い、測定されたデータから推定された値を目標にする、というような使われ方をここでは想定しているので、特に回帰の影響が問題になりやすいと思います。

4.
ところで、仮にこの適当に乱数から取得して示した角度データが実際のデータであれば、すべてをプロットして示しても、速度が示されていない時点で、価値に関する情報はかなり損なわれていると言うべきかもしれません。考えたいのが価値であれば、両方考えるべきであって、角度だけをどれだけ正確に伝えても全体の理解としてはあまり意味はないかも、的な意味で。

これは平均されたデータでも同じで、上で速度100 mphでwOBAcon 0.7と書いていますが、これも速度だけを考えたMLB全体の話。全体的な角度が平均よりかなり低い打者だと、期待値はもう少し下がるはず (速度が主に効くのは低めのフライなのでこれが少ないと価値が少し下がる)。ある要因について調整されて計算された期待値は、考慮されていない要因との交絡ごと計算されるはず。なので、「それ自体の価値」的な効果とは大なり小なり異なることが多くて、どれぐらい違うのか考えないといけなくなったりする (話が飛びますが、これはXRを個人評価に使ってはいけない理由の一つ。)。

で、速度と角度を考慮すると各打球のxwOBA (あるいはそれに類するもの) になりますが、更に言うと、これだって他の影響を持つ要因を無視している。まず、守備がいないところの打球は価値が高いという意味で、方向や距離も価値に関連するはずでしょう。少なくとも打球の価値の記述としては意味はおそらくある。しかし、各打球のxwOBAは速度と角度までは考慮しますが、守備位置の穴に打ったかどうかは考えていません。これは、人がいないところに打球を制御するという部分で投手や野手に大きな能力があると考える証拠が無いため、考慮に入れたくないという評価上の理由だろうと思われます。さらに、xwOBAは走力を考慮に入れて計算することもおそらく可能ですが、そうしていない。このため、打者ごとにまとめてしまうとややバイアスが大きい。しかし、その代わりに打球一つ一つの価値の推定としては妥当性が高い。打球ごとに評価する目的を優先しているのかもしれません。

実際に起こったことをどう記述できて、その中のどの部分を取り出したくて、集計なりモデルなりで自分が実際に何を取り出してきて、どれだけを伝えられるか、あるいは伝えるべきなのか (or スペース的に伝えることを許されているのか) 、というのはそれぞれけっこう乖離があったりする。最終的に全体をうまく反映できているのか、が大事であって、どこか特定の部分だけを正確に測れたり示したりしても、あまり意味無いよね、という話でした。

2018年3月18日日曜日

フライボールの変化が得点貢献に与える影響2 - おまけ FB%編

前回、角度の上昇やFB%の増加は、少なくとも全体的に見れば、それほどwOBAやwOBAcon (打球についてのwOBA) の上昇につながらないことを示しました。今回はなぜ、大きな改善に繋がらなかったのかについてざっくり調べます。ここではFangraphsやRetrosheetを用いて、FB%の上昇の影響について示します。

まず、本筋から外れますが、個人の通算成績的な部分で、FB (フライ) の多さがいろいろな打撃成績とどういう相関を持っているかを示します。下では、2010-2017年において、通算1000打席以上立った打者の打撃成績を利用して、様々な数値の間の相関係数を探索的に調べています。データはFangraphsから。
全部書いているときりがないので、とりあえず枠で囲ったFB% (FB_pct) に注目します (読めない場合はダウンロードして拡大してください)。打者の成績からみてポジティブな要素としては、長打力が高いこと (ISO) やGB%が低いこと (当たり前!) と密接な関係があるようです。一方、ネガティブな要素もあり、フィールド内の打球が安打になる確率であるBABIPの低下や、三振率 (K_pct) の上昇とも関連があるようです。BABIPに関してはFBはBABIPがGB (ゴロ) やLD (ライナー) よりも低いことが知られているので予想通りという感じです。wOBAとの関係を見ると、0.19と非常に弱いですが正の相関はあり、前向きな結果かもしれません。

下ではこの関係を詳しく見るためにFB%とwOBAの関係をプロットし、それらの選手のHR/FBを色で示しています。

関係性としては非常に弱いことが伺えます。また、右に行くほどwOBAが高い選手が多く、またHR/FB%も高いこと選手もwOBAが高い傾向がありそうです。このことはFB%とHR/FB%が高い選手は、特に得点産生に大きな影響を持っていた可能性を示しています。

上の結果は、これはあくまで選手間で通算のFB%の差とwOBAの差を見ているため、同じ個人がFB%を変化させた場合は異なる関係性をもっている可能性も考えられます。ここから、通算成績ではなく、2010年から2017年までの個人での成績変化の結果を示します。

下は様々な指標について、ある年の数値から、その前年の数値を引いた値を求め、その数値同士の相関を調べた結果です。両年度で450打数以上あった選手だけを対象にしています。
下から2番目の行にFB%変化 (FB_pct_diff, マゼンタの枠) と様々な指標の変化の相関が示されています。いきなり、wOBAの変化との関係を見る (右から6列目) と、相関係数はわずか0.006であり、ほぼ無相関といった結果になりました。この関係を詳しく見るために関係をプロットで示します。HR/FBが色で示されています。ここでのHR/FBは比較している2年間の数値を、打数で重み付けして平均を取っています。これはフライボールの得点貢献への影響1で、Retrosheetを使って示した結果とほぼ同じ事を行っています。

FB%の変化とwOBAの変化の間に明確な関係が見られないことが確認できます。ここではHR/FBが高い選手は全体に比較的ランダムに散らばっている様子が観察できます。これは、上で示した通算成績レベルの結果とは対照的であり、HR/FBが高い選手がFBを増やしても必ずしもwOBAは改善しなかったことを示してます。

FBの価値はGBより高いことは広く知られています。では、なぜFBの打球価値はGBよりも高いのに、FB%や角度を上げてもwOBAは改善しないのでしょうか?

上の相関行列にもどってwOBAの変化 (下から6行目, 緑の枠) との関係性が強いものを調べると、最も強い関係を示すのはBABIPの変化で相関係数は0.7です。FB%はBABIPの変化とはどちらかと言うと負の相関を示し、その絶対値は大きくありませんが-0.29となっています。さらにBABIPが相関するものを調べると、wOBAを除くとライナーの比率 (LD% = LD_pct) が比較的高い相関を示しています。ここで、下の図は打球別のBABIPの値を示しています。

BABIPでみるとFBはGBよりも低くなっています。また、対照的にLDでは他の打球よりもBABIPが非常に高いことがわかります。

単純な関係を無理やり考えると、
FB%上昇   →   LD%低下 →  BABIP低下 →wOBA低下 
というストーリーがありえるかもしれません。

というわけで個人でのFB%変化とLD%変化の間の関係を調べます。ここからはFangraphsではなくRetrosheetを使用します。これは、主にStatcast同様にポップフライを含む分類系なので比較が容易であること、個人の細かい打撃成績の集計が容易であることが理由です (注1)。
そこそこ相関がありそうです (R = -0.47, p < 2.2e-16)。回帰直線をそのまま信じると、FBを10%増えた場合、平均的にはLDが4%程度低下したようです。ここではBABIPの変化を色で示していますが、全体的に回帰直線の上側では、同じ程度のFB%の選手に比べてBABIPが高くなっているようです。これはLDを増やすことがBABIPを上昇する上で有効なことが示されているといえるでしょう。

比較のためGBで同じように示します。

LD%よりも強いFB%との関係が確認できます (R = -0.56, p < 2.2e-16)。回帰直線によるとFBを10%増やすと、平均的にはGBが6%程度低下しています。LDが4%低下したので、合計ではほぼ10%になりました 。また、BABIPが高い点は回帰直線の下側に多いのは、FB%の影響を揃えているので、GB%を減らすとLD%が増える可能性が高いのが原因だと思われます。既に10%の変化がLDの低下とGBの低下でほぼ説明できたのでPUは変化していないことが予想されます。確認しましょう。
FB%差とPU%差には相関は無さそうです。

ここまでで、FBを増やした時にLD, GBの頻度が平均的にどの程度変化するかが見積もれました。各打球の平均的な価値を使えば、FBを増やした場合にこれらの平均的な価値が変動しないという前提で、FBが増えた時の打球の価値の変化を大雑把に定量することができます。

平均的な打者であり、打球100の選手を考えてみます。
この選手の打球の構成は、2017年のだいたいの打球比率から、
GB46, FB22, LD 25, PU7
とします。

下はRetrosheetから計算した、各年度での打球別wOBAです。

これにそれぞれの2017年の打球の平均的なwOBAをかけて合計し、打球の数で割ると以下になります。
(0.456 * 22 + 0.226 * 46 + 0.66 * 25  + 0.022 * 7) /100 = 0.37082
これはこの選手の (そして概ねMLB全体の平均の)、wOBAconです。

FBの5%の増加が全てGBと入れ替わった場合のwOBAは、
(0.456 * (22 + 5) + 0.226 * (46 -5) + 0.66 * 25  + 0.022 * 7) /100 = 0.38232
ですが、
回帰分析の結果を元に5%の低下をGBとLDに大体3:2で配分すると、
(0.456 * (22 + 5) + 0.226 * (46 -3) + 0.66 * (25 - 2)  + 0.022 * 7) /100 = 0.37364
となります。
全てGBがFBに置き換わるのであればwOBAconは0.012弱増加しましたが、LDの低下を考慮にいれることで、増加は0.003まで低下し、価値の上昇のかなりの部分が失われた事になります。FB%の上昇でwOBAが伸び悩んだ要因として、LD%の低下は重要な要素であった可能性がありそうです。

年度間では打球の価値の違いがありますが、この違いがどれほど影響するかをみるために、同じ計算を2016での価値で行います。
平均的打者では、
(0.368 * 22 + 0.226 * 46 + 0.714 * 25  + 0.022 * 7) /100 = 0.36496
です。
ここから、上と同じ比率で5%FBを上げると、
(0.368 * (22 + 5) + 0.226 * (46 -3) + 0.714 * (25 - 2)  + 0.022 * 7) /100 = 0.3623
wOBAconはむしろ低下してしまいました。この結果は2016年ではFBのwOBAが2017より低いこと、またLDのwOBAが高いことによって起きたと考えられ、年度間で実際に見られる程度の打球の価値の変動が、FBに関するアプローチの変化の効果をそれなりに左右する可能性を示しています。

選手個人の打球価値も影響があるはずです。仮にFBのwOBAが0.6の選手を考えてみます。Statcast (15-17) で計算するとFBのwOBAはStantonで0.75強、Troutで0.55程度なので、0.6はかなりのエリートです。
この選手のwOBAconは、
(0.6 * 22 + 0.226 * 46 + 0.66 * 25  + 0.022 * 7) /100 = 0.4025
FBを5%増やすと、
(0.6 * (22 + 5) + 0.226 * (46 -3) + 0.66 * (25 - 2)  + 0.022 * 7) /100 = 0.41252
打球のwOBA 0.413はなかなか高い数値です。FBを5%上げることによる増加も0.003から0.01まで増加しました。当然、FBの価値が高い選手のほうがFB%を上げた時にwOBAconを上昇させることができ、高いFB wOBAを持つ選手ならば、FB%をを5%増やすとそれなりに効果がありそうです。しかし、FB wOBAを0.6に上げること自体の効果が
 0.4025 - 0.37082 ≒ 0.03
 なので、FB wOBAが上がることの影響の大きさは、平均的なFB%比率であっても非常に大きく、FB%を上げることによる追加的なwOBAの改善はそれに比べれば、あまり大きくはないようです。

ここまでは打球の話をしてきましたが、得点への影響全体の評価を考えると、三振、四球の頻度の変化を評価しなければなりません。

下は角度の変化とK%の変化の関係を示しています。

相関は非常に弱く (R = 0.116, p = 0.0009)、傾きをそのまま信じても、FB%が5%上昇しても0.4%弱に過ぎず、250打席に1回、打席の価値が0になる程度の影響にとどまるようです。

一応これも、線形回帰の傾きから影響を概算してみます。
平均的な、1打席でwOBA0.33を稼ぐ選手の100打席を考えます。
この選手のwOBAは
0.33 * 100 / 100 = 0.33
となります。ここで1%が三振 (wOBA = 0)になると、
0.33 * (250 - 1)  / 250 = 0.32868
0.00132の低下です。
打球価値の概算で見られた影響の大きさと比較してみます。
打球は平均的には、打席数のだいたい2/3程度だと思われ、2017の価値では打球100で0.003程度の改善があったので、打席250では
0.003  * (250 / 100) * 2/3 = 0.005
となり、三振の増加は打球価値の増加の1/3弱を失わせる程度の影響に留まっていたようです (注2)。

次に、角度変化とBB%変化の関係を示します。
直線はわずかながら傾いていますが、ほぼ無相関です (R = 0.007, p = 0.046)。とりあえず無視してしまいましょう。

これらの見積もりではFB%の比率が変わっても、打球の価値が一定であるという仮定を置いています。この妥当性を見るため、FB%の変化と各打球wOBAの変化を調べました。

面白いことにFB%の上昇は、FBの価値の上昇とわずかに正の相関を示しています (R = 0.15, p = 4.444e-15)。

価値が上昇した理由としてはいくつかの可能性が考えられます。例えば、
  1. FBを増やすと打球価値が上がる、あるいはFBを減らすと打球価値が下がる可能性
  2. FBの価値が上がったり、下がったりすると打者はそれに応じてFBを増減する傾向がある
これらの可能性を区別するのは困難だと思いますが、個人的には、後者は少なくとも関与していると考えるのが自然だと思います。仮にこの推測が正しければ、打者は年間単位レベルでの自らの打球価値の変化に応じて、検出可能なレベルでこれまでもアプローチを調整していたのかもしれません。

まとめると、FB%が増えたからといって得点貢献があまり増えなかった理由としては、
  1. LD%の低下による打球の質の低下
  2. 三振の増加
がありそうでした。効果の大きさとしてはLDの減少が主要であった可能性が高そうです。

しかし、実のところ、初めの方で示したように、FB%だけでなく他の意味がありそうな打撃関連の指標の多く (Pull%, Z-Contact%, O-Swing%) の変動は単年単位ではwOBAとほとんど相関が無いことがわかります (注3)。上で示した相関行列を再掲します。

単年程度のサンプルサイズではwOBAの変動は、BABIPの変動とかなり大きい相関を示しています (R = 0.7)。BABIPのばらつきは確率的に期待される程度でも十分に影響が大きいため、こうなってしまうわけですが、それ自体は避けようがない部分で嘆いていても仕方が無いとも思います (BABIPのばらつきの影響については角度の方の記事でもう少し色々と書いています)。個々の効果が少なくとも、プレイヤー本人に合ったものを中心に、あまり効果はないかもしれないが色々な部分で少しでも打撃を改善することを目指していく、というのがMLBのレギュラークラスの打者の大半にとっては現実的な方向性のような気がします。そういう意味では、FBの増加も一部の打者にとっては試みるべきアプローチである可能性は十分にあると思います。

ここではFB%をつかっているのでNPBでも同じようなことを調べることは可能です。個人的にはNPBでも大差はないと推測していますが、今のところ特に調べてはいないです。

<参考>
_____________________________________________________________________
注1.
具体的には、後で示したFB%が変化した時の各打球タイプのwOBAの変化の集計がしたかった。

注2.
Statcastの打球角度を調べた結果に比べると、三振が及ぼす影響が小さくなっているようです。16-17年だけで調べると、FB増加に対する三振増加は、10-17の結果の1.5倍ぐらいあったようなので、部分的なそれが効いているようですが、これでもまだ影響が小さいかもしれないです。もうちょっと真面目に比較しないとよくわからないですが、正直なところ面倒。

注3.
ただし、長打力にある程度直接的に関連しそうなもの (HR/FB, Hard%) の変動はそれなりにwOBAと相関があります。他の要素に極端に悪影響が出ないような形で、長打力をつけられるならそれに越したことではなく、FB%を上げることの効果が長打力自体の効果よりはかなり劣るというのは多分間違いないように思います。