

View previous topic :: View next topic 
Author 
Message 
foul_ole_ron 
Posted: Wed Jul 12, 2006 20:08 Post subject: Nice, provisional ratings... 


Maybe I should try to lose?
Nah But weird it is... 

Back to top 




Glorfindel 
Posted: Wed Jul 12, 2006 22:07 Post subject: 


Yes, that's often the case with provisional ratings. But if you lose, it will affect your (provisional) rating in a negative way a couple of games later. 

Back to top 



florrat 
Posted: Wed Jul 12, 2006 22:51 Post subject: 


Unlucky that you can't have draw with dots and boxes 

Back to top 



Zapmeister 
Posted: Thu Jul 13, 2006 4:37 Post subject: 


Glorfindel wrote:  Yes, that's often the case with provisional ratings. But if you lose, it will affect your (provisional) rating in a negative way a couple of games later. 
It seems like a really strange system. What is the point of any kind of rating if it doesn't convey information about whether you've been winning or losing your games? 

Back to top 



foul_ole_ron 
Posted: Thu Jul 13, 2006 5:50 Post subject: 


It's only provisional. It's weird, and I don't understand it either, but once you've got an established rating it will behave normally.
Glorfindel, maybe you can explain how the provisional ratings are calculated? 

Back to top 



bramSuperadmin
Joined: 14 Jul 2005 Total posts: 1068 Gender: Unknown 
Posted: Thu Jul 13, 2006 8:11 Post subject: 


Code:  var oppav=Math.round((avratingopp*total+ratingopp)/(total+1));
if (status=="win"){var p=(2*(won+1)+draw)/(2*(total+1));}
if (status=="draw"){var p=(2*won+draw+1)/(2*(total+1));}
if (status=="loose"){var p=(2*won+draw)/(2*(total+1));}
p=Math.round(100*p)/100;
var f=Math.round(10000*(2*p*p+2*p+0.5))/10000;
if (p==1){var erc=400;}
else {if (p==0){var erc=400;}
else{var erc=Math.round(400*(Math.log((1p)/p)/Math.LN10));}}
var rating=Math.round(oppav+(erc*f));
if (status=="loose" && rating>ratinguser+100) {rating=ratinguser+100;} 


Back to top 



foul_ole_ron 
Posted: Fri Jul 14, 2006 8:26 Post subject: 


OK, I'll accept the challenge and document your code for you
Code: 
// Variables already defined (my example in []):
//  total = total # played games (before this one) [6]
//  won/draw/loose = statistics up to this game [6/0/0]
//  ratingopp = current rating opponent [1500]
//  avratingopp = Average rating opponents up to this game
// [(1500*5+1700)/6)=1533]
//  ratinguser = own current rating [1733]
// New average (rounded down) = (1533*6+1500)/7 = 1529
var oppav=Math.round((avratingopp*total+ratingopp)/(total+1));
// Obviously, win counts for 2, draw for 1, lose for 0.
// p = #"winpoints", normalized to 01.
if (status=="win") // [ p = 14/14 = 1]
{var p=(2*(won+1)+draw)/(2*(total+1));}
if (status=="drwa") // [ p = 13/14 = 0.928571]
{var p=(2*won+draw+1)/(2*(total+1));} // [ (2w+1)/(2T+2)]
if (status=="loose") // [ p = 10/12 = 0.857143]
{var p=(2*won+draw)/(2*(total+1));} // [ (2w + 0)/(2T+2)]
// Round to 2 digits (why?)
p=Math.round(100*p)/100; [ p = {1.000.930.86}]
// Up to here it's logical. But then:
// WTH? f = 2*(p  p^2) + 0.5 = 2p(1p) + 0.5, rounded to 4 digits
// [f = {0.50000.63020.7408} for windrawlose]
var f=Math.round(10000*(2*p*p+2*p+0.5))/10000;
// This looks a lot like the TPR code...
if (p==1) // Won everything including this game
{ var erc=400;}
else
{
if (p==0) // Lost everything including this game
{ var erc=400;}
else // erc = 400*ln((1p)/p)
{ var erc=Math.round(400*(Math.log((1p)/p)/Math.LN10));}
}
// [erc = {400449315}]  BTW: shouldn't the values (draw, here) be maximized to 400?
// ... except there's that f factor, which is lower for win, higher for loss.
// [rating = {172918121762}]
var rating=Math.round(oppav+(erc*f));
// if lost, max. 100 points rise
if (status=="loose" && rating>ratinguser+100)
{rating=ratinguser+100;}

