レーティングの理論 (Eloレーティング, Glickoレーティング)

概要

レーティングシステム(rating system)とは、試合の結果から選手の強さを推定して数値化する手法。
ポケモンやスプラトゥーンなどのオンライン対戦ゲームに使われたり、国際チェス連盟(FIDE)でチェスプレイヤーがタイトルを取得するための条件になっていたり、国際サッカー連盟(FIFA)の選手の各チームのランキングに使われたりと、幅広く活用されている。

プレイヤーの強さを表す手法には勝率を用いるという単純な解決手段も考えられるが、プレイヤーごとに対戦相手の強さの分布が異なる場合は機能しない。(強いプレイヤーと戦い続けて勝率5割と、弱いプレイヤーと戦い続けて勝率5割では同じ勝率だが実際の実力は大きく異なる)
そのような問題を解決するのがレーティングシステムである。

この記事では代表的なレーティングシステムであるイロレーティング(Elo Rating)とグリコレーティング(Glicko Rating)の解説を行う。

目次

Elo Rating (イロレーティング)

ハンガリーの物理学者でありチェスの実力者でもあったArpad Eloが、チェスレーティングに適用するために考案したシステム。
1960年にアメリカ合衆国チェス連盟で初めて使用され、優秀なレーティングシステムとして急速に普及した。

前提

プレイヤーBに対するプレイヤーAのオッズ(勝率/敗率)を \( \mathcal{O}_{AB} \) と書く。
つまり、プレイヤーAがプレイヤーBに勝つ確率(勝率・勝利確率)を \( \mathcal{W}_{AB} \) と書くと、 \( \mathcal{O}_{AB} = \mathcal{W}_{AB} / \mathcal{W}_{BA} \) となる。

前提1

Eloはオッズ \( \mathcal{O}_{AB} \) が満たすべき性質として、以下の強い条件を仮定した。

\begin{align} \mathcal{O}_{AC} = \mathcal{O}_{AB} \cdot \mathcal{O}_{BC} \end{align}

これは、AとCの直接対決の勝敗履歴がなくても、AとB、BとCのオッズからAとCのオッズを連鎖的に求めることができることを意味する。

前提2

また、レーティング値の差とオッズに一定の関係があるという条件を課し、特にオッズが10倍の場合のレーティング差を400と定めた。(そのような性質を満たすようにレーティング値を定義した)

\begin{align} \mathcal{O}_{AB} = 10 \Leftrightarrow R_A - R_B = 400 \end{align}

ここで、\( R_A, R_B \) はそれぞれプレイヤーA, Bのレーティング値。

オッズとレーティング差の相互変換

以上の条件からオッズとレーティング差の具体的な関係を導き出すことができる。

前提2より、オッズ \( \mathcal{O}_{AB} \) はレーティング差 \( R_A - R_B \) と一定の関係があるので、関数 \( f \) を用いて \( \mathcal{O}_{AB} = f(R_A - R_B) \) とすることができる。

前提1より、 \( f(R_A - R_C) = f(R_A - R_B) \cdot f(R_B - R_C). \)
変数を置き換えると、 \( f(s + t) = f(s) \cdot f(t). \)

\( f \)が滑らかだと仮定して \( t \) で微分する。\( f'(s + t) = f(s) \cdot f'(t). \)
\( t = 0 \) を代入。\( f'(s) = f(s) \cdot f'(0). \)

よって、\( f(s) = \exp(qs). \) (\( q \)は定数)

前提2より、

\begin{align} 10 &= \mathcal{O}_{AB} \\ &= f(R_A - R_B) \\ &= f(400) \\ &= \exp(400q) \end{align}

よって、\( q = \log(10) / 400. \) つまりオッズとレーティング差の関係は以下のようになる。

\begin{align} \mathcal{O}_{AB} = 10^{\frac{R_A - R_B}{400}}. \end{align}

また、 \( \mathcal{O}_{AB} = \mathcal{W}_{AB} / \mathcal{W}_{BA} = \mathcal{W}_{AB} / (1-\mathcal{W}_{AB}) \) となることから、勝率とレーティング差の関係はシグモイド関数 \( \varsigma \)を使って以下のように表される。

\begin{align} \mathcal{W}_{AB} = \frac{1}{1+10^{-\frac{R_A-R_B}{400}}} = \varsigma_q(R_A-R_B). \end{align}

レーティング差 勝率
800 99.0%
600 97.0%
400 90.9%
300 84.9%
250 80.8%
200 76.0%
150 70.3%
100 64.0%
70 59.9%
50 57.1%
10 51.4%
0 50.0%

レーティングの更新

このようにレーティングが満たすべき性質がわかったのだが、実際に行われた試合の勝敗結果からそのプレイヤーの実力に沿ったレーティング値を定めるにはどうしたら良いだろうか。

レーティングの初期値

リーグ全体のレーティングの平均値は例えば1500などとすることが多いとされる。
勝率の算出にはレーティングの差のみを使うので、リーグ全体のレーティングに一定の値を足したり引いたりしてもEloレーティングの本質には影響しない。そのため、レーティングの平均値は自由に定めることができる。

リーグ平均が1500ならばリーグに新たにプレイヤーが参入する場合の初期値も1500にすれば良いのかというとそうではなく、初期値の設定には様々な課題と工夫がある。
一つ目の問題はレーティングのインフレ・デフレの問題である。リーグからプレイヤーが引退したり新たにプレイヤーが参入する場合、リーグ全体のレーティング値の合計が変動するので、リーグに残り続けるプレイヤーのレーティング値が際限なく上昇・下降し得るという問題が生じる。実際にチェスではこの問題によって、「グランドマスター」などといった「一定以上のレーティングに到達すること」が取得の条件になっているタイトルの保持者が増加するという問題が発生しているらしい。
もう一つの問題は、リーグに新たに参入したプレイヤーに対して最初から適切なレーティング値を設定しないと、新規参入プレイヤーの対戦相手のレーティング値が実際の実力とは異なる方向に更新されてしまうという問題である。例えば新規参入プレイヤーAにリーグ平均の1500のレーティング値を設定したが実際の実力はレーティング2000程度だった場合、レーティング1600のプレイヤーBがAと対戦して負けたとき、Bはレーティングシステム上では格下に負けたことになるのでBのレーティング値は大きく下降してしまう(後述)。
これらの問題の対処はレーティングシステムを採用しているシステムによって様々で、これといった決定的な解決策はない。

レーティングの更新

