Moderator removed post
A supplement to a post earlier: The maths of ranked are brutal
DiscussionWhat does it show or prove?
on average after 100 games you will gain 200 lp. which is a bit depressing, lol. further you could just end up nowhere.
But that's if you are at being matched exactly for skill level - in which case you SHOULDN'T climb, because you're right where you are supposed to be.
"Ranked play" means people are sorted by performance, not that anybody should be able to climb if they grind enough.
Yea I think in the prior post to this, I was trying to make this point but getting heavily downvoted. While this is excellent work, it does not factor in player improvement.
actually this does account for that because it's not bracket based. This is purely a matchup based simulation, so you could be improving, with riot placing you against people that are equally skilled and still not gain lp. That's what's in the code. Each matchup starts at 50% probability for every role in the game and then through the "game" events happens that increase or decrease your odds of winning.
So this is bracket agnostic. Essentially it's saying that whatever rank riot "thinks" you're at is what you're going to be staying at within some margin, but that even if you're constantly fighting against equally skilled players you could just as easily gain 400 lp or lose 300 lp. You could be improving and becoming a better player and still be down 300 lp.
And that will not appreciably affect your ranking in the long term unless you stop after those 100 games.
If you get dropped 300 lp randomly, you will now be matched against people you are better than, win odds will increase, and the distribution will shift, self-correcting the drop more times than not. After 1000 games, you'll be where you should be a high proportion of the time.
The stochastic nature of a ten person game doesn't make ranking less accurate at length, but it does make it less parsimonious. You can get an accurate chess rating in a couple hundred games, but for MOBAs it takes a thousand or more games.
Which is all useful stuff for folks to know if there gonna play ranked. I think most of the people in ranked Q actually misunderstand how the ranking works, and if they did understand it they wouldn't want to play that game mode.
As an addendum, the biggest thing to consider is your rank resets. This is after 100 games. You could get unlucky, be down 200 lp after 100 games. New split, drops your rank, you play again. That's a lot of games to play.
I think people should be aware that the hamster wheel is in place to keep you running on the wheel. And unless you're markedly better than your competition getting anywhere in ranked is a sysiphusian task.
Yes, the bias to slowly climb with average performance is literally just there to incentivize compulsive grinding. It actually takes away from the accuracy of the ranking system.
In a proper ranking system, if you're not markedly better than the people you're matched with, your ranking is accurate and you shouldn't climb.
I think what i'm trying to say is the degree to which "Markedly" better is determined isn't as tight as people think. Is a Plat player better than a bronze player with 300 games. Yes. Is a plat 2 player better than a gold 1 player after 100 games each. Honestly that's probably not the case.
I'd say it probably is the case (as in, greater than 50% chance), but not certain. When you look at that distribution, MOST cases of players playing at matched skill level falls in the range of a total of -50 to +200 LP after 100 games. There are tails beyond this, but that's really only 25% of cases. So if we each play 100 games and you're two tiers ahead of me, you're PROBABLY a better player than I am - even though a minority of the time that won't be true because we are actually of the same skill but randomly ended up on opposite ends of the probability distribution for the outcomes of our first 100 games. But yeah, probably it's more stochastic than many people think.
Also, none of this matters unless you're competing for something besides fun. If somebody's sense of well-being really depends on them being low plat instead of high gold, they have much bigger problems than a video game ranking system.
So a lot of times in say physics or stats in general we'll use what's known as the 95 % confidence interval to determine the bounds on where something is located or where the data is suggesting it's located. If you center your data over each section and the confidence intervals overlap, you can't say for certain that the two are distinct values, that's what i was using to make a judgment.
Could i say for certain, no. Now after maybe 200 games the noise would have solidified a bit and we'd have more sharply defined peaks. Right now, i think that a lot of the people in ranked just aren't playing enough to hit what they're supposed to be at and it's discouraging because there is so much noise in the data. So you have people who play 50 games and just give up. Or you have people who actively attack players in Aram because they had a low rank in the past. People will find any reason to lash out at someone else.
I just wanted people to see that these systems aren't the Oracles that everyone seems to think they are. At least as long as Riot's using the lp system that lags behind their internal rating. There is going to be so much noise that your rating will have a fair amount of wiggle to it, much more than you'd anticipate.
Everything you did was worthless, none of your conclusions are correct, nothing about the simulation is reflective of how soloq functions.
Gaining 200 LP without improving at the game is depressing? Completely fucked mentality there.
I think OP is saying: if you peak at Plat 2, your true rank could be anywhere between Plat 4 and Diamond 1, just based on your luck.
I don’t think it’s meant to give you goodfeels, I think it’s just saying you can stay the exact same skill level, but still bounce around a 400lp range, which is an entire rank.
I dont understand the point of these posts. Is it just to delude people who have 300 games in gold 4 to believe they actually deserve plat or something? You cant reduce ranked to a math problem this easily. And if you could, the conclusion is still the same, there are always factors beyond your control that make you win more or less than expected. Thats just what happens in a 5v5 MOBA.
This was just a response to the criticisms of the post made earlier. People said it was unrealistic, so i wrote this to remove that criticism. Also, you can almost certainly reduce ranked to a math problem. It's just statistics and probability. Given enough time and resources I could probably write a model that would predict the winner of any given game more than 80% of the time.
Also, some people will just be unlucky in ranked games. Unless you play a style that warps the game around you, you are inherently at the mercy of your other players. So if you want to know how good you are or what rank you deserve, you basically are forced to make plays that would change your contribution to the probability model. Unfortunately, if everyone does that you get back to the base probability distribution except now instead of people playing a steady state game, they're playing a stochastic game.
The ranked system focuses on individual player skill more than anything. It's very good at determining, within a few games' time, if your skill matches your ranked position.
If your skill is better than your current rank, the algo feeds you games where you are statistically more likely to win until you get to where your play is determined to be leveled. That's about it.
«If your skill is better than your current rank, the algo feeds you games where you are statistically more likely to win»
Literally the exact opposite. If it thinks you’re at a lower rank than you should it will put you in tougher and tougher lobbies until you reach about a 50% wr. Your LP gains will increase and LP loss wil decrease so even if you get harder lobbies and only win 50% of your games you should still climb reasonably fast to your «true rank»
Yes. If you're a poorer player than your current rank it will derank you. It's not the opposite of what I said, you're describing the inverse, ergo we are in agreement.
If a master player hops on gold 4 acct with 300 games, they will be in winners queue within like 5 games to begin bubbling them up the ladder.
If you establish your skill as better than your rank, it will put you in more highly likely to win match ups, until your skill levels off. Same for opposite, yes.
Try reading what I said again, but slowly. You’re just completely wrong. There’s no winners and losers queue, only average lobby MMR. If you’re performing better than your visual rank shows, your MMR will go up and you will be facing tougher opponents. The game doesn’t give you an easier time if you’re performing well, it gives you a harder time.
Try reading what I said again, but slowly.
Well, we've certainly confirmed you're a league player.
As much as we all know condescension leads to worthwhile and meaningful discussion, I'm gonna choose to not respond anymore, lol.
So the ELO system that riot uses is kind of fucked. Mainly because the scaling factors are way out of whack and the backend MMR moves way too slowly and incorporates too much old data in the system. We know this because new accounts can move pretty freely and reach dramatically different heights and maintain them compared to their old accounts.
You're right there's probably no winners/losers queue, but to think they're not using behavioral data to put you into "bad" queues is most likely incorrect or they're not creating queues for people they think are smurfs. Performing well for multiple games can end up tanking your LP because of a misconfigured smurf detection if you're on a newish account or just starting out for the season.
This. Riot likely HAS reduced it to a math problem in a lot of match defining stats (average CS, level, gold, etc). There will always be some variance in micro plays and social interactions. I would guess riot now is capable of predicting a match outcome well over that of chance. Overwatch already does this and grants more LP if you win a match where your team isnt favorited and vice versa
If you are improving, you will be climbing. This is just another old take saying “im better but im just unlucky”. You play against equally skilled players and down 3-400 LP, then that’s just who you are. We are not robots and you cannot just apply stats without context
This game is driven by details from micro level to make for those stats. But you are merely looking at the results and ignoring the details that construct the numbers. Do you know why that top laner is 0-10? Because he was 0-1. Do you know why he became 0-1? Because he mistimed his push and didnt ward. Are you gonna tell me he is unlucky? A few games, sure. But after being down 100-200 LP and you are still making the same mistakes and mistime the push and dont ward, then thats just where you belong skillwise.
That top laner will drop until he face players that dont punish his mistakes. OR he will realize the importance of those details and actually improve. At which case he will surpass his original rank and stay up there. The variable of changes occur at the slightest bit of detail and you are gonna blame all that on luck?
Have you actually queued up and played ranked game? Or are you a theory gamer?
If you are, say plat 4 skillwise. And you get stuck with bad team and they int. It will be difficult for you to make plays to balance out those mistakes at plat 4 lvl constantly. But by the time you drop to gold 1-2 mmr group, you will be good enough to offset your teammates’ bad plays. If you are not good enough to do this, then you are a gold 1-2 player, skillwise. My point is your skill and in-game details make up the ranks and stats. But yall are treating this backwards. Using stats to analyze games without context. If you have ever played SR ranked games, there is no way you can just toss these numbers with some random correction factors. These are mere results and there are infinitely many variables that determine this game
Ive dropped 700 LPs before M400 to D3. You know why? Not because i was unlucky. Sure first few games i was. But after a while i was just playing like shit and playing down to my competitions, which meant i belonged in d3. But according to your stats, i was just an unlucky player which isnt true.
And i can tell If you are not good enough to take control of your own games on your own, you will scrutinize your team a lot and will depend on them for everything and feel unfair. (Sorry support mains but yall type the most and i suspect this being the reason, not because yall bad. But the role doesnt have as much carry potential as other roles). Sure some games will be like that. But most of the time you are playing down to your surroundings and blaming everyone else but yourself for the LP drop
my man, i haven't played a ranked game since I hit GM in OW and realized that shit was as aids as playing in Plat apart from the fact your team might actually capitalize on the 2k you got off the rip.
I'm just a dude who likes math. I understand what you're saying, but you're projecting more than a fucking IMAX right now.
How many games did you play to drop 700LP? Are you full time?
Haha nah man. Im just saying most of the time when players go on streaks, they are actually playing better/worse and i dont think you can really account for that. I’d think you know this as a GM player
Once you dip certain amount of rank tho, people do bounce back. I understand the math and all but this and that previous post made by the other guy is really looking at this all backwards from hindsight. The process builds these stats and i assume you definitely should know this
And what you mean full time? Every season i stop queuing up after reaching masters. It’s aids and stressful and this aint my job and im old now
Yeah, streaks and things like that are just inherently built into the model. It's the random chances where you might get multiple games where you "win" the 10 events I set up in the code so you have a much higher chance of winning. That would be a win streak situation.
Yeah, there are obviously some limitations to what i have here, but at what point do games become "easier". OW was my biggest game, so from there, the difference between one division in terms of skill was honestly pretty marginal. 2 divisions you could feel it a bit, and three divisions was a marked difference in skill. And the difference between say Bronze and Gold was small. They all played like lemmings. Plat to mid Diamond people developed hands but forgot their corners and stuff like that, and for some reason the gap between mid diamond and GM was huge. A much bigger gap than any of the others.
So the problem becomes where is the cutoff in league? Do games get easier 400lp down? 700? 1000? Is the scale linear? I tried to adjust for this with the correction factor. So you'd be getting like 35lp if you were too far down and only losing like 12. I based most of this off phroxon's comment about lp gains between gold and emerald, so that's where the numbers are kind of based.
There are some modifications i'm thinking of making to the code to adapt for different playstyles. Like modifying it so that some players can get big rewards early, but other player get big rewards later to try and make it more realistic than this.
but it isnt always +25 -23 and the odds of winning changes a lot if you improve quicker than your peers, you will always have >50% wr cuz ur rank/mmr will lag behind your actual skill, but you will much more likely climb compared to assuming you improve and then instantly match with everyone at your new skill level (you need to win games at your existing rank for your rank to go up after all)
I always feel like these kinds of posts are just copium. Yes, there is a level of randomness to games, and you can 100% drop 100 LP or so due to it, but with the way league matchmaking works (it tries to keep you at around 50% WR), you will eventually get to a point where you're facing opponents much, MUCH worse than yourself.
The math is sound, but it intuitely feels as though the assumptions about how ranked queues work, and games play out are wrong.
it's not so much copium as just a data exploration. You can see that there are a lot of people way above 200 as well, but they have been placed in games no different than the ones who lost 400. This is with a scaling factor in place, so if you're below zero you're earning more points for a win than 25 and if you're above 0 you're losing more than 23 for a loss.
Basically, the backend mmr system controls the reward, that's the zero. We assume that players get better as their visible rank advances, but we know their backend mmr moves much more slowly, otherwise players that got hot streaks would stay there much more often because there would be no restoring force to bring them back down unless they played another hundred games. But the backend MMR can be skewed by a lot of thing, lack of game time, erratic performances, etc. So a system that has a decoupled restoring force value and a visible frontend will inevitibly have disconnects.
This is just showing that progress can occur in either a negative or positive direction even if Riot is doing a perfect job and providing everyone with an exactly competent opponent every single game. It's materializing the Central Limit Theorem. Lots of random variables all thrown together to show that results are distributed according to a gaussian distribution.
Also, it should be noted, that ranked systems can do a good job separating highly skilled players from low skilled players. In this case, the system could easily distinguish a master player from a bronze player. But within certain bounds, the distinction between how "good" a player is, is entirely dependent on chance and then an extremely long time maintaining to prove it wasn't "chance".
This post should show that 100 games isn't enough for the system to equalize on just wins and losses. There have to be some other statistics brought into the mix to quantify who's a "good" player.
import numpy as np
from numba import njit, prange
import time
import plotly.express as px
@njit(parallel=True)
def correction_factor(X,Y):
for ii in prange(X.shape[0]):
Y[ii] = norm_pdf(X[ii])*500 + .6010577195985674
@njit
def norm_pdf(x):
sig = 500
return (1.0 / (sig*np.sqrt(2 * np.pi))) * np.exp(-0.5 * (x/sig)**2)
@njit(parallel=True)
def simulate_games(Progress):
P_len = Progress.shape[0]
vals = np.arange(P_len, dtype=np.int32)
for _ in range(100):
teams_ = np.random.choice(vals, (P_len//2, 2), replace=False)
teams = np.ascontiguousarray(teams_)
bp = np.zeros(P_len//2)+.5
#Simulates 10 events in the game that add or subtract win chance
for i in range(10):
gs = np.random.rand(P_len//2)
#print(np.histogram(gs))
#break
for ii in prange(bp.shape[0]):
if gs[ii] <= bp[ii]:
bp[ii]+=.05
else:
bp[ii]-=.05
#print(np.histogram(bp, bins=11))
# Sanity check: bp is normally distributed
#print("made it here")
bp_ = np.ascontiguousarray(bp)
chunks = bp_.reshape((-1,5))
chunks_mean= np.zeros(P_len//10)
for ii in prange(chunks.shape[0]):
chunks_mean[ii] = np.mean(chunks[ii])
#print(np.histogram(chunks_mean))
# Sanity check: chunks_mean are normally distributed
GW = np.random.rand(chunks_mean.shape[0])
game_winners = np.zeros(chunks_mean.shape[0], dtype=np.bool_)
for ii in prange(chunks_mean.shape[0]):
if GW[ii] < chunks_mean[ii]:
game_winners[ii] = True
else:
game_winners[ii] = False
#game_winners = np.random.rand(chunks_mean.shape[0]) < chunks_mean
team_0 = np.ascontiguousarray(teams[:, 0])
team_0 = team_0.reshape(-1,5)
team_1 = np.ascontiguousarray(teams[:, 1])
team_1 = team_1.reshape(-1, 5)
#print("simulated games")
#print(game_winners.mean())
# Sanity Check: num losers = num winners
t1l = team_1[~game_winners].flatten()
t1w = team_1[game_winners].flatten()
t0l = team_0[game_winners].flatten()
t0w = team_0[~game_winners].flatten()
#print(np.mean(winners), np.mean(losers))
prog_correction = np.ones(Progress.shape[0])
correction_factor(Progress, prog_correction)
lp_gain_base = 25
lp_loss_base = 22
for ii in prange(t1l.shape[0]):
if Progress[t1l[ii]]<0:
Progress[t1l[ii]] -= np.round(lp_loss_base*prog_correction[t1l[ii]])
else:
Progress[t1l[ii]] -= np.round(lp_loss_base*1/prog_correction[t1l[ii]])
for ii in prange(t0l.shape[0]):
if Progress[t0l[ii]]<0:
Progress[t0l[ii]] -= np.round(lp_loss_base*prog_correction[t0l[ii]])
else:
Progress[t0l[ii]] -= np.round(lp_loss_base*1/prog_correction[t0l[ii]])
for ii in prange(t1w.shape[0]):
if Progress[t1w[ii]]>0:
Progress[t1w[ii]] += np.round(lp_gain_base*prog_correction[t1w[ii]])
else:
Progress[t1w[ii]] += np.round(lp_gain_base*1/prog_correction[t1w[ii]])
for ii in prange(t0w.shape[0]):
if Progress[t0w[ii]]>0:
Progress[t0w[ii]] += np.round(lp_gain_base*prog_correction[t0w[ii]])
else:
Progress[t0w[ii]] += np.round(lp_gain_base*1/prog_correction[t0w[ii]])
start = time.time()
Progress = np.zeros(10_000)
simulate_games(Progress)
print(time.time() - start)
counts, bins = np.histogram(Progress,bins=30)
bins_centers = 0.5 * (bins[:-1] + bins[1:])
fig = px.bar(x=bins_centers, y=counts, labels={'x':'LP', 'y':'Players in LP Range'})
fig.show()
2 missing replies
Your post has been removed under the grounds of Rule 8: Relevancy.
If you are still experiencing issues and need to contact the moderators, please send a modmail using this link.