Visual data analysis of MSI 2016 damage statistics

Today, I want to give a little insight into visually analyzing data. I will use Mid Season Invitational 2016 statistics to compare mid laners’, top laners’ and ADCs’ damage output and ability to take damage. This article is meant to serve as an insight into (visual) data analysis. Instead of giving clear instructions, I want to demonstrate my general thought process as a form of documentation. The main goal is to highlight the importance of reflecting on the data. I will therefore thoroughly lay out my decision process as I go along. Further down, below graph 2, you can find a link to a little interactive visualization, where you can play around with the data yourself.

First and foremost, I think it is useful to start with a solid theoretical foundation. Ask yourself what you want to find out and, before you look at the data, think about the results you would expect. If it seems likely that the results are useless, think about other variables you could use to find out something that is useful.

I wanted to find out how different champions stack up in terms of damage dealt. Since you can either invest your gold into offensive or defensive stats (lets ignore utility for now), there must be a tradeoff between those two types of stats. So I decided to also look at damage taken, which should be higher for tanks than for squishies. I already have some expectations about the results:

  • There exists a tradeoff between damage dealt and damage taken
  • Some champions deal more damage than others (very simple)
  • There might be some champions that can deal a lot of damage, while still being fairly tanky

And possible information that might be useful:

  • Mid lane champion A deals, on average, more damage than mid lane champion B
  • The trade of I am hypothesizing about actually exists

 

Be clear on what you are talking about!

Knowing that you have theorized about your approach, you can already be more precise when explaining it. You cannot explain everything and that is fine. Just let everyone know what exactly it is you are talking about. In our case that is damage dealt to champions and total damage taken from the MSI match histories.1)from lolesports.com These two stats do not inform us about everything a champion brings to the table. This is the main reason why I excluded supports from my analysis. Their damage output is fairly irrelevant and they often times help their team with utility items and abilities.

Damage and damage taken

Let’s plot our two statistics against each other for each game and champion (champions will appear multiple times based on the games played).

Graph 1: Damage dealt and total damage taken

Damage-Graph-1

(supports already excluded)

The trend line seems counterintuitive. It looks like champions that have dealt more damage also have taken more damage. Didn’t we expect a tradeoff? Well, obviously, the two measures by themselves have some weaknesses and the main one is game length. A longer game correlates with both higher damage and higher damage taken. I would say there is little useful information to gain from this graph. To end up with a better comparison, we have to make some adjustments. Before we talk about improving our metrics though, I want to highlight some core weaknesses of the two basic statistics (again: be clear and transparent, don’t fool yourself and others by ignoring the weaknesses you are aware of). I probably did not think of all of them, but I hope I am able to capture the most important ones.

Damage dealt to champions:

  • Poke champions have an advantage. They often times deal consistent damage in non-fight situations and thus have an advantage here.
  • Masteries (Expose Weakness), abilities (Eye of the Storm) and items (Zeke’s Harbinger) used by specific compositions can impact the damage a champion can dish out.
  • Skirmishing a lot vs. farm lanes: A Morgana vs. Orianna mid lane might not see much damage dealt in the laning face, while Zed vs. Leblanc (there is probably a better example) might do the opposite.

Total damage taken:

  • Includes minion and tower damage. Tower damage being included is fine, but minion damage is a problem for junglers. That’s why I excluded them from this analysis. I don’t think it should be a big deal for mid, top and ADC – they don’t take much minion damage and if they do it is usually justified as damage taken, since it is most likely part of an altercation with another player.
  • If you take a lot of damage and die a lot, it might not be a good indicator of your tankiness but rather of bad play. This metric should thus be put into context with some form of death statistic.
  • Overall not perfect to measure tankiness, but good enough. We will focus more on damage than on damage taken.

Now let’s look at some more general problems and how we can get rid of some of them.

Total values for each game: Riot’s match histories provide us with information about damage dealt and taken for each game and player. Here, longer game times correspond to higher values (as seen in Graph 1). There are two simple ways to deal with this problem. One is to generate per minute statistics (e.g.: damage / (minutes played)), the other one to generate per gold statistics (e.g.: damage / (gold earned)). Longer game times are also accompanied by more gold. I decided to use the latter. Why? Per minute statistics are heavily dependent on how much teams fight (from now on called the ‘fight ratio’). A clean strategic game might involve a lot less fighting than a team-fight-fiesta. There is no reason to put one above the other when comparing the champions. Unfortunately, gold only takes care of part of this problem, as most of it is earned by farming minions and inherent gold generation. Using per gold metrics thus only deals with part of the fight ratio problem. This brings us to my next point.

