2017年10月28日土曜日

野球のランナー、アウト状況における変化の概観2: いろいろなゾーンの変化

# 野球のランナー、アウト状況における変化の概観2: いろいろなゾーンの変化

前回はMLB 00-16においてアウト (0-2の3通り) + ランナー状況 (2^3の8通り)に関して、全体的な打席結果がどう変化しているかを見ました。特に1塁が空いていて、2, 3塁にランナーがいるような状況で四球/打数と三振/打席などが変化している傾向がありそうでした。

今回はこれらの状況でいくつかのゾーンに変化が見られるかどうか調べてみます。データはMLB 2015-2017のものを使っています (Statcast, MLBAM)。

調べたゾーンは以下です。
1. 投球のコース
2. 投球のうち、打球になったもののコース
3. 打者のスイング傾向
4. 審判のストライクゾーン

とりあえず、いくつかの状況についてゾーンを図でざっくり確認していきます。状況としては"000 0" (ランナーなし、ノーアウト)、"001 0" (ランナー3塁、ノーアウト)、 "001 1" (ランナー3塁、1アウト)、"011 1" (ランナー2 + 3塁、1アウト) について調べました。後ろの3つの状況は、打席結果の変化が大きかった状況から適当に選んでいます。

すべてのデータは右打者のものだけを使っており、ピッチアウトや敬遠などの故意にボールにした球は除いています。問題として、ランナー、アウトの24状況にわけているので、特に珍しい状況に関してサンプル数があまり多くなく、また、逆にサンプルが非常に多い場合も計算時間の関係で数を少なめにサンプリングしているので、あくまで目安という感じで見てください (注1)。

下の図では実際の投球を利用して、どの位置にどれぐらいの数の投球が投げられるかを推定し、同じ推定値の点をつないで等高線が引かれています。
図1. いくつかの状況における投球密度。
紫の枠はおおまかなストライクゾーンを示す (注2)。

基本的には等高線内が濃い黒で示されているほど、そのゾーンに多くの投球があったことを示しています。密度が十分に低い領域では等高線は書かれておらず、代わりに各投球のコースが点でプロットされています。"000 0" では右打者の外角低めに特に黒い領域があり、積極的にストライクゾーンに投げていることが伺えます。

例として示した他の状態では、"000 0"で見られるほど濃い黒の領域が見られず、投球が散らばっている可能性がありそうです。高低の目安として、緑の破線で"000 0" の濃い黒の領域の下辺りの高さを示していますが、他の状態でも比較的密度が高い領域はそのちょうど上辺りにあり、投球の高さはそれほど変わっていないかもしれません。
"001 0" (ランナー3塁、ノーアウト) では投球が少し内角寄りになっています。ただし、状況自体が少ないので正確さが足りないだけかもしれません。

下の図では打球になった投球の密度を同様に等高線で示しています。
図2. いくつかの状況における打球になった投球の密度。

打球になった投球だけを同じように示しても、全体的に狭いことを除くと、全投球データとだいたい似たような傾向、といったところのようです。

次に、打者のスイング傾向を等高線で示します。
図3. いくつかの状況における打者のスイング傾向。
状況の違いは、線の種類の違いで示されている (図の右参照)。

ここでの等高線は、各状態で打者が50%の確率でスイングする領域の周縁です (注3)。ランナーがいる状態では、50%スイングゾーンはかなり広くなっています。打者は、ランナー状態によってかなりスイング傾向を変えている可能性がありそうです。

等高線を引くスイング確率を変えても傾向は似たような結果になっています。

図3-2. いくつかの状況における打者のスイング傾向2。

審判がストライクと判断するゾーンのサイズも調べてみました 。
ストライクゾーンは既にランナー状態などで変化することが知られています。
J. Roegele. The Living Strike Zone, Baseball Prospectus (2013).
https://www.baseballprospectus.com/news/article/21262/baseball-proguestus-the-living-strike-zone/

図4. いくつかの状況における審判のストライク判定の傾向。
打者のスイングゾーンほどではないですが、ランナーがいることで変化しているようです。上の記事で書かれているように、ランナーがいることでゾーンが狭くなる傾向がありそうです。

いくつかの状態について図で示してきましたが、これでは全体的な傾向を掴めないので、定量化します。各状態について、等高線内の面積を測ってみました (注5)。ゾーンの位置 (高低/内外) や形状の変化はわかりませんが、だいたいの傾向を見るのには十分ではないかと思います。

下は、ピッチアウトなどを除いた投球の50%が含まれると推定された等高線のサイズを示しています。
図5. 各ランナー、アウト状況における投球のゾーン面積。
左の列 (Base) はランナーの状態を、一番上の行の0, 1, 2はアウトカウントを示す。

基本的にランナーがいるとゾーンは広くなるようです。また、1塁が空いて、2 and/or 3塁にいるときに広く、特に3塁にランナーによって広くなるようです。アウトカウントは影響はそれほど大きくなさそうでしょうか。

ゾーンのサイズと、投球がストライクゾーン内であったかどうかの関係を調べるため、投球がおおまかなストライクゾーン内だったかどうかの比率も計算してみました (打者がスイングしたものも含めている)。
図5-2. 各ランナー、アウト状況における投球コースのストライク/(ストライク + ボール) 比率。

図5で投球コース面積が広い状況では、当然、ストライク/ボール比は下がっているようです。

次に、打球になった投球だけの50%等高線の面積を求めると以下のようになりました。
図6. 各ランナー、アウト状況における、打球となった投球のゾーン面積。
左の列 (Base) はランナーの状態を、一番上の行の0, 1, 2はアウトカウントを示す。

面積は随分狭くなりましたが、傾向としては全投球の結果と似ているようですが、こちらでは2アウトではゾーンは狭くなっているかもしれません。

下は50%以上の確率でスイングする部分を描く等高線の面積です。
図7. 各ランナー、アウト状況における打者の50%スイングゾーンの面積。
投球コースと同様、基本的にランナーがいるとゾーンは広くなるようです。特に、1塁が空いていると、埋まっている状態より広そうです。

また、スイングゾーンは、アウトカウントからも影響が大きいことがわかります。特に3塁にランナーがいる時に顕著ですが、0 or 1アウトで積極的にゾーンを広げているようです。とにかくバットに当てて、フライでもゴロでも本塁に返せるように、という打者の意図が強く表れているのかもしれません。2アウトで打球になった投球のゾーンが狭くなるのは、打者のスイング傾向の影響がありそうです。

図6に関して、打球になった投球が2アウトで狭くなっているかもしれない、と書きましたが、打者のスイングゾーンが狭くなることで、投球全体のコースはアウトカウントで変化していなくても、打球になった投球のコースが変化している可能性がありそうです。

全体的な傾向としては投球のゾーンが広いときには、野手のスイングするゾーンも広くなっているようです。これが、投球が広いからスイングゾーンが広いのか、スイングゾーンが広いから投球が広いのか、はよくわかりませんが、両方の影響があると考えるのが自然かもしれません。ただ、2アウトでは一部の状況で野手のスイングゾーンはかなり狭くなっているのに、それに応じて投手側が狭くしている傾向はあったとしてもかなり小さいようです。

審判のストライクゾーンの等高線内のサイズも変化しています。
図8. 各ランナー、アウト状況における審判のストライク判定50%ゾーンの面積。

ランナーがいると全体的に狭くなっていますが、特に1塁が空いて、2 and/or 3塁にいるときに、すこし狭くなっているかもしれません。また、アウトカウントが2になると少し広くなっているかもしれません (注6)。

という感じでゾーンの変化を見てきました。次回は、ゾーン変化や打席結果変化の関係を調べてみます。
ぱっと見ただけでも、各ゾーンの変化の間には正や負の相関が強くありそうで、それぞれのゾーンの変化の影響を個別に評価するのは不可能そうです…

<参考>
Statcast
https://www.mlb.com

Marchi and Albert, Analyzing Baseball Data with R, 2013, CRC press.

J. Roegele. The Living Strike Zone, Baseball Prospectus (2013).
https://www.baseballprospectus.com/news/article/21262/baseball-proguestus-the-living-strike-zone/

