Checks and Counters

haxcho

haxcho, I'm asking for something a bit simpler:

n measurements, m possible outcomes: given frequency counts f_1-f_m, where sum{i}f_i=n, what is the margin of error on each f_i?
Oh, it seems I were somewhat overeager there. That is, in fact, much easier.
The formula is
margin[p_, n_,a_] = {p - z[(1-a/2)_] * Sqrt[p*(1 - p) / n], p + z[(1-a/2)_] * Sqrt[p*(1 - p) / n]}

with the variables p := (f_i)/n ; n := n (arbitrary, but just to be clear here) and a := level of significance.
Notable is also z[s_] := table of the Gaußian distribution to a chance of s .

So, at first, you should choose a level of significance: 0.1 means that your margin has a chance of 0.1 to be wrong etc. I would recommend a level of 0.05, since this is the usually used; In this case z[(1-a/2)_] = 1.96 is true. If you really want another level of significance and can't find the table, I can give you the appropriate number - there is no explicit formula for this, sry.

So, to recap, I would recommend to use this:

margin[p_i, n_,005] = {p - 1.96 * Sqrt[p*(1 - p) / n], p + 1.96 * Sqrt[p*(1 - p) / n]}

So, if you put in margin[f_i/n , n, 00.5], you now have a vector; The left element is the lower border, the right is the higher border.

For example I calculated it for Slowbro vs Terrakion:

Chance of Slowbro KO : {0.1020343965970672, 0.1693223873225308}

Chance of Terrakion KO: {0.18033431334903746, 0.26187674192734445}

Chance of Double Down: {-0.0019218224675036245, 0.011972073723785032}

Chance of Slowbro Switch: {0.14770708321154785, 0.2241522132708642}

Chance of Terrakion Switch: {0.358768768734978, 0.45530158302381596}

Chance of a double switch:{0.017076607959311558, 0.053275150834658294}

Chance of Slowbro getting forced out:{-0.0024058696980351186, 0.007430995326175822}

Chance of Terrakion U-Turn KO:{-0.0009598010930764525, 0.016035177977498562}

As you obviously see, some of the lower borders are in the negative spectrum; This is because the so-called "npq-rule" I mentioned in the post before applies : n*p*(1-p) < 9
The reason for this is that Statistics unfortunately isn't like Analysis, were every formula you commonly use is perfectly smooth, so we have to resort to approximations, and these always have certain boundaries.
In this case, you SHOULD choose to make the "n" higher or simply don't use the statistics at all; But you can't make the n higher & don't need perfect accuracy, so if you just substitute every negative number with 0 it's more or less fine(even though exactly 0 is impossibly, since it already happened at least once, but it can be just very, very near 0). There are more precise formulas, but they're also far more complicated(the many digits after the decimal point in my calculation aren't because it's really that precise, but because I just copy & pasted out of mathematica).

I don't know which programming language you use, but I tried to write the formula in a way that you don't have to change to much. I also tried to explain it as thoroughly as possible with the limited means you have when describing something online in a forum without going too much in detail, because I don't like when people use a formula without knowing at least a bit of the background(like the stuff about the npq-rule or the level of significance).

If you don't understand something, or want to know more, feel free to ask! I'm a statistics/mathematics college student, so I have to recap it anyway(or rather want, since I already did the exam for it), & I can atleast help someone while doing that.

Antar

Official Data Miner
Oh, it seems I were somewhat overeager there. That is, in fact, much easier.
The formula is
margin[p_, n_,a_] = {p - z[(1-a/2)_] * Sqrt[p*(1 - p) / n], p + z[(1-a/2)_] * Sqrt[p*(1 - p) / n]}

with the variables p := (f_i)/n ; n := n (arbitrary, but just to be clear here) and a := level of significance.
Notable is also z[s_] := table of the Gaußian distribution to a chance of s .
Beautiful! That's EXACTLY what I was looking for.

Basically I'm thinking that any check/counter ranking system should operate on an "CRE"-like principle, where the measure compared is value minus n-sigma deviation.

tehy

Banned deucer.

Firstly, you asked if it was possible for two pokemon to both be forced out at the same time. Probably, but that would mostly be as a result of double blinds as a result of the first turn or double downs, or as a result of one player switching to something to set up a move that they'll use to safely switch in something else. Actually, a great example i can think of was already used in this thread:Heatran Vs. Celebi. Let's say both are stall teams;heatran lacks a balloon and celebi lacks earth power.. Heatran will probably run, fearing earth power, while celebi will know it can do little to heatran, and elect to switch, since heatran might decide to just attack anyhow. Alternately, it might be something like LO or NPlebi. I switch to heatran to take a giga drain/HP fire/psychic, then i switch to gengar on the predicted earth power, while celebi, knowing it lacks earth power, runs like crazy.

