過去の試合から確率を推定する
Understatがカバーする18,346試合のxGと勝敗データを、understatAPIを使って取得した。ホームとアウェーのxG差を説明変数、ホーム勝利・引き分け・アウェー勝利を結果とする多クラスロジスティック回帰で係数を推定した。このサイトは、その係数から各結果の確率を計算する。
これは試合後の内容を振り返るための値であり、試合前の勝敗予想ではない。xGの提供元による定義の違いや、退場・負傷などxG差に表れない要素は計算に入らない。
ホームとアウェーのxG差を取る
このモデルに入れる値は、試合終了後の両チームのxGの差である。シュート数や最終スコアは確率計算に使わない。
d = ホームxG − アウェーxG
ホームが1.20、アウェーが1.80なら、d = −0.60 となる。
3つの結果にスコアを付ける
ホーム勝利、引き分け、アウェー勝利のそれぞれに、定数とxG差の係数を当てはめる。式は3クラスのロジスティック回帰である。
結果ごとのスコア = 定数 + 係数 × d
| 結果 | 定数 | xG差の係数 |
|---|---|---|
| ホーム勝利 | +0.04023512 | +0.81022425 |
| 引き分け | −0.02314494 | +0.01647977 |
| アウェー勝利 | −0.01709018 | −0.82670402 |
xG差がプラスになるほどホーム勝利のスコアが上がり、マイナスになるほどアウェー勝利のスコアが上がる。
3つのスコアを確率に直す
各スコアを指数に変換し、その合計で割る。これがsoftmaxであり、3つの確率の合計は100%になる。
結果の確率 = exp(その結果のスコア) ÷ 3結果のexpの合計
d = −0.60 の例では、次の値になる。
確率を勝ち点期待値に換算する
勝利は3点、引き分けは1点、敗戦は0点として、各結果の確率に掛けて足す。
xP = 3 × 勝利確率 + 1 × 引き分け確率
上の例なら、ホームのxPは 3 × 0.199 + 0.300 = 約0.90、アウェーのxPは 3 × 0.501 + 0.300 = 約1.80 となる。順位表のxPは、各試合のこの値を合計したものである。