計算方法

勝ち点期待値の算出方法

このサイトでは、試合後の両チームのxGから勝敗の確率を求め、勝ち点期待値(xP)を計算しています。その計算方法を、例を使って説明します。

xGを入力して計算する →
データとモデル

過去の試合から確率を推定する

まず、Understatにある18,346試合分のxGと勝敗データを、understatAPIで取得しました。そのデータを使い、ホームとアウェーのxG差から、ホーム勝利・引き分け・アウェー勝利の確率を求めるモデルを作りました。手法は多クラスロジスティック回帰です。

xG差ごとの実測勝率と、モデルによるホーム勝利・引き分け・アウェー勝利の確率曲線を重ねた図
xG差ごとの実際の勝敗割合と、モデルが求めた確率を比べています。

この値は、試合内容を振り返るためのものです。試合前の勝敗予想を示すものではありません。また、xGの提供元による定義の違いや、退場・負傷などxG差に表れない事情は計算に含まれません。

01 / 入力

ホームとアウェーのxG差を取る

計算に使うのは、試合終了後のホームとアウェーのxGの差です。シュート数や最終スコアは使いません。

d = ホームxG − アウェーxG

たとえば、ホームのxGが1.20、アウェーが1.80なら、d = −0.60 です。

02 / モデル

3つの結果にスコアを付ける

次に、ホーム勝利・引き分け・アウェー勝利のそれぞれについて、xG差に係数を掛け、定数を足します。この段階ではまだ確率ではなく、各結果の「スコア」を計算しています。

結果ごとのスコア = 定数 + 係数 × d

このサイトで使うモデル係数
結果定数xG差の係数
ホーム勝利+0.04023512+0.81022425
引き分け−0.02314494+0.01647977
アウェー勝利−0.01709018−0.82670402

xG差がプラスになるほどホーム勝利のスコアが高くなり、マイナスになるほどアウェー勝利のスコアが高くなります。

03 / 確率

3つのスコアを確率に直す

各スコアの指数関数(exp)を計算し、その合計で割ると確率になります。この計算をsoftmaxと呼び、求めた確率を足すと100%になります。

結果の確率 = exp(その結果のスコア) ÷ 3結果のexpの合計

先ほどの d = −0.60 を当てはめると、次のようになります。

ホーム勝利 19.9% 引き分け 30.0% アウェー勝利 50.1%
04 / 勝ち点

確率を勝ち点期待値に換算する

最後に、勝利なら3点、引き分けなら1点、敗戦なら0点として、それぞれの確率に掛けて足します。

xP = 3 × 勝利確率 + 1 × 引き分け確率

この例では、ホームのxPは 3 × 0.199 + 0.300 = 約0.90、アウェーのxPは 3 × 0.501 + 0.300 = 約1.80 です。順位表のxPは、この値を試合ごとに足し合わせています。