Rating (smoothed) line chart

Some time ago I noticed that the rating line chart uses smoothed line.

I am personally against thist choice because I think it’s less accurate.
Look at these data:

If we use a straight line it looks like this:

The smoothed line adds information about trend that isn’t in the data.
In order to round the corners it goes above and under the actual values in the series.

I’d also say that each individual game is a distinct event, not actually a step in an overall path.
I think it would make more sense to represent games as points. The user’s games history is actually a point cloud, where many things happened: undeserved wins, stupid loss, timeouts and so on. The overall behaviour is not in the interpolation of every single event but in the global trend line.


I know this introduces a new argument: which trend line to choose?
This could be a problem. But, trying to keep it simple, I plotted this: it’s a 2d degree polynomial trend line on my personal data.

I think it actually makes more sense than the straight plotting of rating changes:

I fear I’ve gone far away from the initial argument. :smiley:
So, back to topic: could you please discard the smoothed line and revert back to the straight one? :pleading_face:


You have my 100% support of this! I’d love to see a scatter plot with a trend curve <3


I would make it piecewise, giving an 2nd degree interpolation for each month for example, and connecting those smoothly.


Potential problems would be

  • testing to ensure that the selected spline parameters make sense for all players
  • to find an algorithm which has low computational costs
  • select a good set of smoothing parameters

This is front-end code. Go for it!


Perhaps in 2020 :slight_smile:

1 Like

Yay, that’s not so far away :slight_smile:

1 Like

We use the monotone curve interpolator, so it doesn’t do what you are describing, see https://bl.ocks.org/d3noob/ced1b9b18bd8192d2c898884033b5529 for a quick demo (you can click the line names to unselect some so you can see the just the comparison between linear and monotone for example


I can’t see the difference. Could you elaborate on that?
Only thing that I see is that it uses less rounded curves, so the effect that I describe is reduced.

This doesn’t change the fact that our rating isn’t something that crawls from one point to the other. It jumps from a guess to the following. So any interpolating curve isn’t very meaningful in this case.

We could use circles where center is the guess and deviation is the size. The overall look should be similar and would be more adherent to the philosophy of glicko (shoot a guess from time to time with more or less deviation based on data consistence).
I’ll try this next week, if I can.


The difference is that in your smoothing you get values that exceed the values where as with linear and monotone you will exactly hit the datapoints you specify, with linear it’s pointy-jagged and with monotone it smooths out the jaggy parts without “adding information” as you say, it’s just more aesthetically pleasing.


But… What you showed is an interpolating curve, just using all of the data?

I’m suggesting not interpolating over all the data, but instead interpolating in batches, say of length a a month.

By the way, the wikipedia images of interpolation give a horrible representation of what interpolation is. It’s not finding the perfect solution of an n-th degree curve through n points, instead it is about finding the best fitting curve of an n-th degree almost through some m>n (preferable m>>n) points.

The trend line? I wouldn’t call it an interpolation. In my knowledge an interpolation MUST fit ALL the given points, while a trend curve represents in a simplified way a phenomenon and is not supposed to fit every single point.
Actually it could avoid them all.

Well, my example exactly hits the specified datapoints.
I only choosed some points in order to enhance the result I wanted to show.
I could do the same with the page you linked if only I could change the data.

I didn’t draw the curve by hand: that’s MS Excel smoothed line and you can see identical behaviour in the page you linked: in order to smooth a spike you have to set a radius and then go under and above vertices.
Your example has just a smaller radius than mine.

Please look more into the d3 monotone curves it will shed some light on things for you I think

That being said displaying a overall trend would be cool, but I think once you understand monotone curves you will see they are better than linear, and don’t suffer from the problems you described. I’m pretty sure it’s just an s-curve between points but I could be wrong, can’t check right now.


Alright, that’s embarrassing, you’re right, I meant regression.

I think it’s fine as is. Reason being that the shaded area around the line makes it very easy to imagine a line of best fit (linear or otherwise) that makes sense to you:


Note that the lines are noticeably curved only in your first example. Its only beacuse there are so few games played in a short interval that the sigle datapoints are recognisable at all. Like even at the last one you had on bottom there is so many datapoints, its pretty much impossible to see more than the overall trend.
Making all of the little zig-zags sharper on edges wouldn’t make it any easier to see individual games nor the exact values. It might however make it more eye straining to watch.

If you were to strech the history even longer with more games, i think the current one is awesome. It enables seeing the overall level of players strength quite nicely while still being accurate enough to see how it has changed thru the history. I’m sure than any attempt to accurately plot over 1000 points on such a small linear chart would be impossible no matter what, it’s just not possible to treat each game as individuals instead small steps.


Isn’t a moving, eventually weighted, average what makes most sense in terms of tracking a user’s performance without letting each individual game introduce too much noise in the curve? Just my €0.02.