One other issue i had is that occasionally i'll switch from one counter to a pokemon to another, so that the second one can set up hazards, or maybe heal off some damage it took. Maybe you should put in a bit of code that doesn't count switches to other counters? Or that could not be a big enough problem to matter.

Edit: Ithilanor, generally forced out means "forced to switch". It's entirely possible that's what he meant, but that would also make almost no sense-it's pretty self-evident that two pokemon can't both roar each other out at the same time, so it's more likely he meant what i meant.

pharaohcalvin

I don't see why this is so complicated.
Check: A pokemon that will come in not-so-easily, maybe after death fodder and threaten to out-beat the opposing pokemon whether immediatly or proceedingly.
Counter: A pokemon that outright threatens the opposing pokemon with resistances, blocking strategies, set up windows and of course an easy KO.
This! I can't believe how well this is put. 100% correct, this man (or woman) is. I don't see how it is such a hard concept to grasp.

Ithilanor

Firstly, you asked if it was possible for two pokemon to both be forced out at the same time. Probably, but that would mostly be as a result of double blinds as a result of the first turn or double downs, or as a result of one player switching to something to set up a move that they'll use to safely switch in something else. Actually, a great example i can think of was already used in this thread:Heatran Vs. Celebi. Let's say both are stall teams;heatran lacks a balloon and celebi lacks earth power.. Heatran will probably run, fearing earth power, while celebi will know it can do little to heatran, and elect to switch, since heatran might decide to just attack anyhow. Alternately, it might be something like LO or NPlebi. I switch to heatran to take a giga drain/HP fire/psychic, then i switch to gengar on the predicted earth power, while celebi, knowing it lacks earth power, runs like crazy.
That'd just be a double switch. When he means forced out, he means Roared/Whirlwinded/etc.

FallenFoliage

Basically I'm thinking that any check/counter ranking system should operate on an "CRE"-like principle, where the measure compared is value minus n-sigma deviation.
By all means make it happen. But I think the reliability of it can be quite doubtful, for the following reasons.
• Large variety of sets
• Extremeties found within the set options
• The rarity of landing a hard-pressed counter
• The unpredictability in face-offs
Using a common face-off example: Gengar vs Conkeldur.
It will likely switch in on Conkeldur's Mach Punch repeatedly. Thus provoking many face-offs. Gengar (DisableGar set) can shut some sets down, almost immediately. However, DisableGar is quite rare, and probably won't be summed into the ratios. And consequently, the other sets may switch out and may even be defeated; the former being very likely.
Gengar will be switching out a lot. In some cases will even lose the face-off.
Even though some sets prove to be hard-pressed counters.

This may not be a good example at all. But the numbers for the Pokemon that have a lot of sets, will be leaning more towards the common and not the exact case.

Synopsis:
Is there any way this complication of data can be summed in, or eluded?

Antar

Official Data Miner
Synopsis:
Is there any way this complication of data can be summed in, or eluded?
Well, I mean, you've kinda summed up the problem. Really it's player skill more than moveset variations that makes this tricky, but what I suspect is that--if we're using data from all matches rather than, say, matches between "good players," counters should still be distinguishable by statistically significant differences in KO/switch ratios (consider the examples I posted earlier).

FallenFoliage

Factoring this issue in would be quite a hassle.
I see how it will work for the more "common good", and that deserves its own merit. In fact it should and/or can even help "good players" have the winning edge!

I look forward to these results, and please ask me if any help is needed.
Good luck guys!

Antar

Official Data Miner
Okay, I'm starting simple.

Given:

• K -- The number of times Pokemon A is KOed by Pokemon B
• S -- The number of times Pokemon A switches out against Pokemon B
• N -- The number of times either Pokemon A or B (or both) are KOed or switched out, and not counting U-Turn KOs or force-out situations (aka Roar)

I define my preliminary counter rating as:

C=(K+S)/N

In short, KOs and switch-outs have equal weighting.

and then my counter score by:
C'=100[C-4*1.96*sqrt(C*(1-C)/N)]

So, using OU stats for October, here are some lists of top counters and checks:

