LoginSignup
0
0

More than 1 year has passed since last update.

はじめに

この記事は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

この結果を見ると、MasseyColleyの方法で導出したレートと同じである事が分かる。

終わりに

今回、ODレーティングについて解説を行った。offenceとdefenceのレートを算出する方法はMasseyの方法の時にも行ったので、その結果と今回の結果を見比べてみても面白いかもしれない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0