Data Attacking Type Effectiveness for ORAS OU

Status
Not open for further replies.
Would you include move accuracy (even with something as basic as acc*power), move availability (Gunk Shot is way stronger than Poison Jab, but the latter is much more commonly distributed) and move usage (from the usage statistics), or is that splitting hairs way too much?
 

Ignus

Copying deli meat to hard drive
I'd argue that including move accuracy, power, and distribution actually distort the data more then would be reasonable. The way it is now actually allows for using it with any pokemon. If you take the average damage of all fire moves, you'll actually find that it's really really high. But if your best fire move is hidden power fire, what good is it to know that fire will generally do more damage? Movepool is something that should be taken for each pokemon individually. I don't really care if Altaria gets ice beam if I'm trying to decide what moves to give a gengar, and this chart should reflect this.
 
I get what you are trying to argue, but this is flawed in that it doesn't seem to quite comprehend the purpose of the calculation. The point of this is calculating the average damage done by a move of X type, so the bias towards 4x super effective attacks is just because, overall, this is just how it works.
Uh, I thought this was about "Attacking Type Effectiveness for ORAS OU" not the average damage of each type. Right, they're the same thing if you assume effectiveness = damage, but it's actually effectiveness = log(damage).

In practice, being 4x resisted shouldn't ever count as being effective. The damage is puny and you just end up giving away free turns.

I did similar type analysis before (single, dual, triple, quad), Ice had effectiveness modifier x1.028 on average, and Poison x0.4304. The log2 scale was used which I think makes it easier to read. That's why I suggested adding log to the formula.
 
I can't claim to have any idea how this fixed the problem, but it certainly seemed to. This is now much more useful, imo. Dual Type coverage seems much more accurate now than it did.

Anyways, as AM pointed out, sludge wave is so good because of the emphasis on fairies in the meta, which is kind of interesting in its own right. Basically, fairies are so good because they are resistant to dragon, fighting, and dark: three of the best types offensively (dragon has managed to outperform its ranking according to this because of a lot of stuff that I don't want to go into). Likewise, it's weaknesses are two of the worst types offensively: poison and steel. This makes fairies incredibly useful in the meta, and unless you have something carrying one of these two types, they could give you some hell. So basically, sludge wave on gengar is good precisely because poison is so bad. It's kind of a backwards concept.

Uh, I thought this was about "Attacking Type Effectiveness for ORAS OU" not the average damage of each type. Right, they're the same thing if you assume effectiveness = damage, but it's actually effectiveness = log(damage).

In practice, being 4x resisted shouldn't ever count as being effective. The damage is puny and you just end up giving away free turns.

I did similar type analysis before (single, dual, triple, quad), Ice had effectiveness modifier x1.028 on average, and Poison x0.4304. The log2 scale was used which I think makes it easier to read. That's why I suggested adding log to the formula.
Huh???
 
How do you linearize this scale?

x0.25 not very effective
x0.5 not very effective
x1.0 neutral
x2.0 super effective
x4.0 super effective


log2
 
I think counting 4x effective as the same as 2x supereffective is going a bit too far. A 2x supereffective move will not always kill, especially if it's some coverage move that isn't getting STAB. Treating 4x supereffective as twice as good as 2x supereffective is definitely ignoring the problem of overkill, but treating it as just as good is ignoring the fact that 2x supereffective is not always good enough. I'm not sure what the "right" amount to value 4x supereffective moves is (and surely there isn't actually a single right answer, as all of this is just an idealized average anyways)--maybe 2.5x or 3x?
 
How do you linearize this scale?

x0.25 not very effective
x0.5 not very effective
x1.0 neutral
x2.0 super effective
x4.0 super effective


log2
Ok, I get the log system, but how does this help?

I think counting 4x effective as the same as 2x supereffective is going a bit too far. A 2x supereffective move will not always kill, especially if it's some coverage move that isn't getting STAB. Treating 4x supereffective as twice as good as 2x supereffective is definitely ignoring the problem of overkill, but treating it as just as good is ignoring the fact that 2x supereffective is not always good enough. I'm not sure what the "right" amount to value 4x supereffective moves is (and surely there isn't actually a single right answer, as all of this is just an idealized average anyways)--maybe 2.5x or 3x?
It's only for the dual type chart, and while I agree that making 4 equal 2 seems to go against any semblance of logic, it seemed to correct the problem. So I think it's fine as is.
 