B. Mills, Rethinking 'loess' for Binomial-Response Pitch F/X Strike Zone Maps.
http://princeofslides.blogspot.jp/2010/12/rethinking-loess-for-binomial-response.html

Bill petti, baseballr.
https://billpetti.github.io/baseballr/

How to estimate the area of 95% contour of a kde object from ks R package.
https://stackoverflow.com/questions/25940726/how-to-estimate-the-area-of-95-contour-of-a-kde-object-from-ks-r-package
______________________________________________________________________
注1.
PITCHf/xなら2008年 (一部2007も) からあるので、そっちを使うべきだったかもしれません (PITCHf/xデータは操作がちょっと面倒なのでStatcastでやってしまった)。審判のストライクゾーン自体が少しずつ変化しているはずなので、あまり長い期間でまとめてしまうと変なことになる可能性もありますが。データの取得、計算、描画は基本的にRで行っています。データの取得はbaseballrパッケージを利用。

注2.
ウチの作図ではストライクゾーンのサイズは、Marchi and Albertに従っており、横は-0.95から0.95で、縦は1.6から3.5で書いています。少なくとも横はプレート+ボールの直径という感じです。縦は平均的なサイズの打者の場合で、こちらも多分ボールのサイズが入っている?

注3.
打者のスイング傾向と審判のストライクゾーンに関しては、可視化・サイズの計算は、Rのloess関数を使って局所重み付け回帰してsmoothingしたデータを使って、contourLines関数で等高線を計算しています。この辺の手順はMarchi and Albertに従っています (loessでspanは指定してない)。また、投球が10,000より多い時は、10,000球をランダムサンプリングして使用してます。

ところで、この手のゾーンデータではパラメータの選択で結構見た目が変わるとか、原理的にはgam (一般化加法モデル) を使ったほうがいいんでないかと言うような話があるようです。
http://princeofslides.blogspot.jp/2010/12/rethinking-loess-for-binomial-response.html
同じ方法で出された結果同士の相対的な比較としては、どっちでも多分そんなに変わらないと思いますが、形状や数値なんかは、ここで示したものはあまり信用しない方が良いかもしれないです。
上のようなsmoothing処理を使わずにx (横), z (縦) 平面を、-1.2 < x < 0.1かつ2 < z < 4 の範囲 (右打者内角高めあたり) で、0.1フィート x 0.1フィート (約3 cm四方) ずつのグリッドにして、グリッド毎のストライク/ボール率を直接計算すると、こんな感じ。

図9. 狭いゾーン毎のストライク/ボール判定率。
ここでは全状況を合わせた結果を示しています。

左の列がz方向のグリッドの中心の値を、列名がx方向の中心値を示しています。赤の破線は、横方向が-0.9、縦方向が3.6という、だいたいストライクゾーン (+ボール1個分) の境界ぐらいのあたりを示しています。

本文で示した等高線図も少なくとも近似としては悪くなさそう?

注4.
比較のため、いくつかのボール/ストライクカウント (BS count) でのスイング傾向の変化も示します。
図10. いくつかのボール/ストライクカウントにおける打者のスイング傾向。

当たり前ですが、追い込まれるとかなり広い範囲をスイングするようになるようです。1ストライクではボールカウントはそこまで大きな影響は無さそうです。図3、図3-2、図7で見た、ランナー/アウト状況の変化によるスイングゾーンの変化は、各状況において発生しやすいカウントが違うことによる可能性もあるかもしれません (例えば、K/ABが高い状況では追い込まれている頻度も高い可能性がある)。
状況毎のカウントを揃えるために、カウント1-1だけに絞った50%スイングゾーンサイズを計算してみました。

図7-2. 各ランナー、アウト状況における、カウント1-1での50%スイングゾーンの面積。

下は図7. 各ランナー、アウト状況における打者の50%スイングゾーンの面積。比較のため再掲。

基本的にはだいたい似た傾向のように見え、状況の違い自体の影響が大きそうです。ただ、2アウトでは図7-2ではランナーの有無によって生じた変化がさらに小さくなっているような印象もあり、カウントも影響もそれなりにあることを示唆しているかもしれません。

注5.
投球のゾーンに関しては、kde関数を使って密度推定して、contourLinesで等高線を計算。下を参考にしました。
https://stackoverflow.com/questions/25940726/how-to-estimate-the-area-of-95-contour-of-a-kde-object-from-ks-r-package

注6.
本文中で引用したJ. RoegeleのBPの記事によると、2アウトほどではないですが1アウトでも広がっているようです。こちらはランナー状況を細かく分けていて、こちらの図を見ると、サンプル数が違う各状況が等しい影響があるように評価してしまうのが良くないかもしれません。アウトの影響をざっくり見る方法としては向こうの記事のほうが、サンプルも稼げて推定も正確でしょうし、重み付けも公平になるので、基本的に良い方法だとおもいます。ただし、向こうの記事だと、アウトカウントごとのランナー状況の違いが考慮されていないので、それが影響する可能性も無くはないです。

2017年10月21日土曜日

野球のランナー、アウト状況における変化の概観1

# 野球のランナー、アウト状況における変化の概観1: 打席結果

野球のイニング内での状況は大まかに0-2アウト (3通り) + ランナー状況 (2^3 = 8通り) に分けることができ、このような性質は状況の得点期待値や、イベントの得点価値の計算などに利用されています。

これらの状況においては、各イベントの得点価値は大きく変動しています。変化を具体的に見ていきます。

下は2000-2016年MLBのデータから計算した、単打 (Single) とHRの各ランナー、アウト状態での得点価値を示しています。 「ランナー状態」は0か1で各塁でのランナーの有無を表現しています。例えば、000であればランナー無し、100であれば1塁のみランナーあり、101であれば1+3塁にランナーあり、というふうになっています。


図1. 単打 (Single) とホームラン(HR) の各ランナー、アウト状態での得点価値。

ランナーがいない状態 (ランナー状態 = 000) に注目すると、HRは常に得点価値としては1点となりますが、単打はアウトカウントによってその価値は変動し、0アウトでは単打はHRの1/3程度の得点価値がありますが、2アウトになると1/8程度まで低下します。これは0アウトであれば、出塁した後にホームまで帰ってこれる確率がある程度高いのに対し、2アウトではなかなか帰ってこれないという当たり前の感覚を、数字で裏付けていると言えるでしょう。

下は四球 (BB) の場合を示しています。

図2. 四球 (BB) の各ランナー、アウト状態での得点価値。

Singleの結果と比較すると、ランナーがいない状態ではほとんど結果は同じですが、1塁が空いていて、2塁や3塁にランナーがいる状態 (001, 010, 011) では、その得点価値はかなり違っています。これは、各イベントの得点価値は、主に、打者が塁に出ることによる部分と、塁上のランナーを進塁させる部分に分解できることを考えれば、容易に理解できると思います (よく見ると塁を埋める効果もありますが、効果はそんなに大きくない)。これらの状態では四球ではランナーを進めることができないのに対して、Singleではランナーを進めることができます。

このような状況によるイベントの価値の変化は直感的にも理解できる部分が多く、効果の大小をどこまで正確に把握できるかという重要な問題を横においておくと、選手たちもこんなテーブルを見せられなくても当然考慮に入れているはずで、イベントの発生頻度をある程度コントロールしようとしている可能性が考えられます。では、いろいろな状況において、誰が、どの程度各イベントの発生頻度を変化させているのでしょうか?

下の図3は各ランナーアウト状況 (STATE) における打席結果を示しています。

基本的な成績Single ~ HRに関してはABで、BB ~ Kに関してはPAで割った値を示しています。全体的な打席結果を示す指標としてwOBAも計算しました。wOBA_actualは実際の打席結果から求めたwOBAを、wOBA_expctは打席に立っている打者の年度wOBAから予想されるwOBAの期待値を示しています。wOBA_diffは実際のwOBAからwOBAの期待値を引いた値です (注1)。
PA: 打数, AB: 打席, Single: 単打, Double: 二塁打, Triple: 三塁打, BB: (非故意) 四球,
IBB: 故意四球, HBP: 死球, K: 三振


図3. 各状態でのイベントの発生頻度と、wOBA (wOBA_diffの降順) 。