Eloレーティングでは、\( n \)回対戦して\( A \)が\( w_A \)回, \( B \)が\( w_B \)回勝った場合、以下のようにレーティングを更新する。

\begin{align} R_A \leftarrow R_A + K(w_A - n\mathcal{W}_{AB}) \\ R_B \leftarrow R_B + K(w_B - n\mathcal{W}_{BA}) \end{align}

ここで、Kファクターと呼ばれる値 \( K \) はレーティングの学習率に相当し、自由に定めることができる。 \( K=32 \) や \( K=16 \) を採用されることが一般的とされる。
上記の更新式によって値を更新し続けてレーティング値が収束したとき、

\begin{align} w_A - n\mathcal{W}_{AB} = 0 \\ \mathcal{W}_{AB} = \frac{w_A}{n} \end{align}

となるので、レーティング差から算出される勝利確率 \( \mathcal{W}_{AB} \) と、実績としての勝率 \( \frac{w_A}{n} \) が一致し、レーティングシステムの目的に合致したレーティング値が得られたことになる。
また、式から高レーティングのプレイヤーが低レーティングのプレイヤーに勝つという「当然の結果」に対してはレーティングの変動は少なく、逆に低レーティングのプレイヤーが高レーティングのプレイヤーに勝つような「番狂わせ」「下馬評を裏切る結果」に対してはレーティングが大きく変動する仕組みとなっている。

なお、この更新においてレーティングの合計は

\begin{align} R_A + R_B &\leftarrow R_A + R_B + K(w_A + w_B - n(\mathcal{W}_{AB} + \mathcal{W}_{BA})) \\ &= R_A + R_B + K(n - n) \\ &= R_A + R_B \end{align}

となり、リーグ内のレーティングの総和は保存される。

  • 引き分けの扱いも実装により様々だが、シンプルに互いに1/2勝などとする手法がある。
  • \( n \) 試合まとめて更新するのではなく、毎試合更新(つまり \( n = 1 \) )する実装も多く見られる。

Glicko Rating (グリコレーティング)

Eloレーティングの改良版として、1997年にMark Glickmanが考案したレーティングシステム。
レーティング偏差(RD)という概念を導入したことが最大の特徴で、レーティングの信頼性を考慮した構造になっている。RDは前の試合から時間が経つほど上昇していき、RDが大きいほど勝っても負けてもレーティングの更新量が大きくなる仕組みとなっている。

前提

プレイヤーの強さ \( \theta \) (=Eloレーティングにおけるレーティング値に相当)が平均\( R \)、標準偏差 \( RD \) の正規分布に従うとする。すなわち、 \( \theta \sim \mathcal{N}(R, RD^2). \)
対戦相手の強さ \( \theta_i \) も同様に、 \( \theta_i \sim \mathcal{N}(R_i, RD_i^2) \) とする。

このときEloレーティングと同様に、試合の結果が \( s_i \) となる確率( \( s_i=1 \) なら勝ち、 \( s_i=0 \) なら負け)を次のように定める。

\begin{align} p(s_i | \theta, \theta_i) &= \frac{10^{\frac{\theta-\theta_i}{400}\times s_i}}{1+10^{\frac{\theta-\theta_i}{400}}} \\ &= \varsigma_q^{(s_i)}(\theta-\theta_i). \end{align}

ただし、\( \varsigma_q^{(s)}(\theta) := \frac{e^{sq\theta}}{1+e^{q\theta}}. \)

更新式の導出

導出の過程は非常に長いので、結果だけ知りたい場合は次の節まで読み飛ばしても良い。

試合後の強さの分布

\( m \) 回の試合の結果 \( s = \{s_i\}_{i=1}^m \) が得られたときのプレイヤーのレーティングを推定する。
試合結果が \( s \) のとき、プレイヤーの強さが \( \theta \) である確率は、

\begin{align} p(\theta | s) &= \frac{p(\theta, s)}{p(s)} \\ &\propto p(\theta, s) \\ &= \int \cdots \int p(\theta, s | \theta_1, \cdots , \theta_m) \cdot p_\mathcal{N}(\theta_1 | R_1, RD_1^2) \cdot \cdots \cdot p_\mathcal{N}(\theta_m | R_m, RD_m^2) d\theta_1 \cdots d\theta_m. \end{align}

ここで、 \( \theta \) と \( \theta_i \) は独立なので、

\begin{align} p(\theta, s | \theta_1, \cdots , \theta_m) &= \frac{p(\theta, \theta_1, \cdots , \theta_m, s)}{p(\theta_1, \cdots , \theta_m)} \\ &= \frac{p(\theta) \cdot p(s, \theta_1, \cdots , \theta_m | \theta)}{\prod_{i=1}^{m} p(\theta_i)} \\ &= p(\theta) \frac{\prod_{i=1}^{m} p(s_i, \theta_i | \theta)}{\prod_{i=1}^{m} p(\theta_i)} \\ &= p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} \frac{p(s_i, \theta_i, \theta)}{p(\theta_i)p(\theta)} \\ &= p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} \frac{p(s_i, \theta_i, \theta)}{p(\theta, \theta_i)} \\ &= p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} p(s_i| \theta, \theta_i). \end{align}

よって、

\begin{align} p(\theta | s) &\propto \int \cdots \int p(\theta, s | \theta_1, \cdots , \theta_m) \cdot p_\mathcal{N}(\theta_1 | R_1, RD_1^2) \cdot \cdots \cdot p_\mathcal{N}(\theta_m | R_m, RD_m^2) d\theta_1 \cdots d\theta_m \\ &= \int \cdots \int p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} p(s_i| \theta, \theta_i) \prod_{i=1}^{m} p_\mathcal{N}(\theta_i | R_i, RD_i^2) d\theta_1 \cdots d\theta_m \\ &= p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} \left( \int p(s_i| \theta, \theta_i) \cdot p_\mathcal{N}(\theta_i | R_i, RD_i^2) d\theta_i \right) \\ &= p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} \left( \int \varsigma_q^{(s_i)}(\theta-\theta_i) \cdot p_\mathcal{N}(\theta_i | R_i, RD_i^2) d\theta_i \right). \end{align}

分布 \( p(\theta | s) \) をより具体的に計算し、その平均と分散を求めてプレイヤーのレーティング \( R, RD \) を更新したい。

総乗の中身

総乗の中身を計算する。

\begin{align} I(\theta) := \int_{-\infty}^{\infty} \varsigma_q(\theta-t) \cdot p_\mathcal{N}(t | \mu, \sigma^2) dt \end{align}