I believe his point is that it would help by normalizing the contribution of resisted and SE hits so that the equation is less biased towards 4x hits. Ice is probably the most common quadruple weakness.
 
I believe his point is that it would help by normalizing the contribution of resisted and SE hits so that the equation is less biased towards 4x hits. Ice is probably the most common quadruple weakness.
I understand that, but that doesn't explain how it would more accurately answer the issue. For example, log2 (0) doesn't exist, and log2 (1) equals 0. So a neutral attack does no damage? I guess that the ability to line arise it doesn't seem to solve the problem with overkill/redundant coverage to me. The issue that making 4x moves worth 2 in the dual chart was meant to solve was circumstances like fairy having ice as its best option, since ice hits dragons (specifically chomp) for SE damage, even though fairy already does. Making it log based doesn't help. Log isn't even used in the damage calculation, so making it a log based system would completely skew the chart. The system, if you read the original thread from like 2008, is meant to determine the average damage X move will deal, based on the meta and usage and stuff. Using a log based system fixes nothing.
 
The whole idea using log is to linearize the scores. What Ignus did capping SE to 2 is pseudo linearization - it gets some of the benefits, but I think we can all agree there's room to improve. Linearization happens to be the mathematical way of doing just that...the results should end up looking similar.



You're right there's a bit more to it. log(0) error can be fixed with a simple workaround. But the main problem is defenses are part of the equation, so there needs to be calibration to make a "strong" hit cancel out a weak one. This might be going far in terms of complexity so, fine I'll think of something else =/
What if the base power and stat of the attacking mon are included:


From that, the % damage against each mon is known. Capping it to 100% gets rid of overkill.


In OU the average base power & STAB is around 110, and the attack stat I'm guessing is around 350.


Formula (simplified):
 
Last edited:
The whole idea using log is to linearize the scores. What Ignus did capping SE to 2 is pseudo linearization - it gets some of the benefits, but I think we can all agree there's room to improve. Linearization happens to be the mathematical way of doing just that...the results should end up looking similar.



You're right there's a bit more to it. log(0) error can be fixed with a simple workaround. But the main problem is defenses are part of the equation, so there needs to be calibration to make a "strong" hit cancel out a weak one. This might be going far in terms of complexity so, fine I'll think of something else =/
What if the base power and stat of the attacking mon are included:


From that, the % damage against each mon is known. Capping it to 100% gets rid of overkill.


In OU the average base power & STAB is around 110, and the attack stat I'm guessing is around 350.


Formula (simplified):
I do like the sound of the last idea, but that kinda overcomplicates it and misses the point of the whole thing. The idea of the single type chart is that you can plug in the BP and stuff and you get the average amount of damage you will do, based on the meta. This is taking it a whole different direction. This is turning it into a more specific calculation than a general guideline. This calculation would be good for actually determining a more specific scenario, but if you just want a general idea how good x move is, the original formula should be pretty much all you need
 
So then why not have both? You have one formula for the general case and another for specific cases. That actually sounds pretty neat!
Well, the original formula could actually determine specific cases, you just had to apply the formula as opposed to just looking at the chart. This formula, on the other hand, only works for specifics, as opposed to working for both general situations as well as specific ones. It requires base power and stuff, whereas the in original you CAN use that to determine the typical output, but you don't have to.
 
I feel like these formulas are asking "What two move types will get me the maximum number of 4x effective hits" rather than "what two move types will get me the best neutral coverage". If you favor getting 4x effective hits rather than the concept of "trying to get the best two moves that will avoid you getting walled" then ice does get overrepresented, so there is a difference.

I mean personally I'd rather have better overall neutral coverage than the two moves that deal the most 4x damage, as this means you get less coverage overall(like comparing Fighting+Ghost vs Fighting+Ice), but I admit that you could also go the route of answering the question of "What common 4x weakness do pokemon who typically switch into this move type have?", hence Fighting+Ice.

