17

Momentum in VALORANT: Update

Comments:
Threaded Linear
#1
Flame4Game

Hi all,
I've been pursuing a math project about analyzing the effect of momentum on round outcome in VALORANT.

Essentially I'm looking at in the last 5 rounds played, how many were won? And for each state (0/5, 1/5, etc.), how likely is it to win the next round?

So I've built some code to parse the VLR website and analyze momentum from a certain amount of matches. It works by looking at a team's matches page, extracting a certain amount of matches, then looking at the round-by-round data, counting each occurrence of each momentum state, and adding them up.

If that doesn't make sense, here's a sample input/output:

What is the team number?
2359
How many matches back are you looking to analyze? (maximum: 50)
36
Here is the momentum data you're looking for for team number 2359 in 36 matches:
Team Name: LEVIATÁN
5/5 win streak: 52 successful cases out of 84 total (61.90% success rate)
4/5 win streak: 162 successful cases out of 288 total (56.25% success rate)
3/5 win streak: 246 successful cases out of 452 total (54.42% success rate)
2/5 win streak: 205 successful cases out of 403 total (50.87% success rate)
1/5 win streak: 114 successful cases out of 236 total (48.31% success rate)
0/5 win streak: 26 successful cases out of 70 total (37.14% success rate)

Calculating overall round winrate...

Overall Round Winrate for LEVIATÁN:
Rounds Won: 1059
Total Rounds: 1993
Winrate: 53.14%

This is all the matches from LEV from the beginning of 2024 to now.

So far the data shows a clear correlation between momentum and round win probability. I'm still in the progress of debugging the code, as it for some reason does not show perfect results all the time, but I like it so far.

If you guys want to see the code, or have any advice on how to approach the eventual analysis of the data from a statistical viewpoint, then I'd be elated to hear your feedback. Thanks for reading!

#2
egann
7
Frags
+

bump

#3
Clucker
1
Frags
+

Cool, now increase it from 5 round to 24 rounds

#4
Tempest24
2
Frags
+

Is this a personal project or for like school?

#6
Flame4Game
3
Frags
+

For school, but they only care about the mathematical analysis part, they don't care about the data itself, so I want to like expand on it in the future as my own project.

#5
shesh_
6
Frags
+

if you think about it 0/5 win streak also shows the exact same relationship because it means the other team is on a 5/5 win streak and thus they have the momentum

very cool project

#7
Flame4Game
1
Frags
+

thanks! yeah i wasn't even thinking about it that way tbh thats kinda cool, and probably further proves the hypothesis that momentum does indeed matter

#8
Flame4Game
2
Frags
+

The code is now on GitHub: https://github.com/Flame4Game/VLR-momentum-finder/

(If yall were interested in trying it out)

#9
akcolade
3
Frags
+

Anti-ecos have a high win probability and generally tend to happen after you win a round so I would worry that anti-ecos would skew the data. If you have any way of only counting only gun rounds that would be optimal but I have no idea what data set you have available. Very cool project nonetheless, good luck with it

#16
Flame4Game
0
Frags
+

that’s a fair point and probably accounts for a large portion of why my hypothesis is working out well so far. maybe economy data from the vlr website can be used? itd be tricky tho.

Thanks for the feedback tho!

#10
m0rtem
1
Frags
+

what class is this for?

#14
Flame4Game
0
Frags
+

IB advanced functions

#11
ggd12345
3
Frags
+

this is really cool! watch out for external factors though: skill difference is a confounding variable that influences both the past 5 rounds and the following round. perhaps you could normalize it based on the head-to-head winrate between the two teams (assuming they’ve faced off multiple times)?

if you can extract the data, analyzing based on loadout value sounds cool too. basically, i think if you account for skill difference and money restrictions, you are left with pure “momentum”, i.e. players’ psyche when on a win/loss streak. this is probably too complicated for your project, but it sounds super interesting (and you might revolutionize vct coaching theory!)

#15
Flame4Game
0
Frags
+

good points! i want to in the future definitely implement something accounting for them if i want to spend more time on it. tysm for reading thru!

#12
edgno1fan3
3
Frags
+

i'm going to be a bit more cynical here - there are too many externalities you can't reasonably account for. you can try, but i think whatever result you get will always have massive uncertainties involved to be of any substantiative use.

  1. the probability of winning a round is not independent of previous round events in the absence of "momentum". gun/ultimate economy is the first big thing that comes to mind - naturally, winning a round means enemy team may be forced to save and/or you may have better ult economy. valorant has an inbuilt snowballing mechanism - so if you want to account for this, you're going to need to further parse your data to ignore all rounds where one team is saving or has significantly more/less ultimates than the other (essentially rejection sampling), or calculate some normalisation constant to account for these differences.

  2. the round win probability is not constant throughout all games. teams will play vs worse or better teams, against which they will have different winrates. when a team wins more vs another team and achieves certain winstreaks, it's entirely likely that it's simply the result of being the better team, even in the absence of any momentum effect. this is logical - you're more likely to hit long winstreaks if your winrate against a certain team is higher. if you want to account for this, you're going to need to further parse your data to specifically include individual roster matchups, but even then, that won't account for strategy adaptation, composition differences, map vetos, or even whether or not a player is having an off-day. further still, the sample sizes for specific roster vs specific roster is often extremely small in official matches - most rosters may only ever play a different roster once or twice. you're going to again, end up with huge uncertainties in the true win probability of each matchup.