Code:
`````` +----------------------------------------+
| Politoed                               |
+----------------------------------------+
| Checks and Counters                    |
| Breloom 73.040 (77.85±1.20)            |
|	 (27.5% KOed / 50.3% switched out)|
|	 (16.7% KOed / 66.7% switched out)|
| Venusaur 69.217 (75.01±1.45)           |
|	 (19.7% KOed / 55.3% switched out)|
| Virizion 68.967 (82.99±3.51)           |
|	 (25.6% KOed / 57.4% switched out)|
| Lilligant 68.537 (84.85±4.08)          |
|	 (24.9% KOed / 59.9% switched out)|
| Toxicroak 68.489 (78.01±2.38)          |
|	 (28.1% KOed / 49.9% switched out)|
| Ludicolo 66.884 (83.55±4.17)           |
|	 (21.7% KOed / 61.8% switched out)|
| Sceptile 66.442 (84.65±4.55)           |
|	 (27.4% KOed / 57.3% switched out)|
| Ferrothorn 66.034 (70.47±1.11)         |
|	 (11.4% KOed / 59.1% switched out)|
| Tentacruel 65.066 (71.85±1.70)         |
|	 (7.5% KOed / 64.4% switched out)|
| Celebi 63.825 (71.34±1.88)             |
|	 (19.4% KOed / 52.0% switched out)|
| Blissey 63.683 (70.52±1.71)            |
|	 (9.1% KOed / 61.4% switched out)|
+----------------------------------------+
+----------------------------------------+
| Ferrothorn                             |
+----------------------------------------+
| Checks and Counters                    |
| Volcarona 88.213 (92.58±1.09)          |
|	 (34.7% KOed / 57.8% switched out)|
| Heatran 85.276 (88.65±0.84)            |
|	 (21.9% KOed / 66.8% switched out)|
| Charizard 82.488 (91.94±2.36)          |
|	 (26.5% KOed / 65.4% switched out)|
| Toxicroak 79.115 (85.90±1.70)          |
|	 (25.1% KOed / 60.8% switched out)|
| Typhlosion 77.067 (92.39±3.83)         |
|	 (21.2% KOed / 71.2% switched out)|
| Ninetales 76.995 (82.49±1.37)          |
|	 (19.2% KOed / 63.3% switched out)|
| Conkeldurr 75.496 (82.83±1.83)         |
|	 (34.4% KOed / 48.4% switched out)|
| Infernape 75.409 (81.43±1.50)          |
|	 (23.4% KOed / 58.0% switched out)|
| Breloom 74.991 (79.78±1.20)            |
|	 (24.5% KOed / 55.3% switched out)|
| Lucario 74.289 (81.72±1.86)            |
|	 (43.2% KOed / 38.5% switched out)|
| Arcanine 73.939 (84.62±2.67)           |
|	 (22.2% KOed / 62.4% switched out)|
| Chandelure 71.934 (82.48±2.64)         |
|	 (25.4% KOed / 57.1% switched out)|
+----------------------------------------+
+----------------------------------------+
| Dragonite                              |
+----------------------------------------+
| Checks and Counters                    |
| Mamoswine 69.985 (76.97±1.75)          |
|	 (47.3% KOed / 29.7% switched out)|
| Cloyster 63.874 (71.80±1.98)           |
|	 (53.2% KOed / 18.6% switched out)|
| Donphan 54.161 (63.70±2.38)            |
|	 (30.2% KOed / 33.5% switched out)|
| Weavile 53.155 (68.27±3.78)            |
|	 (44.9% KOed / 23.3% switched out)|
| Porygon2 52.171 (69.52±4.34)           |
|	 (39.5% KOed / 30.0% switched out)|
| Genesect 51.324 (56.48±1.29)           |
|	 (41.1% KOed / 15.4% switched out)|
| Haxorus 50.105 (60.93±2.71)            |
|	 (48.8% KOed / 12.1% switched out)|
| Salamence 47.258 (54.99±1.93)          |
|	 (42.3% KOed / 12.7% switched out)|
| Aron 46.443 (76.19±7.44)               |
|	 (60.3% KOed / 15.9% switched out)|
| Gliscor 45.620 (52.85±1.81)            |
|	 (27.1% KOed / 25.8% switched out)|
| Garchomp 44.188 (54.91±2.68)           |
|	 (42.7% KOed / 12.2% switched out)|
| Froslass 43.758 (69.12±6.34)           |
|	 (43.6% KOed / 25.5% switched out)|
+----------------------------------------+
+----------------------------------------+
| Genesect                               |
+----------------------------------------+
| Checks and Counters                    |
| Heatran 81.530 (84.92±0.85)            |
|	 (17.5% KOed / 67.5% switched out)|
| Volcarona 78.808 (84.71±1.48)          |
|	 (34.3% KOed / 50.4% switched out)|
| Ninetales 73.677 (79.45±1.44)          |
|	 (17.5% KOed / 62.0% switched out)|
| Chansey 73.654 (81.53±1.97)            |
|	 (7.4% KOed / 74.2% switched out)|
| Blissey 72.653 (78.90±1.56)            |
|	 (8.2% KOed / 70.7% switched out)|
| Typhlosion 68.437 (89.68±5.31)         |
|	 (26.2% KOed / 63.5% switched out)|
| Infernape 67.935 (74.60±1.67)          |
|	 (22.8% KOed / 51.8% switched out)|
| Terrakion 67.779 (73.41±1.41)          |
|	 (35.0% KOed / 38.4% switched out)|
| Snorlax 63.344 (79.48±4.03)            |
|	 (14.3% KOed / 65.2% switched out)|
| Arcanine 61.033 (74.26±3.31)           |
|	 (15.3% KOed / 58.9% switched out)|
| Chandelure 59.869 (71.38±2.88)         |
|	 (22.8% KOed / 48.6% switched out)|
| Machamp 59.153 (73.05±3.47)            |
|	 (29.2% KOed / 43.9% switched out)|
+----------------------------------------+
+----------------------------------------+
| Scizor                                 |
+----------------------------------------+
| Checks and Counters                    |
| Heatran 73.202 (78.43±1.31)            |
|	 (32.7% KOed / 45.7% switched out)|
| Volcarona 69.067 (76.92±1.96)          |
|	 (38.6% KOed / 38.3% switched out)|
| Ninetales 65.382 (73.42±2.01)          |
|	 (28.4% KOed / 45.0% switched out)|
| Skarmory 65.369 (74.27±2.23)           |
|	 (8.9% KOed / 65.4% switched out)|
| Victini 62.207 (75.73±3.38)            |
|	 (43.5% KOed / 32.2% switched out)|
|	 (34.5% KOed / 35.9% switched out)|
| Arcanine 60.622 (74.74±3.53)           |
|	 (27.7% KOed / 47.1% switched out)|
| Tentacruel 60.309 (69.56±2.31)         |
|	 (22.4% KOed / 47.2% switched out)|
| Gliscor 60.293 (67.61±1.83)            |
|	 (28.0% KOed / 39.6% switched out)|
| Magnezone 60.136 (70.69±2.64)          |
|	 (62.0% KOed / 8.7% switched out)|
| Infernape 58.828 (67.16±2.08)          |
|	 (25.9% KOed / 41.3% switched out)|
| Charizard 58.078 (74.38±4.07)          |
|	 (32.0% KOed / 42.4% switched out)|
+----------------------------------------+
+----------------------------------------+
| Heatran                                |
+----------------------------------------+
| Checks and Counters                    |
| Keldeo 80.787 (87.43±1.66)             |
|	 (33.7% KOed / 53.7% switched out)|
|	 (29.4% KOed / 56.8% switched out)|
| Terrakion 77.975 (83.23±1.31)          |
|	 (36.9% KOed / 46.3% switched out)|
| Milotic 72.732 (86.80±3.52)            |
|	 (12.9% KOed / 73.9% switched out)|
| Vaporeon 69.550 (77.52±1.99)           |
|	 (17.0% KOed / 60.6% switched out)|
| Gastrodon 68.412 (77.36±2.24)          |
|	 (21.1% KOed / 56.3% switched out)|
| Dugtrio 67.475 (76.24±2.19)            |
|	 (70.2% KOed / 6.1% switched out)|
| Starmie 65.735 (72.94±1.80)            |
|	 (18.6% KOed / 54.3% switched out)|
| Swampert 65.598 (78.87±3.32)           |
|	 (20.8% KOed / 58.1% switched out)|
| Politoed 65.526 (70.45±1.23)           |
|	 (16.0% KOed / 54.4% switched out)|
| Landorus 64.276 (71.85±1.89)           |
|	 (34.0% KOed / 37.9% switched out)|
| Conkeldurr 64.229 (73.52±2.32)         |
|	 (32.0% KOed / 41.6% switched out)|
+----------------------------------------+
+----------------------------------------+
| Breloom                                |
+----------------------------------------+
| Checks and Counters                    |
| Dragonite 64.173 (70.51±1.58)          |
|	 (40.7% KOed / 29.8% switched out)|
| Volcarona 64.167 (73.45±2.32)          |
|	 (45.5% KOed / 27.9% switched out)|
| Salamence 62.678 (70.94±2.06)          |
|	 (42.7% KOed / 28.3% switched out)|
|	 (33.2% KOed / 36.6% switched out)|
| Venusaur 62.177 (72.06±2.47)           |
|	 (47.5% KOed / 24.5% switched out)|
| Latios 61.267 (69.30±2.01)             |
|	 (36.7% KOed / 32.6% switched out)|
| Espeon 60.129 (69.43±2.33)             |
|	 (32.0% KOed / 37.5% switched out)|
| Chandelure 59.162 (74.06±3.72)         |
|	 (35.7% KOed / 38.3% switched out)|
| Gengar 58.571 (67.59±2.26)             |
|	 (34.9% KOed / 32.7% switched out)|
| Latias 58.207 (68.79±2.64)             |
|	 (31.2% KOed / 37.6% switched out)|
| Alakazam 57.958 (67.14±2.30)           |
|	 (39.2% KOed / 27.9% switched out)|
|	 (35.1% KOed / 37.8% switched out)|
+----------------------------------------+
+----------------------------------------+
| Tyranitar                              |
+----------------------------------------+
| Checks and Counters                    |
| Conkeldurr 86.017 (91.76±1.44)         |
|	 (35.9% KOed / 55.8% switched out)|
| Keldeo 81.572 (88.56±1.75)             |
|	 (42.6% KOed / 45.9% switched out)|
| Terrakion 81.260 (86.51±1.31)          |
|	 (41.7% KOed / 44.8% switched out)|
| Breloom 80.390 (85.44±1.26)            |
|	 (34.8% KOed / 50.6% switched out)|
| Toxicroak 79.158 (88.12±2.24)          |
|	 (39.2% KOed / 48.9% switched out)|
| Machamp 78.447 (89.22±2.69)            |
|	 (38.8% KOed / 50.4% switched out)|
| Scrafty 74.651 (87.98±3.33)            |
|	 (43.2% KOed / 44.8% switched out)|
| Lucario 71.389 (80.02±2.16)            |
|	 (41.6% KOed / 38.5% switched out)|
| Mamoswine 71.388 (79.56±2.04)          |
|	 (50.2% KOed / 29.4% switched out)|
| Metagross 69.974 (79.80±2.46)          |
|	 (44.4% KOed / 35.4% switched out)|
| Heracross 69.374 (84.85±3.87)          |
|	 (46.7% KOed / 38.2% switched out)|
| Virizion 69.218 (86.55±4.33)           |
|	 (37.8% KOed / 48.7% switched out)|
+----------------------------------------+
+----------------------------------------+
| Gliscor                                |
+----------------------------------------+
| Checks and Counters                    |
| Cloyster 80.558 (87.79±1.81)           |
|	 (52.0% KOed / 35.8% switched out)|
| Starmie 74.351 (81.66±1.83)            |
|	 (28.7% KOed / 53.0% switched out)|
| Mamoswine 70.899 (79.38±2.12)          |
|	 (30.5% KOed / 48.9% switched out)|
|	 (30.6% KOed / 47.5% switched out)|
| Keldeo 68.185 (78.56±2.59)             |
|	 (43.0% KOed / 35.6% switched out)|
| Porygon2 66.701 (82.88±4.05)           |
|	 (33.9% KOed / 48.9% switched out)|
| Gengar 65.387 (74.41±2.26)             |
|	 (24.4% KOed / 50.0% switched out)|
| Latios 64.808 (73.13±2.08)             |
|	 (38.0% KOed / 35.1% switched out)|
| Rotom-Wash 64.806 (71.77±1.74)         |
|	 (24.8% KOed / 47.0% switched out)|
| Genesect 64.424 (70.00±1.40)           |
|	 (34.9% KOed / 35.1% switched out)|
| Vaporeon 62.952 (73.41±2.61)           |
|	 (23.6% KOed / 49.8% switched out)|
| Weavile 61.435 (78.67±4.31)            |
|	 (34.9% KOed / 43.8% switched out)|
+----------------------------------------+
+----------------------------------------+
| Salamence                              |
+----------------------------------------+
| Checks and Counters                    |
| Mamoswine 79.653 (87.17±1.88)          |
|	 (55.6% KOed / 31.6% switched out)|
| Cloyster 63.065 (73.27±2.55)           |
|	 (56.4% KOed / 16.9% switched out)|
| Weavile 62.682 (79.82±4.28)            |
|	 (58.2% KOed / 21.7% switched out)|
| Donphan 62.589 (73.43±2.71)            |
|	 (37.8% KOed / 35.6% switched out)|
| Genesect 46.943 (53.66±1.68)           |
|	 (41.0% KOed / 12.6% switched out)|
| Landorus 46.104 (58.63±3.13)           |
|	 (42.9% KOed / 15.7% switched out)|
| Stoutland 46.089 (71.14±6.26)          |
|	 (64.2% KOed / 7.0% switched out)|
| Porygon2 43.310 (66.80±5.87)           |
|	 (44.5% KOed / 22.3% switched out)|
| Scizor 42.166 (50.28±2.03)             |
|	 (38.5% KOed / 11.8% switched out)|
| Gliscor 41.717 (50.91±2.30)            |
|	 (27.1% KOed / 23.8% switched out)|
| Ditto 40.821 (57.51±4.17)              |
|	 (43.8% KOed / 13.7% switched out)|
| Garchomp 40.781 (54.17±3.35)           |
|	 (40.9% KOed / 13.3% switched out)|
+----------------------------------------+``````
So do we agree that Breloom is the best counter for Politoed? That Keldeo is a better counter for Heatran than Gyarados or Terrakion?