あまりに多くの要因があり、わかりづらいので、とりあえずwOBA_diffに注目して低い順に並べています。故意四球 (IBB) は当然ですが、それ以外にも多くの打席結果も発生頻度が多少変化しているようです。

STATEを見てみると、アウトカウントが多いほどwOBA_diffは小さくなる傾向があるようです。wOBA_diffの上昇とはっきりした正の相関を示す要因としてはSingleの上昇があるようです。また、wOBA_diffの低下はKの上昇と相関があるようです。このことは、これらの要因が、少なくとも部分的に、wOBA_diffの変化に影響している可能性を示しています。

並べ替えたぐらいでは全体的な関連性を理解するのは難しそうです。全体的な関連性を探索的に調べるために、各成績間の相関マトリックスを作成しました。数値は2つの成績間の相関係数を示し、右のゲージで示されているように、正の相関が強いほど濃い青で、負の相関が強いほど濃い赤で示されています。
図4. 各イベントや成績の間の相関行列。

やはりwOBA_diff (下から2行目 or 右から2列目) に注目すると、上で見たとおり、Kとは強い負の相関があることがわかります。打者にとって望ましい結果でありwOBAを上昇させる要因についても、Single, Double, HBP, HRなどある程度以上の正の相関があり、これらの変動もwOBA_diffの変化に働いている可能性がありそうです。

ここで、BB (非故意四球) は特別な傾向を示しています。BBはwOBA_diff、あるいはwOBA_actualと、非常に弱いながら、負の相関を示しています。これは、BBが増えるとwOBAが少し低下するという表面上の関係が存在していることを示しています。いうまでもなく、BBは計算上wOBAを上昇させる要因であり、一見矛盾した結果です。

この関係性が生まれる原因を調べるため、相関行列でBBについて注目してみます (上から2行目 or 左から2列目)。BBと正の相関を示すものとしてはKとIBBがあります。また、負の相関を示すものとしてはHR, Double, Singleが見られます。HR, Double, Singleに関してはABで割った数値を使っているので、BBが増えても直接この数値を下げることは無いはずですが、Kが増えることで間接的にこれらの数値を下げている可能性は考えられます。Kとの正の相関、HR, Double, Singleとの負の相関は、wOBAを低下させる要因となる可能性があり、BBの増加によってwOBAが増加する効果以上に、これらの相関の影響が強く、結果としてBBとwOBAは負の相関を示しているようです。

これらの相関関係をもう少し全体的につかむために、各状況におけるBB/PAとこれらの数値をプロットしてみます。BBとKの間に相関があることから、ABで割るとKが増えた影響を受けるはずなので、この影響を差し引くためにHR, Single, Doubleに関してはABではなく総打球数 (Batted balls) で割った値にしています。

図5. 各状態における、BB/PAに対する各指標との関係。見づらいときはダウンロードして開けてもらうと良いのではないかと。

幾つかの傾向が見て取れると思います。
1.
BB/PAが高いのは、アウトカウントが1 or 2で、かつ2 or 3塁にランナーがおり、さらに1塁が空いている時。逆に低いのは、1塁が埋まっており、2アウトでは無い時。
2.
BB/PAとHRは打球あたりでみると、上の相関行列でのHR/ABの数値に比べると、影響がだいぶ弱そうに見えます。しかし、全体的にほどほどに相関しているかもしれません。"010 0"と"011 1"で特に少ないのは謎です。
3.
BB/PAが増える状況では、K/ABは増えるような傾向があるようです。
4.
Single/総打球はランナーが3塁におり、かつアウトカウントが0 or 1で増加しやすい。
5.
DoubleはABではなく打球数でわると、BB/PAとの相関は見られなくなった。
6.
IBB/PAは2 or 3塁にランナーがおり、さらに1塁が空いている時に高い。アウトカウントが大きい方がより多い。

これらの結果はどう解釈できるでしょうか?

1について、BB/PAが高くなっている状況では、四球を出すことで塁を埋める効果もあり、特にある程度以上優れた打者に対して、投手がある程度選択的に四球を出している可能性が考えられます (注2)。一方、打者側からすると、少なくとも常識的な直感ではこれらの状況については、四球を選ぶメリットはあまり無いような気がします。
また、野球の記録ではボールが4つ記録されることによる打者の出塁は、(非故意) 四球と故意四球にわけられますが、当然、これらの出塁は実際には投手から見て0%故意から100%故意の間の連続的なものであるはずです。審判が100%と判断したものが故意四球とラベルされていますが、四球にはある程度以上の故意が入りうると考えると、投手側の影響が大きいと考えたくなるところではないでしょうか。
塁が埋まっている時 (つまり四球でランナーを進められる) に四球が少ないことも、投手側による故意によって説明できそうな気配がします。

2, 3について、Kの増加やHRの低下といった投手側から見て好ましい効果と、投手にとって望ましくない四球の増加が全体的に相関していることは、なかなか面白い結果だと思います。面白くない可能性としては、1に書いたように投手から見て好ましくない (長打力がある、三振しない) 打者に対して選択的に四球を出すことが、影響していることがありえます。面白い可能性としては、投手からみて四球を出してもコストが比較的小さい状況では、よりボールゾーンで誘ったり、あるいはストライクゾーンの厳しいところをつく、といったより慎重に投げることが可能であるはずで、これらがこの相関を産んでいるのかもしれません (注3)。

また、打者側の変化からも一部説明できる可能性があるかもしれません。HRの低下に関しては打者が確率の低いHR狙いよりも、より確率の高い単打を打つような打撃に切り替えている可能性もありそうです。Kの増加に関しては、野手側が手をだすゾーンを広げたりしていると、Kが増える可能性がありそうです。

4については、非常にわかりやすく、大部分は3塁ランナーを進ませないための守備位置の影響でしょう。打者のアプローチの変化もあるかもしれませんが、2アウトでは増えてないことから、打者の影響はあまり大きくないような気がします。これらの影響が大きそうな部分を無視すると、BB/PAとの単回帰の直線の傾きはさらに小さくなり、影響はあったとしても非常に小さそうです。

5については、Double/ABで見えた影響はKの増加による間接的な影響のようです。

6については特に書くことは無い気がします。

では2の面白くない方の可能性がどれぐらい影響してるか調べてみます。とりあえず特にBB/PAが多い"001 2", "010 2"に注目してみました。これらの状況において、四球になった打者と、四球にならなかった打者の年度成績から期待される成績を計算しました (注4)。
図6. 注目した状態における、期待されるイベント発生頻度。
BB_FL: 1が四球を発生した打席、0がそれ以外。

やはりHRを打つ確率は四球をもらった打者の方が高いようです。"001 2", "010 2"は四球が最も少ない状態に比べて、四球が約2倍になっています。そこで、仮に四球となった打者の半分が全てbatted ballになった場合に、HRの期待値がどれぐらい増えるか計算していみると、
"001 2"では0.429から0.432に、
"010 2"では0.429から0.433に、
HR/総打球が上昇するという結果になりました。これらの変化は高々1%というところで、影響は軽微なようです。2で見えている、BB/PAと相関するHRの低下の大部分は、これ以外の要因によって起こっている可能性が高そうです。
Kに関しては、打者能力はほとんど変わらない、むしろ歩かせている相手はわずかにKが多い打者のようなので、打者能力の調整はあまり気にする必要は無さそうです。

いくつかの指標に関して状況による発生頻度の違いが見えてきました。これらの違いと、各イベントの状況毎の得点価値との違いとの間の関係はどうなっているのでしょうか?各イベントの状況毎の得点価値と、発生頻度をプロットしてみました (注5)。
図7. 各イベントの得点価値と発生頻度の間の関連。

明らかなパターンが見られるのはやはりBBです。得点価値が低い状態でより起こりやすくなっています (r = -0.70, 95% CI: -0.86/-0.42; p < .001)。IBBもBBほどでは無いですが、似た傾向があるようです (r = -0.45, 95% CI: -0.73/-0.03; p = 0.038)。少なくとも、ランナー・アウト状況に注目する限り、これらのイベントの発生頻度に対する影響力が強いのは投手側である可能性が高そうです。
KとSingleは傾きがありそうにも見えますが、その傾きは非常に小さく、また、これらの関係には有意差はありませんでした (Singleに関しては既に書いたように、おそらく守備位置の関係でランナー3塁かつ0, 1アウトで出やすく、これらはSigleの得点価値が高い比較的高い。微妙に傾いているのはおそらくこのため)。