to that end, you could potentially use the vlr elo system to try normalise your individual head-to-head matchups - it's probably your best bet, but obviously, there is again, massive uncertainties in the elo system too.

either way, not sure there's anywhere near enough data to get any form of statistically significant result.

edit: specifically, you're going to need head to head matchups on the same map, with the same agent compositions, with the same gun + ult economy, with the same players, prehaps even played on the same day. if not, you'll have to find some way of normalising all your probabilties to account for this. if you can't account for these factors, then you can't, with confidence, say that your samples are independent and, consequently, state you have an unbiased result.

still, could be interesting to try. good luck with it either way.

#13
Flame4Game
1
Frags
+

Thanks for the feedback! Yes, I’m aware that the data returned from this may not fully reflect the nature of momentum, but in my opinion thats fine, because the concept of momentum itself is so subjective anyway. Plus IB doesn’t care at all what the data is, all it cares about is the statistical analysis portion, so realistically it won’t matter too much.

But you make really good points about round variability and team strength. If i were to spend more time on this project I would look into parsing economy data from vlr.gg and implementing that somehow. On a side note do you think you could explain the “normalization constant” idea a bit more? is it just kind of averaging the win-probability with equal economy/ult count and unequal economy?

As to team strength for my data set I wanted to pick teams with a decently high or decently low overall win rate, as well as some ~50% win rate teams; this would give a rough indicator of how good they are; beyond that I feel like there are too many factors and not enough reward in terms of more accuracy to try and adjust for it.

Once again thanks for reading and I appreciate the feedback a ton. <3

#17
edgno1fan3
1
Frags
+

IB is a complete pain haha, had friends who did it and heard nothing but complaining. good luck with it.

as for the normalisation of probabilities, you're exactly right - i actually made an error in that this normalisation factor will likely not be constant. it's modifying/modelling the expected round win probability depending on the economy/ult difference. to do this, you could take a bunch of data on total loadout costs and measure how this affects your expected win probability - then, for any future rounds, you can apply your model to "normalise" your expected round win probability dependent on economy. this is actually one of the foundations of machine learning - utilising bayes rule (you may have encountered this in your statistics classes?) to model probabilities "conditioned" on another variable. in this case, modelling round win probability conditioned on economy differences.

EDIT: ignore the next 2 paragraphs - it overcomplicates things. you can measure your "posterior" distribution directly from data. that said, may be interesting. alternatively, read here https://www.freecodecamp.org/news/bayes-rule-explained/

to do this, you need a set of "likelihood" probabilities - that is, your economy difference given your win probabilities (which you can try measure), a "prior" model - your win probability independent of economy, to then calculate a predicted "posterior" probability distribution. read up on (and understand) bayes rule and google these terms if you can't quite visualise it - it's hard to fully flesh out here.

the problem with this is that the true posterior and likelihood distributions is likely to be highly non-linear and therefore difficult to find an accurate model - intuitively, it will be some sort of piecewise function. if you do decide to give this a shot, you'll find that you'll need to perform an integration on this function somewhere down the line, which may be extremely difficult/impossible. for simplicity, you could simply bundle everything into "full buy", "half buy", "eco" and maybe "forces" - in which case an integration simply becomes a sum (i'm assuming you've done some basic calculus).

all this said, you'll then run into similar issues as before - some teams may be better at ecos, some teams may be better at anti-ecos etc. agents may matter - chamber can probably whack people far harder on an eco round than other agents. finding a way to "normalise" these probabilities with high confidence may be challenging.

I actually believe focusing on the economic aspect may be far more interesting and quantifiable. unlike a more vague concept of momentum which can potentially be bundled with many other things, in game economy has measurable data and a more tangibly significant effect on rounds. you could even try to find how having certain ultimates versus others may affect win probability - this could actually potentially revolutionise how teams allocate ultimates, manage economy and even what agents they pick.

good luck with your project either way. feel free to ask if you have any more questions

#18
Flame4Game
0
Frags
+

thanks again! that’s an intriguing concept and you’ve explained it pretty well.

I’m only a little familiar with what youre talking about with bayes, is it the conditional probability one where it’s like p(a|b) is something? (id google but cant rn) and so it’s like the probability of winning a round given that there is a certain economy difference?

i’m out of the house rn but i’ll read into it when i’m home. but I agree that economy is far more easily defined than momentum and would make for a deeper analysis, would’ve been better in hindsight.

thank you so so much again, i’ll msg you if i have any further questions. 💚

#19
edgno1fan3
1
Frags
+

yes

P(a | b) = P(b | a) P(a) / P(b)

and

P(b) = integral from -inf -> inf ( P(b | a) P (a) )

as i've stated though, in this case I think this approach overcomplicates. you can simply just measure expected win probabilities for all combinations of economies (full buy vs full buy, full buy vs force, full buy vs eco, force vs force?) etc.

#20
nobody___100
2
Frags
+

https://imgur.com/a/ZIGaboa

the fuck is this?

#22
Flame4Game
0
Frags
+

i genuinely don't remember doing that T_T

#21
nimbumirchi
2
Frags
+

Which AI did you use to write the code?

#23
Flame4Game
1
Frags
+

some chatgpt and some claude

#24
Kimchidestroyer
1
Frags
+

m4 if he was good, what a goat

#25
Flame4Game
0
Frags
+

lmao ty <3

  • Preview
  • Edit
› check that that your post follows the forum rules and guidelines or get formatting help
Sign up or log in to post a comment