# Migeru's musings on go ratings

I have been giving some thought lately to a Go rating system based on Bayes' theorem. Both the AGA and KGS systems are based on maximum-likelyhood estimation. The ELO-like EGF system is point-based, with a probabilistically sophisticated formula for the rating update resulting from a given game result.

The EGF's system is built around the assumption that the weaker player will win an even game with probability p = 1 / [e^(D/a) + 1], where D is the difference of ratings between the two players. If ths seems obscure, I suggest writing (1-p)/p = e^(D/a). In other words, we are just taking the ratio of the probabilities of losing (1-p) and winning (p) and writing it as an exponential on the grounds that it is a strictly positive quantity. Also, if q = 1-p is the probability of the second player winning, (1-q)/q = e^(-D/a) shows this is a completely symmetric parametrization not favouring one player over another. The EGF uses a sliding scale for the value of 'a', which goes from a = 200 to a = 70 depending on the rating of the weaker player.

The EGF rating system has been tuned with a large database of tournament games, and so I will take it as a given that

(1-p)/p = e^(20 D1/(20 + D0))

where p is the probability of the weaker player winning, D1 is the difference in ranks between the twoplayers, and D0 is the number of ranks between the weaker player and shodan. D1 (but apparently not D0) should be reduced appropriately by the handicap given to the weaker player.

I don't think it is particularly sensible to subdivide ranks into 100 parts like most rating systems do, especially if a margin of error is not given. For example, right now my EGF rating could be described as '1/20 of a rank weaker than an average 10k', which IMHO is much more precise than the fuzziness of the concepts involved allows.