はじめに
この記事では、レーティングシステムである、Keener's method(Power Rating)を紹介する。
そして、この方法を使ってロケットリーグのレーティングを求めてみる。
(この記事はColleyのレーティングシステムについての続きである。)
Power Ratingについて
コンセプト
Power Ratingは次の2つのルールを満たすようなレーティングシステムである。
- あるチームの強さは戦ったチームと相手チームの強さによって決定されるべきである。
- あるチームの強さはそのチームのレートに比例するべきである。
レートの求め方
1.依存統計量を考える
まず初めに、チームiとjが戦った際のどの統計データがチームの強さに依存するかを考える。
ここでは、簡単のためにチームiがチームjから取ったスコアを$ S_{ij} $として、$ S_{ij} $にチームの強さが依存すると仮定する。
2.ラプラスの継承の法則を適応する。
ラプラス継承のの法則を適応して、$a_{ij}$を次のように定義する。
a_{ij} = \frac{S_{ij} + 1 } { S_{ij} + S_{ji} + 2}
3.必要に応じて、Skewing・Normalizationをかける
必要に応じてこれらを適応する。
-
Skewing
one-side gameのような一方的な試合があった場合に次の関数$h(x)$を適応する事でone-side gameの効果を薄めることができる。
h(x) = \frac{1}{2} + \frac{sgn(x-1/2) \sqrt{|2x - 1 |}}{2}
a_{ij} = h(a_{ij})
-
Normalization
すべてのチームが同じ試合数を行っていなかった場合に、試合数が多かったチームの強さが過大評価されたりしないようにするために、Normalizationをかける必要がある。
a_{ij} = \frac{a_{ij}}{n_i}
ここで、$n_i$はチームiの試合数である。
注意しなければならないのは、Skewing
にもNormalizationの効果がある為、Over Normalizationしないように気を付けることである。
4.作成した行列から固有方程式を求める。
作成した行列($A = \lbrace a_{ij} \rbrace$)を利用して、次のような固有方程式を立てる。
A \vec{x} = \lambda \vec{x}
ここで、$\vec{x}$はレート、$\lambda$はレートと強さの比例係数である。
5.レートを求める。
4.で作成した固有方程式を解いて固有値・固有関数群$\lambda_i,\vec{x}_i$を求める。
さらにこの中で、次を満たすようなものを見つけてくる。
\lambda \in R_{++}, \lambda \ge | \lambda_i | , \vec{x} > \vec{0}
なお、これが存在することは、Perron-Frobenius theoremによって保障されている。
6.レートを見やすい形に
5.で見つけたレートにnormalizationをかけ、100分率にする
\vec{r} = \frac{ \vec{x} }{ \Sigma_i^n x_i} * 100 [\%]
例題
私の大好きなゲームであるロケットリーグの世界大会からのデータを利用して、レートを求めてみようと思う。
今回用いるのはRLCSのSpring(North America)のグループAのリーグ戦である。
GroupAのRound 1からRound 5までの試合結果からレートを導出すると次のようになった。
順位 | チーム名 | レート[%] |
---|---|---|
1 | V1 | 29.037 |
2 | RGE | 23.575 |
3 | OXG | 21.617 |
4 | SQ | 16.482 |
5 | VOLT | 9.288 |
今回は、normalizationとSkwingの両方をかけてレートを導出した。
まとめ
今回はKeenerの方法でレートを求めた。
求めたレートは、RLCSのリーグ戦の順位をしっかり、再現していることを確認できた。