ELO error margin

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Fabio Gobbato
Posts: 217
Joined: Fri Apr 11, 2014 10:45 am
Full name: Fabio Gobbato

ELO error margin

Post by Fabio Gobbato »

To compute the ELO error margin I have found this formula:

700*sqrt(4*scoreratio*(1-scoreratio)-drawratio)/sqrt(ngames)

For example if I played 4000 games with these results:
W: 1534 D: 950 L: 1516
scoreratio = 0.502
drawratio = 0.238

The error margin is 700*sqrt(4*0.502*0.498-0.238)/sqrt(4000) = 9,66 ELO

Is this the most accurate formula to compute the error margin?
User avatar
Ajedrecista
Posts: 1966
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Elo error margin.

Post by Ajedrecista »

Hello Fabio:
Fabio Gobbato wrote:To compute the ELO error margin I have found this formula:

700*sqrt(4*scoreratio*(1-scoreratio)-drawratio)/sqrt(ngames)

For example if I played 4000 games with these results:
W: 1534 D: 950 L: 1516
scoreratio = 0.502
drawratio = 0.238

The error margin is 700*sqrt(4*0.502*0.498-0.238)/sqrt(4000) = 9,66 ELO

Is this the most accurate formula to compute the error margin?
The error margin depends on the level of confidence you want: it is not the same 95% that 99%, for example. A higher level of confidence implies wider error margins with the used model, which is the same you found. I have written a lot on this subject in TalkChess, so you can use the search engine of the forum.

Dividing by ngames or by ngames - 1 is a question of taste because differences are very small unless ngames is very low.

The number 700 is the key here. I explained it a little more in the following post:

Re: Critter 1.6 - Critter 1.4a, ponder ON/OFF.

I call s = sqrt{[score*(1 - score) - draw_ratio/4]/(ngames - 1)} and then |error| = 1600·z·s/ln(10), where z is the z-score in a normal distribution in a two-tailed test (for example: |z| < 1.96 for confidence ~ 95%). In the formula you found, sigma' = sqrt[4*scoreratio*(1-scoreratio)-drawratio]/sqrt(ngames) ~ 2·s.

Then, in my case |error| ~ 694.87·z·s ~ 694.87·z·(sigma')/2, but I guess that z ~ 2 (circa 95.45 % confidence) and you get 694.87·sigma' ~ 700·sigma'. Using 700 means using z ~ 2.0148 or a confidence interval of 95.61% more less if I am not wrong.

Usual values of z are 1.96 (in reality 1.95996398...) and 2, but you can see that differencies are small. I hope you can follow the explanation of the formulæ and decide yourself. Please note that a draw ratio of 100% or near it would give very low values of standard deviation and this model cracks. The same with score < 15% and score > 85% (or other values near these ones, just say in Elo gaps over 300 Elo), where score*(1 - score) is also very low and the model cracks again.

Regards from Spain.

Ajedrecista.
User avatar
Fabio Gobbato
Posts: 217
Joined: Fri Apr 11, 2014 10:45 am
Full name: Fabio Gobbato

Re: Elo error margin.

Post by Fabio Gobbato »

Thank you so much.

So with 95% confidence z is ~ 1.96

|error| = 1362*sqrt((score*(1-score)-drawratio/4)/(ngames-1))
User avatar
Ajedrecista
Posts: 1966
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Elo error margin.

Post by Ajedrecista »

Hello again:
Fabio Gobbato wrote:Thank you so much.

So with 95% confidence z is ~ 1.96

|error| = 1362*sqrt((score*(1-score)-drawratio/4)/(ngames-1))
That's it! The other formula you found gives Elo intervals that are around 2.79% bigger than this one.

If you want to check your results with an external tool, I programmed a few years ago one that can serve your purpose. The link is in my profile and in the boton [www] below this post, and the tool is called LOS_and_Elo_uncertainties_calculator.

Error margins are calculated with this model (z-score can be read from a standard normal distribution table or computed with approximations once given a level confidence) and LOS is calculated in two ways: with an assumption of normal distribution using the z-score (I called this one 'LOS with draws') and with a division of two integrals like Rémi Coulom in his WhoIsBest programme (I called it 'LOS without draws'). I agree that these names are misleading but the formulæ are better explained in the source code, which could be a pain (Fortran 95 plus my non-programmer status).

Good luck with Pedone development! My best wishes for you.

Regards from Spain.

Ajedrecista.
User avatar
Fabio Gobbato
Posts: 217
Joined: Fri Apr 11, 2014 10:45 am
Full name: Fabio Gobbato

Re: Elo error margin.

Post by Fabio Gobbato »

Thank you very much.

I'll have a look at your useful tools.