計算の裏側

対戦ゲームのレートはどう決まるのか、イロレーティングの計算

How competitive game ratings are calculated, the Elo rating system

同じ1勝で4.8点と15.2点。差を生むのは勝つ前の見込みだ。

レートは結果と見込みの差で動く。200点差で76%の計算を手で追い、同点の16人で試すと、係数Kが決めるのは順位の速さより追いつく速さと揺れだった。FIDEの表は400点差で10倍にならない。

公式
3 本
人物
アルパド・イロ、マーク・グリックマン、ラルフ・ハーブリッヒ、トム・ミンカ、トーレ・グレーペル
作成日
更新日
執筆・監修
佐々木 航
場面

同じ1勝で3倍違う

同じ1勝なのに、上がるレートは4.8点のことも15.2点のこともある。

自分より200点低い相手に勝てば4.8点、200点高い相手に勝てば15.2点。どちらも、チェスの国際連盟FIDEの規定にある係数で計算した値だ。差を生むのは勝ち負けそのものではなく、勝つ前にどれだけ勝ちそうだと見込まれていたかである。勝って当然の相手に勝っても、レートはあまり動かない。

レートで順位を決める対戦ゲームを遊んだことがあれば、連勝するほど伸びが鈍る感覚に覚えがあるかもしれない。チェスのために作られたこの計算は、考案者アルパド・イロの名からイロレーティングと呼ばれ、中身は足し算と割り算と10の累乗でできている。

では、勝つ前の見込みはどこから来るのか。なぜ式に400という数が入っているのか。係数は何を決めているのか。

16人を対局させて試すと、は筆者の予想と違うものを動かしていた。

考え方

点数に意味があるのは差だけ

レートの数字そのものに、決まった目盛りはない。FIDEの規定は尺度を「任意のもの」(an arbitrary one)と書く。全員に100点ずつ足しても、誰が誰にどれだけ勝ちそうかは変わらない。

意味があるのは、2人の差だけである。

計算は、差から見込みを出す段と、結果と見込みのずれでレートを直す段の2つでできている。Aが1700点、Bが1500点の1局なら、5行で済む。

レートの差、勝ちと負けの比、Aが勝つ見込み、結果と見込みの差、新しいレートの5行を、式と数で並べた表。Aが1700、Bが1500、Kが20でAが勝つと、差200、比3.16、見込み0.76、ずれ0.24、新しいレート1704.8になる。
式

差200点が76%になるまで

  1. 2人のレートの差を出す。Aから見た差は200点である。

  2. 差を400で割り、10の右肩に載せる。出てくるは、Aの勝ちがBの勝ちの何倍あると見込むかを表す比だ。は2回掛けると10になる数で、と同じである。

  3. 比を確率に直す。3.16回勝つごとに1回負けるなら、局のうち3.16局で勝つ。この割合が見込みで、期待勝率とも呼ぶ。

  4. Bの見込みは残りの分である。

  5. 手順3の分母と分子をで割ると、分子は1に、分母はになる。で、だから、解説書でよく見る形が出てくる。

差が0点、200点、400点のときの棒。斜線の部分が勝ちで、勝ちと負けの比はそれぞれ1対1、3.16対1、10対1。見込みは50%、76%、91%になる。

差が400点ならで、10回勝つごとに1回負ける。「400点差で10倍」と言われるのは、この比のことだ。

勝率が10倍になるわけではない。

勝率はで、約91%にとどまる。800点差でも比は倍、勝率はである。400という数は尺度の決め方で、全員の点を2倍にすれば、式の400は800に替わるだけだ。

差を負にすると、格下から見た見込みになる。読み出しの上の2行は手順2と手順3の計算そのもので、−200点なら比0.316、見込み0.24と出る。

式

