OOC:Comparison of algorithms
This article is unfinished. |
When scorinating certain sports, particularly association football (or soccer), using xkoranate, there is often debate over which formula (or paradigm, or algorithm) to use.
For many users, particularly newer ones, the differences between these formulae can be quite opaque. This article aims to clarify some of the more pertinent points.
Warning: There will be a considerable amount of mathematics in this article, though I have tried to simplify as much as possible.
Summaries
NSFS
SQIS
Comparison
Fundamentally, the main difference between the formulae is how they treat rank (or "skill", as xkoranate calls it). At a basic level, NSFS uses the absolute difference between the provided values, while SQIS uses the ratio of the involved values.
The most pertinent concern most people therefore have is "how do the differences between the formulae affect results?"
Let us consider the following ranking points (or skill values) for four teams: Alpha (20), Bravo (10), Charlie (10), Delta (5).
Then let us consider two hypothetical matches: Alpha v Bravo and Charlie v Delta.
Under SQIS, the probability of the lower ranked side winning in either game is equal, because win probability is calculated based on the ratio between the competing teams' skill values, and 20:10 is the same as 10:5.
Under NSFS, the probability of a win is calculated (partly) based on the difference between the ranks[a]. So, because (20-10) is a larger value than (10-5), there is a lower chance of Bravo beating Alpha when compared to the chance of Delta beating Charlie; since there is a larger difference between the teams' ranks.
Max Rank Effect
When using xkoranate, the value of "Maximum skill", or Max Rank (and to a lesser extent, the "Minimum skill", or Min Rank) will affect how results are calculated, regardless of the formula chosen.
This is because xkoranate makes an adjustment to ranking points ahead of running the scorination algorithm. Xkoranate's adjustRank function[1] is intended to convert all ranks to a value between 0 and 1. It does this by taking the rank value minus the min rank, divided by the difference between min and max rank.
These adjusted ranks are then used directly in the formula to determine when attacks are successful (and in the case of NSFS, the number of attacks a team gets).
So in simple terms, when using NSFS, and assuming you leave min rank at zero, upsets are more likely between lower ranked teams. By extension, a higher max rank makes all rank differences smaller, and therefore increases the range of ranks that fall into that category of "lower ranked teams". This is why it is generally recommended not to use a scale that goes from 0-100, but rather 40-100 when scorinating domestic leagues.
This conclusion is explained in greater depth in the case studies below.
Case studies
Imagine the highest ranked team in a competition has a rank of 100. They face a team ranked 10. Max rank is of course set to 100, and minimum is 0. The rank difference used in the NSFS calculation is therefore , which simplifies to
Going back to our original example though: , but
As max rank increases, assuming everything else stays the same, these rank differences get smaller (because the denominator gets larger).
Max rank too high
If max rank is larger than the highest ranked team, all of the calculated rank differences decrease.
If max rank is double that of the highest ranked team, the maximum possible rank difference becomes , instead of , which is twice as large.
So again, back to our original example: if max rank was 100, those rank differences become and .
Max rank too low
If a team has a rank higher than max rank you get the opposite effect and the rank difference they can achieve is larger.
For example, a team ranked 120 when max rank is 100, against a team ranked 10. The rank difference becomes .
This can skew things in the calculation because NSFS expects a value between 0 and 1 when calculating rank difference. This is why you'll see teams with rank higher than max sometimes getting crazy results and blowout wins etc (depending on how far above max rank they are, and what event you're scorinating).
Notes
- ↑ To be absolutely clear, it's actually to do with what the max rank value is set to (or the minimum and maximum skill options in xkoranate), but since max rank will be the same setting (20, the same as the highest ranked team) in these hypothetical matches, the difference between ranks is the easiest way to understand how the probability is affected. For more information, see #Max Rank Effect
References
- ↑ "Xkoranate-CE/src/signuplist.cpp:line 20". Github. September 30, 2024. Retrieved September 30, 2024.