イロレーティングにおける分布関数の選択

# 0.前書き
イロレーティング は、対戦ゲームにおけるプレイヤーの強さを測る方法です。詳細は [日本語版Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%AD%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0) と [英語版Wikipedia](https://en.wikipedia.org/wiki/Elo_rating_system) を見てください。

# 1. 正規分布 v.s. ロジスティック分布
「レート差を入力として勝率を出力するプログラム」としてみたときに、正規分布を前提とするモデルを採用するのか、ロジスティック分布を前提とするモデルを採用するのかの議論があるようです。Eloは正規分布を想定したそうですが、チェス協会はロジスティック分布の方がよい、と。英語版Wikipediaからの引用:

>Subsequent statistical tests have suggested that chess performance is almost certainly not distributed as a normal distribution, as weaker players have greater winning chances than Elo's model predicts. Therefore, the USCF and some chess sites use a formula based on the logistic distribution. Significant statistical anomalies have also been found when using the logistic distribution in chess. FIDE continues to use the rating difference table as proposed by Elo. The table is calculated with expectation 0, and standard deviation 2000 / 7 (285.71).

どちらが良いフィットを与えるかは**対戦ゲームの特性に依存する**（しかも 実際にはもっと良いモデルがあるでしょう）ので 考えてもしょうがないのですが、両モデルの統計的な特性の差を調べてみましょう。

まず正規分布のモデルでは、上記の引用のとおり 2000 / 7 を分散とする正規分布の累積密度関数を使います。次に、分布関数のモデルでは、レート差400でオッズが10になるようパラメータを定めます（Wikipedia参照）。比較したグラフは以下のようになります:

![ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/127424/9f0312d5-f97c-d2b1-91ba-c4d04c9d5f3e.png)

ぱっと見たところでは大体一緒です。レート差500前後の対戦において差が一番大きくなり1ポイント程度です。無視できるかな？とも無視できないかな？とも言えそうです。実際に具体例を見て考えましょう。

レート2000 のアリスがレート 1500 のボブと対戦します。正規分布モデルでの推定勝率は 0.95994 であり、ロジスティック分布での推定勝率は 0.94675 です。従って「番狂わせの確率を 4.01% と見積もるモデルと 5.32% と見積もるモデルのどちらが妥当か？」といいかえられます。結構違うのでモデルの選択は 意味のある問いに見えます。一方別の見方もできます。$K=30$ を採用する場合、番狂わせが起きるとアリスはレートを失いますがその値は 正規分布モデルでは  28.80, ロジスティック分布では  28.40 となります。順当にアリスが勝つ場合、アリスはレートを得ますがその値はそれぞれ 1.202, 1.597 です。こうなると誤差に見えます。

つまり、**レートを気にする人（＝チェスプレイヤー）にとっては モデル選択は大して重要でないけれど、オッズを気にする人（＝チェスファンや胴元や賭け事をする人）には重要な意味を持ちそう**です。この言明を可視化してみましょう:

![ダウンロード (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/127424/efcae3fa-9f04-f849-89ed-5adfa4baf8e3.png)


左側の図は、レート差における両モデルのオッズ比を表したものです。レート差が300くらい離れると、モデル間の算出するオッズに明確なズレが見えます（ロジスティック分布モデルのほうが番狂わせを予想しがちなのでオッズ比が1以下になります）。先ほどの例のようにレート差500あたりでは明確にオッズはズレます。レート差400においてオッズ比は丁度1でないと定義によりおかしいですが 0.012 ずれていました（正規分布の標準偏差をわかりやすく 2000/7 のようにしたからだと思います）

右側の図は、勝ったり負けたりした際にレートの変化が生じるのですが、モデルを変えたことによる部分**のみ**変化を$K=30$の場合にプロットしたものです。同レベルのプレイヤーと1試合すると 15 のスコアのやり取りをするというスケールの話で、モデルの選択によるスコアへの影響がどのレート帯でも1よりかなり小さいことは、モデルの選択による違いがあまりないことを示します。

# 2. 実際
Wikipediaからの引用です

- USCFというチェス団体: ロジスティック分布を使ったモデル
    - レート変動ロジックは独自実装
- FIDEというチェス団体: 正規分布を使ったモデル
    - レート変動ロジックは独自実装
- 日本語Wikipediaでの実装: ロジスティック分布を使ったモデル
- 日本のプロ将棋の非公式レーティング: ロジスティック分布を使ったモデル

# 3. 所感
以下のように様々な要因でイロレーティングは不正確になりえます。そのため「正規分布かロジスティック分布か」というモデル選択はほぼ無視できるレベルであると思います。

以下、レーティングを不正確にする要因

- 新規参入組が平衡状態に落ち着くまでの緩和過程
- 時間とともにプレイヤーの実力が増減することによる励起→緩和が断続的に発生
- レート上位者とレート下位者に起こりうるオーバーレート/アンダーレート
    - これはかなり面白い現象です。外部リンク→[イロレーティングの散歩道　５：境界による“搾取”の問題-コンピュータ将棋基礎情報研究所](http://lfics81.techblog.jp/archives/1361726.html)
- モデルの理論的バックグラウンドがないのでノンパラメトリックな分布関数の方が妥当ではないか？レート差だけでは測れないのではないか？
- etcetc... 詳細はWikipedia


# 4. 参考文献
- [日本語版Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%AD%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0) 
- [英語版Wikipedia](https://en.wikipedia.org/wiki/Elo_rating_system) 
- [コンピュータ将棋基礎情報研究所](http://lfics81.techblog.jp/)