結果と見込みのずれにKを掛ける

  1. 結果から見込みを引く。勝ちは1、引き分けは0.5、負けは0と数える。Aが勝てば、見込みを0.24だけ上回ったことになる。

  2. 係数を掛ける。は1局でどれだけ直すかを決める数で、FIDEの規定にある20で計算する。

  3. 今のレートに足す。の右肩の小さな印は、直したあとのレートを表す。

  4. Bにも同じ式を使う。Bは負けたのでで、見込みは0.24だった。

今のレート1700の人の動きを矢印で示した図。勝つと右へ4.8点、引き分けで左へ5.2点、負けると左へ15.2点動く。Bの動きは符号が逆で大きさが同じ。

Aの上げとBの下げは同じ4.8点で、2人のが同じなら合計は変わらない。番狂わせでBが勝てば、動きは15.2点に増える。引き分けでも格上のAは5.2点を失う。つまり負けていなくても、見込みより悪ければ減点だ。

なぜこれを繰り返すと本当の強さに近づくのか。

見込みが当たっていれば、上がる点と下がる点がちょうど打ち消し合うからである。Aが本当に76%勝つなら、100局で76勝24敗。上がる点の合計も下がる点の合計も364.8点で、差し引き0になる。

横に局数、縦に1局の点をとった2つの長方形。76勝で4.8点ずつの長方形と、24敗で15.2点ずつの長方形は、面積がどちらも364.8で同じ。

たとえばAがもっと強く、100局で85勝する力があれば、点ほど上がる向きに力がかかる。レートの差が開くと見込みも上がり、結果との開きが縮む。勝率と見込みが一致する場所のまわりで、レートは落ち着く。

考え方

比は掛け算で増え、見込みはS字になる

差を横軸、見込みを縦軸に描くと、S字の曲線が現れる。シグモイド曲線と呼ばれる形で、両端で寝て、真ん中で立ち上がる。

S字になる理由は、比の増え方にある。差が100点増えるたびに、比は倍になる。差の足し算が、比の掛け算に変わるのである。

この関係を直線に戻す記号がlogだ。は「10を何乗するとになるか」を答える記号で、である。を読み替えると、10を何乗するとになるかの答えはだと分かる。

差が0、100、200、300、400と等しい間隔で増えると、比は1、1.78、3.16、5.62、10と1.78倍ずつ増え、比のlogは0、0.25、0.5、0.75、1と等しい間隔で増える。

比が小さいうちは、はほぼそのもので、見込みは掛け算で増えていく。比が大きくなると分母の1が効かなくなり、見込みは1に張りつく。その2つをなめらかにつないだものがS字である。

差を10点増やしたときの見込みの伸びを計算すると、変わり目がよく分かる。差0点では1.44ポイント伸びるのに、400点では0.46ポイント、800点では0.05ポイントしか伸びない。伸びはにほぼ比例する。1

差を10点増やしたときの見込みの伸びの棒グラフ。差0点で1.44、200点で1.03、400点で0.46、600点で0.17、800点で0.05ポイント。その下にEかける1マイナスEの値0.25、0.18、0.08、0.03、0.01を並べた。

この形はロジスティック方程式と同じだ。ロジスティック方程式は、増える速さが今の量と上限までの残りの積に比例する、という式である。を今の量、1を上限と読めばそのものだ。生き物の数が頭打ちになる曲線と、勝つ見込みの曲線は同じ式で書けるので、このS字はロジスティック曲線とも呼ばれる。

式

もとの考えは調子のばらつき

ただ、イロの考えの出発点は10の累乗ではなかった。のちにTrueSkillという計算を作るハーブリッヒらは、イロのモデルをこうまとめる。1局の調子は各人の強さを中心に正規分布でばらつき、調子が上回ったほうが勝つ。統計学者マーク・グリックマンはこの種のモデルを、数字の札が入った箱から1枚ずつ引き合うくじにたとえている。