各打席結果について、アウトカウントと、2塁より先にランナーがおり1塁が空いている状態、の2つの要因で違いが見られたので、この2つの要因ごとに打席結果を集計してみました (注6)。
図8. アウトカウント、ランナー状態ごとの実際のイベントの発生確率。
Out_CT = アウト数
Open_FL = 1はランナー状態が"011", "001", "010"を、0はそれ以外を示す。

同じアウトカウントで見ると、1塁が空いているとHRが減る傾向があるようです。HRは特に0アウトで低下しやすいようです。Kは、1塁が空いている時に、1, 2アウトでは増加していますが0アウトでは差は無さそうです。
1塁が空いた状況について注目すると (データの2, 4, 6行)、アウトカウントが増えるとBBとKが増加するようです。一方、HRはあまり低下していません。これはアウトカウントが増えることで打者のアプローチが長打狙いになっていることも関連しているかもしれません。

まとめです。24状況における打席結果の変化としては、
1. 四球は得点価値が低い (投手からみてコストが小さい) 状態でよく見られる
2. Kは四球が多い状態で多くなる
3. HRは四球が多い状態ですこし少なくなるかも
4. Singleは3塁走者を止めたい状態で増加する
あたりが傾向として見えました。
四球は得点価値が低い状態でよく発生することから、投手側がある程度選択的に四球を出している可能性が高そうです。しかし、これらの探索的な解析はあくまで表面的な数字の相関と推測にすぎないです (注7, 注8) 。このような変化が生じるメカニズム的な説明があると、もう少し説得力がでるかもしれません。

HR変化のメカニズム的な部分に関して、使用したRetrosheetでは打球種が記録されているので、簡単にできる解析として、図8と同じ状況で打球種別の割合を求めてみました。

Out_CT = アウト数
Open_FL = 1はランナー状態が"011", "001", "010"を、0はそれ以外を示す。
FB: Fly ball
GB: Ground ball
LD: Line drive
PU: Pop up
(pct = percentのつもりなんですが100分率に変換するのを忘れてますね...)

特にHRが低下しやすい、0アウトかつ1塁が空いた状態ではフライ (FB) が約15%低下しているようです。0アウトかつ1塁が埋まっている状態と比較すると、HR/総打球の低下が約25% (図8) なのでFBの低下で半分ちょっとは説明できているかもしれません。ライナー (LD)も減っているので、おそらくこれも多少効いているはずです。FBやLDを減らしているのが主に打者側なのか投手側なのかは、このデータだけではちょっと解釈が難しそうです。

1アウトに注目するとFBはむしろ増えているのに、HR/総打球が約10%低下しているので、打球だけでは説明できないような効果もあるかもしれません。

ここから詳しく調べるなら、24状況ごとの投球のコース、球種、打者のスイングゾーンあたりのデータを調べてみるというのがとりあえず良さそうな気がします。とりあえず15-17の4-9月のStatcastデータから、幾つかの状況ごとに投球のコースをプロットしてみました。数が多いと見てもよくわからないので、各状況でランダムに300球だけ選んでプロットしています。

図10. ノーアウトランナー無し + BBが出やすい状況における投球の分布.
○はボール球、+はストライク (ファウル含む)、▽は打球になったボールを示す。

全体的に、左端のノーアウトランナー無しに比べて、1塁が開いている状況で投球ゾーンが広く、また打球になったボールの領域も広いような印象を受けるのではないでしょうか?もう少し詳しく調べてみる価値がありそうです。

といったところで続きます。大したことはできそうにないですが、ゾーンサイズの変化ぐらいは示そうと思います。
___________________________________________________________________________
注1.
wOBAは全体的には良く得点価値を表しますが、ここではそれぞれ平均的な状況からかけ離れているため、得点価値とみなすことは困難だと思われます。つまり、例えば、wOBA_diffが大きいからと言って、相対的に打者にアドバンテージがあるとは必ずしも言えないはず。あくまで、全体の傾向をある程度示す変数が欲しかっただけです。

注2.
状況によるイベントの変化としては、四球がコストが低い時によく発生することは古くから知られているはずです。身近な例では、四球の得点価値が死球より低いことからもほぼ明らかでしょう。

注3.
ちなみに、この慎重に投げることの効果、ということではThe BookのChapter 10. Boots were made for walking. において、2000-2004 MLBでは、故意四球をだすことが比較的好ましい状況 (アウトカウント1 or 2, ランナーが2塁か3塁にいて1塁が空いていて、さらに攻撃側が同点あるいはリード) とそれ以外の状況を比べると、四球/PAが約20%、三振/PAが5%増えていたことが既に示されています (Table 130)。HR/PAは変わっていないことも示されていて、三振と四球の増加を考えると、このデータでも多分HR/総打球は3%くらい低下しているんではないかと。彼らのデータで差が小さそうなのは、HRが低下しやすい0アウト (図8, アウトカウント別に見る) 状況や、他の四球がそれなり以上に増えやすい状況が、「それ以外の状況」に含まれているせいでしょうか。

注4.
各PAにおける打者の期待値でのHR/総打球の数値が、図5のHR/総打球の数値に比べてかなり高いのは、HR/総打球が高いと総打球/PAが少なくなるバイアスがあるためのようです。たぶん。

注5.
HRが増えていないのは打者側のアプローチの変化を考えると意外な結果かもしれません。実際の得点価値ではなく、イベント間の得点価値の相対的な変化でプロットしてみるとこうなりました。打者が絶対値より相対的な変化により大きく応答しているなら、こっちのほうが妥当かもしれません。

これだとHRは相対的な価値の増加に伴い、わずかに頻度が上昇しているように見えなくもないです (ちょっと無理があるか)。投手側がHRを減らそうとしている部分もあると思うので、なかなか効果としては出ていないのかもしれません。
ここでは得点期待値との関連だけ調べましたが、得点確率や勝利期待値を考えることも拡張としてはありうる方向だと思います。少なくとも、各状況における、BBが増えやすくなることの影響と、相反するKやHRの影響を比較するためには、それらも見ないと評価のしようがなさそうです。

注6.
一応各状況における打者と投手の成績の期待値を計算しました。Pit_Singleから右の数値が投手のものです。0, 1アウトでは塁が空いた状態では強打者が回ってきているようなので、HRは補正したほうが良さそうですね... (面倒くさい)。

1塁の状態の違いで投手のDoubleがかなり違うのはサンプリングからのバイアスでしょう (二塁打の後は注目している1塁が空の状態になる。逆に言うと、二塁打が出やすい環境ではいろんなイベントの発生確率が少し変わりやすいはず)。そのまま補正に使うとおかしなことになりそうです。

注7.
実のところランナー・アウト状態ごとにまとめた、HR/総打球とBB/PAの間の相関は5%水準では有意差がないです (p-value: 0.071)。が、24状況ごとにまとめた要約統計量 (つまり平均) で相関を見るという、情報量を盛大にドブに捨てる感じの行為自体も、問題がありそうな気がします。
問題を単純化して、ランナー状態が"011", "001", "010"かそれ以外でまとめて、HR/総打球がどうなるかを計算すると1割以上低下しているようです。

これだけ差が大きく、サンプル数も十分なので、もちろん2群の比率の差の検定ならp値は極めて小さい (p < 2.2e-16)。しかし、これもいくらなんでも単純化しすぎ感。

注7.
ついでに得点差による影響についても軽く調べてみました。

Close_FL: 1は同点 or 1点差 (+1 or -1) を、2は2点差 or 3点差、3はそれ以外を示す。
Out_CT = アウト数
Open_FL = 1はランナー状態が"011", "001", "010"を、0はそれ以外を示す。

ランナーが"011", "001", "010"の状態に注目すると (赤の枠、赤の破線の枠)、赤の破線で示したアウトが1 or 2の状態で、接戦になると四球が増加しやすいようです。この時四球の増加はKの増加と関連がありそうですが、HRについては関連が見えていません。打者のアプローチ変化もあるかもしれません。