と定める。
\( I \) の形は下図( \( R=1500, RD=350, q=\log(10)/400 \) の場合の \( I(\theta) \) )のようにシグモイド関数に似ているので、適切な \( q' \) を見つけて \( I \) を \( \varsigma_{q'} \) に近似することを目指す。

シグモイド関数を誤差関数へ近似

このままでは積分しにくいので、 \( \varsigma_q \) を誤差関数 \(\rm{erf}\) (=正規分布の不定積分)で近似する。
具体的には \( \varsigma_q \) の導関数の平均と分散が、誤差関数の導関数の平均と分散に一致するように求める。

\begin{align} \varsigma_q'(\theta) = \frac{qe^{q\theta}}{(1+e^{q\theta})^2} \end{align}

なので、平均と分散は以下のようになる。

\begin{align} E(\varsigma_q') &= 0 \\ V(\varsigma_q') &= \int_{-\infty}^{\infty} \theta^2 \varsigma_q'(\theta) d\theta \\ &= \frac{1}{q^2} \int_{-\infty}^{\infty} \theta^2 \varsigma'(\theta) d\theta. \end{align}

ここで、

\begin{align} \int_{0}^{x} \theta^2 \varsigma'(\theta) d\theta &= \int_{0}^{x} \theta^2 \frac{e^\theta}{(1+e^\theta)^2} d\theta \\ &= -x^2\frac{1}{1+e^x} + 2\int_{0}^{x} \theta \frac{1}{1+e^\theta} d\theta \\ &= -x^2\frac{1}{1+e^x} - 2x\log(1+e^{-x}) + 2\int_{0}^{x} \log(1+e^{-\theta}) d\theta. \end{align}

\( x\rightarrow \infty \) のとき、各項は次のようになる。

\begin{align} x^2\frac{1}{1+e^x} \to 0. \end{align}

\begin{align} \lim_{x\to \infty}x\log(1+e^{-x}) &= \lim_{x\to \infty}\frac{\log(1+e^{-x})}{\frac{1}{x}} \\ &= \lim_{x\to \infty}\frac{(\log(1+e^{-x}))'}{(\frac{1}{x})'} \\ &= \lim_{x\to \infty}\frac{-\frac{e^{-x}}{1+e^{-x}}}{-\frac{1}{x^2}} \\ &= \lim_{x\to \infty}\frac{x^2}{1+e^x} \\ &= 0. \end{align}

\begin{align} \int_{0}^{x} \log(1+e^{-\theta}) d\theta &= \int_{0}^{x} \sum_{k=1}^{\infty} -\frac{(-e^{-\theta})^k}{k} d\theta \\ &= \sum_{k=1}^{\infty} \frac{(-1)^{k+1}}{k} \int_{0}^{x} e^{-k\theta} d\theta \\ &= \sum_{k=1}^{\infty} \frac{(-1)^{k+1}}{k} \frac{1-e^{-kx}}{k} \\ &\to \sum_{k=1}^{\infty} \frac{(-1)^{k+1}}{k^2}. \end{align}

ここで、\( x^2 \) のFourier級数展開

\begin{align} x^2 = \frac{\pi^2}{3} + 4\sum_{n=1}^{\infty}\frac{\cos(n\pi)}{n^2}\cos(nx) \end{align}

に \( x = 0 \) を代入すると、

\begin{align} 0 = \frac{\pi^2}{3} + 4\sum_{n=1}^{\infty}\frac{(-1)^n}{n^2}. \end{align}

したがって、

\begin{align} \sum_{n=1}^{\infty}\frac{(-1)^{n+1}}{n^2} = \frac{\pi^2}{12}. \end{align}

以上の結果から、