正規分布は、平均のまわりに左右対称に集まる釣り鐘形のばらつきである。幅は標準偏差という数で表し、平均から標準偏差1つ分の範囲におよそ68%が入る。

  1. Aの調子を、Bの調子をとする。Aが勝つのは、調子の差が正のときである。

  2. 調子の差も正規分布になり、中心はレートの差に来る。2人の調子は無関係にばらつくので、幅は2乗どうしを足す形で広がる。1人の幅を(シグマ)とすると、次の式になる。

  3. 1人の幅を202点とすると、差の幅は286点になる。この2つはイロ本人の値ではなく、あとで見るFIDEの表に筆者が当てはめて得た数である。差200点は、幅の0.70個ぶんにあたる。

  4. 中心が200点、幅が286点の釣り鐘で、0より右の面積が勝つ確率である。0は中心から幅0.70個ぶん左にあり、釣り鐘は左右対称なので、この面積は左端から「中心より幅0.70個ぶん右」までの面積に等しい。その面積をと書き(はファイと読む)、正規分布表を引くと0.758と分かる。

直角をはさむ2辺が1人の幅202、斜辺が差の幅286の直角三角形。202の2乗を2つ足すと81,608で、286の2乗にほぼ等しい。

上の段が2人の調子、下の段が調子の差で、斜線の面積がAの勝ちにあたる。短い線は1局ごとの差で、数えた勝率は2,000局も数えれば式の値に寄ってくる。

10の累乗の式でも0.76だった。あの式も同じ絵で読める。グリックマンの解説によれば、調子の差の形を、釣り鐘に似たロジスティック分布に替えると、0より右の面積があの式の見込みになる。

2つの曲線は差300点までのずれが0.4ポイントほどで、いちばん離れる535点でも1.3ポイントしか違わない。

ところが、FIDEの規定にある差と見込みの表は、2つのうち正規分布のほうに沿っていた。規定に式や分布の名前は書かれていない。そこで筆者が差0点から735点までの736通りを照らすと、幅の正規分布を小数2桁に丸めた値は730通りで表と一致し、10の累乗の式は276通りしか一致しなかった。2

差10の累乗の式正規分布FIDEの表
100点0.6400.6370.64
200点0.7600.7580.76
300点0.8490.8530.85
400点0.9090.9190.92
500点0.9470.9600.96
600点0.9690.9820.98

意外なのは400点からだ。FIDEの表の400点差は92対8で、表の数で割ると11.5倍になる。よく知られた「400点差で10倍」は、FIDEの公式の表では成り立っていないのである。

差200点から800点までの見込みの曲線。差240点あたりから、破線の正規分布が実線の10の累乗の式より上を通り、FIDEの表の値は破線に乗る。差400点で0.909と0.92、差600点で0.969と0.98。

もっとも、この開きが対局に響く場面は限られる。FIDEの規定は400点を超える差を400点として数えるので、2650点未満の選手が使うのは表の0.92までだ。2025年10月からは、2650点以上の選手だけが実際の差を使う。

どちらの分布が正しいのか。グリックマンの1995年の解説は、スターンの1992年の研究を引き、2人ずつ対戦した記録ではどちらを仮定してもほとんど差が出ないと書く。多くの団体がロジスティック分布を使うのは計算しやすいからだろう、というのがグリックマンの見立てである。

なお、この解説はFIDEもロジスティック分布の例に挙げているが、今の規定の表の数は上のとおり正規分布に沿っている。

シミュレーション

16人を並べ直す

強さを1125から1875まで50点刻みで決めた16人を、全員1500点から始めた。回戦ごとにくじで2人ずつ組み、1局ずつ指す。勝敗は本当の強さの差を10の累乗の式に入れた確率で決まり、引き分けは入れていない。点は1人ずつの今のレートで、右上がりの破線に乗ればレートと本当の強さが等しい。

順位の相関は、レートの順と本当の強さの順がどれだけそろっているかを−1から1で表す数で、1なら完全に同じ順だ。平均のずれは、レートと本当の強さの差を、プラスマイナスを除いて全員で平均した数である。

