logo

ピタゴラス勝率 📂セイバーメトリクス

ピタゴラス勝率

1

特定のスポーツリーグのチームが与えられたとしよう。チーム得点scores $S$ と チーム失点allows $A$ について、このチームのシーズン期待勝率 $p$ は次のようになる。 $$ p = {{ S^{2} } \over { S^{2} + A^{2} }} = {{ 1 } \over { 1 + (A/S)^{2} }} $$

説明

ピタゴラス勝率pythagorean Expectationは、ビル・ジェームスbill Jamesによって提案された非線形モデルで、チーム得点とチーム失点を独立変数としてシーズン勝率を説明する。得点が多ければ多く勝ち、失点が多ければ多く負けるのは当然だが、それを計量的に見て分析することは全く別の問題である。

得点率vsチーム勝率.png

上の図はある野球リーグで82年から20年までの各チーム、各シーズンの得点率とチーム勝率を比較した散布図で、理想的な直線から少し曲がっていることが分かる。ビル・ジェームスはこの現象を説明するための直感的な式を見つけ出し、実際のデータを非常によく説明した。その後、スティーブン・ミラーsteven Millerによって数理統計的な導出過程が正当化された。

数理統計的導出

ピタゴラス勝率という名前自体、分母の $S^{2} + A^{2}$ がピタゴラスの定理を連想させることからつけられた。しかし、実際には正の値 $\gamma \ne 2$ について一般化することができ、実際に1954年以降のメジャーリーグでは $\gamma \approx 1.85$ が最も適切とされている。 $$ p_{\gamma} = {{ S^{\gamma} } \over { S^{\gamma} + A^{\gamma} }} $$ 数理的な一般化だけでなく、適切な仮定を満たしていれば他のスポーツにも適用することができる。NBA(バスケットボール)では非常に大きな値 $14 < \gamma < 17$、NFL(アメリカンフットボール)では約$\gamma \approx 2.4$と言われている。

具体的な導出については、スティーブン・ミラーの論文をまとめたポストを参照してほしい。2

コード

説明の図を再現することができるRのコードです。

library(ggplot2)

post_url = "https://freshrimpsushi.github.io/posts/2217/"

team_pitch = read.csv(paste0(post_url, "팀투구82_20.csv"), header = TRUE, encoding = 'UTF-8')[,-1]
team_hit = read.csv(paste0(post_url, "팀타격82_20.csv"), header = TRUE, encoding = 'UTF-8')[,-1]

data = data.frame(
    팀승률 = team_pitch$승 / team_pitch$선발,
    득실점비 = team_hit$득점 / team_pitch$실점
)

ggplot(data, aes(x = 득실점비, y = 팀승률)) +
 geom_point(alpha = 0.5, shape = 16) +
 theme_bw() + coord_fixed(ratio = 2)
ggsave("득점비율vs팀승률.png", width = 480, height = 480, units = "px", dpi = 120)

  1. 송민구 역, Baumer. (2015). 세이버메트릭스 레볼루션(THE SABERMETRIC REVOLUTION): p 100 ↩︎

  2. 참고 문헌에서는 “팀의 득점과 실점은 독립적이며, 둘 모두 정규분포와 비슷한 형태를 가지고 있기 때문에 이런 결과가 나올 수 있음을 밝혀냈다.“라 설명하고 있으나, 실제로는 베이불 분포를 가정하며 베이불 분포는 딱히 정규분포와 닮지 않았다. ↩︎