Or does my algorithm need improving?

Antar

Official Data Miner
I'm wondering if I shouldn't relax the C' calculation a bit. Does subtracting 4x the deviation seem like a lot to anyone? How are people finding the check/counter rankings I published this month?

Bossness

| Politoed |
+----------------------------------------+
| Checks and Counters |
| Breloom 73.040 (77.85±1.20) |
| (27.5% KOed / 50.3% switched out)|
Can you please explain what these numbers mean? I would really like to know.

MicfiJasan

Can you please explain what these numbers mean? I would really like to know.
This is my understanding of it (using your Politoed v. Breloom example):

27.5% KOed/50.3% switched out: These numbers are the chances that Breloom will KO/force out Politoed, respectively.

77.85: This is the sum of the first two numbers. In other words, if you get Breloom in against Politoed, this is roughly the chance that something "good" will happen for you.

1.20: This is the deviation. More matchups means lower deviation.

73.040: This is the final score, or roughly 77.85-4*1.20. The higher score means better counter.

I love that we have even simplified results. I think could help predict switches/non-switches a little bit. For example, Lucario has a score of 74.289 as a Ferrothorn counter, but only forces Ferrothorn out 38.5% of the time, meaning a Close Combat is better than trying to predict a switch in.

Is Keldeo a better Heatran counter than Gyarados or Terrakion? Although it has a higher score, the scores of those three are reasonably close, and in Decembers stats the order is Gyarados, Terrakion, Keldeo. In future months I think we'll see certain groups remain at the top and those will be the top counters. As for Breloom and Politoed, Breloom is down to number 4 in December, so variation clearly plays a part. I don't think you can definitively say something is the hands down "best" counter from this, but I think you can find a group of strong counters/checks that will help when team-building.