を動かすと、同じ対局の記録をそので最初から計算し直す。100回戦まで進めると、で順位の相関0.98、平均のずれ55点と出る。にすると相関は0.98のままなのに、ずれは126点に広がる。順番は合っているのに、点がまだ開いていない。なら相関0.92、ずれ70点だ。

「新人を加える」を押すと、本当の強さ1800の新人が1500点で入る。押すたびに次の新人と入れ替わり、本当の強さは1200、1900、1400と替わる。

考え方

全員同点なら、Kは順位をほとんど変えない

筆者は、を大きくすれば強さの順に早く並ぶと思っていた。

そうはならなかった。同じ計算を400回繰り返して平均すると、10回戦の順位の相関はが5でも40でも0.86、20回戦では0.92で、ほとんど変わらない。

初めのうちは、どの対局も見込みが50%に近いからである。なら、勝てば上がり、負ければ下がる。だからレートは次の形に近く、順番を決めるのは勝ち数と負け数だけになる。

10局で7勝3敗、5勝5敗、3勝7敗の3人の数直線。Kが5なら1490、1500、1510に、Kが40なら1420、1500、1580に並ぶ。広がりは違うが順番は同じ。

つまりが変えるのは順番ではなく、点の開きだ。が小さいと順番は合っているが、点が1500のまわりに固まったままで、差から勝率を読む役に立たない。が大きいと、いったん追いついたあとも揺れ続ける。

ただし、これは全員が同じ点から始めたときの話である。16人に1300〜1700点を無作為に配って同じ計算をすると、10回戦の順位の相関はで0.1、で0.4、で0.7に開く。間違った出発点を洗い流す速さを、が決めるからだ。途中から入る新人はその典型である。

横軸を回戦の数(目盛りは10倍ごと)、縦軸を平均のずれとしたグラフ。Kが5の線はゆっくり下がり続け、Kが20の線は33点あたりで平らになり、Kが80の線は早く下がるが72点あたりで止まる。

回戦の3列は平均のずれ(点)、右端の列は新人が本当の強さまでの差を半分埋める局数である。3

K30回戦100回戦1000回戦新人
10151912383局
20120563338局
4085474817局
806971728局

新人の局数は、を2倍にするとほぼ半分になる。一方、1000回戦のずれはを4倍にしても2倍ほどにしか増えない。

1局の動きはに比例し、ずれが薄れるまでの局数はに比例する。でたらめな動きは積み重なっても打ち消し合い、広がりは局数の平方根にしかならない(100局で10局ぶん)。だから揺れはおよそに比例する。

長い目で見れば順位にも効いてきて、1000回戦の順位の相関はで0.99、で0.95だった。

FIDEの規定はを3段に分ける。新人は30局を終えるまで40、18歳になる年の終わりまで2300点未満の選手も40。2400点未満は20で、2400点に一度届けば10になる。

理由は規定に書かれていないが、この表と並べると、追いつく速さがほしい人に大きなを、揺れを抑えたい上位に小さなを割り当てた形に見える。シミュレーションの「新人の30局はK=40」で、この新人の扱いを試せる。

考え方

不確かさまで持つ計算へ

ここまでのは、人によらず固定だった。グリックマンは、この弱点を同じ1700点の2人で説明している。片方は長いブランクから復帰したばかりで、もう片方は毎週のように指す常連だ。復帰した人が勝つと、アメリカのチェス連盟の式ではどちらも16点動く。

けれども負けた常連にとって、信用できない1700点に負けたことから分かるのはごくわずかだと、グリックマンは書く。

同じ1勝でも分かることが違う。これを計算にするのがベイズの定理である。結果を見るたびに、どの強さがどれくらいありそうかを書き換える式で、対局に当てはめると次の形になる。

縦の棒は「〜と分かったうえで」と読む。左辺は、勝ったと分かったうえで、その強さである確率だ。