<参考>
Tango, Lichtman, and Dolphin, The Book , 2007, Potomac Books.
Marchi and Albert, Analyzing Baseball Data with R, 2013, CRC press.
http://retrosheet.org
https://www.mlb.com

2017年10月14日土曜日

中盤の中途半端に高いレバレッジ状況において, 近いうちに下げる先発投手を打席に立たせることの費用便益 by MGL

先週の記事の中で書いた、先発投手の巡目でのアドバンテージ低下に少し関連することを、@mitchellichtman (MGL) がツイッターに書いていたのでメモっておきます。
https://twitter.com/mitchellichtman/status/917641501361938432

内容としては、試合中盤の中途半端に高いレバレッジ (Leverage Index, 注1) 状況での投手の打席で、代打を使うか、先発投手をそのままいれるかという話です。

きっかけとしては、2017-10-10のLAD vs ARI
https://www.mlb.com/gameday/dodgers-vs-d-backs/2017/10/09/526489?#game_state=final,lock_state=final,game_tab=play-by-play,game=526489
の6回表3-1でLADがリードした状況で、1アウト3塁でダルビッシュをそのまま打席に立たせた挙句に、裏の先頭打者への死球で下ろすという迷 (?) 采配がありました。で、色々 (注2) あって、「近いうちにベンチへ下げることになる先発投手」を少し高めののレバレッジ状況でそのまま打たせるか否かについて、勝利期待値への影響の大きさに関する大雑把な議論をしていくれています。

まず代打を出すことの利得から。
15-17のデータではこの状況 (1アウト3塁のことでしょう )で投手に代打を出すと、イニング最後までの得点期待値 (RE) が0.19増加。状況 (6回表2点差リード) のLI  = 1.45から0.027 勝利期待値 (WE; 勝率としては2.7%)となる。
(計算としてはたぶん
 REを1勝あたりの得点 (RPW) を使ってWEに変換して、
 REは平均的状況 (LI = 1) を考えているので、
0.19 * 1/10 * 1.45 ≈ 0.027
RPW = 10は明示されていないが勝手に入れた (注3))

次に好投手に代打を出すことのコストについて。
3巡目のダルはgood relieverとあまり変わらないので、ダルビッシュが投げるイニングが減ることのコストは無いと言った上で、
仮に、投げるリリーバーよりも9イニングで0.5失点が減らせる投手であったとしても、
そこから投げられるイニングが0.75とすると (注4)、
REは-0.04
(0.5 / 9 * 0.75 ≈ 0.04)

この場合でもRE -0.04は利益に比べて十分に小さく、このコストで補正しても代打を出すことによるWEは0.21。
(   (0.19 - 0.04) * 1/10 * 1.45 ≈ 0.021  )
勝てばすぐ休みの場合、これ以上の追加的なコストはあまりない。

利得に関しては、もう少しちゃんとした方法でも計算を試していて 、何点入ったかの分布 (0,1,2,3,4...) を調べて、それぞれのWEを計算して合わせると、
代打を使った場合は投手を打たせた場合に比べて、
0.018 WE (15-17)
0.022 WE (10-17)
利得があった。

(要するに、初めの例では平均得点期待値を出してからWEに変換しているが、ここでは記録された残りイニング得点数ごとのWEを出してから平均していると思われる。1度に多く得点をいれるとオーバーキルになりやすそうなので、得点を平均してからWEを計算すると誤差が生じる余地が大きい。)

そして、実際の状況で打席に立った投手は打撃が良い可能性を考えると、平均的な打撃の投手 (ダルビッシュとか) が打席に入ったときのコストはおおまかに
0.02 - 0.025 WE
ぐらいだろうといっています 。
そして、これを0.75イニングの投球で回収しようとすると、能力差としては9イニングあたりで代わりに出てくるリリーバーよりも2失点減らせるだけの差が必要となる、と。
(ちなみに、勝率2.0-2.5%の低下は、試合の前半、同点においてアウトをタダで1つ献上するのに概ね相当する。)

シーズン中ではリリーフの摩耗も考える必要があるかもしれませんが、このへんの数字を桁感として持っておくと、これからのNPBプレーオフで、MGLのイライラを追体験できるかもしれませんね。

_____________________________________________________________________
注1.
1.02のLIの説明
 http://1point02.jp/op/gnav/glossary/gls_index_detail.aspx?gid=10059
LIの詳しい説明 Tom Tango, Crucial Situations in The Hardball Times, 2006.
 https://www.fangraphs.com/tht/crucial-situations/
Win Expectancy Finder - gregstoll.com. LIを計算してくれます
 https://gregstoll.dyndns.org/~gregstoll/baseball/stats.html#V.-2.6.1.5.2010.2016

注2.
色々
 https://twitter.com/mitchellichtman/status/917609270551633922

注3.
RPWについて1.02の説明
 http://1point02.jp/op/gnav/glossary/gls_explanation.aspx?eid=20018
RPWについてFangraphsの説明
 https://www.fangraphs.com/library/misc/war/converting-runs-to-wins/
MLBでの各年度の数値。 FG Guts!
 http://www.fangraphs.com/guts.aspx?type=cn

注4.
このへんの、少しLIが高くても短いイニングではそれほどWEを大きく動かせないというあたりについては、MGLも著者の一人となっているThe BookのChapter 8. Leveraging Relivers. を参照。
T. Tango, M. Lichtman, and A. Dolphin, The Book , 2007, Potomac Books.

2軍成績の割に1軍での出番が少ない選手を探せるshiny app

2軍成績の割に1軍での出番が少ない選手を探せるshiny appを公開してみました。
https://snin-17.shinyapps.io/shine_on_your_hidden_players_app/

機能としては以下の通りです。

1.
過去2年間の2軍成績のいくつかのパラメータを範囲選択して選手を選べる。
パラメータの一つとして
Diff = 2軍での出場機会 (PA or IP) - 1軍での出場機会
を作っています。

2.
選んだ選手と全選手の二年間の各指標を、箱ひげ図と点でプロットして、選んだ選手の2軍全体や、所属チーム2軍での位置を確認できる。

3.
選んだ選手の1軍、 2軍での2012年以後の各年度の成績を見られる。

ルール5ドラフトごっこにでもどうぞ。

動画にしてみました。動画ではわかりにくいですが、プロットでは範囲選択で選んだ選手は赤のドットで示されています。画面は開発中のものです。





ついでに1軍と2軍成績比較の方も多少UIを変えました。
https://snin-17.shinyapps.io/farm_stats_app/

タブで指標を選んでいましたが、1つのページに全て並べるようにしました。描画がだいぶ遅くなりますが、ぼんやり眺めるのにはこっちのほうがいいかなと。


<参考>
https://www.shinyapps.io
http://d.hatena.ne.jp/hoxo_m/20151222/p1
J. Lander, Chapter 29 Interactive Dashborads with Shiney (in R for Everyone, 2nd edition), 2017, Pearson Education, Inc.

2017年10月7日土曜日

MLBにおける各イニングごとの得点とかの話2

MLBにおける各イニングごとの得点とかの話の続きです。今回は1イニングあたりの得点のに影響をあたえる要因をいくつかまとめてみます。

図1にMLB00-16の各イニング表/裏での平均得点を示しました。得点は前回示したものと同じです。表/裏の全体の典型的得点に対する変化率を示すために、それぞれ3-5回の得点の平均で割った値をあわせて示しています。

図1.
Inn: イニング
Top_RPI: 表の平均得点
Top/mean(3-5): 表の平均得点を3-5回の得点の平均で割った値
Bot_RPI: 裏の平均得点
Bot/mean(3-5): 裏の平均得点を3-5回の得点の平均で割った値

ぱっと見て、表でも裏でも、イニング毎の平均得点がかなり変化していることがわかります。野球の試合は、メンバー表レベルで見れば、概ねずっと同じ選手が関わっていることになりますが、実際には、それぞれのイニングでは各選手が関わる程度が違ったり、あるいは前回書いたようにアウトカウントが少ないイニングがあったりします。そのため、イニングはそれぞれ異なる起こりやすい状況を持っており、イニングの得点傾向に個性が生じうる可能性が考えられます。

