さようならPythagが勝つ、こんにちはグラデーションが勝つ
ビル・ジェームスやパトリオットによるPythagの勝利数でも、ピート・パーマーによるもっと基本的なもの(1失点あたり0.1勝)を使おうが、失点の扱いは全て同じ。 いずれも試合ごとに行わない。
パーマー方式を試合levelに当てはめると、次のように: 1点差で勝てば、平均より+0.10勝つまり0.60勝の価値。 2点差勝利なら、0.70勝。 3点差なら0.80勝。 5点差なら1.00勝。 10点差なら1.50勝。
敗戦も同じ。 1点差で負ければ0.40勝、2点差で負ければ0.30勝。 5点差なら0勝。 10点差なら−0.5勝。
全て合計し、162試合相当の勝ち星を計算。 もちろん、これを1試合ごとに行う事に意味はない。season levelでrunDiff0.10 + Games0.500として行っても、同じ答えが得られるからだ。
もちろん、個々の試合の背景が欠落している。 パーマー式では、1点差で9試合勝ち、9点差で1試合負けても、総得失点差は0なので、5勝5敗と同じ答え。
しかし、1点差勝利がパーマーが言うように0.60勝ではなく、0.83勝に値するならどうだろう。 2点差勝利は、パーマーが示唆するような+0.10勝(0.70勝相当)ではなく、0.09勝を加え、0.92勝となる。 そして、3点差で勝つと0.08勝が加算され、1.00勝となる。 つまり、3点差で勝てば完勝、パーマーは5点差で勝てば完勝になる。
以下は、各チームが1試合ごとに獲得した勝ち点である:
スコア 勝敗
1 0.83 0.17
2 0.92 0.08
3 1.00 0.00
4 1.07 -0.07
5 1.13 -0.13
6 1.18 -0.18
7 1.22 -0.22
8 1.25 -0.25
9 1.27 -0.27
10+ 1.28 -0.28
そうすると、2023年はどうだろうか? オリオールズの得失点差は+129点で、平均より+13勝、つまり94勝になる。 Gradient Winds Approachでは100勝。 実際には101勝している。 我々がやっているのは、接戦をもっと評価する事であり、打撃戦の勝敗における全得点を評価する事ではない。
マーリンズは失点が57点多く、75勝に相当する。 Gradient Wins approachでは80勝。 実際84勝。
パーマーが5勝5敗と言ったのに対して、1勝1敗で9試合は実際の9勝1敗である。 Gradient approachでは7.2勝となる。
これはパーマーやパイサグが示唆する方法より必ずしも良いのだろうか? いや、少なくともまだわからない。 しかし、これは打撃戦や接戦をよりうまく処理するための扉を開く。 1点差で勝つには0.6勝以上でなければならない。 一点を同じに扱う事はできない。 また、1点差で勝つ事と10点差で勝つことが同じであるはずがない事も分かっている。 1点差勝利に0.83勝、10点差勝利に1.28勝を与える方が理に適っているのか? パーマーが言うように0.60勝や1.50勝を与えるよりも、私はその方が好きだ。 そして、私は1勝と1勝を実際の勝利として与えるよりも、それが好きなことも知っている。
次のステップは、Aspiling Saberistが引き継ぐ事だ。
#1位 タンゴタイガー
半分ずつ相関をとってみた。seasonの半分の実際勝利、勾配勝利、pythag勝利を入れ、残りの半分の実際の勝利に対して相関を実行。
それぞれの重み付けはこんな感じ:
0.01 実際勝利数
0.23 Gradient Wins
0.29Pythag Wins
相関はr=0.52
1つだけの相関を求めると、実際勝利数は0.50、Gradientは0.52、Pythagは0.52。
言い換えれば、この3つのうちどれ使っても良い。 しかし、観点からは、Actual Winsにはほとんど新しい付加的情報を含まれていない。
この3つの内2つが欲しかった場合、簡単に落とせるのは実際の勝利数。
勾配勝率をたった5分の努力でこのようなウェイトに向上できる:
0.03 実際の勝利
0.37 Gradient Wins
0.13 Pythag Wins
つまり、Gradient WinsがPythagを圧倒している。 何をしたか?
これだ:
1 0.715
2 0.81 0.095
3 0.9 0.09
4 0.985 0.085
5 1.065 0.08
6 1.14 0.075
7 1.21 0.07
8 1.275 0.065
9 1.335 0.06
10+ 1.39 0.055
.83の代わりに元の.83とピタゴラスの.60の中間の.715から始めている。 そして、.09、0.08、0.07と1回ごとに落とす代わりに、.095、0.09、0.085とする。 ここでも、私が最初に提示したものと、パーマーが提示した0.10の中間値。
サバリスト志望者がすべきは、各得点を落とすのに最適パターンの発見だ。 努力少なく、かなりの利益を得る事ができた。
だから、すぐに "公式な "Gladient Winsにたどり着ける。 他の誰かが理解する事を願うばかりだ。
なぜ1本目は0.10、2本目は0.09、3本目は0.08......といった具合に落としていったのか?
フィル・バーンバウムの天才的な説明につい寄りかかってしまった。
結局、理論的説明と同じくらい、未来予測には回帰が必要。
つまり、ポスト2にある値は、基本的にフィルの天才的な説明を逆行させたもの。
#4 タンゴタイガー
つまり、セイバー志望者が理解すべき事は2つ:
その後に続く1点にどれだけの価値があるのか? 落差はどれくらいですか?
いつ落差が止まり、全ての得点に同じ勝利価値が与えられるのか? 10点以上か? 少ない?
見極めるには、多くの試行錯誤が必要で、大きなペイオフが得られるかどうかわからないが、良い見返りになるだろう。
ビル・ジェームズが言ったように、私たちは自分たちだけでは何もできない。 次の世代にかテップアップしてもらう必要がある。 これは取り組むには本当に良い問題だ。
#5 タンゴタイガー
フィルからのバカバカしいほどシンプルな説明を見たことがない人のために、私はこの古いブログ記事で話し、彼の記事へのリンクを張っている:
http://www.insidethebook.com/ee/index.php/site/comments/common_sense_approach_to_explaining_that_10_runs_is_one_win
底を20点まで行かせた。20点差以上の場合は1.665勝(パーマーの2.5や投稿元の1.28ではなく)。
重み付けは以下の通り:
0.006 実際の勝利数
0.468 グラディエント勝ち
0.056勝
つまり、これが「公式」勾配勝利。
この関数を自分のコードに組み込みたい場合は、ここにある。 まず、runs_diffの上限を-20から+20に設定。
次にこうする:
case when runs_diff > 0
ならば、-0.0025power(runs_diff,2) + 0.1025runs_diff + 0.50 + 0.115
else +0.0025power(runs_diff,2) + 0.1025runs_diff + 0.50 - 0.115
終了
つまり、runs_diffが+1の場合は0.715勝。
これをVertex形式(pos、neg runsそれぞれ)にする場合:
y = -0.0025(x - 20.5)² + 0.5 + 1.165625
y = +0.0025(x + 20.5)² + 0.5 - 1.165625
#7 jgf704
おい、タンゴ...最後の式に誤字があるぞ...マイナス得点のカッコ内は、もちろんプラス走行の場合と同じようにx-20.5であるべきだ。 という事は
y = +0.0025*(x-20.5)^2 + 0.5 - 1.165625
#8 タンゴタイガー
x = +20のとき、yは+1.665。
x=-20のとき、yは-0.665。
2つの和は1に等しい。
私の表計算ソフトの入れ方が悪かっただけ。
この記事が気に入ったらサポートをしてみませんか?