手で計算できるように、強さは1300、1500、1700の3通りしかないとする。1500点の相手に勝つ確率は、先の式で0.24、0.50、0.76である。対局の前の確率は説明のために筆者が決めた数で、新人は3通りを3分の1ずつ、常連は5%、90%、5%と見ておく。

新人の場合、右辺の分子は順に0.08、0.167、0.253で、合計の0.5が分母にあたる。0.5で割ると16%、33%、51%に変わり、3つの強さに確率を掛けて足した平均は1500点から1569点へ、1勝で69点上がる。常連の場合は同じ計算で2.4%、90%、7.6%となり、平均は1510点。上がるのは10.4点だけだ。

3通りの強さの確率を棒にした図。破線が対局の前、斜線の棒が1勝のあと。新人は16%、33%、51%に変わり平均は1569に、常連は2%、90%、8%に変わり平均は1510になる。

同じ1勝で7倍近い開きが出た。結果と見込みの差0.5で割ってに換算すると、新人は139、常連は21である。大きなも小さなも、どれくらい分かっているかの違いから出てくる。

山の形が今の見込みで、平均1500、標準偏差350から始まる。「勝った」を押すと山が右へ動いて細る。相手を1500点にしたまま勝ちと負けを交互に押すと、読み出しの「Kにあたる数」は1局目の425から、60局目には12まで下がる。

グリックマンが1995年に作ったGlickoは、この考えを手軽に計算できる式にしたものだ。各人にレートともう1つ、標準偏差で測った不確かさRDを持たせ、未登録の人はレート1500、RD 350から始める。シミュレーションの山と同じ出発点である。

RDは対局すると小さくなり、対局しないでいると大きくなる。本人の解説によれば、イロの式はGlickoの特別な場合にあたる。対局サイトLichessは改良版のGlicko-2を使い、案内によれば新人は1500±1000の幅から始まる。

ゲーム機の対戦で使われた例が、MicrosoftのTrueSkillである。Xbox Liveのために作られ、Halo 3からForza Motorsport 7まで多くのゲームで順位づけと組み合わせに使われたと、Microsoft Researchは説明している。

各人の強さを平均(ミュー)と不確かさの2つで持ち、2人の対局のあと、勝者の平均を次の式で直す(引き分けを考えない形)。

(ベータ)は1局の調子の幅、は結果の意外さで決まる数である。がイロのにあたり、Microsoftの説明も、が不確かさの比で人ごとに変わる点を主な違いに挙げる。ただし目盛りは平均25が中心なので、数の大きさをFIDEの20とは比べられない。

論文にあるXbox Liveの設定(の初期値は25/3、は25/6)で筆者が計算すると、新人どうしは5.27になる。常連のを仮に1.5とすると、常連どうしは0.36で、新人と常連が当たれば6.73と0.22に分かれる。

Kにあたる数の棒グラフ。新人どうしは2人とも5.27、常連どうしは2人とも0.36、新人と常連の対局では新人が6.73、常連が0.22。

不確かな側だけが大きく動き、確かな側はほとんど動かない。固定のでは作れない動きだ。

組み合わせも同じ計算から出てくる。Microsoftの説明によれば、結果の見えた試合を楽しめる人は少ない。そこで、引き分けになりやすい相手ほどよい相手とする。論文によれば、結果が読めない対局ほど強さの情報も多い。つまり楽しい組み合わせと、よく分かる組み合わせは一致する。

歴史

全敗しても上がるレートからXbox Liveまで

グリックマンの1995年の解説によれば、チェスに数字のレートが初めて現れたのは1948年である。ドイツのアントン・ヘスリンガーが作ったIngo方式で、名前は故郷のインゴルシュタットから取った。アメリカでは1950年代半ばからケン・ハークネスの方式が使われたが、統計の裏づけは乏しく、大会で全敗してもレートが上がることがあった。

アメリカのチェス連盟は1960年にハークネスの方式からイロの方式へ移り、FIDEは1970年に採用した。イロ本人の著書『The Rating of Chessplayers, Past and Present』が出るのは1978年だ。

