下校時刻

メモ、読んだ本のまとめメモ、考えたことのメモ、その他のメモなどが書いてあるブログです(twitter: @hoture6)

pandasでMLBの2001年から2010年のシーズンでもっともチームに貢献した打者を決める

こんにちは。

前回(↓)の続きです。 hoture6.hatenablog.com

得点期待値

前回の記事では、MLBの2001年 - 2010年のデータから、アウト数・ランナー状況別の得点期待値を求めました。得点期待値とは、「その状況であとどのくらい得点が入ることが期待できるか」を表す値です。結果のみ再掲します。

0アウト 1アウト 2アウト
ランナーなし 0.554 0.283 0.109
1塁 0.921 0.548 0.238
2塁 1.164 0.714 0.342
3塁 1.441 0.976 0.378
1塁・2塁 1.528 0.944 0.459
1塁・3塁 1.837 1.206 0.522
2塁・3塁 2.043 1.435 0.608
満塁 2.376 1.603 0.804

今回は、これらの値を使って、MLBの2001年 - 2010年のシーズンでチームにもっとも貢献した打者を決めたいと思います。 前回の記事でも述べましたが、打者としてチームに貢献する≒チームの得点に貢献するということなので、そういう感じでやっていきます。


プレイの価値

ある選手Aが満塁ホームランを打ったとします。このプレイには何点の価値があるでしょうか?

普通に考えると、4点の価値がある気がしますね。なぜなら、満塁ホームランでは得点が4点得点が入りますし、野球において4点得点が入ったとき、4点得点が入っているからです。これで安心ですね。


ちょっと待っ太郎「ちょっと待った」


あれ、突然ですがここでちょっと待っ太郎さんがちょっと待ったと言っていますね。ここはちょっと待って、少し冷静に考え直してみましょう。

Aさんが満塁ホームランを打つ前、当たり前ですが満塁ですよね。ここでAさんが満塁ホームランを打つことによって4点入りますが、これによって塁上のランナーは一人もいなくなってしまいます。つまり、塁上の状況だけを見ると、「満塁→ランナーなし」と得点の可能性が著しく下がっていることがわかります。

野球のルールを無視して仮の話をしますが、もしAさんが満塁の状況でホームランを打つことで4点入り、また満塁のまま次の打者に移ることができればAさんの満塁ホームランには純粋に4点の価値がありそうな気がします。一方、現実にはAさんがホームランを打ったあとはランナーなしの状況になってしまいます。つまり、Aさんの満塁ホームランの得点価値は、4点よりも低いことになります(!)。

大丈夫でしょうか。それでは、どのようにして満塁ホームランの価値を決めれば良いか考えましょう。得点期待値の意味を思い出して、次の式を眺めてみてください。

(満塁ホームランの価値) = 4 + (ランナーなしでの得点期待値) - (満塁での得点期待値)

どう思いますか。これで、いい感じに満塁ホームランの価値が測れていそうな気がしませんか(しない場合は、そういう気がするまで式を眺めて続けているとそういう気がすると思います)。この式の第一項は実際にAさんが入れた得点、第二項と第三項はAさんがランナーの状況を変化させたことにより下げてしまった得点期待値を表しています。これらを足し合わせることにより、プレイの価値がうまく測れていることになります。

具体的に、アウトカウントごとの満塁ホームランの価値を、上の得点期待値の表から計算してみましょう。

  • 0アウト: 4 + 0.554 - 2.376 = 2.178
  • 1アウト: 4 + 0.283 - 1.603 = 2.680
  • 2アウト: 4 + 0.109 - 0.804 = 3.305

なるほど〜。アウトカウントによって同じ満塁ホームランでも価値はけっこう違います。しかし、これらの値は割と直感に合っているのではないでしょうか。0アウトからの満塁ホームランはもちろん嬉しいですが、なんとなくもったいなかったり、ここはヒットで繋いでも良かったのに、という気がしませんか。一方、2アウトからの満塁ホームランはめちゃくちゃ嬉しいですよね。これらは、我々が(データなんて見なくても)なんとなく得点期待値の感覚を持っているからだと思います。


そろそろ満塁ホームランの話も飽きてきたので、話を一般化しましょう。プレイの価値は、以下の式で表されます。

