イロレーティング
from /villagepump/イロレーティング
気になって調べてみたSummer498.icon
イロレーティング - Wikipedia
イロレーティングの定義
平均プレイヤーランクを$ R_0、自身と平均プレイヤーの勝利確率を$ W, 敗北確率を$ Lとすると、自身のイロレーティング$ Rは
$ R=400\log_{10}\frac{W}{L}+R_0
係数に本質的な意味がないので、以下のように書くとキレイSummer498.icon
$ R=k\log\frac{W}{L}+R_0
平均プレイヤーのレート
平均プレイヤーランク$ R_0の値はイロは完全に任意としつつ便宜上 2000 とした
今は慣習的に 1500 が使われる
なんでや……
他の統計量との関連
勝敗比として表しているのは、要するにオッズのこと
$ {\rm Odds}=\frac{p}{1-p}
で、対数を取るとロジットと呼ばれる
$ {\rm logit}\,(p)=\log p-\log(1-p)
勝利確率の導出
逆に自他のレート差から勝利確率が求められる
$ \frac{W}{L}=10^{\frac{R-R_{\rm other}}{400}}
$ W=\frac{1}{1+10^{-(R-R_{\rm other})/400}}
Desmos | Graphing Calculator
https://gyazo.com/5093bbfd03c5e1ad938dacde9093fc9f
対戦相手がレート1500だった場合の自分の勝率
点対称になっている
つまり、自分から見た勝率と相手から見た敗率が同じ
ホントかな
$ \frac{1}{1+e^{-x}}+\frac{1}{1+e^{x}}=\frac{e^x}{e^x+1}+\frac{1}{1+e^x}=1
$ -xは自分と相手のレート差、$ xは相手目線
係数を$ xに吸収させた
自分の勝率と相手の勝率の和が 1 を確認した
ホントだ
レートの更新
【数学】対戦ゲームにおける「レート2000」とは|さいばる
期待勝率$ E_w\in[0,1] と実際の勝敗$ W\in\{1,0\} を比較、差分を以下の式で定義して更新する
$ \Delta R=K(W-E_{w})
$ Kは変動を大きくする係数
一般的に 32 が使われるとか
なお、相手のレート変動率は、勝敗を入れ替えて、以下のように求まる
$ \Delta R_{\rm other}=K((1-W)-(1-E_w))
$ =-K(W-E_w)=-\Delta R
つまりレート保存則 (Summer498.icon語) が成立
ってことはレートの競い合いはゼロサムゲーム
正確に強さを表そうとするからそりゃそうか
レートを吸われるという表現は合ってた
めっちゃ機械学習っぽいSummer498.icon
レーティングから勝利確率=期待勝率への変換はシグモイド関数だし
実際の勝率と比較してレートを更新するところとかも
機械学習ド初歩で習うことを知ってるとスルスル入ってくる印象
偏差値っぽくする
レーティングと関係あるのは勝利確率で、偏差値と関係あるのは全体の中の順位(割合)なので関係ないのは百も承知でこじつける
関数が似てるから
正規分布の累積分布関数がシグモイド関数とほぼ重なるので偏差値っぽい値を作れる
Desmos | Graphing Calculator
https://scrapbox.io/files/6534f154cb8dc7001bf06f5d.svg
$ R'=13\log_{10}\frac{W}{L}+50とすれば良い
元のイロレーティングから偏差値モドキへの変換は
$ R'=\frac{13}{400}(R-1500)+50\approx\frac{1}{30}(R-1500)+50
例:
レート2000 → 偏差値モドキ 66.6
レート2100 → 偏差値モドキ 70
実際のレーティング分布から統計的に求めた偏差値とは大きく乖離する
ポケモンレート 1700の実力とは? ~レートと偏差値の関係~