So the provisional rating is like a corrected TPR. The log formula scales p [0,1] to [+inf,inf], with the end points overridden to +400 and 400. I don't know if this is a standard TPR calculation or you made it up yourself.
What I don't understand is the correction factor f. It's a parabola which introduces a correction minimal at "all loss" or "all win"  in fact it is maximized on "all draw". It's this factor that causes the "1 loss" score to be higher than the "all win" score.
What causes the draw score to be so high is the "erc". The erc for "all win" is limited to 400, which is logical because it would be infinite if you'd just use the formula. However, the erc for "1 draw, lots of wins" is higher than 400.
2 ways to tackle this:
 limit erc to 400 max (this way "1 draw" erc would be equal to "all win")
 (this I like better) calculate the "all win" erc as a linear extrapolation, with the same step between "1 draw" and "all win" as between "1 loss" and "1 draw". In this case, the "all win" erc would be 449 + (449315) = 583.
Edit: When I calculate the rating with that last "solution", it would be way too high. You could limit this artificially, but a simpler and more elegant way might be to scale the pvalue not to [0,1] but to [0.1 , 0.9] (or something similar) in the beginning of the algoritm. In this way you avoid the infinities, and you don't have to use artificial boundaries at all. 

Back to top 



bramSuperadmin
Joined: 14 Jul 2005 Total posts: 1068 Gender: Unknown 

Back to top 



foul_ole_ron 
Posted: Fri Jul 14, 2006 20:05 Post subject: 


I see  except that the "all win" and "all lose" ercvalues [D(p)] aren't limited to +/400, but +/ 800 which is even more extreme than my 583:
Quote: 
The expected rating changes based on the percentage result is
given by
D(p) = 400 * log10((1p)/p)
where
D(p) is the expected rating change
p is the percentage result of the player
and D(0) = 800 and D(1)= 800

[emphasis mine]
The "win" rating would be 1529 + 800*0.5 = 1929. Maybe the "interpolation" idea isn't so bad after all 

Back to top 



bramSuperadmin
Joined: 14 Jul 2005 Total posts: 1068 Gender: Unknown 
Posted: Sat Jul 15, 2006 12:53 Post subject: 


I seem to have adapted it a bit
I created the ratingformule 45 years ago, So I even do not remember how and why I did end up with this one, But it seems to work rather well 

Back to top 



foul_ole_ron 
Posted: Thu Jul 20, 2006 12:46 Post subject: 


<RANT>
I've got the first "active" rating: 1703 with 15 out of 15 wins. If I had resigned my game against ruben (1700), it would have been more like 1800
</RANT>
OK, I'll quit now... 

Back to top 



Zapmeister 
Posted: Tue Jul 25, 2006 3:58 Post subject: 


foul_ole_ron wrote:  <RANT>
I've got the first "active" rating: 1703 with 15 out of 15 wins. If I had resigned my game against ruben (1700), it would have been more like 1800
</RANT>
OK, I'll quit now... 
foul_ole_ron is right  a rating should reflect playing strength, as exposed by wins and losses. If you can increase your rating by resigning rather than winning, then the rating formula is clearly not doing its job. 

Back to top 



rowan 
Posted: Sun Aug 31, 2008 8:35 Post subject: 


Same problem:
Winning all of them (and the coming 7 matches probably also) and just getting lower and lower ...
Btw if your 14th is played and your 15th match shows that you get a higher rating when you lose then what's the best option to get the highest rating possible in the future ? Just win or just lose ? 

Back to top 



Aldiris 
Posted: Mon Sep 01, 2008 9:29 Post subject: 


rowan wrote:  Same problem:
(image)
Winning all of them (and the coming 7 matches probably also) and just getting lower and lower ...
Btw if your 14th is played and your 15th match shows that you get a higher rating when you lose then what's the best option to get the highest rating possible in the future ? Just win or just lose ? 
With 14 wins and a draw (or a lost game if a draw is not possible) you'll get the highest rating after 15 games. After that, rating gain/loss won't be affected (directly) by previous games. I'm not sure if the order matters (i.e. first lose and then win 14 in a row is different from winning 14 and losing then). 

Back to top 



wccanard 
Posted: Mon Sep 01, 2008 12:41 Post subject: 


When I thought about this a year or so ago I think that my conclusions were that bram's "adaptation" of the standard formula meant that the best thing to do was lose (or, better, draw, if a draw is possible) one of your first 15 games (doesn't matter which one) and win all the rest, and, from then on, always win. The formula for rating computation changes completely after 15 games and, after it has changed, your rating will always move in the "intuitive" direction. 

Back to top 






You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum

Powered by phpBB © 2001, 2005 phpBB Group
