階層ベイズモデルを用いて、プレミアリーグの主要チームの攻撃力と守備力を時系列で推定しました。
過去に書いた、一般化線形モデルのポアソン回帰を用いて攻撃力と守備力を推定した記事と、サッカーの勝敗予想をベイズモデル化した記事の合わせ技 + αな内容となっております。
目次
はじめに
利用したデータ
データは football-data.co.uk のプレミアリーグのデータを10年分使用しています。
どの国のリーグでも言えることですが、下位チームの降格、下位リーグの上位チームの昇格があります。
下図の通り、シーズンごとにプレミアリーグに参加しているチームが異なっています。

各チームごとにプレミアリーグに参加した年は黒丸をプロットしています。
X軸に記載されている年は、その年から始まるリーグを意味しています。2005だったら、2005-2006シーズンのデータです。
また、今シーズンのデータに関しては、2015年3月22日に行われた試合までを対象としています。
分析対象とするチーム
今回は10年間プレミアリーグでプレイし続けているチームに関して、チームの攻撃力と守備力の推定結果を紹介します。
該当するチームはArsenal、Aston Villa、Chelsea、Everton、Manchester City、Manchester United、Tottenham の7チームでした。
この7チームに関して、攻撃力と守備力を定量的に見てましょう。
モデル
前提
以前の記事と同様、ゴール数はポアソン分布に従うという前提のもとモデルを構築しています。
ポアソン分布のパラメータであるλをいかに推定するかという問題になるわけですが、
ざっくり表現すると、

という形でλを推定しています。
このモデルの前提として、
・各チームの攻撃力・守備力は前年の攻撃力・守備力を平均とする正規分布に従う(分析初年度の2005年を除く)
・各チームの攻撃力・守備力のばらつきはチームごとに定義され、10年間で一定である
・各チームの攻撃力・守備力はシーズン中の変化しない
詳しくは下記コードで。
モデルのJAGSコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
model { for (i in 1:XNG) { YH[i] ~ dpois(lambda_home[XS[i], XHT[i], XAT[i]]) YA[i] ~ dpois(lambda_away[XS[i], XAT[i], XHT[i]]) } for(season_i in 1:XNS) { for (home_i in 1:XNT) { for (away_i in 1:XNT) { lambda_home[season_i, home_i, away_i] <- exp(baseline[season_i] + attack[season_i, home_i] - defense[season_i, away_i] + home[season_i]) lambda_away[season_i, away_i, home_i] <- exp(baseline[season_i] + attack[season_i, away_i] - defense[season_i, home_i]) } } } for (j in 1:XNT) { team_tau[j] <- 1 / pow(team_sigma[j], 2) team_sigma[j] ~ dunif(0, 2) attack[1, j] ~ dnorm(0, team_tau[j]) defense[1, j] ~ dnorm(0, team_tau[j]) } home[1] ~ dnorm(0, season_tau) baseline[1] ~ dnorm(0, season_tau) for(season_i in 2:XNS) { for(j in 1:XNT) { attack[season_i, j] ~ dnorm(attack[season_i - 1, j], team_tau[j]) defense[season_i, j] ~ dnorm(defense[season_i - 1, j], team_tau[j]) } home[season_i] ~ dnorm(home[season_i - 1], season_tau) baseline[season_i] ~ dnorm(baseline[season_i - 1], season_tau) } season_tau <- 1 / pow(season_sigma, 2) season_sigma ~ dunif(0, 2) } |
RからJagsを叩いており、Rから下記のパラメータを投げています。
YH |
ホームチームの得点数 |
YA |
アウェイチームの得点数 |
XHT |
ホームチーム |
XAT |
アウェイチーム |
XS |
シーズン |
XNG |
10年間の総試合数 |
XNT |
10年間にプレミアリーグでプレーしたチーム数 |
XNS |
シーズン数 |
MCMCの計算と結果
n.iter=105000, n.burnin=5000, n.chains=3で収束しました。※1
分析結果の見方
結果のサンプル
こんな感じで10年分の変化をプロットします。
Y軸の数値の意味
上で紹介したホームチームのλの計算式を分解すると、