このデータを見て気になる点として、初回に裏の得点が多いこと、2回に得点が少ないことが挙げられると思います (注1)。2回の傾向は表、裏である程度共通しており、少なくとも2回の傾向は基本的には、ホームアドバンテージとの関連がない影響だと予想されます (初回にホームとビジターで得点の変化率が結構違うのは後で触れます)。

これらの傾向に対する最も単純な説明は打順の状況が異なること (初回は1番からの得点産生に優れた打順で、2回は得点産生に劣る下位打線に差し掛かっている可能性が特に高い) だと思われます。しかし、なんらかの他の要因、例えば初回では謎の力によって打者の能力が向上したり (あるいは2回ではお腹が空いて力が入らないとか?)、投手というものは一般に立ち上がりが悪いために初回に能力が低下したりする傾向がある、などが関わっている可能性も否定はできないかもしれません (注2)。

そこで、打順が持っている1, 2回の得点傾向への影響の程度を計算してみます。実際に計算するのは計算機 (ウチのMacBookPro Mid 2012) ですが。

打順の影響をざっくりと取り出す一つの方法として、試合をシミュレーションすることが考えられます。ここでは、打席ごとに各塁上ランナー+アウトカウントの状態がどう変化するかをモデル化します  (マルコフ連鎖モデル) 。状態が変化する確率は、MLBでにおける各打順の平均的な確率を計算して利用しています。これにより、「仮に」全てのイニングで各打順の能力や、投手の能力が一定の場合の、各イニングにおける得点を計算できるはずです。

詳細は省きます (注3にまあまあ詳しい説明あり) が、基本的なイメージは、
  1.  表/裏の打順ごとに、その打順における平均的な能力をもった打者を並べて、
  2.  1番打者から試合が始まり、9番の後は1番に戻る、という打順の性質、
  3.  3アウトでアウトカウントとランナーがリセットという野球の基本的なルール、
だけを考慮した時に、イニング毎の得点がどうなるか、を推定している感じです。投手も平均的な投手が投げているイメージです。

このシミュレーションの中では各打順は、イニングが変化しても常に一定の能力を示すため、主に打順の影響を取り出してくることができるはずです。

表と裏での各打順での能力差を示したいのですが、実際に計算で利用した各打順での状態変化の確率を全て示すのは難しいので、代わりに各打順の実際のwOBAを示します。
図2.
BAT_LINEUP_ID: 打順
wOBA_vstr: 表側の攻撃でのwOBA
wOBA_vstr: 裏側の攻撃でのwOBA

ここで示しているのは、イニングの表と裏での各打順での実際のイベントから求めたwOBAです。その年度の全打者のwOBAを集計して、その打撃成績から各打順での期待される平均wOBAを計算すると、表と裏の各打順で差はほとんどありません (データは示していない)。つまり、図2で示した、wOBAの表と裏の差はおそらくホームアドバンテージの影響です。また、表と裏いずれでも3, 4番に特に強打者がおり、1, 2番も平均以上であることが確認できます。

図3にモデルから計算された平均得点を示しました。



図3.
Inn: イニング
Avg_Top_RPI: 表の攻撃による平均得点
Top/mean(3-5): 表の攻撃による各イニングの得点を3-5回の平均得点で割ったもの
Avg_Bot_RPI: 裏の攻撃による平均得点
Bot/mean(3-5): 裏の攻撃による各イニングの得点を3-5回の平均得点で割ったもの

下は図1を比較のため再掲。


1-3回くらいの得点に注目すると、概ねモデル (図3) と現実 (図1) の傾向は一致しているようです。これはホームでもビジターでも確認できます。この結果から、初回に得点が多いこと、2回に得点が少ないことは、概ね打順による影響ということでいいのではないかと思います。しかし、1回表の得点が増えすぎているように見えるとか、4回以後の得点・3-5回の平均得点で割ったものがモデルと現実で一致していないとか、打順だけでは説明できない部分もあるようです。

これらの結果を説明できそうな過去に報告された要因として、イニングが進むにつれて、投手と打者の相対的な力関係が変化する、というものがあります。

The Bookにおいて、先発投手は全体的傾向としては、早いイニングにおいて打者に対して相対的に大きなアドバンテージをもっていることが示されています。具体的には、例えば、打順の巡りごとのwOBAを調べて、打順が回っていくたびに、3巡目までwOBAが上昇していくことを示しています (pp. 186)。
実際の数値はを引用します。
1巡目: 0.345
2巡目: 0.354
3巡目: 0.362
このような数値の変化は
1. 投手の能力の変化 (疲れ etc.)
2. 打者の能力の変化 (投手への慣れ etc.)
のいずれか、あるいは両方が関わっている可能性があります。

モデルではこのような影響は全体に等しく分配されているため、1巡目からずっと投手/打者間の相対的な力関係は一定になっているはずで、現実と比較した時に、1巡目の得点が高く、3巡目では低く、なっているはずです。実際、モデルにおいて得点は1回表の得点が増えすぎていますし、4-6回くらいでは現実よりも低いように見えます。というわけで、初回などで3-5回の平均で割った値がモデルと現実で一致しないのは、ある意味当然です。 (注7にこの傾向を使って試しに軽く補正してみた結果があります。)

この影響によって1回では得点が減っているはずにも関わらず、現実の1回表においても得点が3-6回などに比べて減っていないということは、打順による得点増加と、打者/投手の1巡目効果が偶然に釣り合っている可能性が考えられます。

もう一つ、実際のMLBの数値で気になる数値としては、初回において、ホーム側の得点がビジター側に比べて、特に高いことが挙げられます (図1; 1回では差が0.1点ぐらいなのに対し、それ2-8回では0.03-0.05点くらいの差)。実際に高いのであれば、ホームアドバンテージが特に初回において顕著に発生していることを示唆しており、なかなかおもしろい傾向ではないでしょうか。当然、昔から目をつけている人がいるようで、ぱっと調べてもいろいろ記事が出てきます。

例えば、最近だと
https://www.fangraphs.com/blogs/first-inning-home-field-advantage/
http://retrosheet.org/Research/SmithD/HomeTeamScoringAdvantageRelatedToTime.pdf
特にJeff Zimmermanによる前者はなかなかおもしろい記事だと思います (後者はちょっと...)。

大まかに言うと、ビジターの先発投手は試合に入るまでの待ち時間が長くなるとコンディションが悪くなる、ということに原因が求められているようです。

具体的には、表の攻撃が5分以上になると、裏の投手の速度がわずかながら低下するような傾向があるようです  (注8)。能力的な部分への影響に関して、実際に示されているのは速球の速度だけで、これによって初回の得点の違いを説明できるかに関しては、そこまで大きな効果は無いと考えているようです。他にも能力的な部分で変化があってもおかしくは無さそうですし、そこまで考えれば結構説明できるのかもしれません。

ホームアドバンテージ自体は様々なスポーツに広く見られますが、このようなことが起こるには、ホーム/ビジターで攻守が明確に非対称性があり、さらに一部のポジションで試合に入るまでに体を冷やすようなラグがあるスポーツに特有だと思われ、メカニズムとしては結構面白いように思います。逆にいえば一般性に乏しい可能性が高いですが、条件に当てはまるスポーツを探してみると、意外に見つかるかもしれませんし、見つからないならないで、見つからないということも含めて、ホームアドバンテージの全体の理解に繋がると思います (注9)。

というわけで、まとめです。
イニングあたりの得点のパターンに変化を与える要因としては、少なくとも以下のものがあるようです。
1. 打順
    初回の得点を増やし、2回の得点を減らす
2. 打者と先発投手間の力関係
    1-2回の得点を減らし、リリーフと交代するまで少しずつ得点を増やす
3. 初回に特に大きいホームアドバンテージ
    1回の裏の攻撃の得点を増やす
4. 3アウトになる前に試合が終わるイニング
 9回以後の裏のイニングの得点を減らす
この辺を全部考慮すると、得点の変化の大部分はまあまあ説明できてるんじゃないかなあ、といったところです (他にも代打とか、効果の大小はともかく、影響を与える要因自体は色々あるかもしれませんが)。

2, 3については、なぜそういう効果が生じるのかという部分はまだ十分理解されてないような印象です。適当にググった程度なので、そんなに詳しく調べたわけではないですが。