\begin{align} V(\varsigma_q') &= \frac{1}{q^2} \int_{-\infty}^{\infty} \theta^2 \varsigma'(\theta) d\theta \\ &= \frac{2}{q^2} \int_{0}^{\infty} \theta^2 \varsigma'(\theta) d\theta \\ &= \frac{2}{q^2} \left( 0 + 0 + 2\sum_{n=1}^{\infty}\frac{(-1)^{n+1}}{n^2}\right) \\ &= \frac{\pi^2}{3q^2}. \end{align}

したがって、\( \varsigma_q \) を平均0・標準偏差 \( \tilde{\sigma} := \sqrt{\frac{\pi^2}{3q^2}} \) の正規分布の積分に近似することができることがわかった。

シグモイド関数と正規分布の積分の近似関係

\begin{align} \varsigma_q(x) &\sim \int_{-\infty}^x p_\mathcal{N}(x | 0, \frac{\pi^2}{3q^2}) dx \\ \int_{-\infty}^x p_\mathcal{N}(x | 0, s^2) dx &\sim \varsigma_{\frac{\pi}{\sqrt{3}s}}(x) \end{align}

正規分布の合成

\begin{align} I(\theta) &= \int_{-\infty}^{\infty} \varsigma_q(\theta-t) \cdot p_\mathcal{N}(t | \mu, \sigma^2) dt \\ &\thicksim \int_{-\infty}^{\infty} \left( \int_{-\infty}^{\theta} p_\mathcal{N}(x | t, \tilde{\sigma}^2) dx \right) p_\mathcal{N}(t | \mu, \sigma^2) dt \\ &= \int_{-\infty}^{\infty} \int_{-\infty}^{\theta} \frac{1}{\sqrt{2\pi\tilde{\sigma}^2}} \exp \left(-\frac{(x-t)^2}{2\tilde{\sigma}^2}\right) \frac{1}{\sqrt{2\pi\sigma^2}} \exp \left(-\frac{(t-\mu)^2}{2\sigma^2}\right) dx dt \\ &= \int_{-\infty}^{\theta} \int_{-\infty}^{\infty} \frac{1}{2\pi\sigma\tilde{\sigma}} \exp \left( -\frac{1}{2}\left( \left(\frac{1}{\tilde{\sigma}^2}+\frac{1}{\sigma^2}\right)t^2-2\left(\frac{x}{\tilde{\sigma}^2}+\frac{\mu}{\sigma^2}\right)t+\frac{x^2}{\tilde{\sigma}^2}+\frac{\mu^2}{\sigma^2} \right) \right) dt dx \\ &= \int_{-\infty}^{\theta} \int_{-\infty}^{\infty} \frac{1}{2\pi\sigma\tilde{\sigma}} \exp \left( -\frac{1}{2}\left( \left(\frac{1}{\tilde{\sigma}^2}+\frac{1}{\sigma^2}\right)\left(t - \frac{\frac{x}{\tilde{\sigma}^2}+\frac{\mu}{\sigma^2}}{\frac{1}{\tilde{\sigma}^2}+\frac{1}{\sigma^2}} \right)^2-\frac{\left( \frac{x}{\tilde{\sigma}^2}+\frac{\mu}{\sigma}^2 \right)^2}{\frac{1}{\tilde{\sigma}^2}+\frac{1}{\sigma^2}}+\frac{x^2}{\tilde{\sigma}^2}+\frac{\mu^2}{\sigma^2} \right) \right) dt dx \\ &= \int_{-\infty}^{\theta} \frac{1}{\sqrt{2\pi}\sigma\tilde{\sigma}} \frac{1}{\sqrt{\frac{1}{\tilde{\sigma}^2}+\frac{1}{\sigma^2}}} \exp \left( -\frac{1}{2}\left( -\frac{\left( \frac{x}{\tilde{\sigma}^2}+\frac{\mu}{\sigma^2} \right)^2}{\frac{1}{\tilde{\sigma}^2}+\frac{1}{\sigma^2}}+\frac{x^2}{\tilde{\sigma}^2}+\frac{\mu^2}{\sigma^2} \right) \right) dx \\ &= \int_{-\infty}^{\theta} \frac{1}{\sqrt{2\pi(\tilde{\sigma}^2+\sigma^2)}} \exp \left( -\frac{1}{2}\left( -\frac{\tilde{\sigma}^2\sigma^2}{\tilde{\sigma}^2+\sigma^2}\left( \frac{x^2}{\tilde{\sigma}^4} + \frac{2\mu x}{\tilde{\sigma}^2\sigma^2} + \frac{\mu^2}{\sigma^4} \right)+\frac{x^2}{\tilde{\sigma}^2}+\frac{\mu^2}{\sigma^2} \right) \right) dx \\ &= \int_{-\infty}^{\theta} \frac{1}{\sqrt{2\pi(\tilde{\sigma}^2+\sigma^2)}} \exp \left( -\frac{1}{2}\left( \frac{1}{\tilde{\sigma}^2}\left( 1-\frac{\sigma^2}{\tilde{\sigma}^2+\sigma^2} \right) x^2 - \frac{2\mu x}{\tilde{\sigma}^2+\sigma^2} + \frac{1}{\sigma^2} \left(1-\frac{\tilde{\sigma^2}^2}{\tilde{\sigma}^2+\sigma^2} \right) \mu^2 \right) \right) dx \\ &= \int_{-\infty}^{\theta} \frac{1}{\sqrt{2\pi(\tilde{\sigma}^2+\sigma^2)}} \exp \left( -\frac{1}{2} \frac{(x-\mu)^2}{\tilde{\sigma}^2+\sigma^2} \right) dx \\ &= \int_{-\infty}^{\theta} p_\mathcal{N}(x | \mu, \tilde{\sigma}^2+\sigma^2) dx \\ &= \int_{-\infty}^{\theta-\mu} p_\mathcal{N}(x | 0, \tilde{\sigma}^2+\sigma^2) dx \\ \end{align}

となり、 \( I(\theta) \) そのものも誤差関数に近似できることがわかる。(4行目以降の変換は正規分布の再生成と同じ。)

先述のシグモイド関数と正規分布の積分の近似関係から、\( I(\theta) \)をシグモイド関数に近似することができる。\( I(\theta)\sim \varsigma_{q'}(\theta) \)とすると、

\begin{align} q' &= \sqrt{\frac{\pi^2}{3(\tilde{\sigma}^2+\sigma^2)}} \\ &= \sqrt{\frac{\pi^2}{3\left(\frac{\pi^2}{3q^2}+\sigma^2\right)}} \\ &= \frac{q}{\sqrt{1+\frac{3q^2\sigma^2}{\pi^2}}} \end{align}

となる。ここで、 \( g(x) := \left( 1+\frac{3q^2x}{\pi^2} \right)^{-1/2} \) とすると以下のようにも表せる。

\begin{align} q' = g(\sigma^2)q \end{align}

これまでの結果より、

\begin{align} I(\theta) \thicksim \varsigma_{g(\sigma^2)q}(\theta - \mu) \end{align}

と近似できることがわかる。

総乗部分を正規分布へ近似

再び元の確率 \( p(\theta | s) \) に話を戻す。
\( p(\theta | s) \) を求める式の中に現れた総乗の中身をシグモイド関数で近似したことによって、\( p(\theta | s) \) は以下のように近似できるようになった。

\begin{align} p(\theta | s) &\propto p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} \left( \int \varsigma_q^{(s_i)}(\theta-\theta_i) \cdot p_\mathcal{N}(\theta_i | R_i, RD_i^2) d\theta_i \right) \\ &\thicksim p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} \varsigma_{g(RD_i^2)q}^{(s_i)}(\theta-R_i) \end{align}

総乗の中身を、特に \( s=1 \) の場合

\begin{align} E_i(\theta) := \varsigma_{g(RD_i^2)q}(\theta-R_i) \end{align}

と表し、総乗全体を \( L(\theta) \) と表すことにする。

ここでやや強引な仮定だが、 \( L(\theta) \propto p_\mathcal{N}(\theta | \hat{\theta}, d^2) \) と近似できるような \( d \) を求める。
ただし、 \( \hat{\theta} \) は \( L(\theta) \) を最大化する \( \theta \) である。

\begin{align} \left(\frac{d}{d\theta}\right)^2 \log\left(p_\mathcal{N}(\theta | \hat{\theta}, d^2)\right) &= \left(\frac{d}{d\theta}\right)^2 \left( -\frac{(\theta-\hat{\theta})^2}{2d^2} \right) \\ &= -\frac{1}{d^2}. \end{align}

なので、 \( \log\left(L(\theta)\right) \) を求めることで \( d \) を得ることができる。

\begin{align} \frac{d}{d\theta}\log\left(L(\theta)\right) &= \frac{d}{d\theta}\sum_{i=1}^{m}\log\left( \varsigma_{g(RD_i^2)q}^{(s_i)}(\theta-R_i) \right) \\ &= \sum_{i=1}^{m} g(RD_i^2)q \left( s_i - \varsigma_{g(RD_i^2)q}(\theta-R_i) \right) \\ &= q \sum_{i=1}^{m} g(RD_i^2) \left( s_i - E_i(\theta) \right). \end{align}

\begin{align} \left(\frac{d}{d\theta}\right)^2 \log\left(L(\theta)\right) &= -q \sum_{i=1}^{m} g(RD_i^2) \frac{d}{d\theta}E_i(\theta) \\ &= -q^2 \sum_{i=1}^{m} g(RD_i^2)^2 E_i(\theta) \left(1-E_i(\theta)\right). \end{align}

したがって、

\begin{align} d^2 &\thicksim \left(q^2 \sum_{i=1}^{m} g(RD_i^2)^2 E_i(\theta) \left(1-E_i(\theta)\right)\right)^{-1}. \end{align}

\( \theta \) には任意の値を選べるので、特に \( \theta = R \) として、

\begin{align} d^2 &\thicksim \left(q^2 \sum_{i=1}^{m} g(RD_i^2)^2 E_i \left(1-E_i\right)\right)^{-1}. \end{align}

ただし、\( E_i := E_i(R) = \varsigma_{g(RD_i^2)q}(R-R_i) \)

分布全体を正規分布へ近似

これまでの計算から以下の結果が得られる。

\begin{align} p(\theta | s) &\propto p_\mathcal{N}(\theta | R, RD^2) \prod_{i=1}^{m} \varsigma_{g(RD_i^2)q}^{(s_i)}(\theta-R_i) \\ &\thicksim p_\mathcal{N}(\theta | R, RD^2) p_\mathcal{N}(\theta | \hat{\theta}, d^2) \\ &\propto \exp\left( -\frac{1}{2}\left( \frac{(\theta-R)^2}{RD^2} + \frac{(\theta-\hat{\theta})^2}{d^2} \right) \right) \\ &\propto \exp\left( -\frac{1}{2}\left( \left( \frac{1}{RD^2}+\frac{1}{d^2} \right) \theta^2 - 2\left( \frac{R}{RD^2} + \frac{\hat{\theta}}{d^2} \right)\theta \right) \right) \\ &\propto \exp\left( -\frac{1}{2}\left( \frac{1}{RD^2}+\frac{1}{d^2} \right)\left( \theta - \frac{\frac{R}{RD^2} + \frac{\hat{\theta}}{d^2}}{\frac{1}{RD^2}+\frac{1}{d^2}} \right)^2 \right) \\ &= \exp\left( -\frac{1}{2}\left( \frac{1}{RD^2}+\frac{1}{d^2} \right)\left( \theta - \left( R + \frac{RD^2}{d^2+RD^2}(\hat{\theta}-R) \right) \right)^2 \right) \\ &\propto p_\mathcal{N}\left( \theta \left| R + \frac{RD^2}{d^2+RD^2}(\hat{\theta}-R), \left( \frac{1}{RD^2}+\frac{1}{d^2} \right)^{-1 }\right. \right). \end{align}

よって試合後のプレイヤーの強さの分布は上記の正規分布に従うことになり、レーティングの更新式

\begin{align} \left\{ \begin{array}{ll} R &\leftarrow R + \frac{RD^2}{d^2+RD^2}(\hat{\theta}-R), \\ RD &\leftarrow \left( \frac{1}{RD^2}+\frac{1}{d^2} \right)^{-1/2}. \end{array} \right. \end{align}

とすれば良いことがわかる。

最後に未知の値 \( \hat{\theta} \) を求める。
\( \hat{\theta} \) は \( L(\theta) \) を最大化する値であったので、 \( \log(L(\theta)) \) に対しても最大化する値となる。

\begin{align} 0 &= \frac{d}{d\theta}\left(\log \circ L\right)(\hat{\theta}) \\ &= q \sum_{i=1}^{m} g(RD_i^2) \left( s_i - E_i(\hat{\theta}) \right) \\ \end{align}

ここで、

\begin{align} h(\theta) := \sum_{i=1}^{m} g(RD_i^2) E_i(\theta) \end{align}

とすると、

\begin{align} 0 &= q \sum_{i=1}^{m} g(RD_i^2) \left( s_i - E_i(\hat{\theta}) \right) \\ &= q\left( \left( \sum_{i=1}^{m} g(RD_i^2) s_i \right) - h(\hat{\theta}) \right) \end{align}

となる。よって、

\begin{align} h(\hat{\theta}) = \sum_{i=1}^{m} g(RD_i^2) s_i. \end{align}

\( h(\theta) \) を次のように1次近似する。

\begin{align} h(\theta) &\thicksim h(R) + (\theta -R)h'(R). \\ \therefore \theta &\thicksim R + \frac{h(\theta) - h(R)}{h'(R)}. \end{align}

ここで、

\begin{align} h'(R) &= q\sum_{i=1}^{m} g(RD_i^2)^2 E_i(\theta) \left( 1 - E_i(\theta) \right) \\ &= \frac{1}{qd^2}. \end{align}

したがって以下のように目的の値 \( \hat{\theta} \) が(近似で)定まった。

\begin{align} \hat{\theta} &\thicksim R+qd^2\left(h(\hat{\theta}) - h(R)\right) \\ &= R+qd^2 \left( \sum_{i=1}^{m} g(RD_i^2) s_i - \sum_{i=1}^{m} g(RD_i^2) E_i(R) \right) \\ &= R+qd^2 \sum_{i=1}^{m} g(RD_i^2) \left( s_i - E_i(R) \right). \end{align}

この結果をRの更新式に反映させる。

\begin{align} R &\leftarrow R + \frac{RD^2}{d^2+RD^2}(\hat{\theta}-R) \\ &\thicksim R + \frac{RD^2}{d^2+RD^2}qd^2 \sum_{i=1}^{m} g(RD_i^2) \left( s_i - E_i(R) \right) \\ &= R + \frac{q}{\frac{1}{RD^2}+\frac{1}{d^2}} \sum_{i=1}^{m} g(RD_i^2) \left( s_i - E_i \right). \end{align}

レーティング更新アルゴリズム

  1. 初期レーティング
    新規参入プレイヤーの初期レーティングは \( (R, RD) = (1500, 350) \) とする。

  2. RDの事前更新
    試合の結果を反映させる前に、プレイヤーの前の試合からの時間経過をRDに反映させる。
    具体的には \( RD \leftarrow \min \left( \sqrt{RD^2+(ct)^2}, 350 \right) \) とする。
    ここで \( t \) は前回の更新からの経過時間で、 \( c \) は適当な定数(RDが初期値に戻るまでの期間を調整する値)。

  1. レーティングの更新
    レーティング期間の間に \( m \) 回の対戦結果 \( s \) が与えられたとき、以下のようにレーティングを更新する。
    なお、この更新により、 \( d \) がどのような値であっても \( RD \) は必ず減少する。

\begin{align} \left\{ \begin{array}{ll} R' &= R + \frac{q}{\frac{1}{RD^2}+\frac{1}{d^2}} \sum_{i=1}^{m} g(RD_i^2) \left( s_i - E_i \right), \\ RD' &= \left( \frac{1}{RD^2}+\frac{1}{d^2} \right)^{-1/2}. \end{array} \right. \end{align}

\begin{align} \left\{ \begin{array}{ll} q &:= \frac{\log10}{400}, \\ g(RD_i^2) &:= \left( 1+\frac{3q^2RD_i^2}{\pi^2} \right)^{-1/2}, \\ E_i &:= \varsigma_{g(RD_i^2)q}(R-R_i), \\ d^2 &:= \left(q^2 \sum_{i=1}^{m} g(RD_i^2)^2 E_i \left(1-E_i\right)\right)^{-1}. \end{array} \right. \end{align}

勝率とレーティングの関係

\( g \) の定義の中に \( q \) が含まれていることに注意。

\begin{align} \mathcal{W}_{AB} &= \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} p\left( 1 | \theta_A, \theta_B \right) p_\mathcal{N}\left(\theta_A | R_A, RD_A^2\right) p_\mathcal{N}\left(\theta_B | R_B, RD_B^2\right) d\theta_A d\theta_B \\ &= \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} \varsigma_q\left(\theta_A - \theta_B\right) p_\mathcal{N}\left(\theta_A | R_A, RD_A^2\right) p_\mathcal{N}\left(\theta_B | R_B, RD_B^2\right) d\theta_A d\theta_B \\ &\thicksim \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} \int_{-\infty}^{\theta_A} p_\mathcal{N}(x | \theta_B, \tilde{\sigma}^2) p_\mathcal{N}\left(\theta_A | R_A, RD_A^2\right) p_\mathcal{N}\left(\theta_B | R_B, RD_B^2\right) dx d\theta_A d\theta_B \\ &= \int_{-\infty}^{\infty} \int_{-\infty}^{\theta_A} p_\mathcal{N}(x | R_B, \tilde{\sigma}^2+RD_B^2) p_\mathcal{N}\left(\theta_A | R_A, RD_A^2\right) dx d\theta_A \\ &= \int_{-\infty}^{\infty} \int_{-\infty}^{-R_B} p_\mathcal{N}(x | -\theta_A, \tilde{\sigma}^2+RD_B^2) p_\mathcal{N}\left(-\theta_A | -R_A, RD_A^2\right) dx d(-\theta_A) \\ &= \int_{-\infty}^{-R_B} p_\mathcal{N}(x | -R_A, \tilde{\sigma}^2+RD_A^2+RD_B^2) dx \\ &= \int_{-\infty}^{R_A-R_B} p_\mathcal{N}(x | 0, \tilde{\sigma}^2+RD_A^2+RD_B^2) dx \\ &\thicksim \varsigma_{qg(RD_A^2+RD_B^2)}\left(R_A-R_B\right). \end{align}