As for what I think of C', 4 deviations feels a little high, but I'm used to them in relation to a normal distribution. 2 deviations is always a big deal as it determines whether an event is "statistically unlikely" to occur. 3 deviations covers over 99% of all cases, so I lean towards this. However, if you have an objective reason for 4 deviations, then I trust you. I'd say keep it between 2-4.

I can't really think of anything to improve the algorithm at the moment (my original unsophisticated thought on this was to have the score be "good" outcomes divided by all outcomes), but I do wonder why your N variable doesn't include the situations where Pokemon B switches out against A. Pokemon B could be a pivot, or it can only counter the most common of several of A's viable sets. I feel like N should include these situations

Antar

Official Data Miner
This is my understanding of it (using your Politoed v. Breloom example):

27.5% KOed/50.3% switched out: These numbers are the chances that Breloom will KO/force out Politoed, respectively.

77.85: This is the sum of the first two numbers. In other words, if you get Breloom in against Politoed, this is roughly the chance that something "good" will happen for you.

1.20: This is the deviation. More matchups means lower deviation.

73.040: This is the final score, or roughly 77.85-4*1.20. The higher score means better counter.
All correct. Thanks. :)

As for what I think of C', 4 deviations feels a little high, but I'm used to them in relation to a normal distribution. 2 deviations is always a big deal as it determines whether an event is "statistically unlikely" to occur. 3 deviations covers over 99% of all cases, so I lean towards this. However, if you have an objective reason for 4 deviations, then I trust you. I'd say keep it between 2-4.
The problem with 4 deviations is that my cutoff for reporting checks/counters is 50 (makes sense, since a C of 50 means that the opposing Pokemon checks you!), so, like, for LC, you basically have no data.

