Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Elo rating system without order of game played

I am looking for a rating system similar to the elo rating system in chess. The problem I have is that the ELO system depends on the order games were played. eg. Player A starting Elo 1000 Player B starting Elo 1000

If Player B wins over A he will have lets say 1015 points and A 985.

If A keeps on playing and wins against other people, he will have a higher ranking than B, if B stops playing. I don't want that. B should still be stronger than A.

How can I realise that?

like image 947
user3689083 Avatar asked May 29 '14 20:05

user3689083


People also ask

How ELO ratings are calculated?

According to this algorithm, performance rating for an event is calculated in the following way: For each win, add your opponent's rating plus 400, For each loss, add your opponent's rating minus 400, And divide this sum by the number of played games.

How accurate is the Elo system?

And, if you're curious: the correlation of Elo and True Rating is 88.6%. This is far from definitive proof that Elo is better than win-loss. In fact, when I run this code multiple times, the win-loss is sometimes correlated better. The high correlation does however suggest that Elo is a decent method of rating players.

How is initial Elo calculated?

The starting value for Elo is always the current average. ELO is a zero sum game, points lost by player A are gained by player B. When you set a starting point at 1000 what you are essentially saying is that the average player = 1000 pts.


2 Answers

From this link:

Whole-History Rating (WHR) is a new method to estimate the time-varying strengths of players involved in paired comparisons. Like many variations of the Elo rating system, the whole-history approach is based on the dynamic Bradley-Terry model. But, instead of using incremental approximations, WHR directly computes the exact maximum a posteriori over the whole rating history of all players.

It's a rating system without order of game played, like the one you asked, but it doesn't solve your issue with Elo.

On the other hand, many post-Elo ranking systems, as Glicko (for chess), or TrueSkill (for X-box games), or rankade (our multipurpose ranking system) have some 'activity dynamics feature' to avoid 'parking the bus' approach (a player gets a high level in ranking, then he stops playing), indeed.

like image 107
Tomaso Neri Avatar answered Sep 21 '22 20:09

Tomaso Neri


There are a number of schemes which amount to writing down the win/lose/draw record as a matrix and then typically calculating the largest eigenvalue of some matrix related to this. One summary is at http://java.dzone.com/articles/ranking-systems-what-ive, which points to more technical papers including https://umdrive.memphis.edu/ccrousse/public/MATH%207375/PERRON.pdf - "The Perron-Frobenius Theorem and the Ranking of Football Teams".

If you can get more information out of the game than just win/lose/draw you might do better by using this. Some work on soccer has used the number of goals for and against at each match to try and work out the strengths of each team's offense and defense separately (and I do realise that soccer doesn't have separate offensive and defensive teams). In soccer it is reasonable to model the number of goals scored as a Poisson process. One deduction from this, by the way, is that soccer is inherently a pretty uncertain game, and that predicting score draws, as required in some gambles, is especially uncertain. I try and remember the inevitable uncertainty every time England play a game :-).

like image 38
mcdowella Avatar answered Sep 19 '22 20:09

mcdowella