I would say that in situations where you have more than two moves available, aiming to get more super effective coverage will be more useful, as you have the additional move to provide greater coverage, but if you only have two moves, I think aiming for neutral coverage would be better if you're trying to sweep and don't want to get walled. Like in in the case of M-Heracross you could go Close Combat/Arm Thrust+Pin Missile+Rock Blast or if you only had two moves available for attacks, Close Combat/Arm Thrust+Knock Off/Shadow Claw.

Of course these arguments are being presented with the goal in mind of wanting to stay in as much as possible for a sweep. If you just wanted to use something to act as a lure and weren't so concerned about switching out, then you could probably get away with stuff like Fighting+Ice as long as the rest of your teambuilding was good, though my opinion is that the more hard switches you do, the more momentum you're going to lose. VoltTurn and Baton Pass strategies are effective for the same reason: they provide a method of being penalized less for predictions, potentially attacking something without taking any damage, and making it easier to react to what the opponent has, because every single turn it's giving you an opportunity to switch in something else to better handle the current threat. Both of them do this, but Baton Pass was worse because of the ability to accumilate boosts.

So if the goal is to try to stay in and sweep, which generally I think translates to attempting to get the best neutral coverage, then we should be seeing a lot more of *insert move here*+Ghost(though you could make a case for Fairy or Dark depending on whether it gets STAB). Having ice everywhere just makes it feel to me like you're trying to lure in specific dedicated walls, and that's fine, but I think that's something different from just having the best coverage.
 