ここでBaselineは
2005 |
0.04590155 |
2006 |
0.019349518 |
2007 |
0.047285737 |
2008 |
0.021237398 |
2009 |
0.059335881 |
2010 |
0.10370445 |
2011 |
0.123273471 |
2012 |
0.112604102 |
2013 |
0.082352007 |
2014 |
0.045952234 |
という結果になっています。
話を単純化するため、BaselineとHomeAttackだけを見てみましょう。
今年の攻撃力の値を見るとして、2014年のBaselineを仮定します。

でホームチームの攻撃力が0.5だとすると

λを押し上げる分だけを考慮すると

となり、攻撃力が0.5ということはλを0.678だけ押し上げる要因となります。
λってなんだったっけ
今回のモデルは最終的にはλを推定しているわけですが、このλが何だったか、今一度確認しておきましょう。
推定しているのはポアソン分布のパラメータであるλです。
ポアソン分布は下記の式で定義される確率分布です。

「単位時間中に平均で λ 回発生する事象がちょうど k 回発生する確率」
今回のケースにあてはめて意訳すると
「90分間に平均で λ 得点するチームがちょうど k 点いれる確率」
つまり、1試合で期待される得点数ですね。(実際ポアソン分布の期待値はλです)
というわけで、「攻撃力が0.5ということは、λを0.678だけ押し上げる」ということは
「攻撃力が0.5ということは、1試合で期待される得点数を0.678点押し上げる効果がある」
という意味です。
これは単純化した話なので、実際にはこれらに加え、相手チームの守備力・ホームチームの効果が加味されます。
濃いグレー・薄いグレー
図中の黒実線のまわりの濃いグレーはMCMCによって推定されたパラメータの50%区間、
さらにその外側の薄いグレーの部分は95%区間を示しています。
図の前提の説明が長くなりましたが、結果をみてみましょう。
分析結果
Arsenal
今シーズンは攻撃が過去最高クラスになっている模様。
また、2012シーズンには前年に比べ、守備が結果を出しています。
2012シーズンってコシールニーがフェルメーレンからレギュラーを勝ち取ったシーズンです。
Aston Villa
緩やかに衰退しています。特に攻撃。
守備力は2012シーズンから徐々に上がっています。
2012シーズンの夏って現主将でディフェンダーのロン・フラールが加入した年なんですよね。
Chelsea
近年チェルシーといえば、2009シーズンですね。
リーグ戦優勝、FAカップ優勝と2冠を達成した年です。シーズン通算で103得点し、当時の最高記録を塗り替えました。
その後に低迷し、徐々に盛り返している模様。
今シーズンはジエゴコスタ等、攻撃陣の補強がうまくいき、2009シーズンに近い水準の攻撃力となっています。
Everton
順調に伸び、2012シーズン、2013シーズンあたりがピークです。
今シーズンは良くないですね。
Liverpool
攻撃は2,3シーズンごとに好不調を繰り返しています。守備は徐々に衰退。
2012シーズンと2013シーズンは攻撃力が大きく伸びていますが、完全にスアレスの仕業です。
Manchester City
攻撃・守備ともに0付近だったのが、今や、リーグトップクラスです。
そもそも2005シーズンとか15位ですから、わりと降格ギリギリなわけです。
皆さんご存知の2008年にUAEの投資グループ、アブダビ・ユナイテッド・グループに買収されてからの躍進が凄いですね。
Manchester United
昨シーズンは結果を残せませんでした。とは言え、2005シーズンとほぼ同等の実力となっています。
チェルシーやシティなどがこれを上回る実力をつけているため、リーグ内の順位という結果には結びついていないようです。
今期は攻撃陣を大型補強したにも関わらず、守備陣の方が結果をだしているように見えますね。
Tottenham
守備力は2011シーズンを境に絶賛下落中です。
2013シーズンが始まる前の夏に大型補強を行なったにも関わらず、2013シーズンは結果が出ていませんね。
おわりに
というわけでプレミアリーグ編でした。
次回は別のリーグのチームごとの能力を推定します。
Jリーグも分析したい。乞うご期待!
参考サイト
http://www.sumsar.net/blog/2013/07/modeling-match-results-in-la-liga-part-one/
http://heartruptcy.blog.fc2.com/blog-entry-68.html