2は効果もそこそこ大きい (1巡目と3巡目では打席1つあたり0.015くらい平均得点が高い) 上に、先発投手を早めに降ろしてしまうといった投手起用で、好ましい効果を取り出せる可能性がある部分でもあります。Mike Petrielloは最近の記事で、プレーオフにおけるこの効果に注目しています。特にプレーオフのような、シーズン中よりも投手に多少の負担を増やすような起用法も可能な状況では注目すべき部分かもしれません。
http://m.mlb.com/news/article/256023252/starters-wont-go-deep-in-2017-playoff-games/

初回のホーム/ビジターの差については、モデルの方の結果 (図3) もなかなか興味深いんですが、少しややこしい。解釈については、いずれ書くかもしれません。

_______________________________________________________________________
注1:
孫引きで大変恐縮ですが、James Clickによると (Baseball between the Numbers, pp. 36)、Bill Jamesは1988のBaseball Abstractの中で、この2回での得点低下を示して、3番打者には出塁率の低い選手を置くべきだと書いたそうです (2回の先頭打者に最もなりにくい打者に出塁率の低い選手を配置することで、2回の先頭打者の出塁率を上げて、2回の得点を増やしたい、と考えたらしい?) 。現代風のモノサシ (PAで補正した打順毎の各イベントの得点価値) の前の前の時代の話、といったところでしょうか。

注2:
実際にはこれぐらい簡単な要因なら、計量すればすぐにある程度わかりそうですが。

注3:
今回のモデルでは、MLB00-16年の全イニング表と裏における、各塁上のランナー+アウトカウント状態 (25通り) から、次のランナー+アウトカウント状態へと移る平均的な確率を各打順で計算し、これをそれらの打順の打者の能力的なものとして利用しました (データはRetrosheetから集計)。

 実際のシミュレーションの過程は、例えば、1番打者がノーアウトランナー無しでイニング表に打席に立つと、67%で1アウトランナー無しとなり、25%でノーアウト1塁になる、といった確率が計算できるので、その確率に従って打席ごとに新しい状態をサンプリングし、二番打者がその新しい状態で打席に入る、といった具合で進んでいきます。

モデルを使う利点の一つは、非常に多くの試合数の得点を計算できるため、与えられた条件のもとでイニング毎に「得点が変化するかどうか」だけでなく、「どれほど変化するのか」を精密に推定することが原理的には可能なことです (ここでの精密さは、あくまで与えた条件の元での結果の推定を精密 (precise) にできる、ということで、現実を正確 (accurate) に表すという意味ではないです)。実データから得られた平均確率に従って得点産生過程を500,000試合分計算し、打順の影響を量的に評価しました (注4, 注5)。

各打順における遷移確率は、投手のFIPがある程度同じ値を示す1-5回での各打順での確率を用いました (各イニングのFIPについては先週の記事参照)。6回以後は、おそらくは主にリリーフ投手の影響で、投手のFIPが低いため含めなかった。使用したモデルは、Marchi and Albertで記述されたMLB平均の状態遷移確率を使って1イニングの得点を計算するモデルを書き換え、打順を実装して、それらがそれぞれ異なる遷移確率を持つようにし、1試合を計算するように書き換えたもの。ちなみにNPBだと状態遷移確率はふつう手にはいらないと思いますが、状態遷移を打撃イベントのサンプリング+進塁規則に分解して書き換えれば、ざっくりした評価ぐらいには使えると思います。モデルのもう少し具体的な説明はコチラ
https://sleepnowinthenumbers.blogspot.jp/2017/10/blog-post.html

 このモデルでは、初回は1番打者から開始して、現実に近い確率でイベントが進んでいきます  (注6)。このため、仮に初回に得点が高いことが、高い能力を持った打者が初回に集中することであれば、このモデルにおいても、初回に得点が高くなると期待できます。

また、打順以外は平均的な状況を考慮しているため、どのイニングで打順が回ってきても、与えられた状況が同じであれば、それぞれの打順は全く同じ能力を示してくれます。例えば、現実世界において初回でのみ3番打者が謎の力によって好結果が出ていることが初回の得点が多い原因であった場合、この傾向は計算上全てのイニングにおける3番打者に等しく分配されることになり、初回の高得点は見られなくなるはずです。ただ、この方法も完璧ではなく、あくまで平均を取ることでありうる効果を全打席に散らしているだけなので、ある程度効果が残る可能性があります。例えば、初回に何らかの理由で打順以外の要素で得点が入りやすくなっている場合、効果の1/4か1/5程度が初回にも残るのでそこは多少問題です。

注4:
今回は500,000試合だから、この手の計算としてはかなり少ない方だと思います。とはいえ、現実の試合数を基準とするとかなり多く、まあまあ精密なはずです。現実のMLB 00-16 (約41300試合) での点推定もそんなに正確では無いと思いますし、そんなに計算量増やすのもなあ、と。
モデルの結果を、サンプルのMLB試合数にだいたい合わせて50,000試合ずつに分けてそれらの平均を10個をプロットするとこんな感じ。
図4.

現実では、チーム間、年度間、など様々な要因で1試合ごとに戦力差があり、平均的な状態遷移確率がモデルとおなじであっても、これよりも多少ばらつきが多いはずです。実際のSEをおおまかに知りたければ、得点/イニングの分散は平均得点の2倍ぐらいであることが知られているので、
SE = mean *2 * 1 / sqrt(イニング数)
となり、40,000イニングなら平均得点の約1/100に、仮に500,000イニングなら平均得点の約1/350になってるはずです。

注5:
今回は普通の野球のルールで計算していますが、各回ランナー1, 2塁から始めてタイブレークの影響を調べても構わないし、なんなら4アウトルールへの改変だってできるはずなので、たいていの影響は調べたければある程度調べられるんじゃないかと思います。

注6:
Retrosheetの記録上で、打席と数えられたイベントによって起こった状態変化の確率を計算している。打席内で起こる変化 (SB, CS etc.) は無視していますが、1イニングの得点の計算なら、基本的に影響はあまり大きくないはずです (RE24とかだと一部少し乖離する)。
ただし、イニングで状態の遷移確率が一定、という仮定は多少間違いであることが過去に既に報告されている (注7参照) ので、現実を忠実に模しているというわけではないです。あくまで、仮にそうであったらどうなるか考えてみましょう、ということです。

注7:
実際には、The Bookの結果から考えると現実から乖離しているはずで、現実に媚びていくためにはもう少し補正が必要です。

どういう変化によって1巡目で投手から見て結果がよいことにつながるか、一応書いておくと、主にはKが増えて、四球は少し高いがHRは少し低い、という感じのようです。投手側からの数値で見て、FIPでやってもそれなりに似た結果になるような効果だと思います 。

注意点としては、4巡目ではwOBAの数値は上昇せずに、むしろ2巡目と同等まで低下することも示されています。この変化は巡目ごとの投手能力と打者能力を年度成績を使って調整をしても残っているそうなので、おそらく一部の投手では巡目が進行してもあまり変化が大きくなく、実際の起用ではこのような選手が特に4巡目で多く投げている、ということだろうと思います、多分。

引用したThe BookのwOBAの数値と、Mike Petrielloの記事中のwOBAの数値がかなり異なるのが気になったしれませんが、これはThe Bookでは投手打席、バントやIBBを除いており、Petrielloの記事ではこのあたりの処理が違うためだと思われます。

閑話休題。
モデルにおける1, 2回の得点に対して、巡目ごとのパフォーマンス変化に関するざっくりした補正を試してみます。
実際にThe Bookで報告されているwOBA値としては、
1巡目に対して0.345、
2巡目に対して0.354、
3巡目に対して0.362
です (自分が扱った期間で集計した数字の方が望ましいですが、多少面倒な上にあまりきれいな補正にはできなさそうで、やる気がしなかった)。

表と裏での違いは調べられていないので、仮に表と裏で効果が均一であるとします。
1, 2回の数値が1巡目で、補正に使った対象イニングの数値が2巡目で近似できるとすると (やや胡散臭い近似です)、モデルでは1-5回の平均値を取っているので、
(0.345 * 2 + 0.354 * 3) /5 = 0.3504
くらいのwOBAになっているはずです。そのため、
(0.3504-0.345) * 4.3 / 1.15   = 0.0202
4.3は1イニングあたりのだいたいの打者数、wOBAのスケール補正の値は1.15とした。
以上の計算から、現実の1, 2回では、モデルよりもだいたい0.0202点/イニングくらい平均得点が低くなっているはずです。

