ピタゴラス勝率
式 1
特定のスポーツリーグのチームが与えられたとしよう。チーム得点scores $S$ と チーム失点allows $A$ について、このチームのシーズン期待勝率 $p$ は次のようになる。 $$ p = {{ S^{2} } \over { S^{2} + A^{2} }} = {{ 1 } \over { 1 + (A/S)^{2} }} $$
説明
ピタゴラス勝率pythagorean Expectationは、ビル・ジェームスbill Jamesによって提案された非線形モデルで、チーム得点とチーム失点を独立変数としてシーズン勝率を説明する。得点が多ければ多く勝ち、失点が多ければ多く負けるのは当然だが、それを計量的に見て分析することは全く別の問題である。
上の図はある野球リーグで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)