Ok, so I finally got my head around the formula. For the new players on the rise, we should err on the side of caution, remembering that all non-banded tournaments are open to everybody.
So, say our New Player's highest opponents were 1600s players.
Count number of 1600s players played = GameCount (say 10)
Get Average opponent rating of these games, AvOppRating (say 1650)
Get record against these players, ie: won 9 out of 10 = 90%
Insert AvOppRating as OppRating in Win Expectancy Formula.
So the formula would look like:
0.90= 1/(10^((1650-NewPlayerRating)/400)+1)
That implies that NewPlayerRating would be guesstimated for banding purposes = 2033.
So New Players band would be 2000-2099.
If New Player won 70% of his games against players with an average rating of 1650, then his projected rating would work out as about 1850.
This formula would need to be applied until New Players graph has levelled out somewhat. I haven't thought too much about this aspect, but I'm sure its fairly easy to ascertain when a player is pretty much playing at his/her rating.
D
If we input Win Expectancy as 1 (or whatever record our new player holds against his highest rated opponents, then we might get a good indication of their rating. For some reason, I can't seem to get my head around the equation this morning.
I don't blame you for not wanting to rearrange the formula. It's annoying.
It becomes this:
OpponentsRating - 400 * (log (1 - WinExp) - log (WinExp)) = YourRating
Now this doesn't work if you have a WinExp of 1 as log 0 doesn't exist. But it does give something of an estimate.
For example a player who has in the past shown a Win Expectancy of 0.99 against 1500 players would have an estimated skill level (not rating) of 2298.
Of course this could be horribly inaccurate however as the Win Expectancy approaches 0.5 (from either direction) the accuracy will increase.
EDIT: Yeah, I get the same banding as you do in your examples.
Question:
How many rating points gets the lowest rated player at RHP to the highest rated player if he wins? How many rating points is it possible to lose or win at maximum?
In real life noone can lose more than 31 points and noone cannot win more than 31 points. Does the equation used at RHP say that too?
Originally posted by FabianFnasIf you actually looked at the rating formula you'd know the answer. The most points you can win or lose in a single game is the K value your rating confers (32,24 or 16).
Question:
How many rating points gets the lowest rated player at RHP to the highest rated player if he wins? How many rating points is it possible to lose or win at maximum?
In real life noone can lose more than 31 points and noone cannot win more than 31 points. Does the equation used at RHP say that too?
Originally posted by XanthosNZDoes that mean that RHP does not obey the rating calculations in tournament OTH games?
If you actually looked at the rating formula you'd know the answer. The most points you can win or lose in a single game is the K value your rating confers (32,24 or 16).
I don't think anyone can gain 32 pints, only 31.
When you lose a game, you will always lose at least one rating point, no matter the difference in ratings.
Correct me if I'm wrong. (But don't mind my spelling...)
Originally posted by FabianFnasYou're wrong. Topalov will not gain any points from beating a 1600 rated player and the 1600 player will not lose any points either.
Does that mean that RHP does not obey the rating calculations in tournament OTH games?
I don't think anyone can gain 32 pints, only 31.
When you lose a game, you will always lose at least one rating point, no matter the difference in ratings.
Correct me if I'm wrong. (But don't mind my spelling...)
http://en.wikipedia.org/wiki/ELO_rating_system
Originally posted by FabianFnasPlease take this to the help forum, as I don't see the relevance to the Banded Tournament problem.
Does that mean that RHP does not obey the rating calculations in tournament OTH games?
I don't think anyone can gain 32 pints, only 31.
When you lose a game, you will always lose at least one rating point, no matter the difference in ratings.
Correct me if I'm wrong. (But don't mind my spelling...)
D
Originally posted by RagnorakHmm, you are definately going in the right direction! Perhaps this calculation should be used with all players who have completed less than 50 games? Well thought out, rec for you! 🙂
Ok, so I finally got my head around the formula. For the new players on the rise, we should err on the side of caution, remembering that all non-banded tournaments are open to everybody.
So, say our New Player's highest opponents were 1600s players.
Count number of 1600s players played = GameCount (say 10)
Get Average opponent rating of these game ...[text shortened]... ure its fairly easy to ascertain when a player is pretty much playing at his/her rating.
D
Originally posted by David TebbWhy just the top band? Wouldn't that completely cripple this band? How many 2100 players want to play provisional players? None of them do!
Ragnorak's suggestion of a rating floor based on the player's highest average of 10 (or more) continuous games is excellent.
I also agree with his comments about making the system more automated. Tournament mods are a step in the wrong direction.
However, I disagree with his other suggestion for dealing with new players. IMO, provisional players s ...[text shortened]... eted at least 20 games, there just isn't enough information to assess their true strength.
Originally posted by marinakatombWhy not just use the most probable rating, over as many games as you want? This bit of perl is close to what is needed:
Hmm, you are definately going in the right direction! Perhaps this calculation should be used with all players who have completed less than 50 games? Well thought out, rec for you! 🙂
$min= 500;
$best_guess=0;
for ($i = 50; $i < 2500; $i++) {
$sum=0;
for ($j=0; $j< @opponents; $j++) {
$result =eval_rating($i-$opponents[$j])-$results[$j];
$sum += $result * $result;
}
print "$i, $sum\n";
if($sum
Originally posted by gezzaPseudocode would be much better.
Why not just use the most probable rating, over as many games as you want? This bit of perl is close to what is needed:
$min= 500;
$best_guess=0;
for ($i = 50; $i < 2500; $i++) {
$sum=0;
for ($j=0; $j< @opponents; $j++) {
$result =eval_rating($i-$opponents[$j])-$results[$j];
$sum += $result * $result;
}
print "$i, $sum\n";
if($sum
D
Originally posted by gezzaSlight problem, often new users play a lot of provisional players when they arrive. What if a 2200 strength player played their first 20 games against p1200's?
Why not just use the most probable rating, over as many games as you want? This bit of perl is close to what is needed:
$min= 500;
$best_guess=0;
for ($i = 50; $i < 2500; $i++) {
$sum=0;
for ($j=0; $j< @opponents; $j++) {
$result =eval_rating($i-$opponents[$j])-$results[$j];
$sum += $result * $result;
}
print "$i, $sum\n";
if($sum
Originally posted by marinakatombI think it would be unusual for a player's first 20 games to be against p1200s, but I guess it happens the odd time.
Slight problem, often new users play a lot of provisional players when they arrive. What if a 2200 strength player played their first 20 games against p1200's?
Assuming, he wins them all, then once he is no longer provisional, his rating would be 1400 (average rating of all games as per current provisional system), and his projected skill level according to my above formula would be roughly 2200.
Its highly unlikely that he'd meet 5 players better than 2200 all rated at p1200, but assuming this worst case scenario, where he only won 75% of the games, then his skill level would be estimated as 1600. The chances of this worst case scenario would be astronomical.
In reality, he might encounter 1 or 2 players better than him while they are all rated at p1200. Assuming 1 defeat, then his skill level would be projected to be around 2000, 2 defeats and the projected skill level would be around 1800.
I think the above scenarios are acceptable.
D
Originally posted by RagnorakDrat. Sorry that the script was cut off (I'll go back and edit it). I was not paying enough attention last night. Pseudocode follows, although most of you will have figured it out:
Pseudocode would be much better.
D
for ( min_rating to max rating )
for ( all opponents )
expected_result = function ( opponents rating, test rating )
error = expected_result - actual_result
sum_of_squares = sum_of_squares + (error * error)
end for loop
plot sum_of_squares
end for loop
So for each rating, calculate the square of the difference between actual and expected results for all oppponents. Plot a graph of this against the rating. Take the minimum of the graph, and that gives you a least squares fit (evidently).
The only real issue is that draws need to be counted as a loss followed by a win (can't remember why ATM).
If a 2000 ability player plays twenty 1200 rated players, he ought to (80% chance) win all the games. As I count it, a 1781 player has a 50-50 chance of winning all his games against twenty 1200 rated players, but feel free to count up and correct that. If someone loses a game, the script gives a fair estimate of their performance.
If someone wins all their games, the script above does not work. Winning all your games really just puts a lower limit on their strength, not much more. From earlier in the thread:
by XanthosNZ
The trend eventually stops at 2169 after 253 total games.
This is consistant. The results from someone winning straight games against 1500 rated players is telling you nothing new - their rating is well above 1500, and they should pick on someone their own size.
Gezza