I was looking at some of the ordering, though, trying to decide whether it would be okay to lower it to 2-3 deviations, so LC and the other inactive tiers could get more checks/counters, but look at Scizor's counter list, for instance:

Code:
``````+----------------------------------------+
| Checks and Counters                    |
| Heatran 76.695 (79.80±0.78)            |
|	 (31.5% KOed / 48.3% switched out)|
| Volcarona 72.643 (77.25±1.15)          |
|	 (37.6% KOed / 39.6% switched out)|
| Skarmory 71.587 (76.47±1.22)           |
|	 (8.7% KOed / 67.8% switched out)|
[B]| Typhlosion 69.212 (84.68±3.87)         |
|	 (36.6% KOed / 48.0% switched out)| [/B]
| Ninetales 67.938 (72.88±1.23)          |
|	 (26.3% KOed / 46.5% switched out)|
| Zapdos 67.143 (76.78±2.41)             |
|	 (39.3% KOed / 37.5% switched out)|
| Tentacruel 66.907 (72.15±1.31)         |
|	 (23.0% KOed / 49.2% switched out)|
| Charizard 66.373 (76.99±2.66)          |
|	 (29.4% KOed / 47.6% switched out)|
| Magnezone 65.809 (71.69±1.47)          |
|	 (63.2% KOed / 8.5% switched out)|
|	 (32.1% KOed / 39.2% switched out)|
| Moltres 65.586 (85.64±5.01)            |
|	 (43.1% KOed / 42.6% switched out)|
| Chandelure 65.575 (74.06±2.12)         |
|	 (31.9% KOed / 42.2% switched out)|
+----------------------------------------+``````
I don't really think Typhlosion deserves to top the list. Or does it? Thoughts?