Glicko-2 レーティング

Mark Glickmanが2001年に発表したGlickoレーティングの改良版。
成績の急激な変化に対応することを目的に、 \( R, RD \) に加えてレーティング変動率(rating volatility) \( \sigma \)という概念を導入した。

記号の対応

論文の表記に従うため、Glickoレーティングと同じ概念をこの先は異なる記号で表記する。
対応は以下の通り。

\begin{align} R &\longleftrightarrow \mu \\ RD &\longleftrightarrow \phi \\ \theta &\longleftrightarrow \gamma \\ s &\longleftrightarrow y \\ d &\longleftrightarrow \nu \\ \end{align}

また、Glickoで \( q = \log10/400 \) と表されていた値はGlicko-2では \( 1 \) とする。
そのため、レーティングのスケールはGlickoとGlicko-2で \( 400/\log10 = 173.7178 \)倍異なる。

前提

以下の条件を設定する。

  • 時刻 \( t \) は一定間隔で進む。
  • 時刻 \( t \) において、各プレイヤーはレーティング \( \mu^{(t)} \) 、レーティング偏差 \( \phi^{(t)} \) 、レーティング変動率 \( \sigma^{(t)} \) の3つのパラメーターを持つ。
  • 既知の \( \mu^{(t)}, \phi^{(t)} \) に対して、プレイヤーの強さ \( \gamma^{(t)} \) は正規分布 \( \mathcal{N}(\mu^{(t)}, {\phi^{(t)}}^2) \) に従い、プレイヤーが強さ \( \gamma' \) の別のプレイヤーと対戦して結果が \( y \) となる確率は以下の式で表される。

\begin{align} p(y | \gamma^{(t)}, \gamma') = \varsigma^{(y)}(\gamma^{(t)} - \gamma'). \end{align}

  • \( \gamma^{(t)} \) の時間変化にも制約があり、 \( \gamma^{(t)} \) と \( \gamma^{(t-1)} \) に以下の関係が成り立つ。

\begin{align} \gamma^{(t)} \thicksim \mathcal{N}(\gamma^{(t-1)}, {\sigma^{(t)}}^2). \end{align}

  • レーティング変動率 \( \sigma^{(t)} \) の対数を \( \alpha^{(t)} := \log\left({\sigma^{(t)}}^2\right) \) と表し、その時間的変化に以下の制約を仮定する。

\begin{align} \alpha^{(t)} \thicksim \mathcal{N}(\alpha^{(t-1)}, \tau^2). \end{align}

  • 対戦相手の強さは前時刻の値で近似できる。

\begin{align} \gamma_i^{(t)} \thicksim \gamma_i^{(t-1)}. \end{align}

概略図

前時刻のレーティングパラメーター \( \mu^{(t-1)}, \phi^{(t-1)}, \alpha^{(t-1)} \) と実際の対戦結果 \( y \) から、現時刻のレーティングパラメーター \( \mu^{(t)}, \phi^{(t)}, \alpha^{(t)} \) を推測することが目的。

更新式の導出

  1. \( \alpha^{(t)} \) の決定
    対戦結果 \( y^{(t)} = \left\{y_i^{(t)}\right\}_{i=1}^m \) を収集し、 \( p(\alpha^{(t)}|y) \) に対する最尤推定で \( \alpha^{(t)} \) を求める。
  2. \( \mu^{(t)}, \phi^{(t)} \) の決定
    求められた \( \alpha^{(t)} \) を使い \( \gamma^{(t-1)} \) との関係から \( \gamma^{(t)} \) が従う分布を調べ、正規分布に近似することで \( \mu^{(t)}, \phi^{(t)} \) を得る。

\( \alpha^{(t)} \) の決定

\begin{align} p(\alpha^{(t)}|y) &\propto p\left(\alpha^{(t)}, y\right) \\ &= \int p\left(y^{(t)} | \gamma^{(t)}\right) p\left(\gamma^{(t)} | \alpha^{(t)}\right) p\left(\alpha^{(t)}\right) d\gamma^{(t)} \\ &= p\left(\alpha^{(t)}\right) \int p\left(y^{(t)} | \gamma^{(t)}\right) p\left(\gamma^{(t)} | \alpha^{(t)}\right) d\gamma^{(t)} \\ \end{align}

積分の中身をそれぞれ変形する。

\begin{align} & p\left(\gamma^{(t)} | \alpha^{(t)}\right) \\ =& \int p\left(\gamma^{(t)} | \alpha^{(t)}, \gamma^{(t-1)}\right) p\left(\gamma^{(t-1)}\right) d\gamma^{(t-1)} \\ =& \int p_\mathcal{N}\left(\gamma^{(t)} | \gamma^{(t-1)}, \exp\left(\alpha^{(t)}\right) \right) p_\mathcal{N}\left(\gamma^{(t-1)} | \mu^{(t-1)}, {\phi^{(t-1)}}^2 \right) d\gamma^{(t-1)} \\ =& p_\mathcal{N}\left(\gamma^{(t)} | \mu^{(t-1)}, \exp\left(\alpha^{(t)}\right) + {\phi^{(t-1)}}^2 \right). \end{align}

また、

\begin{align} p\left(y^{(t)} | \gamma^{(t)}\right) &= \int \cdots \int \prod_{i} \left( p\left( y_i^{(t)} | \gamma^{(t)}, \gamma_i^{(t)} \right) p\left( \gamma_i^{(t)} \right) \right) d\gamma_1^{(t)} \cdots d\gamma_m^{(t)} \\ &\thicksim \int \cdots \int \prod_{i} \left( p\left( y_i^{(t)} | \gamma^{(t)}, \gamma_i^{(t-1)} \right) p\left( \gamma_i^{(t-1)} \right) \right) d\gamma_1^{(t-1)} \cdots d\gamma_m^{(t-1)} \\ &= \int \cdots \int \prod_{i} \left( \varsigma^{(y_i^{(t)})}\left( \gamma^{(t)} - \gamma_i^{(t-1)} \right) p_\mathcal{N}\left( \gamma_i^{(t-1)} | \mu_i^{(t-1)}, {\phi_i^{(t-1)}}^2 \right) \right) d\gamma_1^{(t-1)} \cdots d\gamma_m^{(t-1)} \\ &= \prod_{i} \left( \int \varsigma^{(y_i^{(t)})}\left( \gamma^{(t)} - \gamma_i^{(t-1)} \right) p_\mathcal{N}\left( \gamma_i^{(t-1)} | \mu_i^{(t-1)}, {\phi_i^{(t-1)}}^2 \right) d\gamma_i^{(t-1)} \right) \\ &\thicksim \prod_{i} \varsigma_{g({\phi_i^{(t-1)}}^2)}^{(y_i^{(t)})}\left( \gamma^{(t)} - \mu_i^{(t-1)} \right) \\ &\thicksim p_\mathcal{N}\left( \gamma^{(t)} | \hat{\gamma}^{(t)}, \nu^2 \right) \\ &\thicksim p_\mathcal{N}\left( \hat{\gamma}^{(t)} | \gamma^{(t)}, \nu^2 \right). \\ \end{align}

ここで、

\begin{align} g(\phi^2) &:= \left(1+\frac{3\phi^2}{\pi^2}\right)^{-1/2} \\ E_i^{(t)} &:= \varsigma_{g\left({\phi_i^{(t-1)}}^2\right)} \left(\mu^{(t-1)} - \mu_i^{(t-1)}\right) \\ \nu &:= \left( \sum_i g\left({\phi_i^{(t-1)}}^2\right)^2 E_i^{(t)} \left(1-E_i^{(t)}\right) \right)^{-1/2} \\ \hat{\gamma}^{(t)} &:= \mu^{(t-1)} + \nu^2 \sum_i g\left({\phi_i^{(t-1)}}^2\right) \left( y_i^{(t)} - E_i^{(t)}\right). \\ \end{align}

よって、

\begin{align} p(\alpha^{(t)}|y) &\propto p\left(\alpha^{(t)}\right) \int p_\mathcal{N}\left( \hat{\gamma}^{(t)} | \gamma^{(t)}, \nu^2 \right) p_\mathcal{N}\left(\gamma^{(t)} | \mu^{(t-1)}, \exp\left(\alpha^{(t)}\right) + {\phi^{(t-1)}}^2 \right) d\gamma^{(t)} \\ &= p\left(\alpha^{(t)}\right) p_\mathcal{N}\left( \hat{\gamma}^{(t)} | \mu^{(t-1)}, \exp\left(\alpha^{(t)}\right) + {\phi^{(t-1)}}^2 + \nu^2 \right) \\ &= p_\mathcal{N}\left( \alpha^{(t)} | \alpha^{(t-1)}, \tau^2 \right) p_\mathcal{N}\left( \hat{\gamma}^{(t)} | \mu^{(t-1)}, \exp\left(\alpha^{(t)}\right) + {\phi^{(t-1)}}^2 + \nu^2 \right). \\ \end{align}

これを最大化する \( \alpha^{(t)} \) を探す。
\( \alpha^{(t)} \) は \( p(\alpha^{(t)}|y) \) を最大化する値なので、 \( \log \left( p(\alpha^{(t)}|y) \right) \) を最大化する値になる。

\begin{align} 0 &= \frac{d}{da} \left( \log \left( p(a|y) \right) \right) \\ &\thicksim \frac{d}{da} \left( C - \frac{1}{2} \frac{\left( a - \alpha^{(t-1)} \right)^2}{\tau^2} - \frac{1}{2} \log\left( \exp\left(a\right) + {\phi^{(t-1)}}^2 + \nu^2 \right) - \frac{1}{2} \frac{\left( \hat{\gamma}^{(t)} - \mu^{(t-1)} \right)^2}{\exp\left(a\right) + {\phi^{(t-1)}}^2 + \nu^2} \right) \\ &= -\frac{a - \alpha^{(t-1)}}{\tau^2} + \frac{1}{2} \left( -\frac{\exp(a)}{\exp\left(a\right) + {\phi^{(t-1)}}^2 + \nu^2} + \frac{\exp(a) \left( \hat{\gamma}^{(t)} - \mu^{(t-1)} \right)^2}{\left(\exp\left(a\right) + {\phi^{(t-1)}}^2 + \nu^2\right)^2} \right) \\ &= -\frac{a - \alpha^{(t-1)}}{\tau^2} + \frac{1}{2} \frac{\exp(a) \left( \left( \hat{\gamma}^{(t)} - \mu^{(t-1)} \right)^2 - \exp\left(a\right) - {\phi^{(t-1)}}^2 - \nu^2 \right)}{\left(\exp\left(a\right) + {\phi^{(t-1)}}^2 + \nu^2\right)^2} \\ \end{align}

Glickmanはこれを、

  • Newton-Raphson法
  • Illinoisアルゴリズム (挟み撃ち法の一種)
  • BFGSアルゴリズム (準Newton法の一種)
  • 二分法

などの求根アルゴリズムで解くことを提案している。(ただし、Newton-Raphson法は不安定とも述べている)

\( \mu^{(t)}, \phi^{(t)} \) の決定

一つの値に定まった \( \alpha^{(t)} \) を用いてレーティングを更新する。
先に計算したように、

\begin{align} p\left(\gamma^{(t)} | \alpha^{(t)}\right) = p_\mathcal{N}\left(\gamma^{(t)} | \mu^{(t-1)}, \exp\left(\alpha^{(t)}\right) + {\phi^{(t-1)}}^2 \right) \end{align}

なので、 \( {\phi'^{(t)}}^2 = \exp\left(\alpha^{(t)}\right) + {\phi^{(t-1)}}^2 \) を新しい分散と見てGlickoと同様にレーティングを更新することができる。

\begin{align} \left\{ \begin{array}{ll} \mu^{(t)} &= \mu^{(t-1)} + \frac{1}{\frac{1}{{\phi'^{(t)}}^2}+\frac{1}{\nu^2}} \sum_{i=1}^{m} g\left({\phi_i^{(t-1)}}^2\right) \left( y_i^{(t)} - E_i^(t) \right) \\ \phi^{(t)} &= \left( \frac{1}{{\phi'^{(t)}}^2}+\frac{1}{\nu^2} \right)^{-1/2} \end{array} \right. \end{align}

レーティング更新アルゴリズム

Glickoと同じスケールに調整されたGlicko-2の更新アルゴリズムを以下に示す。
なお、\( \tau \) はシステム全体を通して固定された値で、0.3から1.2の間が適切とされる。

  1. 初期レーティング
    Glickoと同様に \( (R, RD) = (1500, 350) \) を初期値とする。
    レーティング変動率の初期値は、\( \sigma = 0.06 \) とする。

  2. スケール変換

\begin{align} \left\{ \begin{array}{ll} \mu &= (R-1500)\cdot q \\ &= (R-1500)/173.7178 \\ \phi &= RD\cdot q \\ &= RD/173.7178 \end{array} \right. \end{align}

  1. 補助量を計算

\begin{align} \left\{ \begin{array}{ll} g(\phi^2) &:= \left(1+\frac{3\phi^2}{\pi^2}\right)^{-1/2} \\ E_i^{(t)} &:= \varsigma_{g\left(\phi_i^2\right)} \left(\mu - \mu_i\right) \\ \nu^2 &:= \left( \sum_i g\left(\phi_i^2\right)^2 E_i \left(1-E_i\right) \right)^{-1} \\ \Delta &:= \nu^2 \sum_i g\left(\phi_i^2\right) \left( y_i - E_i\right) \end{array} \right. \end{align}

  1. レーティング変動率を更新
    以下の関数に対して適当な求根アルゴリズムを使い \( f \) の根 \( \alpha' \) を得、 \( \sigma' = \exp(\alpha'/2) \) でレーティング変動率を更新する。

\begin{align} f(x) = \frac{e^x \left( \Delta^2 - e^x - \phi^2 - \nu^2 \right)}{2 \left(e^x + \phi^2 + \nu^2\right)^2}-\frac{x - \log(\sigma^2)}{\tau^2} \end{align}

  1. レーティングを更新
    \( {\phi^*}^2 = \phi^2 + \sigma'^2 \) を用いて更新する。

\begin{align} \left\{ \begin{array}{ll} \phi' = \left( \frac{1}{{\phi^*}^2}+\frac{1}{\nu^2} \right)^{-1/2} \\ \mu' = \mu + \frac{\phi'^2}{\nu^2}\Delta \end{array} \right. \end{align}

  1. スケール変換

\begin{align} \left\{ \begin{array}{ll} R' &= \mu' / q + 1500 \\ &= 173.7178\mu' + 1500 \\ RD' &= \phi' / q \\ &= 173.7178\phi' \end{array} \right. \end{align}

なお、1つのレーティング期間中に各プレイヤーが平均10-15試合以上するような期間設定が最も効果的とされ、レーティング期間の長さは一定である必要がある(あるレーティング期間は1日で、別のレーティング期間は1ヶ月ということは許容されない)。これは \( \tau \) が単位時間に対する値であることによる。

期間中に1試合も行わなかったプレイヤーは \( \sigma \) も \( \mu \) も変動しないが、 \( \nu^{-2} = 0 \) より \( \phi' = \left( \frac{1}{{\phi^*}^2}+0 \right)^{-1/2} = \phi^* = \sqrt{\phi^2 + \sigma^2} \) となりRDが増加する。また、\( t+1 \) から \( t+n \) までの長さ \( n \) の期間試合しなかったプレイヤーは、 \( \phi^{(t+n)} = \sqrt{{\phi^{(t)}}^2 + n\sigma^2} \) と、まとめて更新することができる。
非常に長い期間試合を行わなかったプレイヤーはレーティング偏差が増加し続けて \( \phi \rightarrow \infty \) となるが、その後再び試合をしたときは \( \phi' = \nu, \mu' = \mu + \Delta \) とレーティングが更新される。

参考

Glicko

Glicko-2