Lean Baseball

No Engineering, No Baseball.

メジャーリーガーの「撮れ高」を可視化する - 得点期待値で遊ぼう

f:id:shinyorke:20190331142600p:plain
誰のグラフかは、最後に登場しますお見逃し無く!

本当はこのイベントでLTする予定の内容でした*1.

bpstudy.connpass.com

結果的に「有言不実行」となってしまい悔しいのと、何気に分析とストーリーはできてたのでちゃんと供養したいと思います.

一応の免責事項としてこの分析・解析内容は所属組織・企業の分析・解析とは無関係です.

おしながき

解決したい課題と解決方法

一言で言うと、

「得点圏で打つ・打たない」がある程度正確にわかれば普段の生活に支障なく野球を334倍楽しめるのでは?

というテーマの元、「セイバーメトリクス」を使って何かをやる、そういう話です.*2

なお、データのライセンス等の事情により今回は、

これらの公開データを用いて行っています.*3

【課題】「やきう」を自宅でみるときにあるやつ

f:id:shinyorke:20190331144307p:plain
風呂に入ってる時、試合は動く(真顔)

自分が野球を好きになって見始めたのは高校だか中学の時でかれこれ20年以上前の話なのですが、その時によくあったのが

自分が風呂に入ってる時に限って試合が動く!

ということでした.

ワイ「お、下位打線やし風呂に入るやで!」

(30分ほど風呂に入る)

ワイ「ファーーwww試合が動いているンゴwww」

人によって対象は風呂かもしれないしご飯かもしれないのですが*4、野球ファンだったらこういう「辛い」経験を少なくとも25回以上はしていると思います.*5

これを、

  • セイバーメトリクス
  • ちょっとした技術の無駄遣い

でどうにか解決できるモデルはないか?と思いたち、ちょっとだけやってみました.

【解決方法】「得点圏で仕事をする・しない(≒撮れ高)」を「得点期待値」で定量化する

「風呂に入ってる間に試合が動く」問題を解決するアプローチですが、

  • 試合を動かす可能性が高い打者が打席に入るときは風呂に入らない
  • 打席に立っても何も起きない打者(≒自動アウト)が連続している打順・回のときに風呂に入るなり家事をするなりする

という非常にシンプルな予測(というか過去の傾向)ができれば行けそうじゃね?ということで、

  • 打者が1打席あたり、どれだけ得点に貢献(≒撮れ高)を出したか、「得点期待値」を算出&打者ごとにサマリーする
  • サマリーする時に、「得点圏(走者が誰かしら2塁以上にいる、6通り)」および「not得点圏(走者なしもしくは走者一塁)」毎の集計値を出す

これで、「得点圏に強い(弱い)」「not得点圏に強い(弱い)」がわかれば、試合展開をある程度予測した上で風呂に入れそうです.*6

「得点期待値」をサマリーして集計する

方法の基礎的な考え方だけ(実際どうやってやったかは秘密).

今回使っている「得点期待値」という指標はセイバーメトリクスの世界では昔からある指標で、

「プレーの前後で変化した期待値の差分がプラスかマイナスかで定量評価する」

時に用います.

※考え方・概念は「Linear Weights - Wikipedia」をご覧頂ければと思います.

今回は以下のような、「アウトと走者状況(24通り)ごとに期待値を分類した「得点期待値成分表(RE24と呼ぶらしい)」を独自に用意しました.

f:id:shinyorke:20190331151045j:plain
【図】MLB得点期待値2018

この表を以下の公式にはめて使うことにより、「撮れ高」を算出できます.

得点期待値(撮れ高) = 「打席結果後の状況」 - 「打席に立ったときの状況」 + 獲得した得点(1〜4点)*7

【例1】ノーアウト一塁からタイムリー二塁打で1点

打席に立ったときの「ノーアウト一塁」が0.87、「打席結果」が「ノーアウト二塁」1.13の、1得点なので、

1.13 - 0.87 + 1(得点) = 1.26(撮れ高)

意味合いとしては、

「ノーアウト一塁からの二塁打(タイムリー)」は1.26点分の価値がある

ということです.

【例2】ノーアウト1塁から犠牲バントでワンアウト二塁

さっきの成分表から同じことをします.ちなみに「ワンアウト二塁」の期待値は0.68です.

0.68 - 0.87 + 0= -0.19(撮れ高)

おわかりいただけましたでしょうか?

打者ごとに積み重ねた散布図

...というような状況を全打者の全打席分で積み重ねて算出します.

なお、打者一人ににフォーカスして、「縦・期待値」「横・ランナー状況」で可視化するとこうなります.

※点一つ一つが「打席」です

f:id:shinyorke:20190331142600p:plain
誰のグラフかは、最後に登場しますお(大切なので二度言う)

これを愚直に集計してランキングを算出します.

メジャーリーガーの「得点期待値」ランキング

打者ごとに得点期待値をサマリーし、ランキングしたものです.

総合ランキング

