はじめに
この記事では、レーティングシステムである、Markovモデルを紹介する。
そして、この方法を使ってロケットリーグのレーティングを求めてみる。
Markovモデル
Markovモデルは名前の通り、Markov連鎖をもとに考えられたモデルである。
まず初めに、自分の利用したい試合結果からの統計量$V_{ij}$を考える。
例えば次のようなものが考えられる。
- チームiがチームjから取った総得点
- チームiがチームjに勝利した回数
- チームiがチームjより多くとった点差
そして、統計量をnormalizationした行列$N_{ij}$を作成する。
N_{ij} = \frac{V_{ij}} {\Sigma_j V_{ij}}
行列Nに次のような行が残っている場合は、行列の大きさnを利用して次のように変換する。
\text{if } N_{ij} = 0 (j=1..n) \text{ then } N_{ij} \rightarrow \frac{1}{n}
このようにしてできた行列を$S_{\alpha_0}$とする。そのほかの統計量に関しても同様に$S_{\alpha_1}$、$S_{\alpha_2}$...という風に導出し、それぞれの線形結合を次のように取る。
S = \Sigma_j \alpha_j S_{\alpha_j}
この時、
\Sigma_j \alpha_j = 1 (\alpha_j > 0)
また、Sがirreducibleではない場合には、次のような変換を施すことでSをirreducibleにする事ができる。
S \rightarrow \beta S + \frac{1 - \beta}{n} E (0\le\beta\le1)
ここまで出来たらあとは、
S^{T} \vec{r} = \vec{r}
という固有値問題を解けば、レート$\vec{r}$が求まる。
例題(RLCS)
いつもの通り、ロケットリーグチャンピオンシリーズのデータ(シーズンX North America GroupA)を使ってレートを導出してみる。
今回はこれらの統計量を利用することにした。
- 試合での得点数
- ショットを打った数
- ボールの支配率
これらのデータを用いてレートを算出すると次のようになった。
order | team name | rate |
---|---|---|
1 | RGE | 0.240 |
2 | SQ | 0.217 |
3 | V1 | 0.215 |
4 | OXG | 0.201 |
5 | VOLT | 0.126 |
これまでのモデル(MasseyやEloなど)のレートと順位が大きく違っているのが見て取れる。
例えば、SQはこれまでのレートでは4位にランクインしていたが、このレート導出方法では2位となっている。これは、SQはボールの支配率もよくシュートを打つチャンスが多くあるが、決定打にかける為試合に勝てていない事が分かる。このように、レートの導出だけでもいろいろ考察できそうである。
おわりに
今回のMarkovの方法は、自分の好きな統計量を組み合わせることができるので、とても汎用的であると感じた。
次回は、このMarkovの方法の一種であるPage Rankのモデルについて触れようと思う。