Last edited:
Wait a minute,
Hey! These Numbers are way smaller then X-Act's! Surely the metagame hasn't changed THAT much!
You're damn right. The reason is because his uses every fully evolved pokemon as of 2008. I only used the 68 current OU pokemon. As these calculations are a SUM, Missing out on so many pokemon means the numbers are smaller. If someone wants to volunteer to fill out the other 300+ columns in the spreadsheet, volunteer and I'll put you to work. No problem.
Ignus, is it really just a sum? I think you need to divide it by the total usage of the 68 mons you entered in, otherwise the damage calcs won't work. No matter how many or few entries you have, your numbers should still be quite close to X-Act's. (it probably won't affect the order, just the numbers I think)

For max attack Mamoswine using Ice Shard:
Average Maximum Percentage Physical Damage = Attack x MovePower x STAB / PATE
= 394 * 40 * 1.5 / 14985
= 157.8%

So on average, Ice Shard does way over 100% (overkill) to your 68 pokemon.


---
@Absolete: average = sum only if every mon has the same usage.
Ice Shard I believe would do about 20-30% average.
 
Last edited:
Wait a minute,

Ignus, is it really just a sum? I think you need to divide it by the total usage of the 68 mons you entered in, otherwise the damage calcs won't work. No matter how many or few entries you have, your numbers should still be quite close to X-Act's. (it probably won't affect the order, just the numbers I think)

For max attack Mamoswine using Ice Shard:

= 394 * 40 * 1.5 / 14985
= 157.8%

So on average, Ice Shard does way over 100% (overkill) to your 68 pokemon.
A sum and an average are essentially the same thing, with an average just being more complicated and convoluted. If you're looking for a low number, it doesn't matter if you have the list 1, 100, 1000 or take those and divide them all by 68, the first will still be the smallest.

If you divide everything by 68 and use that same calculation you get 2.3%. I would first believe Mamoswine OHKOs the meta than to believe it does less than 3%.


EDIT: I read the above post incorrectly.
 
Last edited:

Ignus

Copying deli meat to hard drive
You're completely right, right now the average damage calc will not work. It is a sum, but the usage adds up to 100% only once every Pokemon is entered. I'm actually working on setting up a parser for the Json outputs the usage people provided us with. It's set up to do a different calc right now but I could probably set it up to do this too, if I needed to.

That sum in the calculation is closer to a weighted average of all Pokemon. While you could potentially scale it down, I didn't. There is no reason for this, I'm just lazy :x

QxC4eva , if you want, I can give you permissions to the spreadsheet and you can fix this if you have time. I'm working on a defensive analysis right now (And school starts real soon) so I don't really have time to fix it.

A disclaimer though: despite that you can't preform the damage calculations with the numbers that the types represent right now, this is still a good representation of type effectiveness. Think of it this way:

Right now, Ice gets 18000 points for its type effectiveness, 200 of which are from garchomp. If something has a tenth of its usage (like zygarde), you get 20 points. While these less used Pokemon do add up once you have all of them, their type and stats are so varied and their usage so slow that they don't have that much of a meaningful impact on the order of the typing.
 
I hate spreadsheets but I'll try. :P So with average I think it looks like this:
Code:
=1/(0.84*SUM(TankinessMixed!B$3:B$69)/SUM(OuList!$M2:$M69))
Using the above equation, the new PATE for ice comes to 78885.

394 * 40 * 1.5 / 78885 = 30.0%

Ice Shard does 30% overall. I'm happy with that~


---
On another note, Ignus was interested with the linearization idea so I'll put that on the spreadsheet too. Here's the complete formula:

... where T=0.0625 for immunity

>_< The notation makes it look so complicated, but it's really simple. Lets say there are 3 mons with equal usage, and a neutral hit scores 1000.

If all three hits are neutral:

Old formula: (1000+1000+1000)/3.0 = 1000
New formula: 2^((log2(1000)+log2(1000)+log2(1000))/3.0) = 1000

A neutral, then a 4x resist, then a 4x super effective:

Old formula: (1000+250+4000)/3.0 = 1750 <-- biased!
New formula: 2^((log2(1000)+log2(250)+log2(4000))/3.0) = 1000 <-- correct!

There you have it, "linearization". Note that the damage calcs still work! It's just the output will no longer be the average damage (that's the old formula) but the normalized average damage. Normalized means there's no bias to SE hits.


---
Now to compare results. I had the multiplier reverted back to 4x.

Physical Effectiveness - average damage


Physical Effectiveness - linearized average damage


Some notes about the linearized scores:
  • Water, Flying, Ghost and Dark have the biggest improvement. They don't often hit super effectively so scored badly before, but linearization gives more emphasis to their good neutral coverage.
  • Poison and Ground suffered the most - immunity seems to be the curse. Dragon and Ghost were fine as they hit well outside of these immunities.
  • Ice is still the best offensive type.
  • Electric+Ice got a lot closer to Ice+Fighting but still falls short by a bit..
  • Ice+Ground claimed #1 over Ice+Fighting.

Ignus if you're happy with this I'll do SATE as well and send you the file.
 
I think it's interesting how awful ground is in its own right, not just mediocre, it's honestly terrible. But paired with another type, it's honestly incredible. Question: does this take into account air balloon? It may not be best to do so, since it pops when hit, but it's a thought.

Some other stuff:
  • Ghost is really good, despite the lack of a ton of SE coverage, since its resists are incredibly limited.
  • Ice/ground is insane. I mean, everyone knows it's good, but dang.
This chart is interesting in its effects overall, as it seems to highlight some unique stuff the original didn't. It emphasizes good neutral coverage, which is really useful, and makes certain combinations much better than they were on the other chart.

Also, correct me if I'm wrong, but this cannot be used to calculate the average damage dealt, can it? I can't remember what normalized means, tbh. That probably would explain everything, but idk.

One more question, how did you determine T=.0625 for immunities? That seems pretty arbitrary, though I am not an excellent mathematician, so the reason could be glaringly obvious. I get that it's meant to account for the fact that log 0 dne, but why that number?

Anyways, I was sceptical at first, but this does seem to bring it closer to the actual intended purpose.
 
I think it's interesting how awful ground is in its own right, not just mediocre, it's honestly terrible. But paired with another type, it's honestly incredible. Question: does this take into account air balloon? It may not be best to do so, since it pops when hit, but it's a thought.
It's not so surprising to me--you have many commonly used mons with both type (Lando-T, Talonflame) and ability (Lati@s, Rotom-W) immunities, meaning Ground coverage by itself can end up giving out a lot of free switches. However, having that Ice or Rock coverage is great for deterring those switches--Latias isn't coming in to absorb an EQ if she could instead take an Ice Beam to the face, or Talonflame a Stone Edge. Ground hits a ton super-effectively, but it kinda needs a strong coverage move to work at its fullest potential.
 
It's not so surprising to me--you have many commonly used mons with both type (Lando-T, Talonflame) and ability (Lati@s, Rotom-W) immunities, meaning Ground coverage by itself can end up giving out a lot of free switches. However, having that Ice or Rock coverage is great for deterring those switches--Latias isn't coming in to absorb an EQ if she could instead take an Ice Beam to the face, or Talonflame a Stone Edge. Ground hits a ton super-effectively, but it kinda needs a strong coverage move to work at its fullest potential.
I get why it is, it's just interesting to note how big the improvement is. It is one of the worst alone, but with ice it is the best possible combination of any two types. Rock is similar.
Also, this chart does a good job of representing the actual best type combinations by somehow seemingly accounting for redundant coverage, whereas the original dual type chart said that, for example, ice was fairy's best partner type, which is just all kinds of wrong.

Edit: also, this chart could be very useful for coming up w/ offensive cores.
 
So what is the deal with Ice/Ghost being so awesome? Froslass must be really happy about that.
I think it's just because of ghost's phenomenal neutral coverage. It's only resisted by two types, normal and dark, and along with that, dark types aren't typically super bulky and normal types aren't all that common. The combination is only resisted by dark + fire/steel/water/ice, of which two are common, and normal + the same, of which only normal/fire even exists, and it isn't even seen in OU. That's my guess at least
 

Ignus

Copying deli meat to hard drive
Sounds good. Dump me that file and I'll update the full dual type stuff. While I'm at it I'll see if I can fix some other obnoxious stuff in the spreadsheet.
I appreciate the help, yo.
 
Also, correct me if I'm wrong, but this cannot be used to calculate the average damage dealt, can it? I can't remember what normalized means, tbh. That probably would explain everything, but idk.
"Average" is a vague term I think. Say we got these numbers: 25, 25, 100, 400
At school I learned a few ways to find the average:
  • Mean = (25+25+100+400)/4 = 137.5
  • Median = (25+100)/2 = 62.5
  • Mode = 25
And this one I made up,
  • "Normalized Average" = e^((ln(25)+ln(25)+ln(100)+ln(400))/4) = 70.7

So which one to use? They're all different averages, each one giving us a different result.... I'd say normalized average is the best since the damage formula uses 2^x multipliers. I'm honestly not sure if normalized is the correct word but it sounds like a cool way of saying "average that is more conservative to neutral hitters like Ghost". NinetyNineNo brought it up first, maybe ask him!

Edit: I googled. :P It's actually called "geometric mean"
http://stats.stackexchange.com/questions/41892/what-are-the-different-types-of-averages

One more question, how did you determine T=.0625 for immunities? That seems pretty arbitrary, though I am not an excellent mathematician, so the reason could be glaringly obvious. I get that it's meant to account for the fact that log 0 dne, but why that number?
Maths doesn't know the rules of pokemon, it freaks out at immunities. So we help it out with an extra rule. I tried different values of T from 0.001 up to 0.25 and the results are nearly the same, which is good news! Imagine your opponent switches in something immune to your attack. Realistically, the outcome won't be much different if he 4x resisted you instead... he probably still got a free switch. So the results are similar even with immunity as high as 0.25. I ended up going for 16x resist; T=0.0625. In pokemon, 8x is the max resist (ice on fat Dewgong) so I just went for the next one below :P

You're right, it's hacky and I don't claim the linearization way is perfect. At best it's only an improvement of the old formula.

Anyways, I was sceptical at first, but this does seem to bring it closer to the actual intended purpose.
:D I'm no good explaining stuff so thanks for giving me a chance


---
Ignus I PM'ed you the file. Feel free to do whatever you like to it, I think my job here is done.
 
Last edited:
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top