純粋に、「得点期待値を合計した場合」のランキング.

  1. J.D.マルチネス(レッドソックスの主砲、2018年ア・リーグ打点王、本塁打ランキング2位
  2. ムーキー・ベッツ(レッドソックスの5ツールズ外野手、2018年ア・リーグ首位打者
  3. マイク・トラウト(エンジェルス不動の主力、いつでもトリプルスリーをやれそうな大谷翔平と仲良しの万能外野手
  4. クリスチャン・イエリッチ(ブリュワーズの万能外野手かつ2018年ナ・リーグ首位打者でマーリンズ時代のイチローと同僚)
  5. アレックス・ブレグマン(アストロズの若き主砲、OPS .926、ア・リーグ二塁打王

ふつーに「オールスター級」の選手ランキングになりました(こなみ)

強いて言うなら外野手多すぎ.

この人達が打席に立つときは風呂に入っちゃいけません!といいたいところですが、どの人も千両役者でスーパースターなのでそんなの数字で語るまでもなさそうです(震え

ちなみに、2位のムーキー・ベッツの散布図はこんなかんじです.

f:id:shinyorke:20190331161446p:plain
いやー強いね(こなみ)

得点圏に強いランキング

計算方法としては邪道かもですが、

「得点圏のときの得点期待値の合計」 - 「not得点圏の時の得点期待値の合計」

を引き算し、プラスが多い順に並べました.

言い換えると、

「得点圏以外だと頑張らない選手ランキング」

となります(≒この選手が打席に立ってるかつランナー二塁以上のときは席を離れちゃいけない)

  1. ジョー・マウアー(ツインズ一筋の巧打者でイチローのライバルだった、2018年引退)
  2. ザンダー・ボガーツ(レッドソックス強打のショート、菊池雄星投手からホームラン打った)
  3. ユリエスキ・グリエル(アストロズのユーティリティ内野手、、、というより元キューバ・横浜の強打者)
  4. ジェイ・ブルース(昨年まで通算286本塁打の強打者でマリナーズ所属、先日来日&イチローの後にライト守った)
  5. ニック・アーメド(ダイヤモンドバックスのショート、打つよりも守備がウリの人)

一人、日本の野球でおなじみの方が居ますね.

ためしに散布図で状況を示すと,

f:id:shinyorke:20190331162909p:plain
得点圏で頑張ってるパターンだ!

確かに、グリエルは半分控えなのに85打点(13本塁打・31二塁打)と打ってる&打率.291とそこそこ高いので、

グリエルが打席に立つときは風呂に入っちゃいけない!

ということは言えそうな気がします*8.

not得点圏に強いランキング

先ほどの「風呂に入っちゃいけない」とは逆ベクトルで、

「not得点圏のときの得点期待値の合計」 - 「得点圏の時の得点期待値の合計」

を引き算し、プラスが多い順に並べました.

言い換えると、

「得点圏以外で力を発揮する選手ランキング」

になるはずです(某ゲーム風に言うと「チャンス☓」的な).

なお、馴染み薄い選手が多いので昨年の打率・本塁打・打点を併記してます.

  1. C.J.クロン(レイズの一塁手、打率.253・30本塁打・74打点)
  2. トレイ・マンシーニ(オリオールズのリードオフマン、打率.252・24本塁打・58打点)
  3. ジャスティン・アップトン(エンジェルスのレフトで強打者、打率.257・30本塁打・85打点)
  4. マイク・ズニーノ(レイズの捕手、昨年までマリナーズ、打率.201・20本塁打・44打点)
  5. ヘイメル・キャンデラリオ(タイガース三塁手、打率.224・19本塁打・54打点)

打率・本塁打・打点の成績バランスが薄気味悪い選手が揃いました(こなみ)

アップトンが入ったのがちょっと意外でしたが...

なお、1位のクロンの散布図はこうなります.

f:id:shinyorke:20190331164932p:plain
あっ(察し

not得点圏、もうちょっと「アヘ単*9」が並ぶと思ったら案外そうでも無かったです、これはもうちょっと集計とか数え方を工夫する必要がありそうです.

総評

強打者が打席に立つ時、風呂に入っちゃいけない!(こなみ)

というのと、得点圏を「定量化」して評価はなんとなくできそうです.

ただ、今回試した方法は「ランナーを返した回数」にある程度依存するので、強打のチームの選手が上位に来やすい(逆もしかり)という欠点があるため完璧ではないです.*10

とはいえ、「出たり出なかったりする」グリエルがランクに入るなどしてるので、もうちょっと磨けばもっと面白くなりそうです.

【おまけ】気になるあの選手の期待値は?

冒頭のサムネイルに登場した得点期待値グラフの答えは、「大谷翔平選手」でした.

f:id:shinyorke:20190331165633p:plain
まんべんなく打ってます、さすが

パッと見だとランナーいるときの成績が良さげですね、なお得点圏・not得点圏共に期待値はプラスでした.

個人的には復帰したらどんなバッティングを見せてくれるか楽しみです!

以上、久々の野球ネタでした.

*1:年度末の業務がかなり逼迫してて泣く泣く回避というかスライド作る暇さえなし...申し訳なかった :bow:

*2:NHK.

*3:二つともこのブログで何度か登場しているデータセットです、詳しく知りたい方はリンク先をたどって使ってみるか、このブログから探してください(雑)

*4:親御さんだったら普通に子育てとかもあるかもしれない、ワイは独身なので縁がないけど()

*5:特定の選手のことではありません

*6:単純にOPSとか長打率を出して並び替えてもいけそうな気がしますが、OPSや長打率は「状況」を考慮してないので、今回は「状況」を考慮した得点期待値を使っています.

*7:野球にてイチ打席で入る得点の最大値は4です(こなみ)

*8:なお、リーグ最多の22併殺を記録しており、これが得点圏なのか得点圏じゃないのかは気になる所(今回は面倒なので調べてない)

*9:アヘアヘ単打マンの略.単打狙いのバッティングをするような打者のこと

*10:総合ランク1,2位のマルチネスとベッツ、得点圏ランキング2位のボガーツは同じレッドソックスの選手で、特にマルチネスとボガーツは前を打ってるベッツがたくさん出塁したことにより数字を稼いだ可能性があります