Fight ratio independence: If we don’t want champions that are involved in a lot of fights to be favored in our analysis, using per gold instead of per minute values is not enough. This is where team shares (%) come into play. If you have watched recent Riot broadcasts, or have visited sites like OraclesElixir.com or our own League of Analytics, you probably are aware of Damage% and Gold% statistics (D%, G% and DT% for DamageTaken%). They compare a player’s numbers to the numbers of the whole team. A G% of 25% would therefore correspond to having earned 25% of the overall team’s gold. We will now replace our damage, damage taken and gold measures with Damage%, Gold% and DamageTaken%.

How does this help us? Now all outputs are equal to 100% for each team and neither game length nor fight ratio can change that. The differences that remain are only within team compositions. Comparing a Lee Sin who dealt 15% of his team’s damage to an Elise that dealt 20% gives us more valuable information than knowing how much total damage they dealt in their individual games.

But isn’t that unfair to teams who deal more damage than others? Yes, it is. But since we are not interested in team performance but rather champion performance, it is actually a positive feature rather than a drawback. If team A stomps another team with huge damage numbers for example, this is more a testimony to their strong performance than to the champions’ damage output performances. The former is exactly not what we are interested in.

The final metrics: Using the adjustments above, we are left with dividing the damage and damage taken share by the gold share: D%/G% and DT%/G%. In most ways, they measure the same as the original metrics damage and damage taken, but improve on them to allow better comparisons. If we, for example, compare an Ezreal with a 30% Damage% and a 25% Gold% with a Lucian with a 25% Damage% and a 30% Gold%, we see that Ezreal has a D%/G% of 1.2 while Lucian’s is only 0.83. Even if the Lucian game took 60-minutes with lots of team fights and the other was a 25-minute stomp, we can still use those values to compare the two champions. Had we not adjusted for gold, Lucian would have “performed” a lot better than Ezreal (longer game = more damage opportunities). And had we not used % shares, the fight ratio would have increased this bias even further towards the fight-heavy game.

What problems are we left with? While we have done a lot to get rid of unwanted influences, there are obviously still some issues. Ezreal’s damage might spike later than Lucian’s, in which case the 60-minute game would favor the former, while a 25-minute one would favor the latter. For now, I have no simple solution for this. You will almost never find a perfect metric, but you should always know the weaknesses. This way you can put your findings into context. A small gap between Lucian’s and Ezreal’s average D%/G%? Maybe we should also take a look at the game lengths. A large gap? We likely should not take the differences as performance indicator at face value. However, there is probably a real disparity between the two champions in terms of helping the team put out damage.

Visualizing and evaluating our metrics

Having adjusted our metrics, we can finally find some interesting insight and maybe a few more things we should consider. Using our newly created measures, here is the same graph as above, this time using D%/G% and DT%/G% and excluding junglers. I also included average lines and average bands from 75% to 125% of average.

Graph 2: Damage%/Gold% vs DamageTaken%/Gold%

Damage-Graph-2

(excluding supports and junglers from here on out – deeper red towards the top right corner)
Tableau Viz

This looks more like what we would have expected. You cannot (or should not) be able to deal tons of damage and still be a beefy frontline. Now that we have a useful graph we can dig deeper. I would expect big discrepancies between top laners, who are currently almost exclusively tanks, and ADCs and mid laners. Here is the graph colored by role.

Graph 3: D%/G% vs. DT%/G% by role

Damage-Graph-3a

Lo and behold, there is not one top lane game with a D%/G% above 125% of the average and only very few mid lane observations above the 125% for DT%/G%. Surprisingly, there are some mid laners and ADCs that managed to deal well below expectations in terms of D%/G%. Let’s take a look at Kalista, who I found to be one of the biggest negative outliers of the bunch. Her 7 games are represented by the darker blue points in graph 3 below.

Graph 4: D%/G% vs. DT%/G% for Kalista

Damage-Graph-4

There are three interpretations that I can think of:

  1. She teamed up with very high damage champions (remember that D% and G% are always 100% per team, so having an Azir deal incredible amounts of damage will lower your D%)
  2. The players who played her had bad games when playing her
  3. Kalista just did not provide that much damage compared to the resources she was given and the other champions on her team

