RedandWhiteDays

赤、白、ときどき黒猫

Prediction 1 : ポアソン分布を用いたサッカーの得点予想モデル

前回得られた、ホームでの平均得点(Hs:Home scored)、ホームでの平均失点(Hg:Home gave)、アウェーでの平均得点(As:Away scored)、アウェーでの平均失点(Ag:Away gave)の4つのデータを元に得点モデルを構築し、ポアソン分布に基づいて試合結果の予測を行ってみた。


まず一般にサッカーの試合の得点数はポアソン分布に従うと言われている。
ポアソン分布は次の式で定義される確率分布である。

{ \displaystyle
P(X=k)=\frac{e^{-\lambda}\lambda^{k}}{k!}
}

P(X=k)は、単位時間に平均でλ回発生する事象がちょうどk回発生する確率、を意味しており、サッカーでいうと90分間で平均λ得点するチームがちょうどk得点する確率、を与えてくれることになる。したがってあらかじめ平均何得点するのか予想できていれば、その試合でk得点する確率が予想できる、ということだ。


そこで、Hs,Hg,As,Agの4つのデータを元にその試合におけるλを計算することが得点予想モデルのテーマとなる。



今回使用するデータは前回と同じく14/15シーズンのプレミアリーグ。学習用データとして第34節までの結果を利用し、残りの4節分(40試合)をテスト用データとした。


Pandasにより集計した第34節までの結果は以下。

Hs Hg As Ag
Arsenal 2.3125 0.75 1.52941 1.17647
Aston Villa 1 1.41176 0.666667 1.44444
Burnley 0.777778 1.16667 0.75 1.9375
Chelsea 1.9375 0.4375 2.05556 1.11111
Crystal Palace 1.11765 1.47059 1.35294 1.29412
Everton 1.58824 1.05882 1.05556 1.55556
Hull 1.125 1.25 0.777778 1.38889
Leicester 1.125 1.3125 1 1.83333
Liverpool 1.58824 0.941176 1.17647 1.23529
Man City 2.11765 0.823529 2 1.29412
Man United 2.35294 0.764706 1.11765 1.23529
Newcastle 1.35294 1.52941 0.764706 1.82353
QPR 1.16667 1.27778 1.0625 2.25
Southampton 1.72222 0.666667 1 0.875
Stoke 1.35294 1.23529 0.941176 1.23529
Sunderland 0.823529 1.52941 0.75 1.4375
Swansea 1.35294 1.05882 1.05882 1.52941
Tottenham 1.70588 1.35294 1.52941 1.52941
West Brom 1.16667 1.44444 0.6875 1.25
West Ham 1.35294 0.941176 1.11765 1.52941


全チーム通算で計算したHs、Hg、As、Agの平均は次のようになっていた。

aveHs aveHg aveAs aveAg
1.447059 1.123529 1.123529 1.447059

となる。なおその定義からaveHs=aveAg、aveHg=aveAsになっていることに注意。


このデータに対し、各チームのホームでの攻撃力(HA)、ホームでの守備力(HD)、アウェーでの攻撃力(AA)、アウェーでの守備力(AD)を次のように定義する。

{ \displaystyle
HA=Hs/aveHs\\
HD=Hg/aveHg\\
AA=As/aveAs\\
AD=Ag/aveAg\\
}

ここで注意したいのが、攻撃力は高いほど得点をとりやすいことを示しているのに対し、守備力は低いほど失点しにくいことを示している、ということ。
例えばHA=1.5の場合、ホームで平均の1.5倍得点を取りやすく、HD=1.5ならば、ホームで平均の1.5倍得点を与えやすいことになる。


この数値をもとにλを算出しよう。今回λを以下のように定義した。

{\displaystyle
λ(home)=aveHs\times HA(home)\times AD(away)\\
λ(away)=aveAs\times AA(away)\times HD(home)\\
}

ホームで平均のHA倍点を取りやすいチームとアウェーで平均のAD倍失点しやすいチームが対戦した場合、ホームチームは平均のHA\times AD倍の得点をするだろう、という仮定のもとλを算出する、というのが上のλの定義が意味することだ。


例としてテスト用データの1試合目、Leicester(home) vs Newcastle(away)の試合を考えてみよう。
第34節までの結果に基づき、2チームの攻撃力、守備力は次のようになっている。

HA HD AA AD
Leicester 0.777439 1.16819 0.890052 1.26694
Newcastle 0.934959 1.36126 0.680628 1.26016


したがって

{\displaystyle
λ(home)=1.447059\times 0.777439\times 1.26694=1.417682\\
λ(away)=1.12352\times 0.680628\times 1.16819=0.893324\\
}

このλをパラメタにして両チームの得点をポアソン分布で予測したものが次のグラフだ。
f:id:redandwhite:20160123143104p:plain
したがって最も可能性の高いスコアはLEI 1 - 0 NEWということになる。



このように定義されるλをもとに得点を予測してみた結果が以下。