(プレイの価値) = (プレイによって入った得点) + (プレイ後の得点期待値) - (プレイ前の得点期待値)

この式を、MLBの2001年 - 2010年のすべての打席について計算し、打者ごとにその和をとることで、どの打者が一番チームの得点に貢献したか、もっと言うとどの打者が一番いい打者かを決めたいと思います。

計算

pandasでretrosheetのデータを使って計算していきましょう。もしプログラミングの詳細に興味がある人がいれば、前回の記事のコードも参照してみてください。

結果

意外と大変だったので、途中で何回かやめようと思いましたがなんとかなりましたね。

以下、ランキングです。

通算

選手名 通算 平均 打席数
1 Albert Pujols 571.111 0.084 6782
2 Barry Bonds 513.812 0.148 3465
3 Lance Berkman 449.121 0.071 6313
4 Alex Rodriguez 426.698 0.064 6691
5 Todd Helton 415.242 0.067 6187
6 Manny Ramirez 413.561 0.073 5662
7 Jim Thome 354.302 0.066 5337
8 Chipper Jones 348.785 0.062 5582
9 Bobby Abreu 347.678 0.050 6919
10 Jason Giambi 324.220 0.066 4945

ということで、Albert Pujolsさんが一位になりました。安定して得点を生み出し続けているということですね。10年で571点ですから、1シーズンあたり57点になり、これはとてもすごいです。 2位以下にも好打者が続いていますね。

通算ワースト

選手名 通算 平均 打席数
1 Cesar Izturis -257.673 -0.059 4331
2 Brad Ausmus -217.623 -0.059 3692
3 Neifi Perez -168.160 -0.056 2977
4 Alex Gonzalez -150.663 -0.035 4320
5 Royce Clayton -148.448 -0.044 3347
6 David Eckstein -139.788 -0.025 5705
7 Jack Wilson -139.522 -0.028 5030
8 Pedro Feliz -138.668 -0.031 4537
9 Orlando Cabrera -132.659 -0.020 6612
10 Adam Everett -130.816 -0.044 3003

なるほど〜。ここに並んでいるのは打席に立つたびに得点期待値を下げる(チャンスをつぶしている)選手ですが、その打撃の弱点を補うだけの守備力を持っている可能性が高いということですから、必ずしも不名誉なことではありません。

平均(1000打席以上のみ)

選手名 通算 平均 打席数
1 Barry Bonds 513.812 0.148 3465
2 Albert Pujols 571.111 0.084 6782
3 Larry Walker 195.641 0.081 2401
4 Joey Votto 138.234 0.074 1870
5 Manny Ramirez 413.561 0.073 5662
6 Lance Berkman 449.121 0.071 6313
7 Todd Helton 415.242 0.067 6187
8 Jim Thome 354.302 0.066 5337
9 Jason Giambi 324.220 0.066 4945
10 Alex Rodriguez 426.698 0.064 6691

1000打席以上の選手の中から、一打席あたりの得点価値が高い選手10人です。とにかくBarry Bondsさんがすごすぎるということがわかりますね。

日本人選手

選手名 通算 一打席あたり 打席数
Hideki Matsui 137.979 0.032 4378
Ichiro Suzuki 79.284 0.011 7339
Kosuke Fukudome 16.942 0.01 1622
Norihiro Nakamura -7.66 -0.187 41
So Taguchi -11.885 -0.008 1525
Tadahito Iguchi -19.527 -0.009 2079
Akinori Iwamura -26.607 -0.015 1755
Tsuyoshi Shinjo -28.266 -0.029 960
Kenji Johjima -36.751 -0.021 1722
Kazuo Matsui -54.536 -0.021 2555

参考までに、日本人選手だけを集めてみました。松井選手が一位で、全体から見てもかなり優秀な成績です。イチロー選手の得点価値が思ったより低くて悲しいですが、福留選手の価値がプラスだったりするあたり、やはり出塁率が大事ということなんですかね。

まとめ

得点期待値から、一つのプレイの価値を計算し、2001年 - 2010年の10年間でもっとも得点に貢献した打者(≒良い打者)のランキングを作りました。 通算ではPujols選手、一打席あたりではBonds選手が一位でした。

次回以降も、何かしらをやっていこうと思います(今回の結果をもう少しちゃんと考察するかも)。

以上、よろしくお願いします。