野球は投手で決まる?
1. はじめに
2023年のMLBレギュラーシーズンも約30%が消化された今日この頃、皆様いかがお過ごしでしょうか。
私の応援するSEAは前半戦にして早くもピンチ、と言う程ではないですが、打力不足に加えて投手陣の綻びもあってなかなか勝ち切れず、50試合終了時点で26勝24敗の地区4位。MillerやCaballeroという新戦力の台頭、Kelenicの適応のような喜ばしい事実もありますが、やや苦しい状況。前オフにFA補強は無理でもやっぱり打者の補強が控え目だったのが痛いよな、しかし不振の選手も多いなあ・・・なんて思いつつ日々を過ごしています。
酷い試合もそこそこあり、半ばヤケクソというか一種の現実逃避(MLB観戦自体も現実逃避の一種ではあるのですが)として少し手を動かしたので、その内容を書いてみます。
と言ってもオリジナルの内容ではなく記事紹介とその再現になります。
追記:コードというかデータ型の指定がまずそうな事に気付きましたが面倒なのでそのままにしています。コードは参考までに。多分playerID的なものを文字列に変えれば問題ないはず。
1-1. 疑問点
野球について語るときにはよく「野球はピッチャーが大事」と言われるように思います。個人的には「それはそうだ」と思う一方で、MLBの試合を見ていると「本当にそうか?打者の方が重要では?」と思うことも少なくありません。まあこのあたりはここ数年でSEAの試合ばかり見ていた個人的バイアスというか、感覚が狂ってしまった部分がある気もします。特に2021年なんかは得失点差-51で90勝みたいなイカれしたチームだったので。
何にせよ、上記の格言は「多くのイベント(三振、本塁打、etc…)では投手の違いによる影響度が打者のそれを上回る」という意味にも思えるのですが、それは本当でしょうか?
と言う事で調べてみると、ひとつの記事を見つけました。
1-2. 記事紹介
その記事はこれです。
全体的には「マルチレベルモデリング」という手法(Wikipediaによると階層線形モデルのことらしい、GLMMみたいなものも含んでいるはず)の野球データ分析への応用を解説する記事のようです。まだ全部は読んでいない事もあって詳しくは分かりませんが。
今回紹介するのはこの記事の3.1章(Is Pitching 75% of Baseball?)で、ざっくり言うと「各イベントに対して、投手と打者の『ばらつき』を算出・比較することで、打者と投手どちらの影響が大きいのかを比較する」という事をやっています。
なお元記事中にもありますが、あくまで「簡易的な」分析だと思います。特に「これこそが正解であり全てだ!」みたいなものではない(というかそもそもデータ分析って基本的にそういうものではない)はずなので、そこはご承知おき下さい。
以下でもう少し詳しく解説してみますが、固定効果・変量効果(ランダム効果)みたいな単語に馴染みのある方は参照元の記事を直で読んだ方が早いと思います。該当部分だけなら分量も少ないので。もし良ければ当記事の間違いやその他のご指摘等々いただけると嬉しいです。
2. 記事の内容
以下では「三振」というイベントを例にして説明してみます。
まず言葉による説明を行い、その後にイメージ図を使って説明してみます。
2-1. やっていること
記事内で分かりやすいのは次の数式かなと思います(やや添字$${i}$$の付け方が甘いというか曖昧な気がしますが):
$$
\log ( \frac{p_{i}}{1-p_{i}} ) = \mu + \beta_{i} + \gamma_{i}
$$
左辺の$${\log ( \frac{p_{i}}{1-p_{i}} )}$$は対数オッズと呼ばれるもので、特に$${ \frac{p_{i}}{1-p_{i}} }$$の部分はオッズと呼ばれるものです。分からない場合は確率値(この場合は各打席で三振が発生する確率)だと思ってください。ご存知の方には説明不要でしょうが、対数オッズはロジスティック関数によって確率値$${p_{i}}$$と1対1に対応します。
これはMLBにおける全ての打席(今回は2019年のMLBレギュラーシーズン全体のデータを利用します)で、三振の発生確率がどの程度のものなのかを考えようとしている、という事を表現しています。これは下で述べる全体平均を基準として、投手と打者のマッチアップごとに様々な値を取って変化する値になっています。
重要なポイントとして、この値の変化の大きさ(ばらつき=標準偏差と言います)を投手起因のものと打者起因のものに分解する事で、三振の発生率における各々の影響度を測ります。
さて右辺は$${\mu + \beta_{i} + \gamma_{i}}$$となっています。
まず$${\mu}$$は全体平均を表しており、この場合は野球という競技を(MLBのレベルで)行う上では「全体的にはおおよそこの程度の割合で三振が発生しますよ」という値を表しています。この値は打者が誰だとか投手が誰だとかには関係のない、全てを通して固定の値になります。ただしこの項は今回の内容においてはそこまで重要ではないのであまり気にしなくても大丈夫です。
次に$${ \beta_{i}}$$は打者の影響を表しています。上の$${\mu}$$とは異なり、これは0を基準として打者ごとに変化する値です。各打者ごとに「どの程度平均から外れたか」を算出しています。上記「左辺」の所(文中で「重要なポイント」と書いた部分です)で説明した通り、この値の変化の大きさ(標準偏差)が打者の影響度を表すことになります。$${ \beta_{i}}$$の個々の値ではなく、これら全体の変動の大きさ(ばらつき)を知りたいのです。
極端に考えると、全くばらつかない(全打者の三振率が全く変わらない)のであればそのイベント(三振)は打者の影響はないと言って良いでしょう。全打者が同じ値を取るのですから打者による影響もへったくれもあったものではありません。逆に(少し想像し難い状況ですが)全ての打者ごとに発生率(三振率)が大きく異なるのであれば、打者の影響は大きいと言えます。それだけ「打者によって違いが出る」値になっているので。
少し統計的な説明をするとこの項は平均0、標準偏差$${\sigma_{B}}$$の正規分布から打者ごとにサンプリングされた値です。Bは単にBatterを表す添字で打者や打席ごと等で変化するのではなく固定の値です。本当は$${\sigma_{B}}$$の値を打者側の影響度として利用したいのですが直接読み取れないために上記モデルを使って推定を行っています。
$${\gamma_{i}}$$については上記$${\beta_{i}}$$の投手版です。これによって投手の影響度を測ります。
最後に打者の影響度と投手の影響度の比を取ることで、どちらの影響度が強いかを確かめます。ここではこの値を影響度の比率値と呼び、
「打者の影響度(標準偏差)」÷「投手の影響度(標準偏差)」
で定義することにします。この比率値は打者側の影響度が大きいほど1より大きくなり、投手側の影響度が大きいほど1より小さくなります。 標準偏差は通常0より大きい値を取るので、比率値も0より大きい値となります。
2-2. イメージ図
かなり不正確だと思いますが図にすると以下の様なイメージ:
まず、三振が発生する確率の『ばらつき』を打者側と投手側に分解し、各々の影響度の大きさを確認したいと考えます。しかし投手や打者の影響の大きさ(下図1の青、緑、赤の各パネル内の「山」における「幅の広さ」)を直接知る事はできません。我々はここから出てきた実際のデータしか観測できないからです。
そこでデータをひとつひとつ拾って考えてみると、三振したかどうかの結果とその時の投手・打者の組み合わせが出てきます。そこでこれらの全ての組み合わせから投手・打者全体の影響(各パネルの「山」)を復元し、そこから影響度の大きさ(各パネルの「幅の広さ」)を推定します。そのためにモデル(下図の数式)を利用します。
3. 利用データとコードについて
3-1. 利用データについて
利用するデータとその抽出方法について少し説明と注釈をしておきます。興味のない人は飛ばしてください。
元記事では打席単位のイベント(三振やHR等々)については、打席単位のデータを収集しているRetrosheetから、打球速度や打球角度、空振り等については投球単位のデータを収集しているStatcastからデータを取得していると思われます。私はイベントごとにデータを変えるのは
面倒一貫性がないと思ったため全てStatcastから取得しています。今回利用したデータは2019年のStatcastデータ(レギュラーシーズンのみ)になります。これは2023年5月中旬に取得したものであり、元記事のデータ取得時期とずれていると思われます。一方でStatcastはシーズン中でもデータが更新・変更され、また既に終了したシーズンについても定期的にデータの入れ替えが実施されている様です。
内容の実行に関しては元記事の対応するコードが見つからなかったために筆者(私)が処理用のコードを記述しました。
以上の理由から(あるいはそれ以外の理由もあるかもしれませんが)データや処理内容が異なっている可能性はあります。また、実際に数値がややズレています。
3-2. コードについて
実行したRコードは以下になります。StatcastデータはRではなくPythonのpybaseballを用いて別途取得しています。
4. 確認するイベントと条件
確認するイベント一覧は以下の表1の通りです(まだ数値は隠しています):
HIP(Hit Into Play)の定義や空振り、打球速度、打球角度の抽出条件はこれで合っているのかが不安ではありますが、元記事の値と比較するとこれかなと思っています。
ちなみに打球速度と打球角度は「発生確率」が存在しないので単純に値を推定することになり、それに合わせてモデルも違うものになっています。
以下に結果を出しますが、その前に読者の方もこの表を見て「打者と投手の影響のどちらが大きそうか」を考えてみると面白いかもしれません。例えば「ホームランはどんな投手でもある程度は打たれるが、打者による違いは大きそうだから、比率値は1よりもかなり大きくなりそうだな」とか、「エラーは投手も打者もほとんどコントロールできない(野手に大きく依存する)ので比率値は1に近い値になりそうだな」とか・・・。
5. 結果と解釈
5-1. 結果
では結果を表示してみます。まずは表形式で確認します。
見難いと思うので図示してみます。1.0の値を基準として右に行くほど打者の、左に行くほど投手の違いによる影響が強くなる事を表しています。ある程度のズレはありますが元記事とほぼ同様の図が作成できました。
5-2. 解釈
元記事の解釈をまとめると以下の通り(DeepLを元に意訳):
エラーの比率値は1に近い(事前の予想通り)。
すべての結果の中で、比率値は打球角度が最も小さい。これは投手の変動が発射角度の変動に最も寄与していることを意味する。
打球速度と本塁打率については、打者の方がより強い変動要因となっている。発射速度が大きいとホームランにつながるので当然ではある。
特に打球角度と打球速度は明確に区別されている。
興味深いことに四球の値が1に近い。これは投手と打者が四球のばらつきに等しく寄与していることを意味する。四球率は打者の規律(注:plate discipline = 打者の忍耐強さ≒選球眼)と投手の制球の両方に依存する。
筆者(私)の意見を述べます:
元記事の解釈にはおおよそ同意。ほとんどのイベントで比率値が1より大きいので、元記事が言いたいのは「投手より打者の影響の方が大きいよ」だと思う。野球は投手の投球を打者がスイングしたりしなかったりしてイベントが発生するので、打者側の方が結果に「近い」存在になる。より結果に近い打者側の影響度が強くなりやすいのは当然の事かもしれない。
日本ではホームランが発生した時に捕手のリードが批判される事があり、一方でそのような批判への反論として投手の球が云々と言われる事も多い。MLBファンは(この2択では)どちらかと言うと後者の意見の方が多い様に思うがこれはこれで危険かもしれない。上の結果からは投手よりも打者の影響の方がはるかに大きいのだから。
この結果は全体的な話なのでチーム単位や試合、打席単位の話に還元すべきではないかもしれないが、特定の条件を考えないのであればHRの原因は投手側に求めるよりも打者側に見出す方が真っ当であるように思う(もちろん「そこでああだこうだ言うのが楽しいんだよ」という意見は置いておくとして)。
例えば強打者に打たれた場合は「そういう打者だから仕方ない」とか、強打者でなければ「悪い目を引いてしまったな」くらいに思っておくべきかもしれない。でないと何もない場所で原因探し(ともすれば粗探し)をしてしまうという事態になりかねない。
打球角度については投手側は打球速度よりも打球角度の方が違いを出しやすい事から、最近話題のVAAのような概念が重要視されるようになったということだろうか。
元記事の解釈が本当に正しいのかはやや疑問。モデルは打球角度の平均(のような値)を探るものになっているのでは。角度の平均には意味がないと思うが・・・。暫定的にこの解釈を受け入れるが、この疑問は筆者(私)の理解不足が原因だと思うので宿題とする。
やや意外なことに死球の比率値はやや高めで打者の影響の方が大きい事を示唆しているが、その解釈には注意が必要だと思われる。
打者側から考えるだけでも「死球をもらうのが上手い打者」と「向かって来た球を避けるのが下手な打者」の2種類があり得る(両方の性質を持つ打者もいるかもしれない)し、他にも「頻繁に内角を攻められる打者」と「そうでない打者」の2種類があり得る。
死球の発生は単純に打者の能力によるものとする解釈、例えば「死球の発生は『死球をもらうのが上手い打者』による影響度が強い」のような解釈はできない。あくまで「打者の影響の方が大きい」としか言えない。
このような注意は他の項目でも同様
以上。
6. 最後に
もう少し続き(他のイベントについても確認するとか、打者側と投手側の標準偏差を平面上にプロットして云々みたいな内容)も用意していたのですが、これ以上まとまりがなくなるのは嫌なのでここまでとします。
個人的には「野球は打者が大事」とか「HRは打たれた投手の責任というよりは打った打者がすごい(超意訳)」とか「死球は意外と打者による影響が大きい」みたいな事が確認できたので満足しました。打球角度については宿題ですが。特に2つ目(HRは打者依存)の知見から、今後はSEAの投手がHRを打たれても多少は心穏やかでいられることでしょう。
・・・嘘です、無理です。特にリアタイだと。ちなみに個人的な今期ワースト被弾は4月のCHC戦でFlexenが打たれた満塁ホームランかなあ。序盤の大量リードをひっくり返されて逆転負けくらったやつ。あれは辛かった。頭では分かっていてもなかなかしんどかったりしますね。それでも無闇な意見を持たないためのストッパーがひとつ作成できたと考えると収穫はあったような気がします。何とも簡単に壊れそうなストッパーですが。
以上、ここまで長々とお付き合いいただきありがとうございました。