HomeTeam AwayTeam Prediction Result Errata
0 Leicester Newcastle 1 - 0 (14.06%) 3 - 0 (4.71%) 1
1 Liverpool QPR 2 - 0 (10.60%) 2 - 1 (9.43%) 1
2 Man United West Brom 2 - 0 (16.95%) 0 - 1 (3.84%) 0
3 Sunderland Southampton 0 - 1 (21.21%) 2 - 1 (2.63%) 0
4 Swansea Stoke 1 - 0 (14.99%) 2 - 0 (8.66%) 1
5 West Ham Burnley 1 - 0 (15.79%) 1 - 0 (15.79%) 2
6 Chelsea Crystal Palace 1 - 0 (18.09%) 1 - 0 (18.09%) 2
7 Tottenham Man City 1 - 2 (8.66%) 0 - 1 (4.71%) 1
8 Hull Arsenal 0 - 1 (12.44%) 1 - 3 (5.49%) 1
9 Aston Villa West Ham 1 - 1 (12.66%) 1 - 0 (9.02%) 0
10 Crystal Palace Man United 0 - 1 (13.05%) 1 - 2 (9.11%) 1
11 Everton Sunderland 1 - 0 (16.06%) 0 - 2 (2.54%) 0
12 Hull Burnley 1 - 0 (14.50%) 0 - 1 (8.03%) 0
13 Leicester Southampton 0 - 1 (18.40%) 2 - 0 (3.64%) 0
14 Newcastle West Brom 1 - 0 (14.25%) 1 - 1 (13.33%) 0
15 Stoke Tottenham 1 - 1 (10.71%) 3 - 0 (2.17%) 0
16 Chelsea Liverpool 1 - 0 (20.01%) 1 - 1 (9.17%) 0
17 Man City QPR 3 - 0 (10.15%) 6 - 0 (3.02%) 1
18 Arsenal Swansea 2 - 0 (12.79%) 0 - 1 (3.03%) 0
19 Burnley Stoke 0 - 0 (19.37%) 0 - 0 (19.37%) 2
20 Liverpool Crystal Palace 1 - 1 (12.52%) 1 - 3 (2.68%) 0
21 QPR Newcastle 1 - 0 (14.16%) 2 - 1 (9.05%) 1
22 Southampton Aston Villa 1 - 0 (20.74%) 6 - 1 (0.17%) 1
23 Sunderland Leicester 1 - 1 (12.83%) 0 - 0 (9.03%) 1
24 Tottenham Hull 1 - 0 (12.48%) 2 - 0 (10.22%) 1
25 West Ham Everton 1 - 0 (14.03%) 1 - 2 (5.48%) 0
26 Man United Arsenal 1 - 1 (10.38%) 1 - 1 (10.38%) 2
27 Swansea Man City 1 - 1 (10.33%) 2 - 4 (1.74%) 0
28 West Brom Chelsea 0 - 2 (10.15%) 3 - 0 (0.35%) 0
29 Arsenal Sunderland 2 - 0 (16.08%) 0 - 0 (6.09%) 0
30 Arsenal West Brom 1 - 0 (17.13%) 4 - 1 (2.61%) 1
31 Aston Villa Burnley 1 - 0 (13.68%) 0 - 1 (9.63%) 0
32 Chelsea Sunderland 1 - 0 (20.97%) 3 - 1 (3.78%) 1
33 Crystal Palace Swansea 1 - 1 (12.57%) 1 - 0 (9.07%) 0
34 Everton Tottenham 1 - 1 (10.68%) 0 - 1 (6.36%) 0
35 Hull Man United 0 - 1 (13.73%) 0 - 0 (11.04%) 0
36 Leicester QPR 1 - 1 (10.91%) 5 - 1 (0.85%) 0
37 Man City Southampton 1 - 0 (17.10%) 2 - 0 (10.95%) 1
38 Newcastle West Ham 1 - 1 (11.37%) 2 - 0 (5.34%) 0
39 Stoke Liverpool 1 - 1 (12.91%) 6 - 1 (0.04%) 0


計40試合のうち、スコアを含め完全に的中させたのが4試合、勝敗をあてたのが14試合という結果になった。


ここからは今回のモデルの問題点と今後の課題について考察しよう。
テストデータのうち、片方のチームが3得点以上した試合を抜き出してみると次のようになった。

HomeTeam AwayTeam Prediction Result Errata
0 Leicester Newcastle 1 - 0 (14.06%) 3 - 0 (4.71%) 1
8 Hull Arsenal 0 - 1 (12.44%) 1 - 3 (5.49%) 1
15 Stoke Tottenham 1 - 1 (10.71%) 3 - 0 (2.17%) 0
17 Man City QPR 3 - 0 (10.15%) 6 - 0 (3.02%) 1
20 Liverpool Crystal Palace 1 - 1 (12.52%) 1 - 3 (2.68%) 0
22 Southampton Aston Villa 1 - 0 (20.74%) 6 - 1 (0.17%) 1
27 Swansea Man City 1 - 1 (10.33%) 2 - 4 (1.74%) 0
28 West Brom Chelsea 0 - 2 (10.15%) 3 - 0 (0.35%) 0
30 Arsenal West Brom 1 - 0 (17.13%) 4 - 1 (2.61%) 1
32 Chelsea Sunderland 1 - 0 (20.97%) 3 - 1 (3.78%) 1
36 Leicester QPR 1 - 1 (10.91%) 5 - 1 (0.85%) 0
39 Stoke Liverpool 1 - 1 (12.91%) 6 - 1 (0.04%) 0

これを見て分かるのが、今の得点予測モデルでは結果として大差がつくような試合でも1-0や1-1などの予測をしがちだということ。ポアソン分布に基づいて得点を予測する限り、片方のチームが3得点以上するだろうという予測にはなかなかならない。


しかしながら現実のサッカーでは、昨日のイラン戦もそうだったように、一度均衡が崩れると得点が連続して一気に勝負がつくということが往々にしてある。


本田圭介も言いました。「ゴールはケチャップや」、と。


今後はこのようなケチャップ効果を考慮したモデル作りができればと思う。以上です。




今回の記事は以下の記事を参考にさせていただきました。ありがとうございます。
yeoman.hatenablog.com