 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...  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.  florrat Posted: Wed Jul 12, 2006 22:51    Post subject: Unlucky that you can't have draw with dots and boxes   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?  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?  bram   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((1-p)/p)/Math.LN10));}} var rating=Math.round(oppav+(erc*f)); if (status=="loose" && rating>ratinguser+100) {rating=ratinguser+100;}  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)  // - won/draw/loose = statistics up to this game [6/0/0] // - ratingopp = current rating opponent  // - avratingopp = Average rating opponents up to this game //    [(1500*5+1700)/6)=1533] // - ratinguser = own current rating  // 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 = #"win-points", normalized to 0-1. 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.00|0.93|0.86}] // Up to here it's logical. But then: // WTH? f = 2*(p - p^2) + 0.5 = 2p(1-p) + 0.5, rounded to 4 digits // [f = {0.5000|0.6302|0.7408} for win|draw|lose] 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((1-p)/p)          { var erc=Math.round(-400*(Math.log((1-p)/p)/Math.LN10));} } // [erc = {400|449|315}] - 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 = {1729|1812|1762}] 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 + (449-315) = 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 p-value 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.  bram   Joined: 14 Jul 2005
Total posts: 1068
Gender: Unknown  Posted: Fri Jul 14, 2006 19:32    Post subject: our rating formula is taken from the IECG: http://www.iecg.org/Ratrul.htm  foul_ole_ron Posted: Fri Jul 14, 2006 20:05    Post subject: I see - except that the "all win" and "all lose" erc-values [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((1-p)/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   bram   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 4-5 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   foul_ole_ron Posted: Thu Jul 20, 2006 12:46    Post subject: 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 OK, I'll quit now...   Zapmeister Posted: Tue Jul 25, 2006 3:58    Post subject: foul_ole_ron wrote: 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 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.  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 ?  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).  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.  Display posts from previous: All Posts1 Day7 Days2 Weeks1 Month3 Months6 Months1 Year Oldest FirstNewest First All times are GMT + 1 HourGo to page 1, 2  Next Page 1 of 2

 Jump to: Select a forumYourturnmyturn.com Forum Index|--YourturnMyturn.com Forum|   |--Common|   |   |--Common|   |   |--Bugs|   |   |--Wishlist|   |   |--Teams|   |--Games|   |   |--Backgammon|   |   |--Battleships|   |   |--Castle Danger|   |   |--Checkers/Draughts|   |   |--Chess|   |   |   |--Chess lessons|   |   |--Connect four|   |   |--Crack the code|   |   |--Dicegame|   |   |--Dots and boxes|   |   |--Go forum|   |   |--Go-moku|   |   |--Halma|   |   |--Lost Cities|   |   |--Mill|   |   |--Qin|   |   |--Oware|   |   |--Robot Master|   |   |--Penguin|   |   |--Pente|   |   |--Reversi|   |   |--Strategy|   |   |--Streetsoccer|   |   |--Subulata|   |   |--Tablut|   |   |--Tally Ho!|   |   |--Wordgame|   |   |--Kahuna|   |   |--Dipole|   |   |--Pick & Pack|   |   |--Rummy|   |   |--Holomino|   |   |--Atoll|   |   |--War of the roses|   |   |--Minesweeper|   |   |--Ur|   |   |--Summy|   |   |--En Garde|   |   |--Ponte del Diavolo|   |   |--Domino|   |   |--Carcassonne the Castle|   |   |--Safari|   |   |--Stacko|   |   |--Castello|   |   |--Axio|   |   |--Yavalath|   |--Tournaments|   |--Championships|   |--Vip forum|   |--Marketplace
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