I do wonder why your N variable doesn't include the situations where Pokemon B switches out against A.
It does. I just don't count U-Turns. [Edit: Sorry--just saw that I forgot to include that in my post]

MicfiJasan

The problem with 4 deviations is that my cutoff for reporting checks/counters is 50 (makes sense, since a C of 50 means that the opposing Pokemon checks you!), so, like, for LC, you basically have no data.
I totally see the problem. As an RU player, I kinda noticed this cutoff when I saw that Sigilyph has no "counters" according to the moveset statistics, which I know is not true at all.

I don't really think Typhlosion deserves to top the list. Or does it? Thoughts?
I don't think so either. My mistake earlier was I only thought of deviations in relation to normal distribution. However, they also seem to provide a scale for usage within a tier. In the Scizor stats, all the OU pokes have a deviation smaller than 1.5, while all UU (and RU) pokes have a deviation higher than 2. By comparison, Abomasnow's counters have deviations <3.2 for OU, and >3.7 for UU.

I think you've touched upon the main problem: the difference in usage between and within the tiers is gigantic. And this directly affects the deviations. I looked at the LC stats, and the smallest deviation for Mienfoo, the most-used Pokemon in December, was more than three times as large as the smallest deviation for Scizor. Unfortunately I think this makes using one formula for all the Checks and Counters a little impractical. If I remember back to the PO days of the stats the 1337 stats for RU had a lower cutoff than the 1337 stats for OU (it was 1200 iirc). I feel this might have to be incorporated in some form with the Checks and Counters.

Here's what's running through my head right now. I don't know how well it will work out, but I'll throw it out there. First, lower the deviations from 4 so that the overall amount of counters/checks increases. Next, create some sort of cutoff to eliminate counters that aren't relevant to the metagame in general. This could either be by usage (say anything under 1% isn't factored into checks/counters), or it could be scaled by deviation that varies with the tier. For example, any deviation larger than twice the smallest deviation for a certain pokemon's checks is disqualified. The idea behind these is to eliminate counters that don't show up, and since this is only a major issue in tiers with low deviations like OU, the length of the check/counter lists for all tiers will become pretty similar. An argument could be made for extreme niche counters, but from what I've read people don't care that Typhlosion fares well against Scizor, or Feraligatr counters Heatran.

