Hey ya’ll, go4ino here with another quick NA Amateur analysis. While I am kind of late seeing as how Risen Champs ended like a month or so ago, I wanted to see what the biggest carry performances were of the 2021 Proving Grounds Champs split. The goals of this report are to:
The scope will be pretty limited since I am mostly trying to lay foundations for a pop off equation I can modify and work with in the future for other League of Legends analysis.
Data for this paper was provided by the Risen Esports database. Thanks to Randojoe for allowing me access to it all, and the head of said data, Earlking, for being a massive help. Data itself was gathered from tournament code match history (MH) link of all Risen Champs matches for the open qualifier play ins, swiss rounds, and play offs.
The data is very comprehensive, fetching about 70 different variables for each player in each game from the Riot Games API. Which This gives me a lot of potential factors to include in the equation. Furthermore, it provides ample sample data with over 2300 different data entries from almost every game in the open qualifies, and Risen Champs main season.
The data does lack in some areas, however. Most notably, it does not directly link players with teams. This potentially causes problems when you consider some players have multiple igns or igns that don’t even match their main name (eg: Tomio goes by Tomio, but his ign is C2 Meteos). So sadly, I won’t be analyzing anything by team in this report since accounting for all the different aliases of players and even roster swaps would kind of be a nightmare (manually editing player names that included special characters that get read into a csv badly was painful enough).
Of course what is considered a “carry performance” or “pop off performance” is really subjective based on who you ask, and there are potentially hundreds of factors one may considering to varying degrees.
For simplicity’s sake I decided to keep the formula for the popoff score limited to 3 main factors: kills, assists, and deaths.
\[\begin{equation} \tag{1} p=\frac{kills + 0.5 * (assists)}{10+deaths} \end{equation}\]
I landed on this formula as I wanted to penalize deaths to a degree that is noticeable but not over the top, and prioritize kills over assists (sorry full tank J4s who press E every fight and wrack up 90% kp). Although I do wish I had found time to also include team dmg share and other metrics to help compare a players contribution compared to the rest of their team that game. Additionally, this metric, although simple, does not account for more macro related carry performances (eg: A support conducting early map movement to shutdown an enemy jungle and enable their own jungler to secure leads for their lanes and/or nab early objectives).
At a quick glance, it seems that the data has a positive skew. This means that massive pop off performances are less common than bad/mediocre performances. That is something that we expected to see. We can confirm this by peeping the density distribution graph:
Interestingly, there seems to be some certain scores with higher density proportions. Most notably around 0.25 and 1.0, which may be a result of how eq:1 calculates scores, or some other factor.
For fun here’s the boxplot for popoff score:
If we go by a high outlier means a monster tier popoff game, then any popoff score above 1.54 is a game where the player hard carried, which is a decent baseline for classification if I was to do that.
Now that we’ve calculated the popoff score for every single player in every single game lets peep the top 10 performances.
| champ_name | tourney | name | lane | popoff | kills | deaths | assists |
|---|---|---|---|---|---|---|---|
| Kaisa | champs | PRACT1CE | BOTTOM | 1.863636 | 13 | 1 | 15 |
| Samira | champs | Shiro (Vice) | BOTTOM | 1.850000 | 14 | 0 | 9 |
| Samira | champs | Shiro (Vice) | BOTTOM | 1.800000 | 13 | 0 | 10 |
| Camille | champs | Nuguri Disciple | TOP | 1.772727 | 16 | 1 | 7 |
| Jhin | champs | Apollo Price | BOTTOM | 1.727273 | 14 | 1 | 10 |
| Draven | open qualifier | Trieuloo | BOTTOM | 1.708333 | 15 | 2 | 11 |
| Azir | champs | Dziarmaga | MIDDLE | 1.681818 | 11 | 1 | 15 |
| Urgot | champs | Allorim | TOP | 1.636364 | 13 | 1 | 10 |
| Pantheon | champs | RobbyBob | MIDDLE | 1.636364 | 15 | 1 | 6 |
| Kaisa | champs | Raheen | BOTTOM | 1.636364 | 16 | 1 | 4 |
Unsurprisingly carry champions hold the top 10 spots with Kaisa + Samira both holding the most appearances at 2 a piece.
This top 10 does show the issue of the formula more or less being a slightly fancier KDA formula, and I have a mild hunch that some of these top 10 spots are occupied by giga stomp / one sided games. For example, PRACT1CE’s 1.86 performance was from a kind of stompy game, but also said game was long and bloody which means of course more kills and assists.
WW vs MEC G3 MH
Still a great performance by PRACT1CE though. If you’re reading this, PRACT1CE, give yourself a pat on the back.
As seen on the top 10 performances table, it seems like ADC has the lion’s share of of the top spots which begs the question whether there’s a noticeable difference in popoff between roles.
| lane | mean |
|---|---|
| BOTTOM | 0.6381909 |
| JUNGLE | 0.6125621 |
| MIDDLE | 0.5714578 |
| SUPPORT | 0.4846862 |
| TOP | 0.4770750 |
Holy molly Support and Top have it rough going off the averages. While I expected a gap between roles, I didn’t think the difference between the lower end and higher end would be this big.
Top is possibly because of top lane island syndrome resulting in lower kill participation scores + top laners typically play much more front line champions who are more prone to dying in fights.
Support is similar in that all of the most popular champions are tanky engage champs with Seraphine being the only notable exception. With the responsibility of face checking bushes to ward + being the first man in a lot of fights, you usually rack up some extra deaths. Supports also tend to get more assists than kills which hurts chances of higher scores.
For the fun of it I’ll run a quick Jonckheere-Terpstra test to see if there is a significant location shift in average popoff score due to a change in role played. The Jonckheere-Terpstra test is a non-parametric way of testing if there is a treatment effect, and the Jonckheere-Terpstra test is a version of the one way layout problem which lets us test an ordered hypothesis.
So in this case our hypothesis is:
\[ H_0: p_{top} = p_{sup} = p_{mid} = p_{jng} = p_{adc} \\ H_1: p_{top} \leq p_{sup} \leq p_{mid} \leq p_{jng} \leq p_{adc} \]
With at least one inequality in \(H_1\) being strictly \(<\), and \(p_{role}\) corresponding to the average popoff score for a given role.
NOTE: This test is purely 4fun as the data is not independent (eg: if a player gets a lot of kills, the other teams needs a lot of deaths thus affecting other data). Since independence is violated there is a risk the test results are straight up wrong, so grain of salt here.
With that out of the way, here’s the Jonckheere-Terpstra test results:
Jonckheere-Terpstra test
data: popoff by lane
JT = 1240401, p-value < 2.2e-16
alternative hypothesis: two.sided
Thus with the nearly zero p-value we can reject \(H_0\), and can assume \(H_1: p_{top} \leq p_{sup} \leq p_{mid} \leq p_{jng} \leq p_{adc}\) With at least one inequality being strictly \(<\). (Except we can’t since the assumption of independence wasn’t met.)
While everyone has their own opinion on what is and isn’t a pop off performance, using a simple formula at least gives us a basic framework to quantify it. By no means is this a perfect measure (a truly perfect measure is impossible), but provides some insight to investigate. Based off sec 3.1’s boxplot and density distribution plot, there definitely are more scores on the lower end of the scale. There’s definitely a noticeable difference in popoff score by role With support and top being miles lower than the other 3 roles.
Ultimately this report is definitely really light on analysis, but I did accomplish my main goal of making a quick and simple formula to measure a carry performance that I can build on and modify in the future. If there’s further interest in this sort of subject (and I get more data to play with than just one league), I’ll probably explore this more in the future. Below are some potential things to further look into in the future.
Given the limited scope of this report there is quite a lot to look into further. I’ll just list some of the first things that came to mind, but this is by no means a comprehensive list.
popoff score formula to include a wider variety of factors.
popoff score between more factors than position/role.
popoff scores by role.
Below are some of my websites / places to contact me. If you’d like me to do data analysis / visualization / science / etc for you or your org feel free to get in touch with me! I’m always open to offers.