はじめに
この記事はMarkovのレーティングシステムの続きである。今回は、ODレーティング(Offense and Defense rating)について解説する。
OD レーティング
ODレーティングではレートrを次のように定義する。
r_i = \frac{o_i} {d_i}
ここで、$o_i,d_i$はそれぞれオフェンスレートとディフェンスレートであり、それぞれスコア行列$A = [a_{ij}]_{m \times m}$を利用して次のように決定される。
o_j = \frac{a_{1j}}{d_1} + \frac{a_{2j}}{d_2} + \cdots + \frac{a_{mj}}{d_m}
d_i = \frac{a_{i1}} {o_1} + \frac{a_{i2}}{o_2} + \cdots + \frac{a_{im}}{o_m}
ここで、オフェンスレートとディフェンスレートがそれぞれに依存しているため、cyclicalな問題になってしまう事が分かると思う。そこで、i番目のオフェンスレート$\vec{o}_i$とディフェンスレート$\vec{d}_i$を次のように決定し、収束するまでiを大きくすることでレートを導出する。
\vec{o}_i = A^T ( A \vec{o}_{i-1}^{\div})^{\div}
\vec{d}_i = A^T ( A \vec{d}_{i-1}^{\div})^{\div}
($\vec{x}^{\div} = (1/x_1,1/x_2,\cdots,1/x_m)^T$)
($\vec{o} = \vec{d} = \vec{e} = (1,1,\cdots,1)^T$)
スコア行列Aについて
スコア行列はチームiがチームjから取った総得点を行列要素$a_{ij}$とする行列である。
オフェンスレートとディフェンスレートが収束するかどうかはこのスコア行列の性質に依存する。そこで、このスコア行列が必ず収束するように、スコア行列を変換する。
スコア行列をどのように変換するかというと次のような対角行列 $ R,C$を両側からかければいい。
[C]_{ii} = \frac{1}{[\vec{e}^T A]_i}
[R]_{ii} = \frac{1}{[AC \vec{e}]_i}
A \rightarrow R A C
これを、Aの行和・列和が1になるまで繰り返す。
例題
前回と同様にRLCSのデータを利用してレートを導出する。
まず、スコア行列を
\begin{pmatrix}
0 & 8 & 3 & 12 & 6 \\
8 & 0 & 3 & 2 & 7 \\
12 & 9 & 0 & 6 & 9 \\
8 & 9 & 3 & 0 & 9 \\
11 & 13 & 3 & 10 & 0
\end{pmatrix}
と定義する。
これを利用して、$\vec{r}_{20}$まで導出した。
20回目でのレートは以下のようになった。
order | team | rate | def rate | off rate |
---|---|---|---|---|
1 | V1 | 1.683 | 0.721 | 1.213 |
2 | RGE | 1.254 | 1.071 | 1.343 |
3 | OXG | 0.978 | 0.958 | 0.937 |
4 | SQ | 0.910 | 1.233 | 1.122 |
5 | VOLT | 0.407 | 1.034 | 0.421 |
この結果を見ると、MasseyやColleyの方法で導出したレートと同じである事が分かる。
終わりに
今回、ODレーティングについて解説を行った。offenceとdefenceのレートを算出する方法はMasseyの方法の時にも行ったので、その結果と今回の結果を見比べてみても面白いかもしれない。