I know I kinda rambled a bit there, so let me know if something doesn't make sense. I'm fascinated by these kinds of things, though, so I really appreciate the work you put into this. I will give one last caveat. These suggestions were intended by the assumption that extremely low-usage pokes have practically no niches and are largely irrelevant to the metagame as a whole (as in, I don't think any serious teambuilder thinks of Typhlosion when building an OU team). However, if you think 0.599% Typhlosion is important to mention as a Scizor counter, then feel free to keep the formula the same (aside from maybe finding a way to get more data to RU, LC, etc). I find it better to report all relevant data straight up than to report skewed data in a way the general public might like more.

Antar

Official Data Miner
Another solution might be to use data over several months. For tiers like LC, who haven't seen any changes in months, I see absolutely no downside to this.

Unlike "1337" stats, the deviation here has a practical meaning, and while I *do* think it makes sense to lower its contribution to the stats a little bit, adjusting the deviation based on activity just doesn't make sense to me.

Antar

Official Data Miner
Okay, so this is the problem with not knowing statistics.

CRE calculation is score - four standard deviations.

The standard deviation for my data would be simply Sqrt[p*(1 - p) / n]--the 1.96 out front moves it from 68% confidence to 95%. So what I want, if I'm trusting CRE to be valid, is simply:

C'=100[C-4*sqrt(C*(1-C)/N)]

This will be reflected in the next month's stats, which will be presented as

C' (C±standard deviation)

Doing it this way seems to give much richer results: Sceptile is a great check for Politoed, Golett is an awesome check for Mienfoo.

Something to look forward to next month!

FallenFoliage

The standard deviation for my data would be simply Sqrt[p*(1 - p) / n]--the 1.96 out front moves it from 68% confidence to 95%. So what I want, if I'm trusting CRE to be valid, is simply:

C'=100[C-4*sqrt(C*(1-C)/N)]
Great! Seems cleaner, and although it is rare, Sceptile is always going to be forcing out Politoed.

Now, if you think about it, it could be that we all just expect Sceptile's Leaf Storm and are looking for a set up opportunity. For example, Latias can set up Calm Minds in its face if its healthy enough. Unlike others who will sack Politoed on Breloom to get a free switch into Gengar who can avoid Spore with a Sub, or a respective counter without being Spored.
---On that note, it isawesome to have an idea of who's likely to switch out through statistics that are providing exactly that.

Totally gonna check in for the upcoming results.
-Good work guys.

CaptainSteve

Check: A Pokemon who can come in on a Pokemon at the end of a turn and impede a sweep, but not necessarily stop it. It may be to inflict Burn status or to throw up Rocks and Roar/Whirlwind/Dragon Tail to attempt to prevent the sweep happening. For example, Red Card Gigalith is a good check to Mega Charizard Y, but not a counter. Granted Rocks are up, you'll have impeded the potential sweep of Mega Charizard Y when it switches in, but Gigalith itself cannot stop it on its own.

Counter: A Pokemon who can switch in freely on an intended Pokemon and wall it completely, or KO it. Togekiss is a counter to Garchomp in all forms. You can switch in nearly freely on it, as long as it doesn't carry Stone Edge, and completely escape its STAB moves through Typing, and scare it out. An example of a counter, however, is not Cogagrigus on Excadrill - although a Bold Cogagrigus will only be 3HKO'd by Adamant 252 Earthquake from Excadrill, and get a Burn off, it will get killed.

Long story short: The differences between a check and a counter are that checks cannot normally KO a Pokemon and cannot switch in safely mid-turn.

Antar

Official Data Miner
Long story short: The differences between a check and a counter are that checks cannot normally KO a Pokemon and cannot switch in safely mid-turn.

Sounds like the key is basically free switch-ins: a (successful) non-free switch-in indicates counter and not check. Is that correct?

I suppose we could track switch-ins and their outcomes, that is, for Pokemon A switching into Pokemon B:
• It's a free switch-in if it happened after Pokemon B made their move (before the start of the turn or after a slow U-Turn). Otherwise, it's not.
• It's a successful switch-in if the next event is either B is KOed or B switches out (read: not A is KOed or forced to switch).

Thus, my current "checks and counters" metric becomes simply a "checks" metric, whereas "counters" enforces this rule of only looking at non-free switch-ins.

Does that sound good and make sense?

CaptainSteve

Sounds like the key is basically free switch-ins: a (successful) non-free switch-in indicates counter and not check. Is that correct?

I suppose we could track switch-ins and their outcomes, that is, for Pokemon A switching into Pokemon B:
• It's a free switch-in if it happened after Pokemon B made their move (before the start of the turn or after a slow U-Turn). Otherwise, it's not.
• It's a successful switch-in if the next event is either B is KOed or B switches out (read: not A is KOed or forced to switch).

Thus, my current "checks and counters" metric becomes simply a "checks" metric, whereas "counters" enforces this rule of only looking at non-free switch-ins.

Does that sound good and make sense?
I mean that a counter may switch in freely or mid-turn (B has will make a move when A has switched in on that turn) and not be KO'd, where a check can be KO'd, but not always. What I really mean is that a check MUST switch in after a Pokemon has been KO'd or a slow U Turn. I apologise if I'm being confusing.

On an irrelevant side note, did you ever battle someone named Dialgapalkiamew1 on Pokemon BW (Or maybe Battle Frontier) and do you own a Youtube battle. If both these are true, then I know you from Serebii a good while back I believe.

CaptainSteve

And I don't see how what you're saying is any different than what I was proposing.
Oops, I didn't mean to contradict what you said! Yup, in that case, that's perfectly correct!

I must say, you're very good with statistics. Are you using stats from PS or PO or some other mystical source?

QxC4eva

Ok so I have been referred here via your other thread. From skim reading, I have a few questions about the C&C method:

1) Does it only observe the immediate turn after the match up, or does it keep at it until one of those 9 conditions is met? - Gothitelle (A) vs Chansey (B): Trapper Gothitelle switches in, scarfs Chansey then spams rest until Chansey runs out of Seismic and struggles to death (36 turns). Will that still output "Pokemon B is KOed"?

2) When I suggested a lure system (which observes how both Pokemon got INTO the match up, as opposed to in C&C where it's how they got OUT of it), I think you mentioned it is too specific that there will not be many results. For C&C matchups to occur, both Pokemon would have needed to switch in beforehand so there should be equal number of logs for both C&C and lures.

3) Not really a question, but I notice you still have no distinction between a check and counter. This is where the lure system (or "switch-in" or however you like to call it) comes in. Lets assume Pokemon B KOed A. Refer to the lure data. If B switched in on A, it is a counter. If both switched in at the same time or B switched in after a KO / slow u-turn, it is a check.

I also think it is perfectly acceptable that Typhlosion was listed high as a Ferrothorn counter. If one wants to find the most popular Ferrothorn counters they should consider (multiply?) the C&C score with its usage stat. I guess it depends on how you like to present the data, but IMO the json C&C stats should not be dependant on the Pokemon's popularity. We already have usage stats for that.

Antar

Official Data Miner
1) Gothitelle (A) vs Chansey (B): Trapper Gothitelle switches in, scarfs Chansey then spams rest until Chansey runs out of Seismic and struggles to death (36 turns). Will that still output "Pokemon B is KOed"?
Yes, "Pokemon B is KOed."

As for the rest... it's stuff for me to think about.