モデルにこの補正値を入れてみると、
1表: 0.513, 2表: 0.429
1裏: 0.594, 2裏: 0.468
となります。下に図1を再掲。

これにより、1表で現実の値とほぼ一致し、1裏では推定得点は少なすぎるという結果になります。これでやっと、本文で述べた1裏の投手のコンディション不良で1回の表/裏での得点差が生じる、という仮説と、整合的な結果になった、といえるかもしれません。しかし、2回の結果は下がりすぎており、全てがうまくいっているとは言い難いようです。

2回は表でも裏でも下がりすぎているのは、一つには2回は2巡目の打者が出てくるくらいイニングが進んでいるため、補正が強すぎるという可能性が考えられます。 あるいは、上の補正のやり方自体が適切でない可能性もあります。モデルと現実の差ぐらい小さい影響だと、ちょっとした補正のミスだけで結果がかなり変わります。補正を改善するなら、ここでの目的にとって扱いにくい巡目ではなく、イニングに関して現実のwOBAの変化を測定してみるといいかもしれません。しかし、根本的には、得点の点推定自体がおそらくそんなに正確ではない (特に現実の数万試合程度のデータ; 図4) ので、細かいところまで一致しないのはあんまり気にしてもしょうがない感じかな、と (4万試合というと多そうですが、イニングごとのsplitなので大した量ではないです)。

ついでに書いておくと、MLB実データ (図1) で7-8回ぐらいでそれまでのトレンドよりも得点が少ないのもおそらく、
  1. リリーフにスイッチしたことでFIP自体が低下すること、
に加えて、
  2. 年度FIPのわりに結果が悪い先発から、FIP通りの働きをするリリーフになったこと、
が大きく効いているような気がします。どれぐらい説明できそうかまでは確認してませんが。

注8:
Jeff Zimmermanのfangraphs記事中で図の軸ラベルと本文の説明が一致していないように思われるが、本文が正しいと仮定しています。

注9:
ホームアドバンテージ全体の知識はほとんどないので、こういうのが調べられているのかはわかりません。個人的にぱっと思いつくのはアメフトでしょうか。アメフトの知識は99.9%がアイシールド21由来という感じなのですが。Moskowitz and Wertheimによると、NFLではキッカーが蹴る前にタイムアウトを取るのは一般的な嫌がらせとしてわりとあるらしいですが、成功率低下を示す再現性のある結果は確認されていないようです。この場合は体を冷やすというより、精神状態を乱すという意図のようですし、時間も90秒程度らしいので体が冷えるというほどではないかもしれません。

<参考>
The Baseball Prospectus, BASEBALL between the NUMBERS, 2006, edited by Jonah Keri, Basic Books.
M. Marchi and J. Albert, Analyzing Baseball Data with R, 2013, CRC press.
T. Tango, M. Lichtman, and A. Dolphin, The Book , 2007, Potomac Books.
T. Moskowitz and J. Wertheim (邦訳 望月衛), SCORECASTING , 2011, Crown Archetype (邦訳版 ダイアモンド社).
稲垣理一郎 (原作) 村田雄一 (作画) , アイシールド21, Vol.1-37, 2002-2009, 集英社.
http://retrosheet.org

状態遷移確率を用いた野球のマルコフ連鎖モデルの例

野球の解析において何らかの要因からの影響の大きさを推定する方法として、試合をシミュレーションすることが考えられます。シミュレーションは反実仮想的な状況すらも扱うこともできることから、多くの局面で有用です。

ここでは、状態の遷移確率を利用したシミュレーション (マルコフ連鎖モデル) の例についてざっと説明します (主にMarchi and AlbertのChapter. 9を参考にしている)。

このモデルでは、(ランナー+アウトカウント)ごとの状態の移行として試合の進行をモデル化します。

野球の状況は非常に定義しやすく、試合の進行は状態の遷移として表現することが可能です。ありうる状態としては、アウトカウント (0から2の3通り)  x  ランナー状況 (2^3 = 8通り)、で24通りの状態、それに加えて3アウトで25の状態があります。1イニングの得点を推定する場合、ノーアウト、ランナー無しからスタートし、なんらかの確率に従って状態を遷移させていって試合の進行を模式化します。マルコフ連鎖モデルでは、ある状態が次の状態に移行する確率は、どのようにしてその状態に至ったかによって影響を受けないことを仮定しています。

状態遷移の具体例をあげます。
ある打者がノーアウトランナー無しで打席に立った時、その打席が終わった時に、ありうる状態は、
1. 1アウトランナー無し
2. ノーアウト1塁
3. ノーアウト2塁
4. ノーアウト3塁
5. ノーアウトランナーなし (つまりHRで得点が1点入る)
が考えられます。
2011年のMLB全ての打順の平均を例に取ると、これらの状態に移行する確率はそれぞれ、
1. 0.677
2. 0.240
3. 0.050
4. 0.006
5. 0.027
となっています (Marchi and Albert, pp.215)。

打順ごとの能力差を考慮しない2011年成績を利用したモデルであれば、ノーアウトランナー無しからイニングを開始したら、上の確率に従って、新しい状態へと移行させることで1人目の打者の1打席を表現することができます。仮に、ノーアウト1塁に移行したとすると、さらに次の打者の打席では、ノーアウト1塁から新しくとり得る状態とその遷移確率が決まり、ノーアウト1塁からの確率に従って新しい状態へと移していきます。これを繰り返し3アウトに達した時点で、1イニングの終りとなります。その間に記録された得点数を数えると、ある1イニングにおける得点となります。

さらに詳しく、打順を考慮した場合の具体例を示します。

塁上と、0から2アウトの状態を4つの数字で表現します。
例えば、
"000 0": ランナー無し、ノーアウト
"100 0": 1塁、ノーアウト
"000 1": ランナー無し、1アウト
なお、3アウトはランナーを考える意味が無いので一桁の数字で"3"と表す。

# イニング1スタート
"000 0"
# 打者1の確率に従って状態を移行する
# ノーアウト1塁に移行した場合
"100 0"
# 打者2の確率に従って状態を移行する
# 1アウト1塁になった場合
"100 1"
# 打者3; 1アウトランナー無しに移行 (要するにHRが発生した場合)
# 打者+ランナーの総数2が得点として記録される
"000 1"
...略
"110 2"
# 打者8の確率に従って3アウトに移行した場合
"3"
# "3"に達したらイニング1終了
# イニング2スタート
"000 0"
# 打者9; 1アウトに移行した場合
"000 1"
# 打者1に戻る
...略
 "3"
# イニング8が終わったら35%の確率で試合終了
# 65%の確率でイニング9に入る
...略
"3"
# イニング9が終わったら試合終了
# 記録された得点の合計が1試合の得点
 イニング8で35%の確率で試合を終えているのは、公開されているssharpe42氏が書いたcodeで採用されていたため。MLBで9回に進む確率はもう少し低いけど、現実では延長があるのを無視しているので、1試合あたりの得点としてはこんな数字ぐらいを入れておくといいのかもしれない。

 下に実際に計算された1イニングの記録の例を示します。


 各列について、Innはイニング、Slotは打順、State、New_Stateはそれぞれ打者が打席に入った状態と、新しく作った状態 (25の状況を1-25でコードしています)、そしてRunsはその打席で記録された得点を示します。

 先頭の行は、8回の先頭に7番打者が"000 0" (State = 1) で入って、"001 0" (New_state = 4; ランナー3塁) という状況を作ったことを示しています。次に8番は"101 0" (New_state = 16) という状況を作り、9番が"011 1" (New_state = 11) にしています。ここで、1番で"001 2" (New_state = 6)という状況に遷移したので、1点が記録されています。その後、2番がアウトになってイニング終了 ("3", New_state = 25) となりました。

<参考>
M. Marchi and J. Albert, Analyzing Baseball Data with R, 2013, CRC press.
https://github.com/ssharpe42/BaseballMarkov