TrueSkillを作ったハーブリッヒらは、Bungie StudiosがHalo 2のベータテストで集めたデータで試し、Xbox 360向けのXbox Liveに載せた。1日に数十万局を処理したという。

論文には、人の側の反応も残っている。レートをごほうびや罰のように受け止める人が出て、数字を守るために対局を控えたり、相手を選り好みしたり、不正に走ったりしたという。数字が順位になると、計算の外で人が動き始める。

使いどころ

部活のランキングを表計算で作る

対局の記録さえあれば、イロレーティングは表計算で動く。

  1. 全員を同じ点から始める。点の差にしか意味がないので、1500でなくてもよい。
  2. AとBのレートがB2、C2のセルにあるなら、Aの見込みは=1/(1+10^((C2-B2)/400))で求まる。
  3. 勝ちを1、引き分けを0.5、負けを0として、Aにを足し、Bから同じ数を引く。2人のが違うときは、それぞれので計算する。
  4. に迷ったら、1人30局までは40、そのあとは20にする。

全員が同じ点から始めて順番だけがほしいなら、に神経質にならなくてよい。途中から入る人がいるなら、その人のを大きくする。点の差から勝率を語りたいなら、局数が要る。16人の計算では、で100局を指しても平均で56点ずれている。

逆向きの計算も役に立つ。ある相手に勝率なら、勝ちと負けの比はで、レートの差はおよそになる。6割勝つ相手との差は70点ほど、7割なら147点ほどだ。

見込みの式の出どころをさらにたどるなら、正規分布の記事の中心極限定理と、ロジスティック方程式の証明が次の1歩になる。

冒頭の4.8点と15.2点は、76%と24%を入れ替えただけの数だった。勝って当然の相手に勝っても少ししか上がらないのは、計算が渋いからではない。その1勝から、新しく分かることが少ないからだ。

参考文献

  1. FIDE, FIDE Handbook B.02 "FIDE Rating Regulations effective from 1 March 2024"(規定8.1から8.3。2025年10月1日からの400点の扱いを含む本文を2026年11月4日に確認)
  2. R. Herbrich, T. Minka, T. Graepel, "TrueSkill: A Bayesian Skill Rating System", Advances in Neural Information Processing Systems 19 (2007), 569-576(会議の公式の論文集)
  3. Microsoft Research, "TrueSkill Ranking System"(プロジェクトのページ)
  4. M. E. Glickman, "The Glicko system"(著者のサイトの解説。2016年9月10日改訂の版)
  5. M. E. Glickman, "A Comprehensive Guide to Chess Ratings"(1995年。著者のサイトの版。のちにAmerican Chess Journal 3, 59-102)
  6. A. E. Elo, The Rating of Chessplayers, Past and Present(Arco, 1978)(書誌は文献2の文献表)
  7. Lichess, "Frequently Asked Questions"(What rating system does Lichess use?)

注

  1. 差を限りなく小さく増やしたときの伸びは、1点あたりである。は10の自然対数で、10の累乗を微分すると出てくる。 ↩

  2. 幅のは、一致がいちばん多くなる値の近くを筆者が探して選んだ(なら626通り)。10の累乗の式の400を動かして同じように探しても、一致は284通りまでだった。正規分布で外れた6通りは、どれも表の区切りのすぐそばにある。 ↩

  3. ずれと相関は、乱数の種を変えた400回の計算の平均。組み方をレートの近い人どうしに替えても、全員が同じ点から始めるかぎり、による相関の差は出なかった。新人は、16人が100回戦を終えたところへ本当の強さ1800の新人を1500点で加えた1000回の計算で、1650点に初めて届く局数の中央値を数えた。別の乱数で計算し直すと、どの数も1か2動く。シミュレーションは1本の乱数の列で動くので、読み出しは平均から少しずれる(の100回戦のずれは50点と47点)。 ↩

姉妹サイト

株式会社Game が運営するメディアです。