I will go through the first two to see how much of the result is explained by the last point.

In the next graph I highlighted Kalista as well as her top and mid lane teammates for all the games she participated in. She is marked blue and I labeled by player names so we can use it to talk about 2. as well.

Graph 5: Comparing Kalista to her teammates

Damage-Graph-5

Keep in mind that the average for all selected champions combined cannot be far of from the overall average by definition. The observations influence each other. A high value for your mid laner will lead to lower values for the other roles. Above, I have highlighted Kalista (blue) as well as all of her teammates. I also gave Azir an extra color (orange), to show that she was paired with him in 5 out of her 7 games. Even without looking at the numbers, I think it is pretty clear that Azir is one of the highest damage champions in the game. According to the graph, he is also on the upper end of D%/G% and represents many of the dots on the right side of the graph. Overall, I would take the fact that Kalista had an Azir in her team in most of the games as an indication that her lackluster D%/G% might be inflated. This showcases a weakness of our D%/G% metric. If there are multiple above average damage champions on a team, they lower each others numbers. I still think it is better than other options discussed in the first chapter. The best approach would be to look at damage per minute (dpm) as well, to look for anomalies – like Kalista trumping other ADCs in dpm. So I did that. Turns out she does similarly in both.

Now we can turn our eye to the players who played games on Kalista to improve our overall insight. It appears that Emperor is the main culprit in terms of low D%/G% on the champion. This is not explained by G2’s bad showing, since Damage% and Gold% are both always 100% for each team. That means Emperor on Kalista was dealing very little damage for his gold income compared to other G2 players in those games. It is also interesting that not even Stixxay, a player with an about average D%/G % for ADCs (FYI: he does a lot of damage, but also gets a lot of gold), is not converting a lot of gold into damage on her. To be more precise, he is slightly above average (with Kalista), but this average also includes low-damage top laners. This means he is below average compared to other ADC observations (FYI: he is slightly above in damage per minute on Kalista). Watching the games, I had the impression that Stixxay played pretty well on Kalista, which might hint at the Champion being the explanatory factor in the lower D%/G%. This is also highlighted by the fact that she brings some decent utility with her kit when compared to more damage heavy champions like Ezreal or Lucian. It would be weird if Riot did not look for some balance between raw damage and utility in kits.

Combining everything, it is not that easy to judge Kalista’s damage performance, since the lower D%/G% often come in combination with a high-damage mid laner, who boasts a high D%/G%. Given theory, Stixxay’s example, and the raw numbers from graph 5, I would still argue that Kalista’s damage performance is probably fairly low for an ADC. I tried to find confirmation, so I checked out the stats for most Spring 16 professional games2)http://oracleselixir.com/statistics/champions/2016-spring-champion-statistics/champion (average D%/G% of 0.93 for Kalista vs. 1.10 for Lucian or 1.37 for Ezreal), which support this conclusion. It looks like players are picking Kalista more for utility or strategic reasons (lane matchup, early game, etc.) than for the damage she can provide on ADC-level resources.

Closing out

We have gone through different steps to answer some of our initial questions. There definitely seems to be a tradeoff between damage dealt and damage taken. There are no observations where a champion performed far above the average for both metrics (no Mundo…). And we now know a bit more about Kalista’s D%/G% and why the data might not be perfectly suited to tell us exactly how she stacks up to other ADCs. But there is still a lot more that could be done with this one graph (and I will keep looking through the data), but this article is already pretty long. I will provide a Tableau graph for you to explore the stats on your own. I hope I was able to lay out the thought process behind my analysis and urge everyone to think about the results and methods themselves. Please let me know if you find any mistakes, missing topics or have any further insights or questions. As mentioned throughout this piece, you will likely not find a perfect metric and there is a good chance you miss something. Being transparent about your method and reflecting on your decisions (which metric to use and so on) is what will allow you to exercise solid and useful data analysis and enable your readers, viewers, listeners, etc. to judge the results for themselves.

If you are interested in more MSI content, check out Bridgeburner’s article on lane swaps and early warding.

Footnotes   [ + ]

1. from lolesports.com
2. http://oracleselixir.com/statistics/champions/2016-spring-champion-statistics/champion

Check Also

featured 6

Gold Shift Events – Happenings on Summoners Rift

We recently introduced our new metric called Gold Shift Events (GSE). I thought it was …

Leave a Reply

Your email address will not be published. Required fields are marked *